From: Stefan Schantl Date: Sun, 3 Mar 2013 12:57:39 +0000 (+0100) Subject: Merge branch 'iptables-upnpfw' into core67-merge X-Git-Tag: v2.13-core67~10^2~2 X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=commitdiff_plain;h=31901da1edb401590960558b61e31ddd9fda89c1;hp=c6048d2eef43f7235996accb89d239860dabf645 Merge branch 'iptables-upnpfw' into core67-merge --- diff --git a/config/acpid/power b/config/acpid/power new file mode 100644 index 0000000000..74063179a8 --- /dev/null +++ b/config/acpid/power @@ -0,0 +1,4 @@ +# ACPID config to power down machine if powerbutton is pressed + +event=button/power.* +action=/etc/acpi/actions/power.sh diff --git a/config/acpid/power.sh b/config/acpid/power.sh new file mode 100644 index 0000000000..839a31818b --- /dev/null +++ b/config/acpid/power.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Shutdown the system immediately +shutdown -h now diff --git a/config/asterisk/asterisk.makeopts b/config/asterisk/asterisk.makeopts index 6fa4c11082..60a311b0b7 100644 --- a/config/asterisk/asterisk.makeopts +++ b/config/asterisk/asterisk.makeopts @@ -1,26 +1,31 @@ -MENUSELECT_ADDONS=format_mp3 -MENUSELECT_APPS=app_fax app_jack app_osplookup +MENUSELECT_ADDONS=format_mp3 +MENUSELECT_APPS=app_flash app_meetme app_page app_dahdiras app_fax app_jack app_osplookup app_dahdibarge MENUSELECT_BRIDGES= MENUSELECT_CDR=cdr_adaptive_odbc cdr_odbc cdr_pgsql cdr_radius cdr_tds cdr_sqlite MENUSELECT_CEL=cel_odbc cel_pgsql cel_radius cel_tds -MENUSELECT_CHANNELS=chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 -MENUSELECT_CODECS=codec_ilbc codec_resample codec_speex +MENUSELECT_CHANNELS=chan_dahdi chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 +MENUSELECT_CODECS=codec_dahdi codec_resample codec_speex MENUSELECT_FORMATS= MENUSELECT_FUNCS=func_odbc func_speex MENUSELECT_PBX=pbx_lua -MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_timerfd res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue +MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_dahdi res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue MENUSELECT_TESTS=test_acl test_amihooks test_aoc test_app test_ast_format_str_reduce test_astobj2 test_config test_db test_devicestate test_dlinklists test_event test_expr test_func_file test_gosub test_heap test_linkedlists test_locale test_logger test_netsock2 test_pbx test_poll test_sched test_security_events test_skel test_stringfields test_strings test_substitution test_time test_utils MENUSELECT_CFLAGS=LOADABLE_MODULES -MENUSELECT_OPTS_app_voicemail= -MENUSELECT_UTILS= +MENUSELECT_OPTS_app_voicemail=FILE_STORAGE +MENUSELECT_UTILS=astcanary aelparse astman check_expr check_expr2 conf2ael hashtest hashtest2 muted refcounter smsq stereorize streamplayer MENUSELECT_AGIS= MENUSELECT_EMBED= MENUSELECT_CORE_SOUNDS=CORE-SOUNDS-EN-GSM MENUSELECT_MOH=MOH-OPSOUND-GSM MENUSELECT_EXTRA_SOUNDS=EXTRA-SOUNDS-EN-GSM -MENUSELECT_BUILD_DEPS=chan_local app_voicemail app_meetme res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM +MENUSELECT_BUILD_DEPS=chan_local app_voicemail res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_flash +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_meetme +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_page +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdiras MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_jack MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_osplookup +MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdibarge MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_adaptive_odbc MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_odbc MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_pgsql @@ -31,6 +36,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_odbc MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_pgsql MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_radius MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_tds +MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_dahdi MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_console MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_gtalk MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_jingle @@ -38,6 +44,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_misdn MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_nbs MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_vpb MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_h323 +MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_dahdi MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_resample MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_speex MENUSELECT_DEPSFAILED=MENUSELECT_FUNCS=func_odbc @@ -51,7 +58,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_odbc MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_http_post MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_odbc MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_srtp -MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_timerfd +MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_dahdi MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_ais MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_pgsql MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_sqlite diff --git a/config/backup/backup.pl b/config/backup/backup.pl index d2d6816b0b..f9b8302af9 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -62,6 +62,8 @@ elsif ($ARGV[0] eq 'exclude') { } elsif ($ARGV[0] eq 'restore') { system("cd / && tar -xvz -p -f /tmp/restore.ipf"); + #Here some converter scripts to correct old Backups (before core 65) + system("/usr/sbin/ovpn-ccd-convert"); } elsif ($ARGV[0] eq 'restoreaddon') { if ( -e "/tmp/$ARGV[1]" ){system("mv /tmp/$ARGV[1] /var/ipfire/backup/addons/backup/$ARGV[1]");} diff --git a/config/backup/include b/config/backup/include index 8806640cff..a1d1fbc4a0 100644 --- a/config/backup/include +++ b/config/backup/include @@ -16,6 +16,7 @@ /var/ipfire/dhcp/* /var/ipfire/main/* /var/ipfire/outgoing/groups +/var/ipfire/outgoing/macgroups /var/ipfire/outgoing/rules /var/ipfire/outgoing/p2protocols /var/ipfire/ovpn @@ -28,6 +29,8 @@ /var/ipfire/vpn /var/log/ip-acct/* /var/log/rrd/* +/var/log/rrd/collectd +/var/log/rrd/vnstat /etc/sysconfig/firewall.local /etc/sysconfig/rc.local /root/.gitconfig diff --git a/config/backup/includes/lcr b/config/backup/includes/lcr index 71f4cacc08..618f4c784e 100644 --- a/config/backup/includes/lcr +++ b/config/backup/includes/lcr @@ -3,3 +3,4 @@ /var/ipfire/lcr/interface.conf /var/ipfire/lcr/options.conf /var/ipfire/lcr/routing.conf +/var/log/lcr diff --git a/config/backup/includes/pakfire3 b/config/backup/includes/pakfire3 new file mode 100644 index 0000000000..404e92c74a --- /dev/null +++ b/config/backup/includes/pakfire3 @@ -0,0 +1 @@ +/etc/pakfire diff --git a/config/bash/dot_bash_logout b/config/bash/dot_bash_logout new file mode 100644 index 0000000000..d56620d6bd --- /dev/null +++ b/config/bash/dot_bash_logout @@ -0,0 +1,10 @@ +# Begin ~/.bash_logout + +# Personal items to perform on logout. + +# Clear console to not leak any information. +clear + +echo "Bye bye." + +# End ~/.bash_logout diff --git a/config/bash/dot_bash_profile b/config/bash/dot_bash_profile new file mode 100644 index 0000000000..3dc099a2fc --- /dev/null +++ b/config/bash/dot_bash_profile @@ -0,0 +1,12 @@ +# .bash_profile + +# Get the aliases and functions +if [ -f ~/.bashrc ]; then + . ~/.bashrc +fi + +# User specific environment and startup programs + +PATH=$PATH:$HOME/bin + +export PATH diff --git a/config/bash/dot_bashrc b/config/bash/dot_bashrc new file mode 100644 index 0000000000..90b96b4326 --- /dev/null +++ b/config/bash/dot_bashrc @@ -0,0 +1,18 @@ +# .bashrc + +# User specific aliases and functions + +alias rm='rm -i' +alias cp='cp -i' +alias mv='mv -i' + +# Source global definitions +if [ -f /etc/bashrc ]; then + . /etc/bashrc +fi + +# Automatically logout only console users after 10 minutes. +export TMOUT=0 +if [ -z "${SSH_TTY}" ] && [ -z "${STY}" ]; then + export TMOUT=600 +fi diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index 567f2e104e..f94cdbf16c 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -18,8 +18,7 @@ use strict; use Socket; use IO::Socket; use Net::SSLeay; -use Net::IPv4Addr; - +use Net::IPv4Addr qw(:all); $|=1; # line buffering $General::version = 'VERSION'; @@ -212,21 +211,254 @@ sub validipormask return &validmask($mask); } +sub subtocidr +{ + #gets: Subnet in decimal (255.255.255.0) + #Gives: 24 (The cidr of network) + my ($byte1, $byte2, $byte3, $byte4) = split(/\./, $_[0].".0.0.0.0"); + my $num = ($byte1 * 16777216) + ($byte2 * 65536) + ($byte3 * 256) + $byte4; + my $bin = unpack("B*", pack("N", $num)); + my $count = ($bin =~ tr/1/1/); + return $count; +} + +sub cidrtosub +{ + #gets: Cidr of network (20-30 for ccd) + #Konverts 30 to 255.255.255.252 e.g + my $cidr=$_[0]; + my $netmask = &Net::IPv4Addr::ipv4_cidr2msk($cidr); + return "$netmask"; +} + +sub iporsubtodec +{ + #Gets: Ip address or subnetmask in decimal oder CIDR + #Gives: What it gets only in CIDR format + my $subnet=$_[0]; + my $net; + my $mask; + my $full=0; + if ($subnet =~ /^(.*?)\/(.*?)$/) { + ($net,$mask) = split (/\//,$subnet); + $full=1; + return "$subnet"; + }else{ + $mask=$subnet; + } + #Subnet already in decimal and valid? + if ($mask=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255 && $2<=$1 && $3<=$2 && $4<=$3 ))) { + for (my $i=8;$i<=32;$i++){ + if (&General::cidrtosub($i) eq $mask){ + if ($full == 0){return $mask;}else{ + return $net."/".$mask; + } + } + } + } + #Subnet in binary format? + if ($mask=~/^(\d{1,2})$/ && (($1<=32 && $1>=8))){ + if($full == 0){ return &General::cidrtosub($mask);}else{ + return $net."/".&General::cidrtosub($mask); + } + }else{ + return 3; + } + return 3; +} + + +sub iporsubtocidr +{ + #gets: Ip Address or subnetmask in decimal oder CIDR + #Gives: What it gets only in CIDR format + my $subnet=$_[0]; + my $net; + my $mask; + my $full=0; + if ($subnet =~ /^(.*?)\/(.*?)$/) { + ($net,$mask) = split (/\//,$subnet); + $full=1; + }else{ + $mask=$subnet; + } + #Subnet in decimal and valid? + if ($mask=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255 && $2<=$1 && $3<=$2 && $4<=$3 ))) { + for (my $i=8;$i<=32;$i++){ + if (&General::cidrtosub($i) eq $mask){ + if ($full == 0){return &General::subtocidr($mask);}else{ + return $net."/".&General::subtocidr($mask); + } + } + } + } + #Subnet already in binary format? + if ($mask=~/^(\d{1,2})$/ && (($1<=32 && $1>=8))){ + if($full == 0){ return $mask;}else{ + return $net."/".$mask; + } + }else{ + return 3; + } + return 3; +} + +sub getnetworkip +{ + #Gets: IP, CIDR (10.10.10.0-255, 24) + #Gives: 10.10.10.0 + my ($ccdip,$ccdsubnet) = @_; + my $ip_address_binary = inet_aton( $ccdip ); + my $netmask_binary = ~pack("N", (2**(32-$ccdsubnet))-1); + my $network_address = inet_ntoa( $ip_address_binary & $netmask_binary ); + return $network_address; +} + +sub getccdbc +{ + #Gets: IP in Form ("192.168.0.0/24") + #Gives: Broadcastaddress of network + my $ccdnet=$_; + my ($ccdip,$ccdsubnet) = split "/",$ccdnet; + my $ip_address_binary = inet_aton( $ccdip ); + my $netmask_binary = ~pack("N", (2**(32-$ccdsubnet))-1); + my $broadcast_address = inet_ntoa( $ip_address_binary | ~$netmask_binary ); + return $broadcast_address; +} + +sub ip2dec +{ + my $ip_num; + my $ip=$_[0]; + if ( $ip =~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/ ) { + $ip_num = (($1*256**3) + ($2*256**2) + ($3*256) + $4); + } else { + $ip_num = -1; + } + $ip_num = (($1*256**3) + ($2*256**2) + ($3*256) + $4); + return($ip_num); +} + +sub dec2ip +{ + my $ip; + my $ip_num=$_[0]; + my $o1=$ip_num%256; + $ip_num=int($ip_num/256); + my $o2=$ip_num%256; + $ip_num=int($ip_num/256); + my $o3=$ip_num%256; + $ip_num=int($ip_num/256); + my $o4=$ip_num%256; + $ip="$o4.$o3.$o2.$o1"; + return ($ip); +} + +sub getnextip +{ + my $decip=&ip2dec($_[0]); + $decip=$decip+4; + return &dec2ip($decip); +} + +sub getlastip +{ + my $decip=&ip2dec($_[0]); + $decip--; + return &dec2ip($decip); +} + sub validipandmask { - my $ipandmask = $_[0]; + #Gets: Ip address in 192.168.0.0/24 or 192.168.0.0/255.255.255.0 and checks if subnet valid + #Gives: True bzw 0 if success or false + my $ccdnet=$_[0]; + my $subcidr; + + if (!($ccdnet =~ /^(.*?)\/(.*?)$/)) { + return 0; + } + my ($ccdip,$ccdsubnet)=split (/\//, $ccdnet); + #IP valid? + if ($ccdip=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1>0 && $1<=255 && $2>=0 && $2<=255 && $3>=0 && $3<=255 && $4<=255 ))) { + #Subnet in decimal and valid? + if ($ccdsubnet=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255 && $2<=$1 && $3<=$2 && $4<=$3 ))) { + for (my $i=8;$i<=32;$i++){ + if (&General::cidrtosub($i) eq $ccdsubnet){ + return 1; + } + } + #Subnet already in binary format? + }elsif ($ccdsubnet=~/^(\d{1,2})$/ && (($1<=32 && $1>=8))){ + return 1; + }else{ + return 0; + } + + } + return 0; +} - # split it into number and mask. - if (!($ipandmask =~ /^(.*?)\/(.*?)$/)) { - return 0; } - my $ip = $1; - my $mask = $2; - # first part not a ip? - if (!(&validip($ip))) { - return 0; } - return &validmask($mask); +sub checksubnets +{ + my %ccdconfhash=(); + my @ccdconf=(); + my $ccdname=$_[0]; + my $ccdnet=$_[1]; + my $errormessage; + my ($ip,$cidr)=split(/\//,$ccdnet); + $cidr=&iporsubtocidr($cidr); + #get OVPN-Subnet (dynamic range) + my %ovpnconf=(); + &readhash("${General::swroot}/ovpn/settings", \%ovpnconf); + my ($ovpnip,$ovpncidr)= split (/\//,$ovpnconf{'DOVPN_SUBNET'}); + $ovpncidr=&iporsubtocidr($ovpncidr); + #check if we try to use same network as ovpn server + if ("$ip/$cidr" eq "$ovpnip/$ovpncidr") { + $errormessage=$errormessage.$Lang::tr{'ccd err isovpnnet'}."
"; + return $errormessage; + } + #check if we use a network-name/subnet that already exists + &readhasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + foreach my $key (keys %ccdconfhash) { + @ccdconf=split(/\//,$ccdconfhash{$key}[1]); + if ($ccdname eq $ccdconfhash{$key}[0]) + { + $errormessage=$errormessage.$Lang::tr{'ccd err nameexist'}."
"; + return $errormessage; + } + my ($newip,$newsub) = split(/\//,$ccdnet); + if (&IpInSubnet($newip,$ccdconf[0],&iporsubtodec($ccdconf[1]))) + { + $errormessage=$errormessage.$Lang::tr{'ccd err issubnet'}."
"; + return $errormessage; + } + } + #check if we use a ipsec right network which is already defined + my %ipsecconf=(); + &General::readhasharray("${General::swroot}/vpn/config", \%ipsecconf); + foreach my $key (keys %ipsecconf){ + if ($ipsecconf{$key}[11] ne ''){ + my ($ipsecip,$ipsecsub) = split (/\//, $ipsecconf{$key}[11]); + $ipsecsub=&iporsubtodec($ipsecsub); + if($ipsecconf{$key}[1] ne $ccdname){ + if ( &IpInSubnet ($ip,$ipsecip,$ipsecsub) ){ + $errormessage=$Lang::tr{'ccd err isipsecnet'}." Name: $ipsecconf{$key}[1]"; + return $errormessage; + } + } + } + } + #check if we use one of ipfire's networks (green,orange,blue) + my %ownnet=(); + &readhash("${General::swroot}/ethernet/settings", \%ownnet); + if (($ownnet{'GREEN_NETADDRESS'} ne '' && $ownnet{'GREEN_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'GREEN_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err green'};return $errormessage;} + if (($ownnet{'ORANGE_NETADDRESS'} ne '' && $ownnet{'ORANGE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'ORANGE_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err orange'};return $errormessage;} + if (($ownnet{'BLUE_NETADDRESS'} ne '' && $ownnet{'BLUE_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'BLUE_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err blue'};return $errormessage;} + if (($ownnet{'RED_NETADDRESS'} ne '' && $ownnet{'RED_NETADDRESS'} ne '0.0.0.0') && &IpInSubnet($ownnet{'RED_NETADDRESS'},$ip,&iporsubtodec($cidr))){ $errormessage=$Lang::tr{'ccd err red'};return $errormessage;} } + sub validport { $_ = $_[0]; @@ -276,7 +508,7 @@ sub validhostname if (length ($hostname) < 1 || length ($hostname) > 63) { return 0;} # Only valid characters are a-z, A-Z, 0-9 and - - if ($hostname !~ /^[a-zA-Z0-9-]*$/) { + if ($hostname !~ /^[a-zA-Z0-9-\s]*$/) { return 0;} # First character can only be a letter or a digit if (substr ($hostname, 0, 1) !~ /^[a-zA-Z0-9]*$/) { @@ -407,7 +639,12 @@ sub NextIP ) ); } - +sub NextIP2 +{ + return &Socket::inet_ntoa( pack("N", 4 + unpack('N', &Socket::inet_aton(shift)) + ) + ); +} sub ipcidr { my ($ip,$cidr) = &Net::IPv4Addr::ipv4_parse(shift); @@ -465,13 +702,13 @@ sub writehasharray { open(FILE, ">$filename") or die "Unable to write to file $filename"; foreach $key (keys %$hash) { - if ($key =~ /^[0-9]+$/) { - print FILE "$key"; - foreach $i (0 .. $#{$hash->{$key}}) { - print FILE ",$hash->{$key}[$i]"; - } - print FILE "\n"; - } + if ($key =~ /^[0-9]+$/) { + print FILE "$key"; + foreach $i (0 .. $#{$hash->{$key}}) { + print FILE ",$hash->{$key}[$i]"; + } + print FILE "\n"; + } } close FILE; return; diff --git a/config/collectd/collectd.conf b/config/collectd/collectd.conf index 939dd4b302..67d9e19054 100644 --- a/config/collectd/collectd.conf +++ b/config/collectd/collectd.conf @@ -68,7 +68,7 @@ include "/etc/collectd.precache" Process "nmbd" Process "squid" Process "squidguard" - Process "pluto" + Process "charon" Process "snort" Process "openvpn" Process "qemu" diff --git a/config/cron/crontab b/config/cron/crontab index 5cca1facc4..ad90b07ca9 100644 --- a/config/cron/crontab +++ b/config/cron/crontab @@ -11,7 +11,7 @@ HOME=/ */5 * * * * test -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.cyclic 01 * * * * test -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.hourly &nice(10),bootrun 25 1 * * * test -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.daily -&nice(10),bootrun 47 2 * * 0 test -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.weekly +&nice(10),bootrun 47 2 * * 1 test -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.weekly &nice(10),bootrun 52 3 1 * * test -x /usr/local/bin/run-parts && /usr/local/bin/run-parts /etc/fcron.monthly # Log rotation diff --git a/config/etc/bashrc b/config/etc/bashrc index e35209f335..901f5d57f8 100644 --- a/config/etc/bashrc +++ b/config/etc/bashrc @@ -1,46 +1,89 @@ -# Begin /etc/bashrc -# Written for Beyond Linux From Scratch -# by James Robertson -# updated by Bruce Dubbs +# /etc/bashrc -# Make sure that the terminal is set up properly for each shell +# System wide functions and aliases +# Environment stuff goes in /etc/profile -if [ -f /etc/profile.d/tinker-term.sh ]; then - source /etc/profile.d/tinker-term.sh -fi - -# System wide aliases and functions. - -# System wide environment variables and startup programs should go into -# /etc/profile. Personal environment variables and startup programs -# should go into ~/.bash_profile. Personal aliases and functions should -# go into ~/.bashrc - -# Provides a colored /bin/ls command. Used in conjunction with code in -# /etc/profile. +# It's NOT a good idea to change this file unless you know what you +# are doing. It's much better to create a custom.sh shell script in +# /etc/profile.d/ to make custom changes to your environment, as this +# will prevent the need for merging in future updates. -alias ls='ls --color=auto' -alias ll='ls -la' -alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' - -# Make the shell a little bit more interactive -# to prevent the deletion of some files -alias mv='mv -i' -alias rm='rm -i' -alias cp='cp -i' - -# Midnight Commander isn't compatible to UTF8. -# So we use it in ACSII-Mode. +# are we an interactive shell? +if [ "$PS1" ]; then + if [ -z "$PROMPT_COMMAND" ]; then + case $TERM in + xterm*) + if [ -e /etc/sysconfig/bash-prompt-xterm ]; then + PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm + else + PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' + fi + ;; + screen) + if [ -e /etc/sysconfig/bash-prompt-screen ]; then + PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen + else + PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' + fi + ;; + *) + [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default + ;; + esac + fi + # Turn on parallel history + shopt -s histappend + history -a + # Turn on checkwinsize + shopt -s checkwinsize + [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " + # You might want to have e.g. tty in prompt (e.g. more virtual machines) + # and console windows + # If you want to do so, just add e.g. + # if [ "$PS1" ]; then + # PS1="[\u@\h:\l \W]\\$ " + # fi + # to your custom modification shell script in /etc/profile.d/ directory +fi -alias mc='mc -a' +if ! shopt -q login_shell ; then # We're not a login shell + # Need to redefine pathmunge, it get's undefined at the end of /etc/profile + pathmunge () { + case ":${PATH}:" in + *:"$1":*) + ;; + *) + if [ "$2" = "after" ] ; then + PATH=$PATH:$1 + else + PATH=$1:$PATH + fi + esac + } -# Provides prompt for non-login shells, specifically shells started -# in the X environment. [Review the LFS archive thread titled -# PS1 Environment Variable for a great case study behind this script -# addendum.] + # By default, we want umask to get set. This sets it for non-login shell. + # Current threshold for system reserved uid/gids is 200 + # You could check uidgid reservation validity in + # /usr/share/doc/setup-*/uidgid file + if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then + umask 002 + else + umask 022 + fi -#export PS1="\033[0m[\033[1;33m\u\033[1;37m@\033[1;32m\]\h \033[1;31m\w\033[0m]\\$ " -export PS1="[\u@\h \w]\\$ " -#export PS1='\u@\h:\w\$ ' + # Only display echos from profile.d scripts if we are no login shell + # and interactive - otherwise just process them to set envvars + for i in /etc/profile.d/*.sh; do + if [ -r "$i" ]; then + if [ "$PS1" ]; then + . "$i" + else + . "$i" >/dev/null + fi + fi + done -# End /etc/bashrc + unset i + unset -f pathmunge +fi +# vim:ts=4:sw=4 diff --git a/config/etc/group b/config/etc/group index 3b155fa889..46e4b80295 100644 --- a/config/etc/group +++ b/config/etc/group @@ -14,7 +14,7 @@ dialout:x:16: floppy:x:19: tape:x:20: utmp:x:22: -squid:x:23: +squid:x:23:nobody ntp:x:38: dip:x:40: mysql:x:41: diff --git a/config/etc/inputrc b/config/etc/inputrc index 7a7908cc8d..883686c594 100644 --- a/config/etc/inputrc +++ b/config/etc/inputrc @@ -1,42 +1,42 @@ -# Begin /etc/inputrc +# do not bell on tab-completion +#set bell-style none -# Allow the command prompt to wrap to the next line -set horizontal-scroll-mode Off +set meta-flag on +set input-meta on +set convert-meta off +set output-meta on -# Enable 8bit input -set meta-flag On -set input-meta On +# Completed names which are symbolic links to +# directories have a slash appended. +set mark-symlinked-directories on -# Turns off 8th bit stripping -set convert-meta Off +$if mode=emacs -# Keep the 8th bit for display -set output-meta On - -# none, visible or audible -set bell-style none - -# All of the following map the escape sequence of the -# value contained inside the 1st argument to the -# readline specific functions - -"\eOd": backward-word -"\eOc": forward-word - -# for linux console +# for linux console and RH/Debian xterm "\e[1~": beginning-of-line "\e[4~": end-of-line -"\e[5~": beginning-of-history -"\e[6~": end-of-history +# commented out keymappings for pgup/pgdown to reach begin/end of history +#"\e[5~": beginning-of-history +#"\e[6~": end-of-history +"\e[5~": history-search-backward +"\e[6~": history-search-forward "\e[3~": delete-char "\e[2~": quoted-insert +"\e[5C": forward-word +"\e[5D": backward-word +"\e[1;5C": forward-word +"\e[1;5D": backward-word -# for xterm +# for rxvt +"\e[8~": end-of-line +"\eOc": forward-word +"\eOd": backward-word + +# for non RH/Debian xterm, can't hurt for RH/DEbian xterm "\eOH": beginning-of-line "\eOF": end-of-line -# for Konsole +# for freebsd console "\e[H": beginning-of-line "\e[F": end-of-line - -# End /etc/inputrc +$endif diff --git a/config/etc/modprobe.d/cfg80211 b/config/etc/modprobe.d/cfg80211 index 9e04ea6717..e72bedde80 100644 --- a/config/etc/modprobe.d/cfg80211 +++ b/config/etc/modprobe.d/cfg80211 @@ -1,2 +1 @@ -#options cfg80211 ieee80211_regdom=DE blacklist ieee80211 diff --git a/config/etc/profile b/config/etc/profile index 3c2921908a..2d66685588 100644 --- a/config/etc/profile +++ b/config/etc/profile @@ -1,64 +1,78 @@ -# Begin /etc/profile -# Written for Beyond Linux From Scratch -# by James Robertson -# modifications by Dagmar d'Surreal +# /etc/profile -# System wide environment variables and startup programs. +# System wide environment and startup programs, for login setup +# Functions and aliases go in /etc/bashrc -# System wide aliases and functions should go in /etc/bashrc. Personal -# environment variables and startup programs should go into -# ~/.bash_profile. Personal aliases and functions should go into -# ~/.bashrc. +# It's NOT a good idea to change this file unless you know what you +# are doing. It's much better to create a custom.sh shell script in +# /etc/profile.d/ to make custom changes to your environment, as this +# will prevent the need for merging in future updates. -# Functions to help us manage paths. Second argument is the name of the -# path variable to be modified (default: PATH) -pathremove () { - local IFS=':' - local NEWPATH - local DIR - local PATHVARIABLE=${2:-PATH} - for DIR in ${!PATHVARIABLE} ; do - if [ "$DIR" != "$1" ] ; then - NEWPATH=${NEWPATH:+$NEWPATH:}$DIR - fi - done - export $PATHVARIABLE="$NEWPATH" +pathmunge () { + case ":${PATH}:" in + *:"$1":*) + ;; + *) + if [ "$2" = "after" ] ; then + PATH=$PATH:$1 + else + PATH=$1:$PATH + fi + esac } -pathprepend () { - pathremove $1 $2 - local PATHVARIABLE=${2:-PATH} - export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}" -} - -pathappend () { - pathremove $1 $2 - local PATHVARIABLE=${2:-PATH} - export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1" -} +if [ -x /usr/bin/id ]; then + if [ -z "$EUID" ]; then + # ksh workaround + EUID=`id -u` + UID=`id -ru` + fi + USER="`id -un`" + LOGNAME=$USER + MAIL="/var/spool/mail/$USER" +fi -# Set the initial path -export PATH=/bin:/usr/bin +# Path manipulation +if [ "$EUID" = "0" ]; then + pathmunge /sbin + pathmunge /usr/sbin + pathmunge /usr/local/sbin +else + pathmunge /usr/local/sbin after + pathmunge /usr/sbin after + pathmunge /sbin after +fi -if [ $EUID -eq 0 ] ; then - pathappend /sbin:/usr/sbin - unset HISTFILE +HOSTNAME=`/bin/hostname 2>/dev/null` +HISTSIZE=1000 +if [ "$HISTCONTROL" = "ignorespace" ] ; then + export HISTCONTROL=ignoreboth +else + export HISTCONTROL=ignoredups fi -# Setup some environment variables. -export HISTSIZE=1000 -export HISTIGNORE="&:[bf]g:exit" -export PS1="[\u@\h \w]\\$ " -#export PS1='\u@\h:\w\$ ' +export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL + +# By default, we want umask to get set. This sets it for login shell +# Current threshold for system reserved uid/gids is 200 +# You could check uidgid reservation validity in +# /usr/share/doc/setup-*/uidgid file +if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then + umask 002 +else + umask 022 +fi -for script in /etc/profile.d/*.sh ; do - if [ -r $script ] ; then - . $script +for i in /etc/profile.d/*.sh ; do + if [ -r "$i" ]; then + if [ "${-#*i}" != "$-" ]; then + . "$i" + else + . "$i" >/dev/null 2>&1 fi + fi done -# Now to clean up -unset pathremove pathprepend pathappend - -# End /etc/profile +unset i +unset pathmunge diff --git a/config/etc/securetty b/config/etc/securetty index 9a6a9fd30e..3a69d0b6e7 100644 --- a/config/etc/securetty +++ b/config/etc/securetty @@ -5,6 +5,7 @@ tty4 tty5 tty6 ttyAMA0 +ttyO2 ttyS0 ttyS1 ttyS2 diff --git a/config/etc/sysctl.conf b/config/etc/sysctl.conf index 105feaa0ac..df3ef5f96a 100644 --- a/config/etc/sysctl.conf +++ b/config/etc/sysctl.conf @@ -23,3 +23,8 @@ net.ipv4.conf.all.log_martians = 1 kernel.printk = 1 4 1 7 vm.swappiness=0 vm.mmap_min_addr = 4096 +vm.min_free_kbytes = 8192 + +# Disable IPv6 by default. +net.ipv6.conf.all.disable_ipv6 = 1 +net.ipv6.conf.default.disable_ipv6 = 1 diff --git a/config/fstrim/trim b/config/fstrim/trim new file mode 100644 index 0000000000..6f61a63bd3 --- /dev/null +++ b/config/fstrim/trim @@ -0,0 +1,8 @@ +#!/bin/bash +# +# Script to trim free space on solid state drives. +# +for i in / /boot /var; do + fstrim $i 2>&1 >/dev/null +done + diff --git a/config/grub/grub.conf b/config/grub/grub.conf index 553b10d42d..2199bf1d89 100644 --- a/config/grub/grub.conf +++ b/config/grub/grub.conf @@ -14,28 +14,8 @@ title IPFire kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 MOUNT initrd /ipfirerd-KVER.img savedefault 0 -title IPFire (vesafb 640x480) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=785 MOUNT - initrd /ipfirerd-KVER.img - savedefault 1 -title IPFire (vesafb 800x600) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=788 MOUNT - initrd /ipfirerd-KVER.img - savedefault 2 title IPFire (vesafb 1024x768) root (hd0,0) kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=791 MOUNT initrd /ipfirerd-KVER.img - savedefault 3 -title IPFire (acpi disabled) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 acpi=off MOUNT - initrd /ipfirerd-KVER.img - savedefault 4 -title IPFire (single Processor) - root (hd0,0) - kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 nosmp MOUNT - initrd /ipfirerd-KVER.img - savedefault 5 + savedefault 1 diff --git a/config/hostapd/config b/config/hostapd/config index 88dca15c64..6158e2cdf0 100644 --- a/config/hostapd/config +++ b/config/hostapd/config @@ -16,8 +16,8 @@ CONFIG_DRIVER_HOSTAP=y #CONFIG_DRIVER_WIRED=y # Driver interface for madwifi driver -CONFIG_DRIVER_MADWIFI=y -CFLAGS += -I../../madwifi # change to the madwifi source directory +#CONFIG_DRIVER_MADWIFI=y +#CFLAGS += -I../../madwifi # change to the madwifi source directory # Driver interface for Prism54 driver CONFIG_DRIVER_PRISM54=y diff --git a/config/hostapd/hostapd.conf b/config/hostapd/hostapd.conf index 5e67dcee4a..e1f493f96e 100644 --- a/config/hostapd/hostapd.conf +++ b/config/hostapd/hostapd.conf @@ -1,4 +1,4 @@ -driver=madwifi +driver=nl80211 ######################### basic hostapd configuration ########################## # interface=blue0 diff --git a/config/httpd/vhosts.d/ipfire-interface-ssl.conf b/config/httpd/vhosts.d/ipfire-interface-ssl.conf index 7b10832549..cc3cb1d907 100644 --- a/config/httpd/vhosts.d/ipfire-interface-ssl.conf +++ b/config/httpd/vhosts.d/ipfire-interface-ssl.conf @@ -85,4 +85,14 @@ Order deny,allow Allow from all + + Alias /proxy-reports/ /var/log/sarg/ + + AllowOverride None + Options None + AuthName "IPFire - Restricted" + AuthType Basic + AuthUserFile /var/ipfire/auth/users + Require user admin + diff --git a/config/include/obsolete_videodev.h b/config/include/obsolete_videodev.h new file mode 100644 index 0000000000..c51a5f9cbe --- /dev/null +++ b/config/include/obsolete_videodev.h @@ -0,0 +1,320 @@ +/* + * Video for Linux version 1 - OBSOLETE + * + * Header file for v4l1 drivers and applications, for + * Linux kernels 2.2.x or 2.4.x. + * + * Provides header for legacy drivers and applications + * + * See http://linuxtv.org for more info + * + */ +#ifndef __LINUX_VIDEODEV_H +#define __LINUX_VIDEODEV_H + +#include +#include +#include + + +#define VID_TYPE_CAPTURE 1 /* Can capture */ +#define VID_TYPE_TUNER 2 /* Can tune */ +#define VID_TYPE_TELETEXT 4 /* Does teletext */ +#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */ +#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */ +#define VID_TYPE_CLIPPING 32 /* Can clip */ +#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */ +#define VID_TYPE_SCALES 128 /* Scalable */ +#define VID_TYPE_MONOCHROME 256 /* Monochrome only */ +#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */ +#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */ +#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */ +#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */ +#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */ + +struct video_capability +{ + char name[32]; + int type; + int channels; /* Num channels */ + int audios; /* Num audio devices */ + int maxwidth; /* Supported width */ + int maxheight; /* And height */ + int minwidth; /* Supported width */ + int minheight; /* And height */ +}; + + +struct video_channel +{ + int channel; + char name[32]; + int tuners; + __u32 flags; +#define VIDEO_VC_TUNER 1 /* Channel has a tuner */ +#define VIDEO_VC_AUDIO 2 /* Channel has audio */ + __u16 type; +#define VIDEO_TYPE_TV 1 +#define VIDEO_TYPE_CAMERA 2 + __u16 norm; /* Norm set by channel */ +}; + +struct video_tuner +{ + int tuner; + char name[32]; + unsigned long rangelow, rangehigh; /* Tuner range */ + __u32 flags; +#define VIDEO_TUNER_PAL 1 +#define VIDEO_TUNER_NTSC 2 +#define VIDEO_TUNER_SECAM 4 +#define VIDEO_TUNER_LOW 8 /* Uses KHz not MHz */ +#define VIDEO_TUNER_NORM 16 /* Tuner can set norm */ +#define VIDEO_TUNER_STEREO_ON 128 /* Tuner is seeing stereo */ +#define VIDEO_TUNER_RDS_ON 256 /* Tuner is seeing an RDS datastream */ +#define VIDEO_TUNER_MBS_ON 512 /* Tuner is seeing an MBS datastream */ + __u16 mode; /* PAL/NTSC/SECAM/OTHER */ +#define VIDEO_MODE_PAL 0 +#define VIDEO_MODE_NTSC 1 +#define VIDEO_MODE_SECAM 2 +#define VIDEO_MODE_AUTO 3 + __u16 signal; /* Signal strength 16bit scale */ +}; + +struct video_picture +{ + __u16 brightness; + __u16 hue; + __u16 colour; + __u16 contrast; + __u16 whiteness; /* Black and white only */ + __u16 depth; /* Capture depth */ + __u16 palette; /* Palette in use */ +#define VIDEO_PALETTE_GREY 1 /* Linear greyscale */ +#define VIDEO_PALETTE_HI240 2 /* High 240 cube (BT848) */ +#define VIDEO_PALETTE_RGB565 3 /* 565 16 bit RGB */ +#define VIDEO_PALETTE_RGB24 4 /* 24bit RGB */ +#define VIDEO_PALETTE_RGB32 5 /* 32bit RGB */ +#define VIDEO_PALETTE_RGB555 6 /* 555 15bit RGB */ +#define VIDEO_PALETTE_YUV422 7 /* YUV422 capture */ +#define VIDEO_PALETTE_YUYV 8 +#define VIDEO_PALETTE_UYVY 9 /* The great thing about standards is ... */ +#define VIDEO_PALETTE_YUV420 10 +#define VIDEO_PALETTE_YUV411 11 /* YUV411 capture */ +#define VIDEO_PALETTE_RAW 12 /* RAW capture (BT848) */ +#define VIDEO_PALETTE_YUV422P 13 /* YUV 4:2:2 Planar */ +#define VIDEO_PALETTE_YUV411P 14 /* YUV 4:1:1 Planar */ +#define VIDEO_PALETTE_YUV420P 15 /* YUV 4:2:0 Planar */ +#define VIDEO_PALETTE_YUV410P 16 /* YUV 4:1:0 Planar */ +#define VIDEO_PALETTE_PLANAR 13 /* start of planar entries */ +#define VIDEO_PALETTE_COMPONENT 7 /* start of component entries */ +}; + +struct video_audio +{ + int audio; /* Audio channel */ + __u16 volume; /* If settable */ + __u16 bass, treble; + __u32 flags; +#define VIDEO_AUDIO_MUTE 1 +#define VIDEO_AUDIO_MUTABLE 2 +#define VIDEO_AUDIO_VOLUME 4 +#define VIDEO_AUDIO_BASS 8 +#define VIDEO_AUDIO_TREBLE 16 +#define VIDEO_AUDIO_BALANCE 32 + char name[16]; +#define VIDEO_SOUND_MONO 1 +#define VIDEO_SOUND_STEREO 2 +#define VIDEO_SOUND_LANG1 4 +#define VIDEO_SOUND_LANG2 8 + __u16 mode; + __u16 balance; /* Stereo balance */ + __u16 step; /* Step actual volume uses */ +}; + +struct video_clip +{ + __s32 x,y; + __s32 width, height; + struct video_clip *next; /* For user use/driver use only */ +}; + +struct video_window +{ + __u32 x,y; /* Position of window */ + __u32 width,height; /* Its size */ + __u32 chromakey; + __u32 flags; + struct video_clip *clips; /* Set only */ + int clipcount; +#define VIDEO_WINDOW_INTERLACE 1 +#define VIDEO_WINDOW_CHROMAKEY 16 /* Overlay by chromakey */ +#define VIDEO_CLIP_BITMAP -1 +/* bitmap is 1024x625, a '1' bit represents a clipped pixel */ +#define VIDEO_CLIPMAP_SIZE (128 * 625) +}; + +struct video_capture +{ + __u32 x,y; /* Offsets into image */ + __u32 width, height; /* Area to capture */ + __u16 decimation; /* Decimation divider */ + __u16 flags; /* Flags for capture */ +#define VIDEO_CAPTURE_ODD 0 /* Temporal */ +#define VIDEO_CAPTURE_EVEN 1 +}; + +struct video_buffer +{ + void *base; + int height,width; + int depth; + int bytesperline; +}; + +struct video_mmap +{ + unsigned int frame; /* Frame (0 - n) for double buffer */ + int height,width; + unsigned int format; /* should be VIDEO_PALETTE_* */ +}; + +struct video_key +{ + __u8 key[8]; + __u32 flags; +}; + +struct video_mbuf +{ + int size; /* Total memory to map */ + int frames; /* Frames */ + int offsets[VIDEO_MAX_FRAME]; +}; + +#define VIDEO_NO_UNIT (-1) + +struct video_unit +{ + int video; /* Video minor */ + int vbi; /* VBI minor */ + int radio; /* Radio minor */ + int audio; /* Audio minor */ + int teletext; /* Teletext minor */ +}; + +struct vbi_format { + __u32 sampling_rate; /* in Hz */ + __u32 samples_per_line; + __u32 sample_format; /* VIDEO_PALETTE_RAW only (1 byte) */ + __s32 start[2]; /* starting line for each frame */ + __u32 count[2]; /* count of lines for each frame */ + __u32 flags; +#define VBI_UNSYNC 1 /* can distingues between top/bottom field */ +#define VBI_INTERLACED 2 /* lines are interlaced */ +}; + +/* video_info is biased towards hardware mpeg encode/decode */ +/* but it could apply generically to any hardware compressor/decompressor */ +struct video_info +{ + __u32 frame_count; /* frames output since decode/encode began */ + __u32 h_size; /* current unscaled horizontal size */ + __u32 v_size; /* current unscaled veritcal size */ + __u32 smpte_timecode; /* current SMPTE timecode (for current GOP) */ + __u32 picture_type; /* current picture type */ + __u32 temporal_reference; /* current temporal reference */ + __u8 user_data[256]; /* user data last found in compressed stream */ + /* user_data[0] contains user data flags, user_data[1] has count */ +}; + +/* generic structure for setting playback modes */ +struct video_play_mode +{ + int mode; + int p1; + int p2; +}; + +/* for loading microcode / fpga programming */ +struct video_code +{ + char loadwhat[16]; /* name or tag of file being passed */ + int datasize; + __u8 *data; +}; + +#define VIDIOCGCAP _IOR('v',1,struct video_capability) /* Get capabilities */ +#define VIDIOCGCHAN _IOWR('v',2,struct video_channel) /* Get channel info (sources) */ +#define VIDIOCSCHAN _IOW('v',3,struct video_channel) /* Set channel */ +#define VIDIOCGTUNER _IOWR('v',4,struct video_tuner) /* Get tuner abilities */ +#define VIDIOCSTUNER _IOW('v',5,struct video_tuner) /* Tune the tuner for the current channel */ +#define VIDIOCGPICT _IOR('v',6,struct video_picture) /* Get picture properties */ +#define VIDIOCSPICT _IOW('v',7,struct video_picture) /* Set picture properties */ +#define VIDIOCCAPTURE _IOW('v',8,int) /* Start, end capture */ +#define VIDIOCGWIN _IOR('v',9, struct video_window) /* Get the video overlay window */ +#define VIDIOCSWIN _IOW('v',10, struct video_window) /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */ +#define VIDIOCGFBUF _IOR('v',11, struct video_buffer) /* Get frame buffer */ +#define VIDIOCSFBUF _IOW('v',12, struct video_buffer) /* Set frame buffer - root only */ +#define VIDIOCKEY _IOR('v',13, struct video_key) /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */ +#define VIDIOCGFREQ _IOR('v',14, unsigned long) /* Set tuner */ +#define VIDIOCSFREQ _IOW('v',15, unsigned long) /* Set tuner */ +#define VIDIOCGAUDIO _IOR('v',16, struct video_audio) /* Get audio info */ +#define VIDIOCSAUDIO _IOW('v',17, struct video_audio) /* Audio source, mute etc */ +#define VIDIOCSYNC _IOW('v',18, int) /* Sync with mmap grabbing */ +#define VIDIOCMCAPTURE _IOW('v',19, struct video_mmap) /* Grab frames */ +#define VIDIOCGMBUF _IOR('v',20, struct video_mbuf) /* Memory map buffer info */ +#define VIDIOCGUNIT _IOR('v',21, struct video_unit) /* Get attached units */ +#define VIDIOCGCAPTURE _IOR('v',22, struct video_capture) /* Get subcapture */ +#define VIDIOCSCAPTURE _IOW('v',23, struct video_capture) /* Set subcapture */ +#define VIDIOCSPLAYMODE _IOW('v',24, struct video_play_mode) /* Set output video mode/feature */ +#define VIDIOCSWRITEMODE _IOW('v',25, int) /* Set write mode */ +#define VIDIOCGPLAYINFO _IOR('v',26, struct video_info) /* Get current playback info from hardware */ +#define VIDIOCSMICROCODE _IOW('v',27, struct video_code) /* Load microcode into hardware */ +#define VIDIOCGVBIFMT _IOR('v',28, struct vbi_format) /* Get VBI information */ +#define VIDIOCSVBIFMT _IOW('v',29, struct vbi_format) /* Set VBI information */ + + +#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */ + +/* VIDIOCSWRITEMODE */ +#define VID_WRITE_MPEG_AUD 0 +#define VID_WRITE_MPEG_VID 1 +#define VID_WRITE_OSD 2 +#define VID_WRITE_TTX 3 +#define VID_WRITE_CC 4 +#define VID_WRITE_MJPEG 5 + +/* VIDIOCSPLAYMODE */ +#define VID_PLAY_VID_OUT_MODE 0 + /* p1: = VIDEO_MODE_PAL, VIDEO_MODE_NTSC, etc ... */ +#define VID_PLAY_GENLOCK 1 + /* p1: 0 = OFF, 1 = ON */ + /* p2: GENLOCK FINE DELAY value */ +#define VID_PLAY_NORMAL 2 +#define VID_PLAY_PAUSE 3 +#define VID_PLAY_SINGLE_FRAME 4 +#define VID_PLAY_FAST_FORWARD 5 +#define VID_PLAY_SLOW_MOTION 6 +#define VID_PLAY_IMMEDIATE_NORMAL 7 +#define VID_PLAY_SWITCH_CHANNELS 8 +#define VID_PLAY_FREEZE_FRAME 9 +#define VID_PLAY_STILL_MODE 10 +#define VID_PLAY_MASTER_MODE 11 + /* p1: see below */ +#define VID_PLAY_MASTER_NONE 1 +#define VID_PLAY_MASTER_VIDEO 2 +#define VID_PLAY_MASTER_AUDIO 3 +#define VID_PLAY_ACTIVE_SCANLINES 12 + /* p1 = first active; p2 = last active */ +#define VID_PLAY_RESET 13 +#define VID_PLAY_END_MARK 14 + + +#endif /* __LINUX_VIDEODEV_H */ + +/* + * Local variables: + * c-basic-offset: 8 + * End: + */ diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index 29c6514c54..59f7dedc15 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -1,14 +1,15 @@ # -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.45 -# Sat Oct 15 08:52:52 2011 +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.2.35 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_SCHED_CLOCK=y CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_HARDIRQS=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y @@ -16,12 +17,17 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0xffff0000 +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_PHYS_OFFSET=0x0 +CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y # # General setup @@ -29,8 +35,16 @@ CONFIG_CONSTRUCTORS=y CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y @@ -38,44 +52,56 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_FHANDLE is not set # CONFIG_TASKSTATS is not set CONFIG_AUDIT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_SPARSE_IRQ=y # # RCU Subsystem # -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set +CONFIG_TINY_RCU=y +# CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=19 # CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set +# CONFIG_EXPERT is not set CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -88,27 +114,33 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y # # Kernel Performance Events And Counters # +CONFIG_PERF_EVENTS=y +# CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y -# CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_DMA_API_DEBUG=y # # GCOV-based kernel profiling # -CONFIG_SLOW_WORK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -121,71 +153,113 @@ CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_BLOCK=y CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" -CONFIG_FREEZER=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set +# CONFIG_FREEZER is not set # # System Type # CONFIG_MMU=y -# CONFIG_ARCH_AAEC2000 is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_STMP3XXX is not set +# CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NETX is not set # CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_DOVE is not set CONFIG_ARCH_KIRKWOOD=y -# CONFIG_ARCH_LOKI is not set +# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set # CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5PC1XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_BCMRING is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set +CONFIG_GPIO_PCA953X=m +CONFIG_KEYBOARD_GPIO_POLLED=m # # Marvell Kirkwood Implementations @@ -195,17 +269,34 @@ CONFIG_MACH_RD88F6192_NAS=y CONFIG_MACH_RD88F6281=y CONFIG_MACH_MV88F6281GTW_GE=y CONFIG_MACH_SHEEVAPLUG=y -CONFIG_MACH_DREAMPLUG=y +CONFIG_MACH_ESATA_SHEEVAPLUG=y CONFIG_MACH_GURUPLUG=y +CONFIG_MACH_DREAMPLUG=y CONFIG_MACH_TS219=y +CONFIG_MACH_TS41X=y +CONFIG_MACH_DOCKSTAR=y +CONFIG_MACH_OPENRD=y CONFIG_MACH_OPENRD_BASE=y +CONFIG_MACH_OPENRD_CLIENT=y +CONFIG_MACH_OPENRD_ULTIMATE=y +CONFIG_MACH_NETSPACE_V2=y +CONFIG_MACH_INETSPACE_V2=y +CONFIG_MACH_NETSPACE_MAX_V2=y +CONFIG_MACH_D2NET_V2=y +CONFIG_MACH_NET2BIG_V2=y +CONFIG_MACH_NET5BIG_V2=y +CONFIG_MACH_T5325=y +CONFIG_MACH_ICONNECT=y CONFIG_MACH_NAS6210=y + +# +# System MMU +# CONFIG_PLAT_ORION=y # # Processor Type # -CONFIG_CPU_32=y CONFIG_CPU_FEROCEON=y # CONFIG_CPU_FEROCEON_OLD_ID is not set CONFIG_CPU_32v5=y @@ -216,6 +307,7 @@ CONFIG_CPU_COPY_FEROCEON=y CONFIG_CPU_TLB_FEROCEON=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_USE_DOMAINS=y # # Processor Features @@ -234,15 +326,15 @@ CONFIG_ARM_L1_CACHE_SHIFT=5 CONFIG_PCI=y CONFIG_PCI_SYSCALL=y # CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_PCI_LEGACY=y # CONFIG_PCI_DEBUG is not set CONFIG_PCI_STUB=m +CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y +CONFIG_PCI_PRI=y +# CONFIG_PCI_PASID is not set CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y # @@ -256,7 +348,7 @@ CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y CONFIG_PD6729=m CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCCARD_NONSTATIC=y # # Kernel Features @@ -277,34 +369,44 @@ CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y CONFIG_HIGHMEM=y +# CONFIG_HIGHPTE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4096 +CONFIG_SPLIT_PTLOCK_CPUS=999999 +# CONFIG_COMPACTION is not set # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_CLEANCACHE is not set +CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set # # Boot options # +CONFIG_USE_OF=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set CONFIG_CMDLINE="" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_AUTO_ZRELADDR=y # # CPU Power Management @@ -334,21 +436,18 @@ CONFIG_HAVE_AOUT=y # # Power management options # +CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y -CONFIG_SUSPEND=y -CONFIG_SUSPEND_FREEZER=y # CONFIG_APM_EMULATION is not set -CONFIG_PM_RUNTIME=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_CPU_PM=y +# CONFIG_ARM_CPU_SUSPEND is not set CONFIG_NET=y # # Networking options # CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -361,17 +460,18 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y @@ -400,15 +500,10 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -423,12 +518,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -441,9 +538,10 @@ CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -452,7 +550,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m @@ -460,10 +560,24 @@ CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m @@ -471,28 +585,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m @@ -501,7 +625,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_SOCKET=m CONFIG_NETFILTER_XT_MATCH_STATE=m @@ -512,7 +635,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -523,8 +646,10 @@ CONFIG_IP_VS_TAB_BITS=12 # # CONFIG_IP_VS_PROTO_TCP is not set # CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set # # IPVS scheduler @@ -543,6 +668,7 @@ CONFIG_IP_VS_TAB_BITS=12 # # IPVS application helper # +# CONFIG_IP_VS_NFCT is not set # # IP: Netfilter Configuration @@ -552,7 +678,6 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -590,6 +715,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # +CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m @@ -639,9 +765,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -664,6 +795,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y # @@ -676,6 +808,7 @@ CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m @@ -683,6 +816,9 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_INGRESS=m # @@ -692,7 +828,6 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y @@ -715,11 +850,15 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set +CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set # # Network testing @@ -770,8 +909,8 @@ CONFIG_SIGMATEL_FIR=m CONFIG_VLSI_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -788,6 +927,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m @@ -799,19 +939,25 @@ CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m @@ -821,9 +967,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set @@ -831,7 +977,13 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m # CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set # # Device Drivers @@ -850,14 +1002,14 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=m CONFIG_MTD_AR7_PARTS=m # @@ -872,7 +1024,9 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +CONFIG_SM_FTL=m # CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set # # RAM/ROM/Flash chip drivers @@ -917,12 +1071,18 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set CONFIG_MTD_NAND=m # CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set # CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_DENALI is not set # CONFIG_MTD_NAND_GPIO is not set CONFIG_MTD_NAND_IDS=m +# CONFIG_MTD_NAND_RICOH is not set # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_CAFE is not set # CONFIG_MTD_NAND_NANDSIM is not set @@ -936,19 +1096,29 @@ CONFIG_MTD_NAND_ORION=m # CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# # CONFIG_MTD_UBI_DEBUG is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y CONFIG_PARPORT=m # CONFIG_PARPORT_PC is not set # CONFIG_PARPORT_GSC is not set @@ -956,14 +1126,18 @@ CONFIG_PARPORT_AX88796=m CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_BLK_DEV=y -# CONFIG_BLK_CPQ_DA is not set -# CONFIG_BLK_CPQ_CISS_DA is not set -# CONFIG_BLK_DEV_DAC960 is not set +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +# CONFIG_CISS_SCSI_TAPE is not set +CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y @@ -974,15 +1148,30 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_ATA_OVER_ETH=m CONFIG_MG_DISK=m CONFIG_MG_DISK_RES=0 +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set # CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_BMP085=m +CONFIG_PCH_PHUB=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m # @@ -995,13 +1184,28 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # -CONFIG_RAID_ATTRS=y +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set @@ -1035,15 +1239,19 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m # CONFIG_SCSI_ACARD is not set CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=m @@ -1065,6 +1273,8 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m # CONFIG_SCSI_ADVANSYS is not set CONFIG_SCSI_ARCMSR=m @@ -1103,6 +1313,7 @@ CONFIG_SCSI_DC390T=m # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y @@ -1116,71 +1327,105 @@ CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m CONFIG_SCSI_DH_ALUA=m -# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=m # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# CONFIG_ATA_PIIX=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m + +# +# PATA SFF controllers with BMDMA +# CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT821X=m CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m -CONFIG_PATA_TRIFLEX=m CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m +CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m CONFIG_PATA_RADISYS=m CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m -CONFIG_PATA_SCH=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_RZ1000=m + +# +# Generic fallback / legacy drivers +# +CONFIG_ATA_GENERIC=m +CONFIG_PATA_LEGACY=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1188,15 +1433,19 @@ CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m @@ -1204,6 +1453,8 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -1215,26 +1466,17 @@ CONFIG_FUSION_CTL=m # # IEEE 1394 (FireWire) support # - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set +# CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1242,48 +1484,104 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m # CONFIG_ARCNET is not set -CONFIG_PHYLIB=y +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +CONFIG_ATM_ENI_DEBUG=y +CONFIG_ATM_ENI_TUNE_BURST=y +CONFIG_ATM_ENI_BURST_TX_16W=y +CONFIG_ATM_ENI_BURST_TX_8W=y +CONFIG_ATM_ENI_BURST_TX_4W=y +CONFIG_ATM_ENI_BURST_TX_2W=y +CONFIG_ATM_ENI_BURST_RX_16W=y +CONFIG_ATM_ENI_BURST_RX_8W=y +CONFIG_ATM_ENI_BURST_RX_4W=y +CONFIG_ATM_ENI_BURST_RX_2W=y +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +# CONFIG_ATM_HE is not set +CONFIG_ATM_SOLOS=m # -# MII PHY device drivers +# CAIF transport drivers # -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_MDIO_GPIO=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_AX88796=m -CONFIG_AX88796_93CX6=y -CONFIG_HAPPYMEAL=m -# CONFIG_SUNGEM is not set -CONFIG_CASSINI=m +CONFIG_ETHERNET=y +CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m -CONFIG_SMC91X=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m +CONFIG_PCNET32=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m CONFIG_DM9000=m -CONFIG_DM9000_DEBUGLEVEL=4 # CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -CONFIG_ETHOC=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 @@ -1296,141 +1594,164 @@ CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_FUJITSU=y +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_B44=m -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set +CONFIG_NET_VENDOR_INTEL=y CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_NET_VENDOR_I825XX=y +CONFIG_IP1000=m +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_MV643XX_ETH=m +CONFIG_SKGE=m +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_8390=y +CONFIG_PCMCIA_AXNET=m +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y CONFIG_NE2K_PCI=m +CONFIG_PCMCIA_PCNET=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m +CONFIG_NET_VENDOR_OKI=y +CONFIG_PCH_GBE=m +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_NET_VENDOR_REALTEK=y CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m +CONFIG_SIS190=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +# CONFIG_SUNGEM is not set +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_MV643XX_ETH=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PHYLIB=y # -# Enable WiMAX (Networking options) to see the WiMAX drivers +# MII PHY device drivers # +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +# CONFIG_TR is not set # # USB Network Adapters @@ -1443,7 +1764,9 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m @@ -1458,17 +1781,62 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_PCMCIA_RAYCS=m +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# CONFIG_WAN=y CONFIG_LANMEDIA=m CONFIG_HDLC=m @@ -1491,87 +1859,9 @@ CONFIG_DSCC4_PCISYNC=y CONFIG_DSCC4_PCI_RST=y CONFIG_DLCI=m CONFIG_DLCI_MAX=8 -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -# CONFIG_ATM_HE is not set -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_VMXNET3=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y @@ -1649,16 +1939,11 @@ CONFIG_HISAX_FRITZ_PCIPNP=m # # Active cards # -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m # @@ -1679,10 +1964,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_ISDN_HDLC=m # CONFIG_PHONE is not set # @@ -1691,6 +1999,7 @@ CONFIG_GIGASET_M101=m CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m # # Userland interfaces @@ -1700,7 +2009,7 @@ CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set # @@ -1708,13 +2017,18 @@ CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_TCA6416=m CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_STOWAWAY=m @@ -1725,16 +2039,24 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m # CONFIG_INPUT_UINPUT is not set CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_WM831X_ON=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set # # Hardware I/O ports @@ -1745,6 +2067,8 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m # CONFIG_GAMEPORT is not set # @@ -1755,9 +2079,14 @@ CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y # # Serial drivers @@ -1773,19 +2102,28 @@ CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=m # # Non-8250 serial port support # +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set CONFIG_IPMI_HANDLER=m CONFIG_IPMI_PANIC_EVENT=y # CONFIG_IPMI_PANIC_STRING is not set @@ -1809,11 +2147,21 @@ CONFIG_IPWIRELESS=m # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set CONFIG_DEVPORT=y -CONFIG_I2C=m +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m @@ -1842,39 +2190,34 @@ CONFIG_I2C_VIAPRO=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m CONFIG_I2C_GPIO=m -CONFIG_I2C_MV64XXX=m +CONFIG_I2C_INTEL_MID=m +CONFIG_I2C_MV64XXX=y CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m +CONFIG_I2C_EG20T=m # # External I2C/SMBus adapter drivers # +CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m -# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - # # Other I2C/SMBus bus drivers # -CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_STUB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set # @@ -1882,36 +2225,69 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set -# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m # -# Memory mapped GPIO expanders: +# Memory mapped GPIO drivers: # +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_VX855=m # # I2C GPIO expanders: # +CONFIG_GPIO_MAX7300=m CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_WM831X=m +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_ADP5588=m # # PCI GPIO expanders: # # CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_LANGWELL is not set +CONFIG_GPIO_ML_IOH=m +# CONFIG_GPIO_TIMBERDALE is not set +CONFIG_GPIO_RDC321X=m # # SPI GPIO expanders: # +CONFIG_GPIO_MCP23S08=m # # AC97 GPIO expanders: # +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_JANZ_TTL=m CONFIG_W1=m CONFIG_W1_CON=y @@ -1921,6 +2297,7 @@ CONFIG_W1_CON=y CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m CONFIG_W1_MASTER_GPIO=m # @@ -1928,21 +2305,29 @@ CONFIG_W1_MASTER_GPIO=m # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -1958,11 +2343,13 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m @@ -1971,10 +2358,14 @@ CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m @@ -1985,22 +2376,52 @@ CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA686A=m @@ -2010,23 +2431,23 @@ CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m CONFIG_THERMAL=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m CONFIG_ORION_WATCHDOG=m +CONFIG_MAX63XX_WATCHDOG=m CONFIG_ALIM7101_WDT=m # @@ -2056,80 +2477,151 @@ CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +# CONFIG_BCMA_HOST_PCI is not set +# CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # -CONFIG_MFD_CORE=m +CONFIG_MFD_CORE=y +CONFIG_MFD_88PM860X=y CONFIG_MFD_SM501=m # CONFIG_MFD_SM501_GPIO is not set # CONFIG_MFD_ASIC3 is not set # CONFIG_HTC_EGPIO is not set CONFIG_HTC_PASIC3=m -# CONFIG_UCB1400_CORE is not set +# CONFIG_HTC_I2CPLD is not set +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set # CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_TIMBERDALE=m +CONFIG_LPC_SCH=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +# CONFIG_MFD_AAT2870_CORE is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_88PM8607 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # +CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # -# CONFIG_MEDIA_ATTACH is not set +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m # -# Encoders/decoders and other helper chips +# Encoders, decoders, sensors and other helper chips # # -# Audio decoders +# Audio decoders, processors and mixers # # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set @@ -2148,19 +2640,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_SAA7191 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_VPX3220 is not set # # Video and audio decoders # +# CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_CX25840 is not set # @@ -2175,24 +2666,54 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set # # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set # CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_CX88 is not set # CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_CX25821 is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_CX18 is not set @@ -2206,25 +2727,34 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set # CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set +# CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set # CONFIG_I2C_SI4713 is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_TIMBERDALE is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y @@ -2263,29 +2793,92 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # # CONFIG_DVB_DM1105 is not set +# +# Supported FireWire (IEEE 1394) Adapters +# +# CONFIG_DVB_FIREDTV is not set + # # Supported Earthsoft PT1 Adapters # # CONFIG_DVB_PT1 is not set +# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + # # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set # # Graphics support # CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_DRM=m +CONFIG_DRM_TTM=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m # CONFIG_DRM_RADEON is not set CONFIG_DRM_MGA=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m +CONFIG_DRM_VMWGFX=m +CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -2301,6 +2894,7 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -2315,6 +2909,7 @@ CONFIG_FB_CIRRUS=m CONFIG_FB_PM2=m CONFIG_FB_PM2_FIFO_DISCONNECT=y CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y CONFIG_FB_ASILIANT=y # CONFIG_FB_IMSTT is not set CONFIG_FB_UVESA=m @@ -2345,11 +2940,11 @@ CONFIG_FB_ATY_CT=y CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_BACKLIGHT=y CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y # CONFIG_FB_SAVAGE is not set CONFIG_FB_SIS=m CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y -CONFIG_FB_VIA=m CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m CONFIG_FB_3DFX=m @@ -2364,17 +2959,21 @@ CONFIG_FB_PM3=m CONFIG_FB_TMIO=m CONFIG_FB_TMIO_ACCELL=y CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set CONFIG_FB_METRONOME=m # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_PCF50633=m # # Display device support @@ -2388,10 +2987,9 @@ CONFIG_DISPLAY_SUPPORT=m # # Console display driver support # -# CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -2416,8 +3014,9 @@ CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set @@ -2434,13 +3033,16 @@ CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m -# CONFIG_SND_AC97_POWER_SAVE is not set +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y CONFIG_SND_AD1889=m CONFIG_SND_ALS300=m @@ -2483,38 +3085,44 @@ CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m CONFIG_SND_ES1938=m CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y CONFIG_SND_FM801=m -# CONFIG_SND_FM801_TEA575X_BOOL is not set +CONFIG_SND_FM801_TEA575X_BOOL=y CONFIG_SND_HDA_INTEL=m -# CONFIG_SND_HDA_HWDEP is not set -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_INPUT_JACK is not set -# CONFIG_SND_HDA_PATCH_LOADER is not set +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_PATCH_LOADER=y CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y -CONFIG_SND_HDA_CODEC_ATIHDMI=y -CONFIG_SND_HDA_CODEC_NVHDMI=y -CONFIG_SND_HDA_CODEC_INTELHDMI=y -CONFIG_SND_HDA_ELD=y +CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y -# CONFIG_SND_HDA_POWER_SAVE is not set +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m -CONFIG_SND_HIFIER=m CONFIG_SND_ICE1712=m CONFIG_SND_ICE1724=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m CONFIG_SND_LX6464ES=m CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MIXART=m CONFIG_SND_NM256=m CONFIG_SND_PCXHR=m @@ -2532,49 +3140,27 @@ CONFIG_SND_YMFPCI=m CONFIG_SND_ARM=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m CONFIG_SND_USB_CAIAQ=m -# CONFIG_SND_USB_CAIAQ_INPUT is not set +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y CONFIG_SND_VXPOCKET=m CONFIG_SND_PDAUDIOCF=m CONFIG_SND_SOC=m +CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_KIRKWOOD_SOC=m +CONFIG_SND_KIRKWOOD_SOC_I2S=m +CONFIG_SND_KIRKWOOD_SOC_OPENRD=m +CONFIG_SND_KIRKWOOD_SOC_T5325=m CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_WM_HUBS=m -CONFIG_SND_SOC_AD73311=m -CONFIG_SND_SOC_AK4535=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_L3=m -CONFIG_SND_SOC_PCM3008=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_UDA134X=m -CONFIG_SND_SOC_UDA1380=m -CONFIG_SND_SOC_WM8350=m -CONFIG_SND_SOC_WM8400=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8900=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8971=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8988=m -CONFIG_SND_SOC_WM8990=m -CONFIG_SND_SOC_WM8993=m -CONFIG_SND_SOC_WM9081=m -CONFIG_SND_SOC_MAX9877=m +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_CS42L51=m # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y @@ -2592,45 +3178,82 @@ CONFIG_USB_HIDDEV=y # Special HID drivers # CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y +# CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y +# CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y +# CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y +# CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -2642,6 +3265,8 @@ CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -2653,31 +3278,26 @@ CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set # CONFIG_USB_SL811_CS is not set CONFIG_USB_R8A66597_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m -# -# Enable Host or Gadget support to see Inventra options -# -# CONFIG_USB_MUSB_HDRC is not set - # # USB Device Class drivers # @@ -2695,7 +3315,9 @@ CONFIG_USB_TMC=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m @@ -2706,6 +3328,8 @@ CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m # CONFIG_USB_LIBUSUAL is not set # @@ -2731,12 +3355,12 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -2746,11 +3370,13 @@ CONFIG_USB_SERIAL_IUU=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m @@ -2762,9 +3388,13 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_SERIAL_DEBUG is not set # @@ -2777,7 +3407,6 @@ CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m @@ -2791,7 +3420,7 @@ CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m +CONFIG_USB_YUREX=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -2804,21 +3433,22 @@ CONFIG_USB_XUSBATM=m # CONFIG_USB_OTG_UTILS=y CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_ULPI is not set CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=m @@ -2828,15 +3458,17 @@ CONFIG_MMC_TEST=m # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m +# CONFIG_MMC_RICOH_MMC is not set CONFIG_MMC_SDHCI_PLTFM=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_MVSDIO=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set @@ -2851,30 +3483,37 @@ CONFIG_MSPRO_BLOCK=m # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y # # LED drivers # +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_LM3530=m CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m +CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_NS2=y +CONFIG_LEDS_NETXBIG=y +CONFIG_LEDS_TRIGGERS=y # # LED Triggers # -CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # # iptables trigger is under Netfilter config (LED target) @@ -2883,7 +3522,10 @@ CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set # # RTC interfaces @@ -2892,26 +3534,32 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m +# CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # +CONFIG_RTC_DRV_88PM860X=y CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers @@ -2929,119 +3577,120 @@ CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m # # on-CPU RTC drivers # -CONFIG_RTC_DRV_MV=m +CONFIG_RTC_DRV_MV=y CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # +CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y CONFIG_MV_XOR=y +# CONFIG_TIMB_DMA is not set CONFIG_DMA_ENGINE=y # # DMA Clients # # CONFIG_NET_DMA is not set -# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ASYNC_TX_DMA=y CONFIG_DMATEST=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m # -# TI VLYNQ +# Virtio drivers # +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set # CONFIG_RTL8192E is not set +# CONFIG_R8712U is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set # CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set # CONFIG_LINE6_USB is not set +# CONFIG_DRM_NOUVEAU is not set # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set # CONFIG_VME_BUS is not set +# CONFIG_DX_SEP is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_WLAGS49_H2 is not set +# CONFIG_WLAGS49_H25 is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_CXT1E1 is not set +# CONFIG_FB_XGI is not set +# CONFIG_SBE_2T3E3 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set # -# RAR Register Driver +# Speakup console speech # -# CONFIG_RAR_REGISTER is not set -# CONFIG_IIO is not set +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Hardware Spinlock drivers +# +CONFIG_CLKSRC_MMIO=y +CONFIG_IOMMU_SUPPORT=y +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set # # File systems # -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y @@ -3053,29 +3702,29 @@ CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -3120,6 +3769,7 @@ CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set CONFIG_MISC_FILESYSTEMS=y @@ -3147,6 +3797,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set # CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -3155,8 +3806,12 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +# CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y @@ -3164,6 +3819,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y @@ -3171,15 +3829,12 @@ CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y @@ -3189,7 +3844,8 @@ CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -3204,7 +3860,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3256,12 +3912,12 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set # # Kernel hacking # # CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -3270,12 +3926,13 @@ CONFIG_STRIP_ASM_SYMS=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y @@ -3291,9 +3948,11 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -3302,41 +3961,54 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set # CONFIG_ARM_UNWIND is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_EARLY_PRINTK=y # # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m @@ -3348,7 +4020,6 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m @@ -3359,9 +4030,12 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set CONFIG_CRYPTO_WORKQUEUE=y @@ -3399,7 +4073,7 @@ CONFIG_CRYPTO_VMAC=m # CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m @@ -3419,6 +4093,7 @@ CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3443,8 +4118,11 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y -# CONFIG_CRYPTO_DEV_MV_CESA is not set +CONFIG_CRYPTO_DEV_MV_CESA=m CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y # CONFIG_BINARY_PRINTF is not set @@ -3452,23 +4130,35 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y # # Library routines # +CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -3478,3 +4168,6 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-omap b/config/kernel/kernel.config.armv5tel-ipfire-omap new file mode 100644 index 0000000000..a5177827a8 --- /dev/null +++ b/config/kernel/kernel.config.armv5tel-ipfire-omap @@ -0,0 +1,3577 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.2.35 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_HAVE_PWM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_SCHED_CLOCK=y +CONFIG_GENERIC_GPIO=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_FHANDLE is not set +# CONFIG_TASKSTATS is not set +CONFIG_AUDIT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_SPARSE_IRQ=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=19 +# CONFIG_CGROUPS is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +# CONFIG_PROFILING is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y + +# +# GCOV-based kernel profiling +# +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PADATA=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_TCC_926 is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_DAVINCI is not set +CONFIG_ARCH_OMAP=y +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set +CONFIG_GPIO_PCA953X=m +CONFIG_KEYBOARD_GPIO_POLLED=m + +# +# TI OMAP Common Features +# +CONFIG_ARCH_OMAP_OTG=y +# CONFIG_ARCH_OMAP1 is not set +CONFIG_ARCH_OMAP2PLUS=y + +# +# OMAP Feature Selections +# +CONFIG_OMAP_DEBUG_DEVICES=y +CONFIG_OMAP_DEBUG_LEDS=y +# CONFIG_OMAP_SMARTREFLEX is not set +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_MCBSP=y +# CONFIG_OMAP_MBOX_FWK is not set +CONFIG_OMAP_32K_TIMER=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +CONFIG_OMAP_32K_TIMER_HZ=128 +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_MACH_OMAP_GENERIC=y + +# +# TI OMAP2/3/4 Specific Features +# +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +CONFIG_ARCH_OMAP2=y +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y + +# +# OMAP Core Type +# +CONFIG_SOC_OMAP2420=y +CONFIG_SOC_OMAP2430=y +CONFIG_SOC_OMAP3430=y +CONFIG_SOC_OMAPTI816X=y +CONFIG_OMAP_PACKAGE_ZAF=y +CONFIG_OMAP_PACKAGE_ZAC=y +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CUS=y +CONFIG_OMAP_PACKAGE_CBP=y +CONFIG_OMAP_PACKAGE_CBL=y +CONFIG_OMAP_PACKAGE_CBS=y + +# +# OMAP Board Type +# +CONFIG_MACH_OMAP_H4=y +CONFIG_MACH_OMAP_APOLLON=y +CONFIG_MACH_OMAP_2430SDP=y +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_DEVKIT8000=y +CONFIG_MACH_OMAP_LDP=y +CONFIG_MACH_OMAP3530_LV_SOM=y +CONFIG_MACH_OMAP3_TORPEDO=y +CONFIG_MACH_OVERO=y +CONFIG_MACH_OMAP3EVM=y +CONFIG_MACH_OMAP3517EVM=y +# CONFIG_MACH_CRANEBOARD is not set +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_OMAP3_TOUCHBOOK=y +CONFIG_MACH_OMAP_3430SDP=y +# CONFIG_MACH_NOKIA_N8X0 is not set +CONFIG_MACH_NOKIA_RM680=y +CONFIG_MACH_NOKIA_RX51=y +CONFIG_MACH_OMAP_ZOOM2=y +CONFIG_MACH_OMAP_ZOOM3=y +CONFIG_MACH_CM_T35=y +CONFIG_MACH_CM_T3517=y +CONFIG_MACH_CM_T3730=y +CONFIG_MACH_IGEP0020=y +CONFIG_MACH_IGEP0030=y +CONFIG_MACH_SBC3530=y +CONFIG_MACH_OMAP_3630SDP=y +CONFIG_MACH_TI8168EVM=y +CONFIG_MACH_OMAP_4430SDP=y +CONFIG_MACH_OMAP4_PANDA=y +# CONFIG_OMAP3_EMU is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set + +# +# System MMU +# + +# +# Processor Type +# +CONFIG_CPU_V6=y +CONFIG_CPU_V7=y +CONFIG_CPU_32v6=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV6=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V6=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V6=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_USE_DOMAINS=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_CACHE_L2X0=y +CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +# CONFIG_ARM_ERRATA_326103 is not set +CONFIG_ARM_ERRATA_411920=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_458693=y +CONFIG_ARM_ERRATA_460075=y +# CONFIG_ARM_ERRATA_742230 is not set +CONFIG_ARM_ERRATA_742231=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_ARM_ERRATA_743622=y +# CONFIG_ARM_ERRATA_751472 is not set +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_ARM_GIC=y + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_TWD=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=8 +CONFIG_HOTPLUG_CPU=y +CONFIG_LOCAL_TIMERS=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_HZ=128 +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y +CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_CMDLINE="" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_AUTO_ZRELADDR is not set + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_ARCH_HAS_OPP=y +CONFIG_PM_OPP=y +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_XFRM_IPCOMP=m +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_ARPD=y +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_LRO=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_DEFAULT_RENO=y +CONFIG_DEFAULT_TCP_CONG="reno" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_IMQ=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_LAYER7=m +# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +# CONFIG_IP_SET is not set +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +# CONFIG_IP_VS_PROTO_TCP is not set +# CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set +# CONFIG_IP_VS_PROTO_ESP is not set +# CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set + +# +# IPVS scheduler +# +# CONFIG_IP_VS_RR is not set +# CONFIG_IP_VS_WRR is not set +# CONFIG_IP_VS_LC is not set +# CONFIG_IP_VS_WLC is not set +# CONFIG_IP_VS_LBLC is not set +# CONFIG_IP_VS_LBLCR is not set +# CONFIG_IP_VS_DH is not set +# CONFIG_IP_VS_SH is not set +# CONFIG_IP_VS_SED is not set +# CONFIG_IP_VS_NQ is not set + +# +# IPVS application helper +# +# CONFIG_IP_VS_NFCT is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_MATCH_IPP2P=m + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_RAW=m +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_NFLOG=m +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +CONFIG_ATM=m +CONFIG_ATM_CLIP=m +CONFIG_ATM_CLIP_NO_ICMP=y +# CONFIG_ATM_LANE is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m +CONFIG_STP=m +CONFIG_GARP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6060=y +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_MV88E6131=y +CONFIG_NET_DSA_MV88E6123_61_65=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +# CONFIG_DONGLE is not set +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +# CONFIG_MAC80211_RC_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +# CONFIG_DEVTMPFS is not set +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +CONFIG_FW_LOADER=y +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m +CONFIG_CONNECTOR=m +CONFIG_MTD=m +CONFIG_MTD_TESTS=m +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_AR7_PARTS=m + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +CONFIG_SM_FTL=m +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND is not set +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR flash memory drivers +# +CONFIG_MTD_LPDDR=m +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_PARPORT=m +# CONFIG_PARPORT_PC is not set +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_OSD=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=8 +CONFIG_BLK_DEV_RAM_SIZE=16384 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set +CONFIG_ICS932S401=m +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_APDS9802ALS=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_BMP085=m +CONFIG_USB_SWITCH_FSA9480=m +CONFIG_C2PORT=m + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EEPROM_93CX6=m +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=m +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +CONFIG_SATA_MV=m + +# +# PATA SFF controllers with BMDMA +# +CONFIG_PATA_ARASAN_CF=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_PLATFORM=m +CONFIG_PATA_OF_PLATFORM=m + +# +# Generic fallback / legacy drivers +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +# CONFIG_MULTICORE_RAID456 is not set +CONFIG_MD_MULTIPATH=m +# CONFIG_MD_FAULTY is not set +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set +CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_DELAY=m +CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_EQUALIZER=m +CONFIG_IMQ=m +# CONFIG_IMQ_BEHAVIOR_AA is not set +CONFIG_IMQ_BEHAVIOR_AB=y +# CONFIG_IMQ_BEHAVIOR_BA is not set +# CONFIG_IMQ_BEHAVIOR_BB is not set +CONFIG_IMQ_NUM_DEVS=2 +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m + +# +# CAIF transport drivers +# +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y +CONFIG_ETHOC=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_DAVINCI_EMAC is not set +# CONFIG_TI_DAVINCI_MDIO is not set +# CONFIG_TI_DAVINCI_CPDMA is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_HSO=m +CONFIG_USB_NET_INT51X1=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AT76C50X_USB=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8187 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +CONFIG_WAN=y +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_ISDN=y +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_DEBUG=y + +# +# HiSax PCMCIA card service modules +# + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m + +# +# Active cards +# +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +CONFIG_GIGASET_M101=m +# CONFIG_GIGASET_DEBUG is not set +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_HDLC=m +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_OMAP=m +CONFIG_KEYBOARD_OMAP4=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_XTKBD=m +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m +# CONFIG_INPUT_UINPUT is not set +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_PWM_BEEPER=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_PARKBD is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_DETECT_IRQ=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=m + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_XILINX_PS_UART=m +# CONFIG_TTY_PRINTK is not set +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_PANIC_EVENT=y +# CONFIG_IPMI_PANIC_STRING is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_OMAP=m +CONFIG_NVRAM=m +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +CONFIG_I2C_GPIO=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_OMAP=y +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m + +# +# External I2C/SMBus adapter drivers +# +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TINY_USB=m + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_STUB=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_SPI is not set + +# +# PPS support +# +CONFIG_PPS=m +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCF857X=m +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_ADP5588=m + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_HDQ_MASTER_OMAP=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2760 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +CONFIG_CHARGER_TWL4030=m +CONFIG_CHARGER_GPIO=m +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TWL4030_MADC=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_DW_WATCHDOG=m +CONFIG_MPCORE_WATCHDOG=m +CONFIG_OMAP_WATCHDOG=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_MAX63XX_WATCHDOG=m + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +CONFIG_SSB=m +CONFIG_SSB_SDIOHOST_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +# CONFIG_BCMA_DEBUG is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_88PM860X is not set +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +CONFIG_HTC_PASIC3=m +# CONFIG_HTC_I2CPLD is not set +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +CONFIG_MENELAUS=y +CONFIG_TWL4030_CORE=y +CONFIG_TWL4030_MADC=m +CONFIG_TWL4030_POWER=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_TWL6030_PWM=m +CONFIG_TWL6040_CORE=y +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +CONFIG_MFD_WM8400=m +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_MFD_PCF50633=m +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_OMAP_USB_HOST=y +# CONFIG_MFD_AAT2870_CORE is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +CONFIG_REGULATOR_TWL4030=y +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set +CONFIG_MEDIA_SUPPORT=m + +# +# Multimedia core support +# +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L2_COMMON=m +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y +CONFIG_VIDEO_MEDIA=m + +# +# Multimedia drivers +# +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_TUNER=m +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m + +# +# Encoders, decoders, sensors and other helper chips +# + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_VP27SMPX is not set + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_VPX3220 is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set + +# +# MPEG video encoders +# +# CONFIG_VIDEO_CX2341X is not set + +# +# Video encoders +# +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_VIVI is not set +# CONFIG_VIDEO_VPFE_CAPTURE is not set +# CONFIG_VIDEO_OMAP2_VOUT is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_TIMBERDALE is not set +# CONFIG_VIDEO_AU0828 is not set +# CONFIG_SOC_CAMERA is not set +# CONFIG_VIDEO_OMAP2 is not set +# CONFIG_V4L_USB_DRIVERS is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +CONFIG_RADIO_ADAPTERS=y +# CONFIG_I2C_SI4713 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_RADIO_SI470X is not set +# CONFIG_USB_MR800 is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +CONFIG_RADIO_WL128X=m +CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y +# CONFIG_TTPCI_EEPROM is not set + +# +# Supported USB Adapters +# +# CONFIG_DVB_USB is not set +# CONFIG_SMS_SIANO_MDTV is not set + +# +# Supported FlexCopII (B2C2) Adapters +# +# CONFIG_DVB_B2C2_FLEXCOP is not set + +# +# Supported DVB Frontends +# +# CONFIG_DVB_FE_CUSTOMISE is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +CONFIG_DRM=m +# CONFIG_VGASTATE is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_UVESA=m +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_METRONOME=m +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP2_DSS=y +CONFIG_OMAP2_VRAM_SIZE=32 +CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y +# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set +CONFIG_OMAP2_DSS_DPI=y +# CONFIG_OMAP2_DSS_RFBI is not set +# CONFIG_OMAP2_DSS_VENC is not set +CONFIG_OMAP4_DSS_HDMI=y +# CONFIG_OMAP2_DSS_SDI is not set +CONFIG_OMAP2_DSS_DSI=y +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y +CONFIG_FB_OMAP2=y +CONFIG_FB_OMAP2_DEBUG_SUPPORT=y +CONFIG_FB_OMAP2_NUM_FBS=3 + +# +# OMAP2/3 Display Device Drivers +# +CONFIG_PANEL_GENERIC_DPI=y +CONFIG_PANEL_DVI=y +CONFIG_PANEL_SHARP_LS037V7DW01=y +# CONFIG_PANEL_PICODLP is not set +CONFIG_PANEL_TAAL=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_PLATFORM=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=y +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_PCF50633=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=y + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_SOUND=m +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +# CONFIG_SND_SUPPORT_OLD_API is not set +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +CONFIG_SND_RAWMIDI_SEQ=m +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_MPU401_UART=m +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_ARM=y +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_CACHE_LZO=y +CONFIG_SND_OMAP_SOC=m +CONFIG_SND_OMAP_SOC_MCBSP=m +CONFIG_SND_OMAP_SOC_MCPDM=m +CONFIG_SND_OMAP_SOC_RX51=m +CONFIG_SND_OMAP_SOC_OVERO=m +CONFIG_SND_OMAP_SOC_OMAP3EVM=m +CONFIG_SND_OMAP_SOC_AM3517EVM=m +CONFIG_SND_OMAP_SOC_SDP3430=m +CONFIG_SND_OMAP_SOC_SDP4430=m +# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m +CONFIG_SND_OMAP_SOC_ZOOM2=m +CONFIG_SND_OMAP_SOC_IGEP0020=m +CONFIG_SND_SOC_I2C_AND_SPI=m +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_SOC_TPA6130A2=m +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HIDRAW is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m +CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m +CONFIG_HID_GYRATION=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +# CONFIG_PANTHERLORD_FF is not set +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_GREENASIA=m +# CONFIG_GREENASIA_FF is not set +CONFIG_HID_SMARTJOYPLUS=m +# CONFIG_SMARTJOYPLUS_FF is not set +CONFIG_HID_TOPSEED=m +CONFIG_HID_THRUSTMASTER=m +# CONFIG_THRUSTMASTER_FF is not set +CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m +CONFIG_HID_ZEROPLUS=m +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +# CONFIG_USB_ARCH_HAS_XHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DEVICE_CLASS=y +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_HCD_OMAP=y +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_ISP116X_HCD=m +# CONFIG_USB_ISP1760_HCD is not set +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_OMAP1=y +CONFIG_USB_OHCI_HCD_OMAP3=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set +CONFIG_USB_R8A66597_HCD=m +# CONFIG_USB_HWA_HCD is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m +CONFIG_USB_WDM=m +CONFIG_USB_TMC=m + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +CONFIG_USB_USS720=m +CONFIG_USB_SERIAL=m +CONFIG_USB_EZUSB=y +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IUU=m +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_MOTOROLA=m +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +# CONFIG_USB_SERIAL_CYBERJACK is not set +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OMNINET is not set +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set +CONFIG_USB_SEVSEG=m +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_FTDI_ELAN=m +# CONFIG_USB_APPLEDISPLAY is not set +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SISUSBVGA_CON=y +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_YUREX=m +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m +# CONFIG_USB_GADGET is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m +# CONFIG_ISP1301_OMAP is not set +# CONFIG_USB_ULPI is not set +CONFIG_TWL4030_USB=m +CONFIG_TWL6030_USB=m +# CONFIG_NOP_USB_XCEIV is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m +CONFIG_MMC_TEST=m + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_PXAV2 is not set +CONFIG_MMC_OMAP=y +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set + +# +# MemoryStick drivers +# +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MSPRO_BLOCK=m + +# +# MemoryStick Host Controller Drivers +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_PCA955X=m +# CONFIG_LEDS_PWM is not set +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TRIGGERS=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_LEDS_TRIGGER_NETDEV=m +# CONFIG_ACCESSIBILITY is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=y +CONFIG_RTC_DRV_TWL92330=y +CONFIG_RTC_DRV_TWL4030=y +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_BQ4802=y +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_PCF50633=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DW_DMAC=m +CONFIG_TIMB_DMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_ASYNC_TX_DMA=y +CONFIG_DMATEST=m +# CONFIG_AUXDISPLAY is not set +CONFIG_UIO=m +CONFIG_UIO_PDRV=m +CONFIG_UIO_PDRV_GENIRQ=m + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set +CONFIG_STAGING=y +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set +# CONFIG_W35UND is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_PANEL is not set +# CONFIG_R8712U is not set +# CONFIG_RTS5139 is not set +# CONFIG_TRANZPORT is not set +# CONFIG_POHMELFS is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_VT6656 is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_TIDSPBRIDGE is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HWSPINLOCK=m + +# +# Hardware Spinlock drivers +# +CONFIG_HWSPINLOCK_OMAP=m +CONFIG_CLKSRC_MMIO=y +CONFIG_IOMMU_SUPPORT=y +# CONFIG_OMAP_IOMMU is not set +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set + +# +# File systems +# +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_XATTR=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_PROC_INFO=y +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_STATISTICS=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_POSIX_ACL=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_CUSE=m + +# +# Caches +# +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_STATS is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=850 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_ECRYPT_FS=m +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +# CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +# CONFIG_EXOFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +# CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_UPCALL is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_DFS_UPCALL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp850" +# CONFIG_NLS_CODEPAGE_437 is not set +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS_CODEPAGE_850=y +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SYSCTL_SYSCALL_CHECK is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_UNWIND is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_ICEDCC is not set +CONFIG_EARLY_PRINTK=y + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=m +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_GF128MUL=m +# CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_AUTHENC=m +# CONFIG_CRYPTO_TEST is not set + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_SEQIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XTS=m + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_VMAC=m + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_WP512=m + +# +# Ciphers +# +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYPTO_LZO=m + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_OMAP_SHAM=m +CONFIG_CRYPTO_DEV_OMAP_AES=m +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_RAID6_PQ=m +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-versatile b/config/kernel/kernel.config.armv5tel-ipfire-rpi similarity index 68% rename from config/kernel/kernel.config.armv5tel-ipfire-versatile rename to config/kernel/kernel.config.armv5tel-ipfire-rpi index 6bdf4c5d3d..a149d03b34 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-versatile +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -1,14 +1,15 @@ # -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.45 -# Sat Oct 15 16:59:52 2011 +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.2.35 Kernel Configuration # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_SCHED_CLOCK=y CONFIG_GENERIC_GPIO=y -CONFIG_GENERIC_TIME=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_HARDIRQS=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y @@ -16,12 +17,19 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_FIQ=y CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_NEED_MACH_MEMORY_H=y +CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y # # General setup @@ -29,8 +37,16 @@ CONFIG_CONSTRUCTORS=y CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y @@ -38,44 +54,55 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_FHANDLE is not set # CONFIG_TASKSTATS is not set CONFIG_AUDIT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_IRQ_DOMAIN=y +CONFIG_SPARSE_IRQ=y # # RCU Subsystem # -CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set +CONFIG_TINY_RCU=y +# CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set -CONFIG_RCU_FANOUT=32 -# CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=19 # CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set +# CONFIG_EXPERT is not set CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -88,28 +115,34 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y # # Kernel Performance Events And Counters # +CONFIG_PERF_EVENTS=y +# CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y -CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y -# CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y # # GCOV-based kernel profiling # -CONFIG_SLOW_WORK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -122,91 +155,143 @@ CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_BLOCK=y CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +# CONFIG_MUTEX_SPIN_ON_OWNER is not set CONFIG_FREEZER=y # # System Type # CONFIG_MMU=y -# CONFIG_ARCH_AAEC2000 is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_REALVIEW is not set -CONFIG_ARCH_VERSATILE=y +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set # CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_STMP3XXX is not set +# CONFIG_ARCH_MXS is not set # CONFIG_ARCH_NETX is not set # CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LOKI is not set +# CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_NS9XXX is not set # CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5PC1XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set # CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_BCMRING is not set +# CONFIG_PLAT_SPEAR is not set +CONFIG_ARCH_BCM2708=y +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set +CONFIG_GPIO_PCA953X=m +CONFIG_KEYBOARD_GPIO_POLLED=m # -# Versatile platform type +# System MMU # -CONFIG_ARCH_VERSATILE_PB=y -CONFIG_MACH_VERSATILE_AB=y + +# +# Broadcom BCM2708 Implementations +# +CONFIG_MACH_BCM2708=y +CONFIG_BCM2708_GPIO=y +CONFIG_BCM2708_VCMEM=y +# CONFIG_BCM2708_NOL2CACHE is not set +CONFIG_BCM2708_DMAER=m # # Processor Type # -CONFIG_CPU_32=y -CONFIG_CPU_ARM926T=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5TJ=y -CONFIG_CPU_PABRT_LEGACY=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y -CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_V6=y +CONFIG_CPU_32v6=y +CONFIG_CPU_ABRT_EV6=y +CONFIG_CPU_PABRT_V6=y +CONFIG_CPU_CACHE_V6=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V6=y +CONFIG_CPU_HAS_ASID=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_USE_DOMAINS=y # # Processor Features @@ -214,44 +299,22 @@ CONFIG_CPU_CP15_MMU=y CONFIG_ARM_THUMB=y # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set -# CONFIG_CPU_CACHE_ROUND_ROBIN is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_ARM_L1_CACHE_SHIFT=5 -CONFIG_ARM_VIC=y -CONFIG_ARM_VIC_NR=2 -CONFIG_ICST307=y -CONFIG_COMMON_CLKDEV=y +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_CPU_HAS_PMU=y +# CONFIG_ARM_ERRATA_326103 is not set +CONFIG_ARM_ERRATA_411920=y +# CONFIG_ARM_ERRATA_364296 is not set +CONFIG_PL330=y # # Bus support # CONFIG_ARM_AMBA=y -CONFIG_PCI=y -CONFIG_PCI_SYSCALL=y +# CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_PCI_LEGACY=y -# CONFIG_PCI_DEBUG is not set -CONFIG_PCI_STUB=m -CONFIG_PCI_IOV=y -CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set -CONFIG_PCMCIA=m -CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y -CONFIG_CARDBUS=y - -# -# PC-card bridges -# -CONFIG_YENTA=m -CONFIG_YENTA_O2=y -CONFIG_YENTA_RICOH=y -CONFIG_YENTA_TI=y -CONFIG_YENTA_ENE_TUNE=y -CONFIG_YENTA_TOSHIBA=y -CONFIG_PD6729=m -CONFIG_I82092=m -CONFIG_PCCARD_NONSTATIC=m +# CONFIG_PCCARD is not set # # Kernel Features @@ -272,40 +335,72 @@ CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -CONFIG_HIGHMEM=y -# CONFIG_HIGHPTE is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +# CONFIG_HIGHMEM is not set +CONFIG_HW_PERF_EVENTS=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y -CONFIG_SPLIT_PTLOCK_CPUS=4096 +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 -CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -# CONFIG_LEDS is not set +CONFIG_NEED_PER_CPU_KM=y +# CONFIG_CLEANCACHE is not set +CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y CONFIG_UACCESS_WITH_MEMCPY=y +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set # # Boot options # +CONFIG_USE_OF=y CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="" +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=/dev/mmcblk0p3 rootwait" +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_AUTO_ZRELADDR is not set # # CPU Power Management # + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_STAT=m +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y + +# +# ARM CPU frequency scaling drivers +# +CONFIG_ARM_BCM2835_CPUFREQ=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y @@ -317,7 +412,7 @@ CONFIG_CPU_IDLE_GOV_MENU=y # # At least one emulation must be selected # -# CONFIG_VFP is not set +CONFIG_VFP=y # # Userspace binary formats @@ -331,21 +426,23 @@ CONFIG_HAVE_AOUT=y # # Power management options # -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -# CONFIG_APM_EMULATION is not set +CONFIG_PM_SLEEP=y CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y CONFIG_NET=y # # Networking options # CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -358,17 +455,18 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y @@ -397,15 +495,10 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -420,12 +513,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -438,9 +533,10 @@ CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -449,7 +545,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m @@ -457,10 +555,24 @@ CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m @@ -468,28 +580,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m @@ -498,7 +620,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_SOCKET=m CONFIG_NETFILTER_XT_MATCH_STATE=m @@ -509,7 +630,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -520,8 +641,10 @@ CONFIG_IP_VS_TAB_BITS=12 # # CONFIG_IP_VS_PROTO_TCP is not set # CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set # # IPVS scheduler @@ -540,6 +663,7 @@ CONFIG_IP_VS_TAB_BITS=12 # # IPVS application helper # +# CONFIG_IP_VS_NFCT is not set # # IP: Netfilter Configuration @@ -549,7 +673,6 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -587,6 +710,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # +CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m @@ -636,9 +760,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -661,6 +790,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y # @@ -673,6 +803,7 @@ CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m @@ -680,6 +811,9 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_INGRESS=m # @@ -689,7 +823,6 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y @@ -712,11 +845,15 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set +CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set # # Network testing @@ -763,12 +900,10 @@ CONFIG_KS959_DONGLE=m # CONFIG_USB_IRDA=m CONFIG_SIGMATEL_FIR=m -# CONFIG_TOSHIBA_FIR is not set -CONFIG_VLSI_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -785,30 +920,33 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIDTL1=m -CONFIG_BT_HCIBT3C=m -CONFIG_BT_HCIBLUECARD=m -CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m @@ -818,9 +956,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set @@ -828,7 +966,14 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_RFKILL_GPIO=m # CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set # # Device Drivers @@ -847,14 +992,14 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=m CONFIG_MTD_AR7_PARTS=m # @@ -869,7 +1014,9 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +CONFIG_SM_FTL=m # CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set # # RAM/ROM/Flash chip drivers @@ -896,13 +1043,11 @@ CONFIG_MTD_CFI_I2=y # CONFIG_MTD_COMPLEX_MAPPINGS is not set CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_INTEL_VR_NOR is not set # CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers # -# CONFIG_MTD_PMC551 is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set @@ -914,7 +1059,20 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set -# CONFIG_MTD_NAND is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +# CONFIG_MTD_NAND_GPIO is not set +CONFIG_MTD_NAND_IDS=m +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_PLATFORM=m +# CONFIG_MTD_ALAUDA is not set # CONFIG_MTD_ONENAND is not set # @@ -922,19 +1080,27 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# # CONFIG_MTD_UBI_DEBUG is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +CONFIG_PROC_DEVICETREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_DEVICE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y CONFIG_PARPORT=m # CONFIG_PARPORT_PC is not set # CONFIG_PARPORT_GSC is not set @@ -942,15 +1108,13 @@ CONFIG_PARPORT_AX88796=m CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_BLK_DEV=y -# CONFIG_BLK_CPQ_DA is not set -# CONFIG_BLK_CPQ_CISS_DA is not set -# CONFIG_BLK_DEV_DAC960 is not set -# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_SX8=m +CONFIG_BLK_DEV_OSD=m # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=8 @@ -960,15 +1124,24 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_ATA_OVER_ETH=m CONFIG_MG_DISK=m CONFIG_MG_DISK_RES=0 +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m CONFIG_MISC_DEVICES=y -# CONFIG_PHANTOM is not set -# CONFIG_SGI_IOC4 is not set -CONFIG_TIFM_CORE=m -CONFIG_TIFM_7XX1=m +# CONFIG_AD525X_DPOT is not set +# CONFIG_ATMEL_PWM is not set CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m -CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_BMP085=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m # @@ -978,17 +1151,28 @@ CONFIG_EEPROM_AT24=m CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m -CONFIG_CB710_CORE=m -# CONFIG_CB710_DEBUG is not set -CONFIG_CB710_DEBUG_ASSUMPTIONS=y -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set +CONFIG_BCM2708_VCHIQ=y # # SCSI device support # -CONFIG_RAID_ATTRS=y -CONFIG_SCSI=m +CONFIG_SCSI_MOD=y +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=y CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set CONFIG_SCSI_NETLINK=y @@ -997,7 +1181,7 @@ CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # -CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set # CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=m @@ -1021,152 +1205,55 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m -CONFIG_SCSI_CXGB3_ISCSI=m -CONFIG_SCSI_BNX2_ISCSI=m -CONFIG_BE2ISCSI=m -CONFIG_BLK_DEV_3W_XXXX_RAID=m -CONFIG_SCSI_3W_9XXX=m -# CONFIG_SCSI_ACARD is not set -CONFIG_SCSI_AACRAID=m -CONFIG_SCSI_AIC7XXX=m -CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 -CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set -# CONFIG_AIC7XXX_DEBUG_ENABLE is not set -CONFIG_AIC7XXX_DEBUG_MASK=0 -# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set -# CONFIG_SCSI_AIC7XXX_OLD is not set -CONFIG_SCSI_AIC79XX=m -CONFIG_AIC79XX_CMDS_PER_DEVICE=32 -CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set -# CONFIG_AIC79XX_DEBUG_ENABLE is not set -CONFIG_AIC79XX_DEBUG_MASK=0 -# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set -CONFIG_SCSI_AIC94XX=m -# CONFIG_AIC94XX_DEBUG is not set -CONFIG_SCSI_MVSAS=m -CONFIG_SCSI_MVSAS_DEBUG=y -CONFIG_SCSI_DPT_I2O=m -# CONFIG_SCSI_ADVANSYS is not set -CONFIG_SCSI_ARCMSR=m -CONFIG_MEGARAID_NEWGEN=y -CONFIG_MEGARAID_MM=m -CONFIG_MEGARAID_MAILBOX=m -CONFIG_MEGARAID_LEGACY=m -CONFIG_MEGARAID_SAS=m -CONFIG_SCSI_MPT2SAS=m -CONFIG_SCSI_MPT2SAS_MAX_SGE=128 -# CONFIG_SCSI_MPT2SAS_LOGGING is not set -CONFIG_SCSI_HPTIOP=m +CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m -CONFIG_FCOE=m -CONFIG_SCSI_DMX3191D=m -CONFIG_SCSI_FUTURE_DOMAIN=m -CONFIG_SCSI_IPS=m -CONFIG_SCSI_INITIO=m -CONFIG_SCSI_INIA100=m -CONFIG_SCSI_STEX=m -CONFIG_SCSI_SYM53C8XX_2=m -CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 -CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 -CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 -CONFIG_SCSI_SYM53C8XX_MMIO=y -CONFIG_SCSI_IPR=m -CONFIG_SCSI_IPR_TRACE=y -CONFIG_SCSI_IPR_DUMP=y -CONFIG_SCSI_QLOGIC_1280=m -CONFIG_SCSI_QLA_FC=m -CONFIG_SCSI_QLA_ISCSI=m -CONFIG_SCSI_LPFC=m -CONFIG_SCSI_DC395x=m -CONFIG_SCSI_DC390T=m -# CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set -CONFIG_SCSI_PMCRAID=m -# CONFIG_SCSI_SRP is not set -CONFIG_SCSI_BFA_FC=m -CONFIG_SCSI_LOWLEVEL_PCMCIA=y -CONFIG_PCMCIA_AHA152X=m -CONFIG_PCMCIA_FDOMAIN=m -CONFIG_PCMCIA_NINJA_SCSI=m -CONFIG_PCMCIA_QLOGIC=m -CONFIG_PCMCIA_SYM53C500=m CONFIG_SCSI_DH=m CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m CONFIG_SCSI_DH_ALUA=m -# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +# CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=m # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_SATA_PMP=y -CONFIG_SATA_AHCI=m -CONFIG_SATA_SIL24=m + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI_PLATFORM=m CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m -CONFIG_ATA_PIIX=m + +# +# SFF controllers with custom DMA interface +# +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m -CONFIG_PATA_CMD64X=m -CONFIG_PATA_CS5520=m -CONFIG_PATA_CS5530=m -CONFIG_PATA_CYPRESS=m -CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m -CONFIG_PATA_HPT366=m -CONFIG_PATA_HPT37X=m -CONFIG_PATA_HPT3X2N=m -CONFIG_PATA_HPT3X3=m -CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_IT821X=m -CONFIG_PATA_IT8213=m -CONFIG_PATA_JMICRON=m -CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m -CONFIG_PATA_NETCELL=m -CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m -CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m -CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m -CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_RADISYS=m -CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m -CONFIG_PATA_SC1200=m -CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m -CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_VIA=m -CONFIG_PATA_WINBOND=m -CONFIG_PATA_SCH=m + +# +# PATA SFF controllers with BMDMA +# +CONFIG_PATA_ARASAN_CF=m + +# +# PIO-only SFF controllers +# + +# +# Generic fallback / legacy drivers +# CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1174,15 +1261,19 @@ CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m @@ -1190,37 +1281,12 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y -CONFIG_FUSION=y -CONFIG_FUSION_SPI=m -CONFIG_FUSION_FC=m -CONFIG_FUSION_SAS=m -CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_CTL=m -# CONFIG_FUSION_LOGGING is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# -CONFIG_FIREWIRE=m -CONFIG_FIREWIRE_OHCI=m -CONFIG_FIREWIRE_OHCI_DEBUG=y -CONFIG_FIREWIRE_SBP2=m -CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set -# CONFIG_I2O is not set +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1228,9 +1294,60 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m -# CONFIG_ARCNET is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m + +# +# CAIF transport drivers +# +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DNET=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NET_VENDOR_FARADAY=y +# CONFIG_FTMAC100 is not set +# CONFIG_FTGMAC100 is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_8390=y +CONFIG_AX88796=m +CONFIG_AX88796_93CX6=y +CONFIG_ETHOC=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC91X=m +CONFIG_SMC911X=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set CONFIG_PHYLIB=y # @@ -1249,173 +1366,28 @@ CONFIG_REALTEK_PHY=m CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m # CONFIG_FIXED_PHY is not set CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_AX88796=m -# CONFIG_AX88796_93CX6 is not set -CONFIG_HAPPYMEAL=m -# CONFIG_SUNGEM is not set -CONFIG_CASSINI=m -CONFIG_NET_VENDOR_3COM=y -CONFIG_VORTEX=m -CONFIG_TYPHOON=m -CONFIG_SMC91X=m -CONFIG_DM9000=m -CONFIG_DM9000_DEBUGLEVEL=4 -# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set -CONFIG_ETHOC=m -CONFIG_SMC911X=m -CONFIG_SMSC911X=m -CONFIG_DNET=m -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_DE2104X_DSL=0 -CONFIG_TULIP=m -# CONFIG_TULIP_MWI is not set -# CONFIG_TULIP_MMIO is not set -# CONFIG_TULIP_NAPI is not set -CONFIG_DE4X5=m -CONFIG_WINBOND_840=m -CONFIG_DM9102=m -CONFIG_ULI526X=m -CONFIG_PCMCIA_XIRCOM=m -CONFIG_HP100=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m -CONFIG_B44=m -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_E100=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m -CONFIG_NE2K_PCI=m -CONFIG_8139CP=m -CONFIG_8139TOO=m -# CONFIG_8139TOO_PIO is not set -CONFIG_8139TOO_TUNE_TWISTER=y -CONFIG_8139TOO_8129=y -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_R6040=m -CONFIG_SIS900=m -CONFIG_EPIC100=m -CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set -CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m -CONFIG_VIA_RHINE=m -CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m -CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set - -# -# Enable WiMAX (Networking options) to see the WiMAX drivers -# +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y # # USB Network Adapters @@ -1428,7 +1400,9 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m @@ -1443,19 +1417,41 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AT76C50X_USB=m +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8187 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set +# CONFIG_RTL8192CU is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# CONFIG_WAN=y -CONFIG_LANMEDIA=m CONFIG_HDLC=m CONFIG_HDLC_RAW=m CONFIG_HDLC_RAW_ETH=m @@ -1466,97 +1462,10 @@ CONFIG_HDLC_PPP=m # # X.25/LAPB support is disabled # -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y CONFIG_DLCI=m CONFIG_DLCI_MAX=8 -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -# CONFIG_ATM_HE is not set -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_ISDN=y CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y @@ -1596,32 +1505,20 @@ CONFIG_HISAX_MAX_CARDS=8 # HiSax supported cards # CONFIG_HISAX_16_3=y -CONFIG_HISAX_TELESPCI=y CONFIG_HISAX_S0BOX=y CONFIG_HISAX_FRITZPCI=y CONFIG_HISAX_AVM_A1_PCMCIA=y CONFIG_HISAX_ELSA=y CONFIG_HISAX_DIEHLDIVA=y CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NETJET=y -CONFIG_HISAX_NETJET_U=y CONFIG_HISAX_NICCY=y -CONFIG_HISAX_BKM_A4T=y -CONFIG_HISAX_SCT_QUADRO=y CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_HFC_PCI=y -CONFIG_HISAX_W6692=y CONFIG_HISAX_HFC_SX=y -CONFIG_HISAX_ENTERNOW_PCI=y CONFIG_HISAX_DEBUG=y # # HiSax PCMCIA card service modules # -CONFIG_HISAX_SEDLBAUER_CS=m -CONFIG_HISAX_ELSA_CS=m -CONFIG_HISAX_AVM_A1_CS=m -CONFIG_HISAX_TELES_CS=m # # HiSax sub driver modules @@ -1629,45 +1526,39 @@ CONFIG_HISAX_TELES_CS=m CONFIG_HISAX_ST5481=m CONFIG_HISAX_HFCUSB=m CONFIG_HISAX_HFC4S8S=m -CONFIG_HISAX_FRITZ_PCIPNP=m # # Active cards # -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m # # CAPI hardware drivers # CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_AVM_CS=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_AVMB1_C4=m CONFIG_CAPI_EICON=y -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCUSB=m +CONFIG_ISDN_HDLC=m # CONFIG_PHONE is not set # @@ -1676,6 +1567,7 @@ CONFIG_GIGASET_M101=m CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m # # Userland interfaces @@ -1693,13 +1585,18 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_TCA6416=m CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_STOWAWAY=m @@ -1710,16 +1607,24 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y -CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m # CONFIG_INPUT_UINPUT is not set CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_WM831X_ON=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set # # Hardware I/O ports @@ -1727,10 +1632,11 @@ CONFIG_INPUT_WM831X_ON=m CONFIG_SERIO=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PARKBD is not set -CONFIG_SERIO_AMBAKMI=y -# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_AMBAKMI=m CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m # CONFIG_GAMEPORT is not set # @@ -1739,19 +1645,22 @@ CONFIG_SERIO_LIBPS2=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set -CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y @@ -1759,21 +1668,28 @@ CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DW=m # # Non-8250 serial port support # +CONFIG_SERIAL_AMBA_PL010=y +CONFIG_SERIAL_AMBA_PL010_CONSOLE=y CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m +# CONFIG_HVC_DCC is not set CONFIG_IPMI_HANDLER=m CONFIG_IPMI_PANIC_EVENT=y # CONFIG_IPMI_PANIC_STRING is not set @@ -1785,23 +1701,23 @@ CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_NVRAM=m # CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set - -# -# PCMCIA character devices -# -CONFIG_SYNCLINK_CS=m -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -CONFIG_IPWIRELESS=m # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set -CONFIG_DEVPORT=y -CONFIG_I2C=m +# CONFIG_RAMOOPS is not set +CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m @@ -1809,61 +1725,36 @@ CONFIG_I2C_ALGOPCA=m # I2C Hardware Bus support # -# -# PC SMBus host controller drivers -# -CONFIG_I2C_ALI1535=m -CONFIG_I2C_ALI1563=m -CONFIG_I2C_ALI15X3=m -CONFIG_I2C_AMD756=m -CONFIG_I2C_AMD8111=m -CONFIG_I2C_I801=m -CONFIG_I2C_ISCH=m -CONFIG_I2C_PIIX4=m -CONFIG_I2C_NFORCE2=m -CONFIG_I2C_SIS5595=m -CONFIG_I2C_SIS630=m -CONFIG_I2C_SIS96X=m -CONFIG_I2C_VIA=m -CONFIG_I2C_VIAPRO=m - # # I2C system bus drivers (mostly embedded / system-on-chip) # -CONFIG_I2C_DESIGNWARE=m +CONFIG_I2C_BCM2708=m +CONFIG_I2C_BCM2708_BAUDRATE=100000 +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m CONFIG_I2C_GPIO=m CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m -CONFIG_I2C_VERSATILE=m +CONFIG_I2C_XILINX=m # # External I2C/SMBus adapter drivers # +CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m -# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - # # Other I2C/SMBus bus drivers # -CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_STUB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set # @@ -1871,44 +1762,70 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set -CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m +CONFIG_ARCH_REQUIRE_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set -# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m # -# Memory mapped GPIO expanders: +# Memory mapped GPIO drivers: # -# CONFIG_GPIO_PL061 is not set +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_PL061=y # # I2C GPIO expanders: # +CONFIG_GPIO_MAX7300=m CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_WM831X=m +# CONFIG_GPIO_SX150X is not set +CONFIG_GPIO_ADP5588=m # # PCI GPIO expanders: # -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_LANGWELL is not set # # SPI GPIO expanders: # +CONFIG_GPIO_MCP23S08=m # # AC97 GPIO expanders: # +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# CONFIG_W1=m CONFIG_W1_CON=y # # 1-wire Bus Masters # -CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m CONFIG_W1_MASTER_DS1WM=m @@ -1919,21 +1836,29 @@ CONFIG_W1_MASTER_GPIO=m # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -1949,23 +1874,28 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m -CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m @@ -1976,54 +1906,78 @@ CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m CONFIG_SENSORS_SHT15=m -CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m -CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m -CONFIG_SENSORS_VT8231=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m CONFIG_THERMAL=y +CONFIG_THERMAL_BCM2835=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m -CONFIG_ALIM7101_WDT=m - -# -# PCI-based Watchdog Cards -# -CONFIG_PCIPCWATCHDOG=m -CONFIG_WDTPCI=m +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_DW_WATCHDOG=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_BCM2708_WDT=m # # USB-based Watchdog Cards @@ -2035,93 +1989,149 @@ CONFIG_SSB_POSSIBLE=y # Sonics Silicon Backplane # CONFIG_SSB=m -CONFIG_SSB_SPROM=y -CONFIG_SSB_PCIHOST_POSSIBLE=y -CONFIG_SSB_PCIHOST=y -# CONFIG_SSB_B43_PCI_BRIDGE is not set -CONFIG_SSB_PCMCIAHOST_POSSIBLE=y -CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set -CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y -CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +# CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # -CONFIG_MFD_CORE=m +CONFIG_MFD_CORE=y +CONFIG_MFD_88PM860X=y CONFIG_MFD_SM501=m # CONFIG_MFD_SM501_GPIO is not set # CONFIG_MFD_ASIC3 is not set # CONFIG_HTC_EGPIO is not set CONFIG_HTC_PASIC3=m -# CONFIG_UCB1400_CORE is not set +# CONFIG_HTC_I2CPLD is not set +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set # CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_WL1273_CORE=m +# CONFIG_MFD_AAT2870_CORE is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_88PM8607 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # +CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # -# CONFIG_MEDIA_ATTACH is not set +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m # -# Encoders/decoders and other helper chips +# Encoders, decoders, sensors and other helper chips # # -# Audio decoders +# Audio decoders, processors and mixers # # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set @@ -2140,19 +2150,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_SAA7191 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_VPX3220 is not set # # Video and audio decoders # +# CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_CX25840 is not set # @@ -2167,29 +2176,46 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set # # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_SAA7164 is not set -# CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set @@ -2198,42 +2224,41 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set # CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set +# CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y -# CONFIG_RADIO_GEMTEK_PCI is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set # CONFIG_I2C_SI4713 is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set -CONFIG_DVB_MAX_ADAPTERS=8 -# CONFIG_DVB_DYNAMIC_MINORS is not set -CONFIG_DVB_CAPTURE_DRIVERS=y +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set # -# Supported SAA7146 based PCI Adapters +# Texas Instruments WL128x FM driver (ST based) # +# CONFIG_RADIO_WL128X is not set +CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_DYNAMIC_MINORS is not set +CONFIG_DVB_CAPTURE_DRIVERS=y # CONFIG_TTPCI_EEPROM is not set -# CONFIG_DVB_AV7110 is not set -# CONFIG_DVB_BUDGET_CORE is not set # # Supported USB Adapters # # CONFIG_DVB_USB is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set # CONFIG_SMS_SIANO_MDTV is not set # @@ -2242,47 +2267,60 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # CONFIG_DVB_B2C2_FLEXCOP is not set # -# Supported BT878 Adapters +# Supported DVB Frontends # +# CONFIG_DVB_FE_CUSTOMISE is not set # -# Supported Pluto2 Adapters +# Multistandard (satellite) frontends # -# CONFIG_DVB_PLUTO2 is not set # -# Supported SDMC DM1105 Adapters +# Multistandard (cable + terrestrial) frontends # -# CONFIG_DVB_DM1105 is not set # -# Supported Earthsoft PT1 Adapters +# DVB-S (satellite) frontends # -# CONFIG_DVB_PT1 is not set # -# Supported DVB Frontends +# DVB-T (terrestrial) frontends # -# CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set # # Graphics support # -CONFIG_VGA_ARB=y CONFIG_DRM=m -CONFIG_DRM_TDFX=m -CONFIG_DRM_R128=m -# CONFIG_DRM_RADEON is not set -CONFIG_DRM_MGA=m -CONFIG_DRM_VIA=m -CONFIG_DRM_SAVAGE=m -CONFIG_VGASTATE=m +# CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y CONFIG_FIRMWARE_EDID=y -CONFIG_FB_DDC=m +# CONFIG_FB_DDC is not set # CONFIG_FB_BOOT_VESA_SUPPORT is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y @@ -2293,86 +2331,43 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SVGALIB=m +# CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set -CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # -CONFIG_FB_CIRRUS=m -CONFIG_FB_PM2=m -CONFIG_FB_PM2_FIFO_DISCONNECT=y -CONFIG_FB_ARMCLCD=m -CONFIG_FB_CYBER2000=m -CONFIG_FB_ASILIANT=y -# CONFIG_FB_IMSTT is not set +CONFIG_FB_BCM2708=y +CONFIG_FB_ARMCLCD=y CONFIG_FB_UVESA=m # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_NVIDIA=m -CONFIG_FB_NVIDIA_I2C=y -# CONFIG_FB_NVIDIA_DEBUG is not set -CONFIG_FB_NVIDIA_BACKLIGHT=y -CONFIG_FB_RIVA=m -CONFIG_FB_RIVA_I2C=y -# CONFIG_FB_RIVA_DEBUG is not set -CONFIG_FB_RIVA_BACKLIGHT=y -CONFIG_FB_MATROX=m -CONFIG_FB_MATROX_MILLENIUM=y -CONFIG_FB_MATROX_MYSTIQUE=y -CONFIG_FB_MATROX_G=y -CONFIG_FB_MATROX_I2C=m -CONFIG_FB_MATROX_MAVEN=m -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set -CONFIG_FB_ATY128=m -CONFIG_FB_ATY128_BACKLIGHT=y -CONFIG_FB_ATY=m -CONFIG_FB_ATY_CT=y -# CONFIG_FB_ATY_GENERIC_LCD is not set -CONFIG_FB_ATY_GX=y -CONFIG_FB_ATY_BACKLIGHT=y -CONFIG_FB_S3=m -# CONFIG_FB_SAVAGE is not set -CONFIG_FB_SIS=m -CONFIG_FB_SIS_300=y -CONFIG_FB_SIS_315=y -CONFIG_FB_VIA=m -CONFIG_FB_NEOMAGIC=m -CONFIG_FB_KYRO=m -CONFIG_FB_3DFX=m -CONFIG_FB_3DFX_ACCEL=y -CONFIG_FB_3DFX_I2C=y -CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m -CONFIG_FB_TRIDENT=m -CONFIG_FB_ARK=m -CONFIG_FB_PM3=m -# CONFIG_FB_CARMINE is not set CONFIG_FB_TMIO=m CONFIG_FB_TMIO_ACCELL=y CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set CONFIG_FB_METRONOME=m -# CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m -CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_PCF50633=m # # Display device support # -CONFIG_DISPLAY_SUPPORT=m +CONFIG_DISPLAY_SUPPORT=y # # Display hardware drivers @@ -2383,7 +2378,7 @@ CONFIG_DISPLAY_SUPPORT=m # CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -2408,166 +2403,45 @@ CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_RAWMIDI_SEQ=m -CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL3_LIB_SEQ is not set # CONFIG_SND_OPL4_LIB_SEQ is not set # CONFIG_SND_SBAWE_SEQ is not set -CONFIG_SND_EMU10K1_SEQ=m +# CONFIG_SND_EMU10K1_SEQ is not set CONFIG_SND_MPU401_UART=m -CONFIG_SND_OPL3_LIB=m -CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_DUMMY=m +CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m -# CONFIG_SND_AC97_POWER_SAVE is not set -CONFIG_SND_PCI=y -CONFIG_SND_AD1889=m -CONFIG_SND_ALS300=m -# CONFIG_SND_ALI5451 is not set -CONFIG_SND_ATIIXP=m -CONFIG_SND_ATIIXP_MODEM=m -CONFIG_SND_AU8810=m -CONFIG_SND_AU8820=m -CONFIG_SND_AU8830=m -CONFIG_SND_AW2=m -CONFIG_SND_AZT3328=m -CONFIG_SND_BT87X=m -# CONFIG_SND_BT87X_OVERCLOCK is not set -CONFIG_SND_CA0106=m -CONFIG_SND_CMIPCI=m -CONFIG_SND_OXYGEN_LIB=m -CONFIG_SND_OXYGEN=m -CONFIG_SND_CS4281=m -CONFIG_SND_CS46XX=m -CONFIG_SND_CS46XX_NEW_DSP=y -CONFIG_SND_CS5535AUDIO=m -CONFIG_SND_CTXFI=m -CONFIG_SND_DARLA20=m -CONFIG_SND_GINA20=m -CONFIG_SND_LAYLA20=m -CONFIG_SND_DARLA24=m -CONFIG_SND_GINA24=m -CONFIG_SND_LAYLA24=m -CONFIG_SND_MONA=m -CONFIG_SND_MIA=m -CONFIG_SND_ECHO3G=m -CONFIG_SND_INDIGO=m -CONFIG_SND_INDIGOIO=m -CONFIG_SND_INDIGODJ=m -CONFIG_SND_INDIGOIOX=m -CONFIG_SND_INDIGODJX=m -CONFIG_SND_EMU10K1=m -CONFIG_SND_EMU10K1X=m -CONFIG_SND_ENS1370=m -CONFIG_SND_ENS1371=m -CONFIG_SND_ES1938=m -CONFIG_SND_ES1968=m -CONFIG_SND_FM801=m -# CONFIG_SND_FM801_TEA575X_BOOL is not set -CONFIG_SND_HDA_INTEL=m -# CONFIG_SND_HDA_HWDEP is not set -# CONFIG_SND_HDA_INPUT_BEEP is not set -# CONFIG_SND_HDA_INPUT_JACK is not set -# CONFIG_SND_HDA_PATCH_LOADER is not set -CONFIG_SND_HDA_CODEC_REALTEK=y -CONFIG_SND_HDA_CODEC_ANALOG=y -CONFIG_SND_HDA_CODEC_SIGMATEL=y -CONFIG_SND_HDA_CODEC_VIA=y -CONFIG_SND_HDA_CODEC_ATIHDMI=y -CONFIG_SND_HDA_CODEC_NVHDMI=y -CONFIG_SND_HDA_CODEC_INTELHDMI=y -CONFIG_SND_HDA_ELD=y -CONFIG_SND_HDA_CODEC_CIRRUS=y -CONFIG_SND_HDA_CODEC_CONEXANT=y -CONFIG_SND_HDA_CODEC_CA0110=y -CONFIG_SND_HDA_CODEC_CMEDIA=y -CONFIG_SND_HDA_CODEC_SI3054=y -CONFIG_SND_HDA_GENERIC=y -# CONFIG_SND_HDA_POWER_SAVE is not set -CONFIG_SND_HDSP=m -CONFIG_SND_HDSPM=m -CONFIG_SND_HIFIER=m -CONFIG_SND_ICE1712=m -CONFIG_SND_ICE1724=m -CONFIG_SND_INTEL8X0=m -CONFIG_SND_INTEL8X0M=m -CONFIG_SND_KORG1212=m -CONFIG_SND_LX6464ES=m -CONFIG_SND_MAESTRO3=m -CONFIG_SND_MIXART=m -CONFIG_SND_NM256=m -CONFIG_SND_PCXHR=m -CONFIG_SND_RIPTIDE=m -CONFIG_SND_RME32=m -CONFIG_SND_RME96=m -CONFIG_SND_RME9652=m -CONFIG_SND_SONICVIBES=m -CONFIG_SND_TRIDENT=m -CONFIG_SND_VIA82XX=m -CONFIG_SND_VIA82XX_MODEM=m -CONFIG_SND_VIRTUOSO=m -CONFIG_SND_VX222=m -CONFIG_SND_YMFPCI=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 CONFIG_SND_ARM=y CONFIG_SND_ARMAACI=m +CONFIG_SND_BCM2835=m CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m CONFIG_SND_USB_CAIAQ=m -# CONFIG_SND_USB_CAIAQ_INPUT is not set -CONFIG_SND_PCMCIA=y -CONFIG_SND_VXPOCKET=m -CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_6FIRE=m CONFIG_SND_SOC=m +CONFIG_SND_SOC_CACHE_LZO=y CONFIG_SND_SOC_I2C_AND_SPI=m -CONFIG_SND_SOC_ALL_CODECS=m -CONFIG_SND_SOC_WM_HUBS=m -CONFIG_SND_SOC_AD73311=m -CONFIG_SND_SOC_AK4535=m -CONFIG_SND_SOC_AK4642=m -CONFIG_SND_SOC_CS4270=m -CONFIG_SND_SOC_L3=m -CONFIG_SND_SOC_PCM3008=m -CONFIG_SND_SOC_SPDIF=m -CONFIG_SND_SOC_SSM2602=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_UDA134X=m -CONFIG_SND_SOC_UDA1380=m -CONFIG_SND_SOC_WM8350=m -CONFIG_SND_SOC_WM8400=m -CONFIG_SND_SOC_WM8510=m -CONFIG_SND_SOC_WM8523=m -CONFIG_SND_SOC_WM8580=m -CONFIG_SND_SOC_WM8728=m -CONFIG_SND_SOC_WM8731=m -CONFIG_SND_SOC_WM8750=m -CONFIG_SND_SOC_WM8753=m -CONFIG_SND_SOC_WM8776=m -CONFIG_SND_SOC_WM8900=m -CONFIG_SND_SOC_WM8903=m -CONFIG_SND_SOC_WM8940=m -CONFIG_SND_SOC_WM8960=m -CONFIG_SND_SOC_WM8961=m -CONFIG_SND_SOC_WM8971=m -CONFIG_SND_SOC_WM8974=m -CONFIG_SND_SOC_WM8988=m -CONFIG_SND_SOC_WM8990=m -CONFIG_SND_SOC_WM8993=m -CONFIG_SND_SOC_WM9081=m -CONFIG_SND_SOC_MAX9877=m +# CONFIG_SND_SOC_ALL_CODECS is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y @@ -2585,45 +2459,82 @@ CONFIG_USB_HIDDEV=y # Special HID drivers # CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y +# CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y +# CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y +# CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y +# CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB_ARCH_HAS_XHCI is not set +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -2635,41 +2546,26 @@ CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set -CONFIG_USB_WUSB=m -CONFIG_USB_WUSB_CBAF=m -# CONFIG_USB_WUSB_CBAF_DEBUG is not set +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m -# CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -CONFIG_USB_EHCI_ROOT_HUB_TT=y -# CONFIG_USB_EHCI_TT_NEWSCHED is not set CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set -# CONFIG_USB_ISP1362_HCD is not set -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_ISP1362_HCD=m CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m -# CONFIG_USB_SL811_CS is not set +# CONFIG_USB_SL811_HCD_ISO is not set CONFIG_USB_R8A66597_HCD=m -CONFIG_USB_WHCI_HCD=m -CONFIG_USB_HWA_HCD=m - -# -# Enable Host or Gadget support to see Inventra options -# -# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_HWA_HCD is not set +CONFIG_USB_DWCOTG=y # # USB Device Class drivers @@ -2688,7 +2584,9 @@ CONFIG_USB_TMC=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m @@ -2699,6 +2597,8 @@ CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m # CONFIG_USB_LIBUSUAL is not set # @@ -2724,12 +2624,12 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -2739,11 +2639,13 @@ CONFIG_USB_SERIAL_IUU=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m @@ -2755,9 +2657,13 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_SERIAL_DEBUG is not set # @@ -2770,21 +2676,18 @@ CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=m # CONFIG_USB_APPLEDISPLAY is not set -CONFIG_USB_SISUSBVGA=m -CONFIG_USB_SISUSBVGA_CON=y # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m +CONFIG_USB_YUREX=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -2797,21 +2700,18 @@ CONFIG_USB_XUSBATM=m # CONFIG_USB_OTG_UTILS=y CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_ULPI is not set CONFIG_NOP_USB_XCEIV=m -CONFIG_UWB=m -CONFIG_UWB_HWA=m -CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m -CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m -CONFIG_MMC=m +CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers # -CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=m @@ -2820,16 +2720,18 @@ CONFIG_MMC_TEST=m # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_ARMMMCI=m -CONFIG_MMC_SDHCI=m -CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y CONFIG_MMC_SDHCI_PLTFM=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set -CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SDRICOH_CS=m -CONFIG_MMC_CB710=m -CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_SDHCI_BCM2708=y +CONFIG_MMC_SDHCI_BCM2708_DMA=y +# CONFIG_MMC_BCM2708 is not set +CONFIG_MMC_DW=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set @@ -2842,41 +2744,46 @@ CONFIG_MSPRO_BLOCK=m # # MemoryStick Host Controller Drivers # -CONFIG_MEMSTICK_TIFM_MS=m -CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y # # LED drivers # +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_LM3530=m CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=m -CONFIG_LEDS_GPIO_PLATFORM=y CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m +CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m +CONFIG_LEDS_LT3593=m +# CONFIG_LEDS_RENESAS_TPU is not set +CONFIG_LEDS_TRIGGERS=y # # LED Triggers # -CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_GPIO=m -CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y # # iptables trigger is under Netfilter config (LED target) # CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set -# CONFIG_INFINIBAND is not set CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set # # RTC interfaces @@ -2885,26 +2792,32 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m +# CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # +CONFIG_RTC_DRV_88PM860X=y CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers @@ -2922,12 +2835,11 @@ CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m # # on-CPU RTC drivers @@ -2935,98 +2847,88 @@ CONFIG_RTC_DRV_AB3100=m CONFIG_RTC_DRV_PL030=m CONFIG_RTC_DRV_PL031=m CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # +CONFIG_AMBA_PL08X=y +CONFIG_DW_DMAC=y +# CONFIG_TIMB_DMA is not set +CONFIG_PL330_DMA=y +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_ASYNC_TX_DMA=y +CONFIG_DMATEST=m # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m -CONFIG_UIO_CIF=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m -CONFIG_UIO_AEC=m -CONFIG_UIO_SERCOS3=m -CONFIG_UIO_PCI_GENERIC=m # -# TI VLYNQ +# Virtio drivers # +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set -CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set -# CONFIG_RTL8192E is not set +# CONFIG_R8712U is not set +# CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set # CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set -CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set # CONFIG_LINE6_USB is not set # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set -# CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -# CONFIG_VME_BUS is not set +# CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set # -# RAR Register Driver +# Speakup console speech # -# CONFIG_RAR_REGISTER is not set -# CONFIG_IIO is not set +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set +CONFIG_CLKDEV_LOOKUP=y + +# +# Hardware Spinlock drivers +# +CONFIG_IOMMU_SUPPORT=y +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set # # File systems # -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y @@ -3038,29 +2940,29 @@ CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -3105,6 +3007,7 @@ CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set CONFIG_MISC_FILESYSTEMS=y @@ -3132,6 +3035,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set # CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -3140,8 +3044,12 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +# CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y @@ -3149,6 +3057,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y @@ -3156,15 +3067,12 @@ CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y @@ -3174,7 +3082,8 @@ CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -3189,7 +3098,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3241,12 +3150,12 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set # # Kernel hacking # # CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -3255,12 +3164,13 @@ CONFIG_STRIP_ASM_SYMS=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y @@ -3276,52 +3186,67 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set -# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set -# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set # CONFIG_ARM_UNWIND is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_LL_UART_NONE=y +# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_BCM2708_UART0 is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_OC_ETM is not set # # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m @@ -3333,7 +3258,6 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m @@ -3344,9 +3268,12 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set CONFIG_CRYPTO_WORKQUEUE=y @@ -3384,7 +3311,7 @@ CONFIG_CRYPTO_VMAC=m # CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m @@ -3404,6 +3331,7 @@ CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3428,31 +3356,44 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y # CONFIG_BINARY_PRINTF is not set # # Library routines # +CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y -CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -3460,5 +3401,7 @@ CONFIG_TEXTSEARCH_FSM=m CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y -CONFIG_CHECK_SIGNATURE=y CONFIG_NLATTR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index 2c08a1bd29..51f34133aa 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -1,15 +1,14 @@ # -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.41-ipfire -# Tue May 31 14:26:02 2011 +# Automatically generated file; DO NOT EDIT. +# Linux/i386 3.2.35 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y @@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y @@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set @@ -44,34 +45,34 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y -CONFIG_X86_TRAMPOLINE=y -CONFIG_X86_32_LAZY_GS=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y # # General setup # CONFIG_EXPERIMENTAL=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y @@ -79,52 +80,73 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_TASKSTATS is not set +# CONFIG_FHANDLE is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +# CONFIG_TASK_XACCT is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y # # RCU Subsystem # CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 # CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set +# CONFIG_EXPERT is not set CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -133,35 +155,46 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +# CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # # Kernel Performance Events And Counters # -# CONFIG_PERF_EVENTS is not set +CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y -# CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y # # GCOV-based kernel profiling # -CONFIG_SLOW_WORK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -175,22 +208,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PADATA=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y # @@ -200,19 +262,20 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_SMP=y -CONFIG_SPARSE_IRQ=y CONFIG_X86_MPPARSE=y # CONFIG_X86_BIGSMP is not set CONFIG_X86_EXTENDED_PLATFORM=y -# CONFIG_X86_ELAN is not set -# CONFIG_X86_MRST is not set +# CONFIG_X86_WANT_INTEL_MID is not set # CONFIG_X86_RDC321X is not set # CONFIG_X86_32_NON_STANDARD is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_X86_32_IRIS is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y -CONFIG_VMI=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +# CONFIG_XEN_PRIVILEGED_GUEST is not set CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y CONFIG_LGUEST_GUEST=y @@ -220,6 +283,7 @@ CONFIG_PARAVIRT=y CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_PARAVIRT_DEBUG is not set +CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set # CONFIG_M386 is not set # CONFIG_M486 is not set @@ -238,21 +302,20 @@ CONFIG_M586TSC=y # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP3D is not set +# CONFIG_MELAN is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set -# CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set -# CONFIG_GENERIC_CPU is not set CONFIG_X86_GENERIC=y -CONFIG_X86_CPU=y -CONFIG_X86_L1_CACHE_BYTES=64 -CONFIG_X86_INTERNODE_CACHE_BYTES=64 +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y -CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_CMPXCHG_LOCAL=y +CONFIG_CMPXCHG_DOUBLE=y +CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_PPRO_FENCE=y CONFIG_X86_F00F_BUG=y @@ -274,7 +337,6 @@ CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y # CONFIG_IOMMU_HELPER is not set -CONFIG_IOMMU_API=y CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -308,40 +370,44 @@ CONFIG_HIGHMEM4G=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y -# CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y +CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y # CONFIG_MEMORY_FAILURE is not set +# CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_CLEANCACHE is not set # CONFIG_HIGHPTE is not set # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_X86_RESERVE_LOW=64 CONFIG_MATH_EMULATION=y CONFIG_MTRR=y # CONFIG_MTRR_SANITIZER is not set -# CONFIG_X86_PAT is not set +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y # CONFIG_EFI is not set CONFIG_SECCOMP=y -# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_300=y @@ -361,20 +427,19 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set CONFIG_ACPI_PROCFS_POWER=y -CONFIG_ACPI_POWER_METER=m -CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_EC_DEBUGFS=m CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m @@ -383,6 +448,7 @@ CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=m @@ -394,6 +460,8 @@ CONFIG_ACPI_PCI_SLOT=m CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_APEI is not set # CONFIG_SFI is not set CONFIG_X86_APM_BOOT=y CONFIG_APM=m @@ -408,11 +476,9 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -# CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set @@ -423,8 +489,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # -# CPUFreq processor drivers +# x86 CPU frequency scaling drivers # +CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_POWERNOW_K6=m CONFIG_X86_POWERNOW_K7=m @@ -449,6 +516,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) @@ -457,28 +525,30 @@ CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set -# CONFIG_PCI_GOOLPC is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y -CONFIG_DMAR=y -CONFIG_DMAR_DEFAULT_ON=y -CONFIG_DMAR_FLOPPY_WA=y +# CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y -CONFIG_PCI_LEGACY=y # CONFIG_PCI_DEBUG is not set CONFIG_PCI_STUB=m CONFIG_HT_IRQ=y +CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_IOAPIC=y +CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y @@ -492,12 +562,11 @@ CONFIG_MCA_LEGACY=y CONFIG_SCx200=m CONFIG_SCx200HR_TIMER=m # CONFIG_OLPC is not set -CONFIG_K8_NB=y +CONFIG_ALIX=y +CONFIG_AMD_NB=y CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y # @@ -514,8 +583,9 @@ CONFIG_I82092=m CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y -CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCCARD_NONSTATIC=y # CONFIG_HOTPLUG_PCI is not set +# CONFIG_RAPIDIO is not set # # Executable file formats / Emulations @@ -526,13 +596,13 @@ CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y # # Networking options # CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -545,17 +615,18 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y @@ -584,15 +655,10 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -607,12 +673,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -625,9 +693,10 @@ CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -636,7 +705,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m @@ -644,10 +715,24 @@ CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m @@ -655,28 +740,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m @@ -685,7 +780,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_SOCKET=m CONFIG_NETFILTER_XT_MATCH_STATE=m @@ -696,7 +790,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -707,8 +801,10 @@ CONFIG_IP_VS_TAB_BITS=12 # # CONFIG_IP_VS_PROTO_TCP is not set # CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set # # IPVS scheduler @@ -727,6 +823,7 @@ CONFIG_IP_VS_TAB_BITS=12 # # IPVS application helper # +# CONFIG_IP_VS_NFCT is not set # # IP: Netfilter Configuration @@ -736,7 +833,6 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -774,6 +870,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # +CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m @@ -823,9 +920,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -848,6 +950,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y # @@ -860,6 +963,7 @@ CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m @@ -867,6 +971,9 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_INGRESS=m # @@ -876,7 +983,6 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y @@ -899,11 +1005,18 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set +CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y # # Network testing @@ -959,8 +1072,8 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -977,6 +1090,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m @@ -988,19 +1102,25 @@ CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m @@ -1010,9 +1130,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set @@ -1020,7 +1140,13 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m # CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set # # Device Drivers @@ -1039,12 +1165,11 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set CONFIG_MTD_AR7_PARTS=m @@ -1060,7 +1185,9 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +CONFIG_SM_FTL=m # CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set # # RAM/ROM/Flash chip drivers @@ -1106,6 +1233,9 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND is not set # CONFIG_MTD_ONENAND is not set @@ -1114,18 +1244,10 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# # CONFIG_MTD_UBI_DEBUG is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m @@ -1158,7 +1280,9 @@ CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m @@ -1171,16 +1295,35 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_ATA_OVER_ETH=m CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m +CONFIG_CS5535_MFGPT=m +CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 +CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_VMWARE_BALLOON=m +CONFIG_BMP085=m +CONFIG_PCH_PHUB=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -1194,13 +1337,28 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # -CONFIG_RAID_ATTRS=y +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set @@ -1234,15 +1392,19 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m CONFIG_SCSI_7000FASST=m CONFIG_SCSI_ACARD=m CONFIG_SCSI_AHA152X=m @@ -1268,11 +1430,12 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_IN2000=m CONFIG_SCSI_ARCMSR=m -# CONFIG_SCSI_ARCMSR_AER is not set CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=m CONFIG_MEGARAID_MAILBOX=m @@ -1284,6 +1447,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_FLASHPOINT=y +CONFIG_VMWARE_PVSCSI=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m @@ -1297,6 +1461,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m +CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m CONFIG_SCSI_GENERIC_NCR53C400=y @@ -1344,6 +1509,7 @@ CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y @@ -1366,30 +1532,48 @@ CONFIG_ATA=m CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# CONFIG_ATA_PIIX=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ACPI=m + +# +# PATA SFF controllers with BMDMA +# CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m @@ -1397,42 +1581,53 @@ CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_ISAPNP=m -CONFIG_PATA_IT821X=m CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m -CONFIG_PATA_LEGACY=m -CONFIG_PATA_TRIFLEX=m CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m +CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_QDI=m CONFIG_PATA_RADISYS=m CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_QDI=m +CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m -CONFIG_PATA_SCH=m + +# +# Generic fallback / legacy drivers +# +CONFIG_PATA_ACPI=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_LEGACY=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1441,15 +1636,19 @@ CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m # CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m @@ -1457,6 +1656,8 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -1468,27 +1669,18 @@ CONFIG_FUSION_CTL=m # # IEEE 1394 (FireWire) support # - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set +# CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1496,58 +1688,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m -CONFIG_NET_SB1000=m +CONFIG_VIRTIO_NET=m +CONFIG_SUNGEM_PHY=m # CONFIG_ARCNET is not set -CONFIG_PHYLIB=y +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +CONFIG_ATM_ENI_DEBUG=y +CONFIG_ATM_ENI_TUNE_BURST=y +CONFIG_ATM_ENI_BURST_TX_16W=y +CONFIG_ATM_ENI_BURST_TX_8W=y +CONFIG_ATM_ENI_BURST_TX_4W=y +CONFIG_ATM_ENI_BURST_TX_2W=y +CONFIG_ATM_ENI_BURST_RX_16W=y +CONFIG_ATM_ENI_BURST_RX_8W=y +CONFIG_ATM_ENI_BURST_RX_4W=y +CONFIG_ATM_ENI_BURST_RX_2W=y +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_SOLOS=m # -# MII PHY device drivers +# CAIF transport drivers # -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m +CONFIG_ETHERNET=y +CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=m -CONFIG_EL2=m -CONFIG_ELPLUS=m -CONFIG_EL16=m CONFIG_EL3=m CONFIG_3C515=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m CONFIG_LANCE=m -CONFIG_NET_VENDOR_SMC=y -CONFIG_WD80x3=m -CONFIG_ULTRAMCA=m -CONFIG_ULTRA=m -CONFIG_ULTRA32=m -CONFIG_SMC9194=m -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_RACAL=y -CONFIG_NI52=m +CONFIG_PCNET32=m +CONFIG_DEPCA=m +CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y +CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 @@ -1560,170 +1808,197 @@ CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_FUJITSU=y CONFIG_AT1700=m -CONFIG_DEPCA=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_ETH16I=m +CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_ISA=y -CONFIG_E2100=m -CONFIG_EWRK3=m +CONFIG_NET_VENDOR_IBM=y +# CONFIG_IBM_EMAC_ZMII is not set +# CONFIG_IBM_EMAC_RGMII is not set +# CONFIG_IBM_EMAC_TAH is not set +# CONFIG_IBM_EMAC_EMAC4 is not set +# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGB_DCA=y +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBEVF=m +CONFIG_NET_VENDOR_I825XX=y +CONFIG_ELPLUS=m +CONFIG_EL16=m +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_APRICOT=m CONFIG_EEXPRESS=m CONFIG_EEXPRESS_PRO=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m CONFIG_LP486E=m -CONFIG_ETH16I=m -CONFIG_NE2000=m +CONFIG_NI52=m CONFIG_ZNET=m -CONFIG_SEEQ8005=m -CONFIG_NE2_MCA=m +CONFIG_IP1000=m +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_SKGE=m +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y CONFIG_IBMLANA=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_8390=y +CONFIG_EL2=m CONFIG_AC3200=m -CONFIG_APRICOT=m -CONFIG_B44=m -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_CS89x0=m -CONFIG_E100=m +CONFIG_PCMCIA_AXNET=m +CONFIG_E2100=m +CONFIG_ES3210=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPLAN=m CONFIG_LNE390=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m +CONFIG_NE2000=m +CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m CONFIG_NE3210=m -CONFIG_ES3210=m +CONFIG_PCMCIA_PCNET=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_WD80x3=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m +CONFIG_NET_VENDOR_OKI=y +CONFIG_PCH_GBE=m +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m +CONFIG_SIS190=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC9194=m +CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGB_DCA=y -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGBE_DCA=y -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AIRO=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_NET_SB1000=m +CONFIG_PHYLIB=y # -# Enable WiMAX (Networking options) to see the WiMAX drivers +# MII PHY device drivers # +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +# CONFIG_TR is not set # # USB Network Adapters @@ -1736,7 +2011,9 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m @@ -1751,131 +2028,96 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m -CONFIG_WAN=y -CONFIG_HOSTESS_SV11=m -CONFIG_COSA=m -CONFIG_LANMEDIA=m -CONFIG_SEALEVEL_4021=m -CONFIG_HDLC=m -CONFIG_HDLC_RAW=m -CONFIG_HDLC_RAW_ETH=m -CONFIG_HDLC_CISCO=m -CONFIG_HDLC_FR=m -CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_VIRTIO_NET=m -CONFIG_VMXNET3=m -CONFIG_ISDN=y -CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_PCMCIA_RAYCS=m +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AIRO=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set # -# mISDN hardware drivers +# Enable WiMAX (Networking options) to see the WiMAX drivers # -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m +CONFIG_WAN=y +CONFIG_HOSTESS_SV11=m +CONFIG_COSA=m +CONFIG_LANMEDIA=m +CONFIG_SEALEVEL_4021=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_WANXL_BUILD_FIRMWARE is not set +CONFIG_PC300TOO=m +CONFIG_N2=m +CONFIG_C101=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_SDLA=m +CONFIG_SBNI=m +CONFIG_SBNI_MULTILINE=y +CONFIG_VMXNET3=m +CONFIG_ISDN=y +CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y @@ -1966,16 +2208,11 @@ CONFIG_ISDN_DRV_ICN=m CONFIG_ISDN_DRV_PCBIT=m CONFIG_ISDN_DRV_SC=m CONFIG_ISDN_DRV_ACT2000=m -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m # @@ -1998,10 +2235,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_ISDN_HDLC=m # CONFIG_PHONE is not set # @@ -2010,6 +2270,7 @@ CONFIG_GIGASET_M101=m CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m # # Userland interfaces @@ -2027,11 +2288,19 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_STOWAWAY=m @@ -2042,20 +2311,27 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m CONFIG_INPUT_PCSPKR=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set -CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m # CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_WINBOND_CIR=m CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set # # Hardware I/O ports @@ -2068,6 +2344,8 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m # CONFIG_GAMEPORT is not set # @@ -2076,11 +2354,17 @@ CONFIG_SERIO_LIBPS2=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y # # Serial drivers @@ -2108,12 +2392,18 @@ CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m @@ -2150,7 +2440,6 @@ CONFIG_MWAVE=m CONFIG_SCx200_GPIO=m CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -CONFIG_CS5535_GPIO=m # CONFIG_RAW_DRIVER is not set CONFIG_HPET=y CONFIG_HPET_MMAP=y @@ -2158,11 +2447,21 @@ CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y +# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m @@ -2198,40 +2497,36 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_INTEL_MID=m CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m +CONFIG_I2C_EG20T=m # # External I2C/SMBus adapter drivers # +CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m -# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - # # Other I2C/SMBus bus drivers # CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_STUB=m # CONFIG_SCx200_I2C is not set CONFIG_SCx200_ACB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set # @@ -2239,8 +2534,73 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_VX855=m + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_ADP5588=m + +# +# PCI GPIO expanders: +# +CONFIG_GPIO_CS5535=m +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_LANGWELL is not set +CONFIG_GPIO_PCH=m +CONFIG_GPIO_ML_IOH=m +# CONFIG_GPIO_TIMBERDALE is not set +CONFIG_GPIO_RDC321X=m + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_JANZ_TTL=m CONFIG_W1=m CONFIG_W1_CON=y @@ -2250,27 +2610,37 @@ CONFIG_W1_CON=y CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_GPIO=m # # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -2288,13 +2658,17 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_FAM15H_POWER=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m @@ -2304,11 +2678,15 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m @@ -2319,23 +2697,55 @@ CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m @@ -2343,34 +2753,35 @@ CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_APPLESMC=m # # ACPI drivers # +CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m -CONFIG_SENSORS_LIS3LV02D=m CONFIG_THERMAL=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_F71808E_WDT=m +CONFIG_SP5100_TCO=m +CONFIG_GEODE_WDT=m CONFIG_SC520_WDT=m CONFIG_SBC_FITPC2_WATCHDOG=m CONFIG_EUROTECH_WDT=m @@ -2383,9 +2794,11 @@ CONFIG_ITCO_WDT=m CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m +CONFIG_HPWDT_NMI_DECODING=y CONFIG_SC1200_WDT=m CONFIG_SCx200_WDT=m CONFIG_PC87413_WDT=m +CONFIG_NV_TCO=m CONFIG_60XX_WDT=m CONFIG_SBC8360_WDT=m CONFIG_SBC7240_WDT=m @@ -2434,74 +2847,136 @@ CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +# CONFIG_BCMA_HOST_PCI is not set +# CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # CONFIG_MFD_CORE=m CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_CS5535=m +CONFIG_MFD_TIMBERDALE=m +CONFIG_LPC_SCH=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # +CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # -# CONFIG_MEDIA_ATTACH is not set +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_ENE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_ITE_CIR is not set +# CONFIG_IR_FINTEK is not set +# CONFIG_IR_NUVOTON is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_IR_WINBOND_CIR is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m # -# Encoders/decoders and other helper chips +# Encoders, decoders, sensors and other helper chips # # -# Audio decoders +# Audio decoders, processors and mixers # # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set @@ -2520,19 +2995,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_SAA7191 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_VPX3220 is not set # # Video and audio decoders # +# CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_CX25840 is not set # @@ -2547,29 +3021,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set # # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_VIDEO_PMS is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set +# CONFIG_VIDEO_MEYE is not set # CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_CX88 is not set # CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_CX25821 is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_CX18 is not set # CONFIG_VIDEO_SAA7164 is not set # CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_VIA_CAMERA is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set @@ -2578,24 +3085,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set # CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set +# CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_CADET is not set # CONFIG_RADIO_RTRACK is not set # CONFIG_RADIO_RTRACK2 is not set # CONFIG_RADIO_AZTECH is not set # CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set +# CONFIG_RADIO_MIROPCM20 is not set # CONFIG_RADIO_SF16FMI is not set # CONFIG_RADIO_SF16FMR2 is not set # CONFIG_RADIO_TERRATEC is not set @@ -2608,6 +3116,15 @@ CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_TIMBERDALE is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y @@ -2646,17 +3163,76 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # # CONFIG_DVB_DM1105 is not set +# +# Supported FireWire (IEEE 1394) Adapters +# +# CONFIG_DVB_FIREDTV is not set + # # Supported Earthsoft PT1 Adapters # # CONFIG_DVB_PT1 is not set +# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + # # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set # # Graphics support @@ -2673,20 +3249,24 @@ CONFIG_AGP_SWORKS=m CONFIG_AGP_VIA=m CONFIG_AGP_EFFICEON=m CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_TTM=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y CONFIG_DRM_I810=m -CONFIG_DRM_I830=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m +CONFIG_DRM_VMWGFX=m +CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -2702,6 +3282,7 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -2716,6 +3297,7 @@ CONFIG_FB_CIRRUS=m CONFIG_FB_PM2=m CONFIG_FB_PM2_FIFO_DISCONNECT=y CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y # CONFIG_FB_ARC is not set CONFIG_FB_ASILIANT=y # CONFIG_FB_IMSTT is not set @@ -2756,6 +3338,7 @@ CONFIG_FB_ATY_CT=y CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_BACKLIGHT=y CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y @@ -2763,6 +3346,8 @@ CONFIG_FB_SIS=m CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +# CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m CONFIG_FB_3DFX=m @@ -2781,21 +3366,24 @@ CONFIG_FB_GEODE_GX1=m CONFIG_FB_TMIO=m CONFIG_FB_TMIO_ACCELL=y CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set CONFIG_FB_METRONOME=m # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PROGEAR=m CONFIG_BACKLIGHT_CARILLO_RANCH=m -CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_APPLE=m CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_PCF50633=m # # Display device support @@ -2814,7 +3402,7 @@ CONFIG_VGA_CONSOLE=y # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -2829,6 +3417,9 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y @@ -2836,137 +3427,191 @@ CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y -# CONFIG_SND_RAWMIDI_SEQ is not set -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y # CONFIG_SND_PCSP is not set CONFIG_SND_DUMMY=m -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_MTS64 is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -# CONFIG_SND_PORTMAN2X4 is not set +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_WSS_LIB=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SB16_DSP=m CONFIG_SND_ISA=y -# CONFIG_SND_ADLIB is not set -# CONFIG_SND_AD1816A is not set -# CONFIG_SND_AD1848 is not set -# CONFIG_SND_ALS100 is not set -# CONFIG_SND_AZT2320 is not set -# CONFIG_SND_CMI8330 is not set -# CONFIG_SND_CS4231 is not set -# CONFIG_SND_CS4236 is not set -# CONFIG_SND_DT019X is not set -# CONFIG_SND_ES968 is not set -# CONFIG_SND_ES1688 is not set -# CONFIG_SND_ES18XX is not set -# CONFIG_SND_SC6000 is not set -# CONFIG_SND_GUSCLASSIC is not set -# CONFIG_SND_GUSEXTREME is not set -# CONFIG_SND_GUSMAX is not set -# CONFIG_SND_INTERWAVE is not set -# CONFIG_SND_INTERWAVE_STB is not set -# CONFIG_SND_OPL3SA2 is not set -# CONFIG_SND_OPTI92X_AD1848 is not set -# CONFIG_SND_OPTI92X_CS4231 is not set -# CONFIG_SND_OPTI93X is not set -# CONFIG_SND_MIRO is not set -# CONFIG_SND_SB8 is not set -# CONFIG_SND_SB16 is not set -# CONFIG_SND_SBAWE is not set -# CONFIG_SND_SGALAXY is not set -# CONFIG_SND_SSCAPE is not set -# CONFIG_SND_WAVEFRONT is not set -# CONFIG_SND_MSND_PINNACLE is not set -# CONFIG_SND_MSND_CLASSIC is not set +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_SC6000=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_JAZZ16=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5530 is not set -# CONFIG_SND_CS5535AUDIO is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_HIFIER is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SIS7019 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_US122L is not set +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HIDRAW is not set @@ -2982,45 +3627,82 @@ CONFIG_USB_HIDDEV=y # Special HID drivers # CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y +# CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y +# CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y +# CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y +# CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3032,6 +3714,8 @@ CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -3041,32 +3725,28 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set # CONFIG_USB_SL811_CS is not set CONFIG_USB_R8A66597_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m -# -# Enable Host or Gadget support to see Inventra options -# - # # USB Device Class drivers # @@ -3084,7 +3764,9 @@ CONFIG_USB_TMC=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m @@ -3095,6 +3777,8 @@ CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m # CONFIG_USB_LIBUSUAL is not set # @@ -3120,12 +3804,12 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -3135,11 +3819,13 @@ CONFIG_USB_SERIAL_IUU=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m @@ -3151,9 +3837,13 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_SERIAL_DEBUG is not set # @@ -3166,7 +3856,6 @@ CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m @@ -3180,7 +3869,7 @@ CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m +CONFIG_USB_YUREX=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -3192,21 +3881,22 @@ CONFIG_USB_XUSBATM=m # OTG and related infrastructure # CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=m @@ -3216,15 +3906,15 @@ CONFIG_MMC_TEST=m # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m +# CONFIG_MMC_RICOH_MMC is not set CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_WBSD=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set @@ -3239,30 +3929,39 @@ CONFIG_MSPRO_BLOCK=m # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y # # LED drivers # +CONFIG_LEDS_LM3530=m CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_NET5501=m CONFIG_LEDS_WRAP=m -CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m +CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_TRIGGERS=y # # LED Triggers # -CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # @@ -3272,8 +3971,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set -CONFIG_RTC_LIB=m -CONFIG_RTC_CLASS=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set # # RTC interfaces @@ -3282,7 +3984,7 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m +# CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers @@ -3290,18 +3992,23 @@ CONFIG_RTC_DRV_TEST=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers @@ -3310,7 +4017,7 @@ CONFIG_RTC_DRV_RX8025=m # # Platform RTC drivers # -CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m @@ -3319,23 +4026,25 @@ CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m # # on-CPU RTC drivers # CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # -CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y +CONFIG_INTEL_MID_DMAC=m CONFIG_INTEL_IOATDMA=m +CONFIG_TIMB_DMA=m +CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y # @@ -3350,98 +4059,153 @@ CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_RING=y # -# TI VLYNQ +# Virtio drivers # +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_MMIO=m CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set CONFIG_SLICOSS=m -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_RT2860 is not set -# CONFIG_RT2870 is not set -# CONFIG_RT3090 is not set # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set # CONFIG_RTL8192E is not set +# CONFIG_R8712U is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set # CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set # CONFIG_LINE6_USB is not set -# CONFIG_DRM_RADEON_KMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -CONFIG_HYPERV=m CONFIG_HYPERV_STORAGE=m -CONFIG_HYPERV_BLOCK=m CONFIG_HYPERV_NET=m +CONFIG_HYPERV_MOUSE=m # CONFIG_VME_BUS is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set +# CONFIG_DX_SEP is not set # CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_WLAGS49_H2 is not set +# CONFIG_WLAGS49_H25 is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_CXT1E1 is not set +# CONFIG_FB_XGI is not set +# CONFIG_ACPI_QUICKSTART is not set +# CONFIG_SBE_2T3E3 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_DRM_PSB is not set +CONFIG_INTEL_MEI=m +# CONFIG_STAGING_MEDIA is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m +CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_LAPTOP_DEBUG=y CONFIG_TC1100_WMI=m +CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m # CONFIG_SONYPI_COMPAT is not set +CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_SENSORS_HDAPS=m CONFIG_INTEL_MENLOW=m CONFIG_ACPI_WMI=m +CONFIG_MSI_WMI=m CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_ACPI_CMPC=m +CONFIG_INTEL_IPS=m +CONFIG_IBM_RTL=m +CONFIG_XO15_EBOOK=m +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_MXM_WMI=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_SAMSUNG_Q10=m + +# +# Hardware Spinlock drivers +# +CONFIG_CLKSRC_I8253=y +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_DMAR_TABLE=y +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_VIRT_DRIVERS=y +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_USERSPACE=y + +# +# DEVFREQ Drivers +# # # Firmware Drivers @@ -3451,32 +4215,25 @@ CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m +CONFIG_SIGMA=m +# CONFIG_GOOGLE_FIRMWARE is not set # # File systems # -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y @@ -3488,29 +4245,29 @@ CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -3556,6 +4313,7 @@ CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set @@ -3584,6 +4342,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set # CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -3592,8 +4351,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m @@ -3602,6 +4364,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y @@ -3609,15 +4374,12 @@ CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y @@ -3627,7 +4389,8 @@ CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -3642,7 +4405,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3694,13 +4457,13 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -3709,12 +4472,13 @@ CONFIG_STRIP_ASM_SYMS=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y @@ -3730,9 +4494,11 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -3742,6 +4508,7 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set @@ -3749,10 +4516,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y # CONFIG_FRAME_POINTER is not set # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set @@ -3765,27 +4534,30 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set # CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y +# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_X86_PTDUMP is not set CONFIG_DEBUG_RODATA=y CONFIG_DEBUG_RODATA_TEST=y +# CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_DEBUG_NX_TEST is not set -# CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y @@ -3800,17 +4572,20 @@ CONFIG_IO_DELAY_0X80=y CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set # CONFIG_INTEL_TXT is not set -# CONFIG_IMA is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m @@ -3824,7 +4599,6 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m @@ -3835,11 +4609,15 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m @@ -3876,7 +4654,7 @@ CONFIG_CRYPTO_VMAC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m @@ -3894,9 +4672,11 @@ CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3923,6 +4703,9 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m @@ -3934,39 +4717,49 @@ CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_MMIO=y +CONFIG_KVM_ASYNC_PF=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m +CONFIG_VHOST_NET=m CONFIG_LGUEST=m -CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_BALLOON=m # CONFIG_BINARY_PRINTF is not set # # Library routines # +CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -3975,4 +4768,7 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y CONFIG_NLATTR=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.i586-ipfire-pae b/config/kernel/kernel.config.i586-ipfire-pae index 4b23df337a..6f39769a28 100644 --- a/config/kernel/kernel.config.i586-ipfire-pae +++ b/config/kernel/kernel.config.i586-ipfire-pae @@ -1,15 +1,14 @@ # -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.41-ipfire-pae -# Sat May 31 15:00:00 2011 +# Automatically generated file; DO NOT EDIT. +# Linux/i386 3.2.35 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y @@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y @@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set @@ -44,34 +45,34 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y -CONFIG_GENERIC_HARDIRQS=y -CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y -CONFIG_X86_TRAMPOLINE=y -CONFIG_X86_32_LAZY_GS=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -CONFIG_CONSTRUCTORS=y +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y # # General setup # CONFIG_EXPERIMENTAL=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y @@ -79,52 +80,73 @@ CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y -# CONFIG_TASKSTATS is not set +# CONFIG_FHANDLE is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +# CONFIG_TASK_XACCT is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y # # RCU Subsystem # CONFIG_TREE_RCU=y -# CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 # CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_CGROUPS is not set -CONFIG_SYSFS_DEPRECATED=y -CONFIG_SYSFS_DEPRECATED_V2=y -# CONFIG_RELAY is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y -# CONFIG_EMBEDDED is not set +# CONFIG_EXPERT is not set CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set -# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -133,35 +155,46 @@ CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y +# CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # # Kernel Performance Events And Counters # -# CONFIG_PERF_EVENTS is not set +CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y -# CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y # # GCOV-based kernel profiling # -CONFIG_SLOW_WORK=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -175,22 +208,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y -# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y -# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PADATA=y +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_INLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +CONFIG_INLINE_READ_UNLOCK=y +# CONFIG_INLINE_READ_UNLOCK_BH is not set +CONFIG_INLINE_READ_UNLOCK_IRQ=y +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +CONFIG_INLINE_WRITE_UNLOCK=y +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y # @@ -200,23 +262,25 @@ CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_SMP=y -CONFIG_SPARSE_IRQ=y -CONFIG_NUMA_IRQ_DESC=y CONFIG_X86_MPPARSE=y CONFIG_X86_BIGSMP=y CONFIG_X86_EXTENDED_PLATFORM=y -# CONFIG_X86_ELAN is not set -# CONFIG_X86_MRST is not set +# CONFIG_X86_WANT_INTEL_MID is not set # CONFIG_X86_RDC321X is not set # CONFIG_X86_32_NON_STANDARD is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_X86_32_IRIS is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set CONFIG_XEN=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=8 +CONFIG_XEN_DOM0=y +CONFIG_XEN_PRIVILEGED_GUEST=y +CONFIG_XEN_PVHVM=y +CONFIG_XEN_MAX_DOMAIN_MEMORY=128 CONFIG_XEN_SAVE_RESTORE=y -CONFIG_VMI=y CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y CONFIG_LGUEST_GUEST=y @@ -224,6 +288,7 @@ CONFIG_PARAVIRT=y CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_PARAVIRT_DEBUG is not set +CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set # CONFIG_M386 is not set # CONFIG_M486 is not set @@ -242,21 +307,20 @@ CONFIG_M586TSC=y # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP3D is not set +# CONFIG_MELAN is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set -# CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set -# CONFIG_GENERIC_CPU is not set CONFIG_X86_GENERIC=y -CONFIG_X86_CPU=y -CONFIG_X86_L1_CACHE_BYTES=64 -CONFIG_X86_INTERNODE_CACHE_BYTES=64 +CONFIG_X86_INTERNODE_CACHE_SHIFT=7 CONFIG_X86_CMPXCHG=y -CONFIG_X86_L1_CACHE_SHIFT=5 +CONFIG_CMPXCHG_LOCAL=y +CONFIG_CMPXCHG_DOUBLE=y +CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_PPRO_FENCE=y CONFIG_X86_F00F_BUG=y @@ -278,8 +342,8 @@ CONFIG_CPU_SUP_UMC_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y -# CONFIG_IOMMU_HELPER is not set -CONFIG_IOMMU_API=y +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y CONFIG_NR_CPUS=256 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -314,19 +378,20 @@ CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_X86_PAE=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_NUMA=y +# CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=3 CONFIG_HAVE_ARCH_BOOTMEM=y +CONFIG_HAVE_ARCH_ALLOC_REMAP=y CONFIG_ARCH_HAVE_MEMORY_PRESENT=y CONFIG_NEED_NODE_MEMMAP_SIZE=y -CONFIG_HAVE_ARCH_ALLOC_REMAP=y CONFIG_ARCH_DISCONTIGMEM_ENABLE=y CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0 CONFIG_SELECT_MEMORY_MODEL=y -# CONFIG_FLATMEM_MANUAL is not set CONFIG_DISCONTIGMEM_MANUAL=y # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_DISCONTIGMEM=y @@ -334,30 +399,34 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_NEED_MULTIPLE_NODES=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_STATIC=y +CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y -CONFIG_HAVE_MLOCK=y -CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y # CONFIG_MEMORY_FAILURE is not set +# CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_CLEANCACHE is not set # CONFIG_HIGHPTE is not set # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_X86_RESERVE_LOW=64 CONFIG_MATH_EMULATION=y CONFIG_MTRR=y # CONFIG_MTRR_SANITIZER is not set -# CONFIG_X86_PAT is not set +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y # CONFIG_EFI is not set CONFIG_SECCOMP=y -# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_300=y @@ -373,25 +442,25 @@ CONFIG_HOTPLUG_CPU=y CONFIG_COMPAT_VDSO=y # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set +CONFIG_USE_PERCPU_NUMA_NODE_ID=y # # Power management and ACPI options # -CONFIG_PM=y -# CONFIG_PM_DEBUG is not set -CONFIG_PM_SLEEP_SMP=y -CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATE_CALLBACKS=y # CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set CONFIG_ACPI_PROCFS_POWER=y -CONFIG_ACPI_POWER_METER=m -CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_EC_DEBUGFS=m CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m @@ -400,6 +469,7 @@ CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=m @@ -412,6 +482,8 @@ CONFIG_ACPI_PCI_SLOT=m CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_APEI is not set # CONFIG_SFI is not set CONFIG_X86_APM_BOOT=y CONFIG_APM=m @@ -426,11 +498,9 @@ CONFIG_APM_CPU_IDLE=y # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y -# CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set @@ -441,8 +511,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # -# CPUFreq processor drivers +# x86 CPU frequency scaling drivers # +CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_POWERNOW_K6=m CONFIG_X86_POWERNOW_K7=m @@ -467,6 +538,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) @@ -475,28 +547,32 @@ CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set -# CONFIG_PCI_GOOLPC is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y -CONFIG_DMAR=y -CONFIG_DMAR_DEFAULT_ON=y -CONFIG_DMAR_FLOPPY_WA=y +# CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y -CONFIG_PCI_LEGACY=y # CONFIG_PCI_DEBUG is not set CONFIG_PCI_STUB=m +CONFIG_XEN_PCIDEV_FRONTEND=y CONFIG_HT_IRQ=y +CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_IOAPIC=y +CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_EISA=y @@ -509,13 +585,11 @@ CONFIG_MCA_LEGACY=y # CONFIG_MCA_PROC_FS is not set CONFIG_SCx200=m CONFIG_SCx200HR_TIMER=m -# CONFIG_OLPC is not set -CONFIG_K8_NB=y +CONFIG_ALIX=y +CONFIG_AMD_NB=y CONFIG_PCCARD=m -# CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y -CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y # @@ -532,8 +606,9 @@ CONFIG_I82092=m CONFIG_I82365=m CONFIG_TCIC=m CONFIG_PCMCIA_PROBE=y -CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCCARD_NONSTATIC=y # CONFIG_HOTPLUG_PCI is not set +# CONFIG_RAPIDIO is not set # # Executable file formats / Emulations @@ -544,13 +619,13 @@ CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y # # Networking options # CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m @@ -563,17 +638,18 @@ CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set -CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_ARPD=y @@ -602,15 +678,10 @@ CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_CUBIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_WESTWOOD is not set CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -625,12 +696,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETWORK_SECMARK is not set +CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y @@ -643,9 +716,10 @@ CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m @@ -654,7 +728,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m @@ -662,10 +738,24 @@ CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_TPROXY=m CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_CONNMARK=m + +# +# Xtables targets +# +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_NETFILTER_XT_TARGET_MARK=m @@ -673,28 +763,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m @@ -703,7 +803,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m -CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_SOCKET=m CONFIG_NETFILTER_XT_MATCH_STATE=m @@ -714,7 +813,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m -CONFIG_NETFILTER_XT_MATCH_OSF=m +# CONFIG_IP_SET is not set CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set @@ -725,8 +824,10 @@ CONFIG_IP_VS_TAB_BITS=12 # # CONFIG_IP_VS_PROTO_TCP is not set # CONFIG_IP_VS_PROTO_UDP is not set +# CONFIG_IP_VS_PROTO_AH_ESP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set +# CONFIG_IP_VS_PROTO_SCTP is not set # # IPVS scheduler @@ -745,6 +846,7 @@ CONFIG_IP_VS_TAB_BITS=12 # # IPVS application helper # +# CONFIG_IP_VS_NFCT is not set # # IP: Netfilter Configuration @@ -754,7 +856,6 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m @@ -792,6 +893,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m # # IPv6: Netfilter Configuration # +CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m @@ -841,9 +943,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y # CONFIG_ATM_LANE is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_L2TP=m +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=m +CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -866,6 +973,7 @@ CONFIG_LLC=m # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m CONFIG_NET_SCHED=y # @@ -878,6 +986,7 @@ CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m @@ -885,6 +994,9 @@ CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_INGRESS=m # @@ -894,7 +1006,6 @@ CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y @@ -917,11 +1028,18 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m -# CONFIG_NET_ACT_SIMP is not set +CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +CONFIG_BATMAN_ADV=m +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y # # Network testing @@ -977,8 +1095,8 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -995,6 +1113,7 @@ CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m @@ -1006,19 +1125,25 @@ CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m CONFIG_BT_MRVL=m CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +CONFIG_BT_WILINK=m CONFIG_AF_RXRPC=m # CONFIG_AF_RXRPC_DEBUG is not set CONFIG_RXKAD=m CONFIG_FIB_RULES=y CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_DEFAULT_PS is not set -CONFIG_CFG80211_DEFAULT_PS_VALUE=0 -CONFIG_WIRELESS_OLD_REGULATORY=y -CONFIG_WIRELESS_EXT=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m @@ -1028,9 +1153,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y -# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y -CONFIG_MAC80211_RC_DEFAULT="minstrel" +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUG_MENU is not set @@ -1038,7 +1163,13 @@ CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_REGULATOR=m # CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set +# CONFIG_NFC is not set # # Device Drivers @@ -1057,12 +1188,11 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=m CONFIG_CONNECTOR=m CONFIG_MTD=m -# CONFIG_MTD_DEBUG is not set CONFIG_MTD_TESTS=m -CONFIG_MTD_CONCAT=m -CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set CONFIG_MTD_AR7_PARTS=m @@ -1078,7 +1208,9 @@ CONFIG_MTD_BLOCK=m # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set +CONFIG_SM_FTL=m # CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set # # RAM/ROM/Flash chip drivers @@ -1124,6 +1256,9 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=m +# CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND is not set # CONFIG_MTD_ONENAND is not set @@ -1132,18 +1267,10 @@ CONFIG_MTD_PHYSMAP=m # CONFIG_MTD_LPDDR=m CONFIG_MTD_QINFO_PROBE=m - -# -# UBI - Unsorted block images -# CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set - -# -# UBI debugging options -# # CONFIG_MTD_UBI_DEBUG is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m @@ -1176,7 +1303,9 @@ CONFIG_BLK_DEV_DAC960=m # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m @@ -1188,18 +1317,38 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 # CONFIG_CDROM_PKTCDVD is not set CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_BLKDEV_BACKEND=y CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_RBD=m +CONFIG_SENSORS_LIS3LV02D=m CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set +# CONFIG_INTEL_MID_PTI is not set # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_ICS932S401=m CONFIG_ENCLOSURE_SERVICES=m +CONFIG_CS5535_MFGPT=m +CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 +CONFIG_CS5535_CLOCK_EVENT_SRC=m CONFIG_HP_ILO=m +CONFIG_APDS9802ALS=m CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_APDS990X=m +CONFIG_HMC6352=m +CONFIG_DS1682=m +CONFIG_VMWARE_BALLOON=m +CONFIG_BMP085=m +CONFIG_PCH_PHUB=m +CONFIG_USB_SWITCH_FSA9480=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -1213,13 +1362,28 @@ CONFIG_EEPROM_93CX6=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_IWMC3200TOP=m +# CONFIG_IWMC3200TOP_DEBUG is not set +# CONFIG_IWMC3200TOP_DEBUGFS is not set + +# +# Texas Instruments shared transport line discipline +# +CONFIG_TI_ST=m +CONFIG_SENSORS_LIS3_I2C=m + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # -CONFIG_RAID_ATTRS=y +CONFIG_SCSI_MOD=m +CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set @@ -1253,15 +1417,19 @@ CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y -CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m +CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m CONFIG_SCSI_7000FASST=m CONFIG_SCSI_ACARD=m CONFIG_SCSI_AHA152X=m @@ -1287,11 +1455,12 @@ CONFIG_SCSI_AIC94XX=m # CONFIG_AIC94XX_DEBUG is not set CONFIG_SCSI_MVSAS=m CONFIG_SCSI_MVSAS_DEBUG=y +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_IN2000=m CONFIG_SCSI_ARCMSR=m -# CONFIG_SCSI_ARCMSR_AER is not set CONFIG_MEGARAID_NEWGEN=y CONFIG_MEGARAID_MM=m CONFIG_MEGARAID_MAILBOX=m @@ -1303,6 +1472,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_FLASHPOINT=y +CONFIG_VMWARE_PVSCSI=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m @@ -1316,6 +1486,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_FD_MCS=m CONFIG_SCSI_GDTH=m +CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m CONFIG_SCSI_GENERIC_NCR53C400=y @@ -1363,6 +1534,7 @@ CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PM8001=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_BFA_FC=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y @@ -1385,30 +1557,48 @@ CONFIG_ATA=m CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# CONFIG_SATA_AHCI=m +CONFIG_SATA_AHCI_PLATFORM=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y -CONFIG_SATA_SVW=m + +# +# SFF controllers with custom DMA interface +# +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_SX4=m +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# CONFIG_ATA_PIIX=m CONFIG_SATA_MV=m CONFIG_SATA_NV=m -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m CONFIG_SATA_PROMISE=m -CONFIG_SATA_SX4=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m -CONFIG_SATA_INIC162X=m -CONFIG_PATA_ACPI=m + +# +# PATA SFF controllers with BMDMA +# CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATP867X=m CONFIG_PATA_ATIIXP=m -CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m @@ -1416,42 +1606,53 @@ CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m CONFIG_PATA_CYPRESS=m CONFIG_PATA_EFAR=m -CONFIG_ATA_GENERIC=m CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m CONFIG_PATA_HPT3X3_DMA=y -CONFIG_PATA_ISAPNP=m -CONFIG_PATA_IT821X=m CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m -CONFIG_PATA_LEGACY=m -CONFIG_PATA_TRIFLEX=m CONFIG_PATA_MARVELL=m -CONFIG_PATA_MPIIX=m -CONFIG_PATA_OLDPIIX=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m -CONFIG_PATA_NS87410=m CONFIG_PATA_NS87415=m -CONFIG_PATA_OPTI=m +CONFIG_PATA_OLDPIIX=m CONFIG_PATA_OPTIDMA=m -CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m -CONFIG_PATA_QDI=m CONFIG_PATA_RADISYS=m CONFIG_PATA_RDC=m -CONFIG_PATA_RZ1000=m CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m -CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m CONFIG_PATA_VIA=m CONFIG_PATA_WINBOND=m + +# +# PIO-only SFF controllers +# +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_QDI=m +CONFIG_PATA_RZ1000=m CONFIG_PATA_WINBOND_VLB=m -CONFIG_PATA_SCH=m + +# +# Generic fallback / legacy drivers +# +CONFIG_PATA_ACPI=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_LEGACY=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m @@ -1460,15 +1661,19 @@ CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m # CONFIG_MULTICORE_RAID456 is not set -CONFIG_MD_RAID6_PQ=m -CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=m +CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m +CONFIG_DM_THIN_PROVISIONING=m +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_SPACE_MAPS is not set CONFIG_DM_MIRROR=m +CONFIG_DM_RAID=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m @@ -1476,6 +1681,8 @@ CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y +CONFIG_DM_FLAKEY=m +# CONFIG_TARGET_CORE is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m CONFIG_FUSION_FC=m @@ -1487,27 +1694,18 @@ CONFIG_FUSION_CTL=m # # IEEE 1394 (FireWire) support # - -# -# You can enable one or both FireWire driver stacks. -# - -# -# See the help texts for more information. -# CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m -# CONFIG_IEEE1394 is not set +# CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y -CONFIG_IFB=m -CONFIG_DUMMY=m +CONFIG_NET_CORE=y CONFIG_BONDING=m -CONFIG_MACVLAN=m +CONFIG_DUMMY=m CONFIG_EQUALIZER=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set @@ -1515,58 +1713,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2 +# CONFIG_NET_FC is not set +CONFIG_MII=m +CONFIG_IEEE802154_DRIVERS=m +CONFIG_IEEE802154_FAKEHARD=m +CONFIG_IFB=m +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set CONFIG_TUN=m CONFIG_VETH=m -CONFIG_NET_SB1000=m +CONFIG_VIRTIO_NET=m +CONFIG_SUNGEM_PHY=m # CONFIG_ARCNET is not set -CONFIG_PHYLIB=y +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +CONFIG_ATM_ENI_DEBUG=y +CONFIG_ATM_ENI_TUNE_BURST=y +CONFIG_ATM_ENI_BURST_TX_16W=y +CONFIG_ATM_ENI_BURST_TX_8W=y +CONFIG_ATM_ENI_BURST_TX_4W=y +CONFIG_ATM_ENI_BURST_TX_2W=y +CONFIG_ATM_ENI_BURST_RX_16W=y +CONFIG_ATM_ENI_BURST_RX_8W=y +CONFIG_ATM_ENI_BURST_RX_4W=y +CONFIG_ATM_ENI_BURST_RX_2W=y +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +CONFIG_ATM_NICSTAR_USE_SUNI=y +CONFIG_ATM_NICSTAR_USE_IDT77105=y +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_USE_TASKLET=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_SOLOS=m # -# MII PHY device drivers +# CAIF transport drivers # -CONFIG_MARVELL_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_LXT_PHY=m -CONFIG_CICADA_PHY=m -CONFIG_VITESSE_PHY=m -CONFIG_SMSC_PHY=m -CONFIG_BROADCOM_PHY=m -CONFIG_ICPLUS_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_NATIONAL_PHY=m -CONFIG_STE10XP=m -CONFIG_LSI_ET1011C_PHY=m -# CONFIG_FIXED_PHY is not set -CONFIG_MDIO_BITBANG=m -CONFIG_NET_ETHERNET=y -CONFIG_MII=m -CONFIG_HAPPYMEAL=m -CONFIG_SUNGEM=m -CONFIG_CASSINI=m +CONFIG_ETHERNET=y +CONFIG_MDIO=m CONFIG_NET_VENDOR_3COM=y CONFIG_EL1=m -CONFIG_EL2=m -CONFIG_ELPLUS=m -CONFIG_EL16=m CONFIG_EL3=m CONFIG_3C515=m -CONFIG_ELMC=m -CONFIG_ELMC_II=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m CONFIG_VORTEX=m CONFIG_TYPHOON=m +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_NET_VENDOR_AMD=y +CONFIG_AMD8111_ETH=m CONFIG_LANCE=m -CONFIG_NET_VENDOR_SMC=y -CONFIG_WD80x3=m -CONFIG_ULTRAMCA=m -CONFIG_ULTRA=m -CONFIG_ULTRA32=m -CONFIG_SMC9194=m -CONFIG_ETHOC=m -CONFIG_NET_VENDOR_RACAL=y -CONFIG_NI52=m +CONFIG_PCNET32=m +CONFIG_DEPCA=m +CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_ATL2=m +CONFIG_ATL1=m +CONFIG_ATL1E=m +CONFIG_ATL1C=m +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_BNX2=m +CONFIG_CNIC=m +CONFIG_TIGON3=m +CONFIG_BNX2X=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_CS89x0=m +CONFIG_NET_VENDOR_CISCO=y +CONFIG_ENIC=m CONFIG_DNET=m +CONFIG_NET_VENDOR_DEC=y +CONFIG_EWRK3=m CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 @@ -1579,170 +1833,197 @@ CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m +CONFIG_NET_VENDOR_DLINK=y +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DL2K=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_BE2NET=m +CONFIG_NET_VENDOR_EXAR=y +CONFIG_S2IO=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_NET_VENDOR_FUJITSU=y CONFIG_AT1700=m -CONFIG_DEPCA=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_ETH16I=m +CONFIG_NET_VENDOR_HP=y CONFIG_HP100=m -CONFIG_NET_ISA=y -CONFIG_E2100=m -CONFIG_EWRK3=m +CONFIG_NET_VENDOR_IBM=y +# CONFIG_IBM_EMAC_ZMII is not set +# CONFIG_IBM_EMAC_RGMII is not set +# CONFIG_IBM_EMAC_TAH is not set +# CONFIG_IBM_EMAC_EMAC4 is not set +# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set +CONFIG_NET_VENDOR_INTEL=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_IGB=m +CONFIG_IGB_DCA=y +CONFIG_IGBVF=m +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBEVF=m +CONFIG_NET_VENDOR_I825XX=y +CONFIG_ELPLUS=m +CONFIG_EL16=m +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_APRICOT=m CONFIG_EEXPRESS=m CONFIG_EEXPRESS_PRO=m -CONFIG_HPLAN_PLUS=m -CONFIG_HPLAN=m CONFIG_LP486E=m -CONFIG_ETH16I=m -CONFIG_NE2000=m +CONFIG_NI52=m CONFIG_ZNET=m -CONFIG_SEEQ8005=m -CONFIG_NE2_MCA=m +CONFIG_IP1000=m +CONFIG_JME=m +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_SKGE=m +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_KS8842=m +CONFIG_KS8851_MLL=m +CONFIG_KSZ884X_PCI=m +CONFIG_NET_VENDOR_MYRI=y +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NATSEMI=y CONFIG_IBMLANA=m -# CONFIG_IBM_NEW_EMAC_ZMII is not set -# CONFIG_IBM_NEW_EMAC_RGMII is not set -# CONFIG_IBM_NEW_EMAC_TAH is not set -# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -CONFIG_NET_PCI=y -CONFIG_PCNET32=m -CONFIG_AMD8111_ETH=m -CONFIG_ADAPTEC_STARFIRE=m +CONFIG_NATSEMI=m +CONFIG_NS83820=m +CONFIG_NET_VENDOR_8390=y +CONFIG_EL2=m CONFIG_AC3200=m -CONFIG_APRICOT=m -CONFIG_B44=m -CONFIG_B44_PCI_AUTOSELECT=y -CONFIG_B44_PCICORE_AUTOSELECT=y -CONFIG_B44_PCI=y -CONFIG_FORCEDETH=m -# CONFIG_FORCEDETH_NAPI is not set -CONFIG_CS89x0=m -CONFIG_E100=m +CONFIG_PCMCIA_AXNET=m +CONFIG_E2100=m +CONFIG_ES3210=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPLAN=m CONFIG_LNE390=m -CONFIG_FEALNX=m -CONFIG_NATSEMI=m +CONFIG_NE2000=m +CONFIG_NE2_MCA=m CONFIG_NE2K_PCI=m CONFIG_NE3210=m -CONFIG_ES3210=m +CONFIG_PCMCIA_PCNET=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_WD80x3=m +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_FORCEDETH=m +CONFIG_NET_VENDOR_OKI=y +CONFIG_PCH_GBE=m +CONFIG_ETHOC=m +CONFIG_NET_PACKET_ENGINE=y +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLGE=m +CONFIG_NETXEN_NIC=m +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_ATP=m CONFIG_8139CP=m CONFIG_8139TOO=m # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set +CONFIG_R8169=m +CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_SEEQ8005=m +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m +CONFIG_SIS190=m +CONFIG_SFC=m +CONFIG_SFC_MTD=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_SMC9194=m +CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m CONFIG_SMSC9420=m -CONFIG_SUNDANCE=m -# CONFIG_SUNDANCE_MMIO is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_DA is not set +CONFIG_STMMAC_RING=y +# CONFIG_STMMAC_CHAINED is not set +CONFIG_NET_VENDOR_SUN=y +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NIU=m +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_TEHUTI=m +CONFIG_NET_VENDOR_TI=y CONFIG_TLAN=m -CONFIG_KS8842=m -CONFIG_KS8851_MLL=m +CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y -CONFIG_SC92031=m -CONFIG_NET_POCKET=y -CONFIG_ATP=m -CONFIG_DE600=m -CONFIG_DE620=m -CONFIG_ATL2=m -CONFIG_NETDEV_1000=y -CONFIG_ACENIC=m -# CONFIG_ACENIC_OMIT_TIGON_I is not set -CONFIG_DL2K=m -CONFIG_E1000=m -CONFIG_E1000E=m -CONFIG_IP1000=m -CONFIG_IGB=m -CONFIG_IGB_DCA=y -CONFIG_IGBVF=m -CONFIG_NS83820=m -CONFIG_HAMACHI=m -CONFIG_YELLOWFIN=m -CONFIG_R8169=m -CONFIG_R8169_VLAN=y -CONFIG_SIS190=m -CONFIG_SKGE=m -CONFIG_SKY2=m CONFIG_VIA_VELOCITY=m -CONFIG_TIGON3=m -CONFIG_BNX2=m -CONFIG_CNIC=m -CONFIG_QLA3XXX=m -CONFIG_ATL1=m -CONFIG_ATL1E=m -CONFIG_ATL1C=m -CONFIG_JME=m -CONFIG_NETDEV_10000=y -CONFIG_MDIO=m -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3_DEPENDS=y -CONFIG_CHELSIO_T3=m -CONFIG_ENIC=m -CONFIG_IXGBE=m -CONFIG_IXGBE_DCA=y -CONFIG_IXGB=m -CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set -CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y -CONFIG_NETXEN_NIC=m -CONFIG_NIU=m -CONFIG_MLX4_EN=m -CONFIG_MLX4_CORE=m -CONFIG_MLX4_DEBUG=y -CONFIG_TEHUTI=m -CONFIG_BNX2X=m -CONFIG_QLGE=m -CONFIG_SFC=m -CONFIG_SFC_MTD=y -CONFIG_BE2NET=m -# CONFIG_TR is not set -CONFIG_WLAN=y -# CONFIG_WLAN_PRE80211 is not set -CONFIG_WLAN_80211=y -CONFIG_PCMCIA_RAYCS=m -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -CONFIG_AIRO=m -CONFIG_ATMEL=m -CONFIG_PCI_ATMEL=m -CONFIG_PCMCIA_ATMEL=m -CONFIG_AT76C50X_USB=m -CONFIG_AIRO_CS=m -CONFIG_PCMCIA_WL3501=m -# CONFIG_PRISM54 is not set -CONFIG_USB_ZD1201=m -CONFIG_USB_NET_RNDIS_WLAN=m -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_ADM8211 is not set -# CONFIG_MAC80211_HWSIM is not set -# CONFIG_MWL8K is not set -# CONFIG_P54_COMMON is not set -# CONFIG_ATH_COMMON is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2200 is not set -# CONFIG_IWLWIFI is not set -CONFIG_HOSTAP=m -CONFIG_HOSTAP_FIRMWARE=y -# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set -CONFIG_HOSTAP_PLX=m -CONFIG_HOSTAP_PCI=m -CONFIG_HOSTAP_CS=m -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_ZD1211RW is not set -# CONFIG_RT2X00 is not set -# CONFIG_HERMES is not set -# CONFIG_WL12XX is not set -# CONFIG_IWM is not set +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_PCMCIA_XIRC2PS=m +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_NET_SB1000=m +CONFIG_PHYLIB=y # -# Enable WiMAX (Networking options) to see the WiMAX drivers +# MII PHY device drivers # +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_REALTEK_PHY=m +CONFIG_NATIONAL_PHY=m +CONFIG_STE10XP=m +CONFIG_LSI_ET1011C_PHY=m +CONFIG_MICREL_PHY=m +# CONFIG_FIXED_PHY is not set +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_GPIO=m +# CONFIG_PLIP is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPTP=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLHC=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +# CONFIG_TR is not set # # USB Network Adapters @@ -1755,7 +2036,9 @@ CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_NCM=m CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SMSC75XX=m CONFIG_USB_NET_SMSC95XX=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m @@ -1770,17 +2053,63 @@ CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_KALMIA=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=m -CONFIG_NET_PCMCIA=y -CONFIG_PCMCIA_3C589=m -CONFIG_PCMCIA_3C574=m -CONFIG_PCMCIA_FMVJ18X=m -CONFIG_PCMCIA_PCNET=m -CONFIG_PCMCIA_NMCLAN=m -CONFIG_PCMCIA_SMC91C92=m -CONFIG_PCMCIA_XIRC2PS=m -CONFIG_PCMCIA_AXNET=m +# CONFIG_USB_IPHETH is not set +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_VL600=m +CONFIG_WLAN=y +CONFIG_PCMCIA_RAYCS=m +# CONFIG_LIBERTAS_THINFIRM is not set +CONFIG_AIRO=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AT76C50X_USB=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +CONFIG_USB_NET_RNDIS_WLAN=m +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +# CONFIG_ADM8211 is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_MWL8K is not set +# CONFIG_ATH_COMMON is not set +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +# CONFIG_BRCMFMAC is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWLWIFI is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +# CONFIG_RT2X00 is not set +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_WL1251 is not set +# CONFIG_WL12XX_MENU is not set +# CONFIG_ZD1211RW is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# CONFIG_WAN=y CONFIG_HOSTESS_SV11=m CONFIG_COSA=m @@ -1792,110 +2121,30 @@ CONFIG_HDLC_RAW_ETH=m CONFIG_HDLC_CISCO=m CONFIG_HDLC_FR=m CONFIG_HDLC_PPP=m - -# -# X.25/LAPB support is disabled -# -CONFIG_PCI200SYN=m -CONFIG_WANXL=m -# CONFIG_WANXL_BUILD_FIRMWARE is not set -CONFIG_PC300TOO=m -CONFIG_N2=m -CONFIG_C101=m -CONFIG_FARSYNC=m -CONFIG_DSCC4=m -CONFIG_DSCC4_PCISYNC=y -CONFIG_DSCC4_PCI_RST=y -CONFIG_DLCI=m -CONFIG_DLCI_MAX=8 -CONFIG_SDLA=m -CONFIG_SBNI=m -CONFIG_SBNI_MULTILINE=y -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -CONFIG_ATM_TCP=m -CONFIG_ATM_LANAI=m -CONFIG_ATM_ENI=m -CONFIG_ATM_ENI_DEBUG=y -CONFIG_ATM_ENI_TUNE_BURST=y -CONFIG_ATM_ENI_BURST_TX_16W=y -CONFIG_ATM_ENI_BURST_TX_8W=y -CONFIG_ATM_ENI_BURST_TX_4W=y -CONFIG_ATM_ENI_BURST_TX_2W=y -CONFIG_ATM_ENI_BURST_RX_16W=y -CONFIG_ATM_ENI_BURST_RX_8W=y -CONFIG_ATM_ENI_BURST_RX_4W=y -CONFIG_ATM_ENI_BURST_RX_2W=y -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set -CONFIG_ATM_NICSTAR=m -CONFIG_ATM_NICSTAR_USE_SUNI=y -CONFIG_ATM_NICSTAR_USE_IDT77105=y -CONFIG_ATM_IDT77252=m -# CONFIG_ATM_IDT77252_DEBUG is not set -# CONFIG_ATM_IDT77252_RCV_ALL is not set -CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set -CONFIG_ATM_IA=m -# CONFIG_ATM_IA_DEBUG is not set -CONFIG_ATM_FORE200E=m -CONFIG_ATM_FORE200E_USE_TASKLET=y -CONFIG_ATM_FORE200E_TX_RETRY=16 -CONFIG_ATM_FORE200E_DEBUG=0 -CONFIG_ATM_HE=m -CONFIG_ATM_HE_USE_SUNI=y -CONFIG_ATM_SOLOS=m -CONFIG_IEEE802154_DRIVERS=m -CONFIG_IEEE802154_FAKEHARD=m + +# +# X.25/LAPB support is disabled +# +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +# CONFIG_WANXL_BUILD_FIRMWARE is not set +CONFIG_PC300TOO=m +CONFIG_N2=m +CONFIG_C101=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_SDLA=m +CONFIG_SBNI=m +CONFIG_SBNI_MULTILINE=y CONFIG_XEN_NETDEV_FRONTEND=m -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -CONFIG_PPPOE=m -CONFIG_PPPOATM=m -CONFIG_PPPOL2TP=m -CONFIG_SLIP=m -CONFIG_SLIP_COMPRESSED=y -CONFIG_SLHC=m -CONFIG_SLIP_SMART=y -CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_NET_FC is not set -# CONFIG_NETCONSOLE is not set -# CONFIG_NETPOLL is not set -# CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_VIRTIO_NET=m +CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m -CONFIG_MISDN=m -CONFIG_MISDN_DSP=m -CONFIG_MISDN_L1OIP=m - -# -# mISDN hardware drivers -# -CONFIG_MISDN_HFCPCI=m -CONFIG_MISDN_HFCMULTI=m -CONFIG_MISDN_HFCUSB=m -CONFIG_MISDN_AVMFRITZ=m -CONFIG_MISDN_SPEEDFAX=m -CONFIG_MISDN_INFINEON=m -CONFIG_MISDN_W6692=m -CONFIG_MISDN_NETJET=m -CONFIG_MISDN_IPAC=m -CONFIG_MISDN_ISAR=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y @@ -1986,16 +2235,11 @@ CONFIG_ISDN_DRV_ICN=m CONFIG_ISDN_DRV_PCBIT=m CONFIG_ISDN_DRV_SC=m CONFIG_ISDN_DRV_ACT2000=m -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_HDLC=m CONFIG_ISDN_CAPI=m CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y CONFIG_CAPI_TRACE=y CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPI20=m -CONFIG_ISDN_CAPI_CAPIFS_BOOL=y -CONFIG_ISDN_CAPI_CAPIFS=m CONFIG_ISDN_CAPI_CAPIDRV=m # @@ -2018,10 +2262,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m CONFIG_ISDN_DIVAS_USERIDI=m CONFIG_ISDN_DIVAS_MAINT=m CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_CAPI=y +# CONFIG_GIGASET_I4L is not set +# CONFIG_GIGASET_DUMMYLL is not set CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_MISDN=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_L1OIP=m + +# +# mISDN hardware drivers +# +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_W6692=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_ISDN_HDLC=m # CONFIG_PHONE is not set # @@ -2030,6 +2297,7 @@ CONFIG_GIGASET_M101=m CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_SPARSEKMAP=m # # Userland interfaces @@ -2041,18 +2309,25 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set -CONFIG_XEN_KBDDEV_FRONTEND=m # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m CONFIG_KEYBOARD_ATKBD=y -CONFIG_QT2160=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_MATRIX=m CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_OPENCORES=m CONFIG_KEYBOARD_STOWAWAY=m @@ -2063,20 +2338,28 @@ CONFIG_KEYBOARD_XTKBD=m # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_BMA150=m CONFIG_INPUT_PCSPKR=m +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set CONFIG_INPUT_APANEL=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set -CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m # CONFIG_INPUT_UINPUT is not set -CONFIG_INPUT_WINBOND_CIR=m CONFIG_INPUT_PCF50633_PMU=m -CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m # # Hardware I/O ports @@ -2089,6 +2372,8 @@ CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_PS2MULT=m # CONFIG_GAMEPORT is not set # @@ -2097,11 +2382,17 @@ CONFIG_SERIO_LIBPS2=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set -CONFIG_DEVKMEM=y +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set CONFIG_NOZOMI=m +CONFIG_N_GSM=m +# CONFIG_TRACE_SINK is not set +CONFIG_DEVKMEM=y # # Serial drivers @@ -2129,12 +2420,18 @@ CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set -CONFIG_UNIX98_PTYS=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m @@ -2173,7 +2470,6 @@ CONFIG_MWAVE=m CONFIG_SCx200_GPIO=m CONFIG_PC8736x_GPIO=m CONFIG_NSC_GPIO=m -CONFIG_CS5535_GPIO=m # CONFIG_RAW_DRIVER is not set CONFIG_HPET=y CONFIG_HPET_MMAP=y @@ -2181,11 +2477,21 @@ CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y +# CONFIG_RAMOOPS is not set CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m +CONFIG_I2C_MUX=m + +# +# Multiplexer I2C Chip support +# +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m @@ -2221,40 +2527,36 @@ CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_INTEL_MID=m CONFIG_I2C_OCORES=m +CONFIG_I2C_PCA_PLATFORM=m +# CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m +CONFIG_I2C_XILINX=m +CONFIG_I2C_EG20T=m # # External I2C/SMBus adapter drivers # +CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m -# CONFIG_I2C_TAOS_EVM is not set +CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m -# -# Graphics adapter I2C/DDC channel drivers -# -CONFIG_I2C_VOODOO3=m - # # Other I2C/SMBus bus drivers # CONFIG_I2C_PCA_ISA=m -CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_STUB=m # CONFIG_SCx200_I2C is not set CONFIG_SCx200_ACB=m - -# -# Miscellaneous I2C Chip support -# -CONFIG_DS1682=m -CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set # @@ -2262,8 +2564,73 @@ CONFIG_SENSORS_TSL2550=m # CONFIG_PPS=m # CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=m +CONFIG_DP83640_PHY=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y -# CONFIG_GPIOLIB is not set +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_MAX730X=m + +# +# Memory mapped GPIO drivers: +# +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_VX855=m + +# +# I2C GPIO expanders: +# +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_ADP5588=m + +# +# PCI GPIO expanders: +# +CONFIG_GPIO_CS5535=m +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_LANGWELL is not set +CONFIG_GPIO_PCH=m +CONFIG_GPIO_ML_IOH=m +# CONFIG_GPIO_TIMBERDALE is not set +CONFIG_GPIO_RDC321X=m + +# +# SPI GPIO expanders: +# +CONFIG_GPIO_MCP23S08=m + +# +# AC97 GPIO expanders: +# +# CONFIG_GPIO_UCB1400 is not set + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_JANZ_TTL=m CONFIG_W1=m CONFIG_W1_CON=y @@ -2273,27 +2640,37 @@ CONFIG_W1_CON=y CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_GPIO=m # # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2423=m CONFIG_W1_SLAVE_DS2431=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set -CONFIG_WM831X_POWER=m -CONFIG_WM8350_POWER=m +# CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2760 is not set -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_MAX17040=m -CONFIG_CHARGER_PCF50633=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -2311,13 +2688,17 @@ CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m -CONFIG_SENSORS_ADT7473=m CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_FAM15H_POWER=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m @@ -2327,11 +2708,15 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m @@ -2342,23 +2727,55 @@ CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m +CONFIG_PMBUS=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m @@ -2366,34 +2783,35 @@ CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m -CONFIG_SENSORS_WM8350=m -CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_APPLESMC=m # # ACPI drivers # +CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m -CONFIG_SENSORS_LIS3LV02D=m CONFIG_THERMAL=y CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m -CONFIG_WM8350_WATCHDOG=m CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_F71808E_WDT=m +CONFIG_SP5100_TCO=m +CONFIG_GEODE_WDT=m CONFIG_SC520_WDT=m CONFIG_SBC_FITPC2_WATCHDOG=m CONFIG_EUROTECH_WDT=m @@ -2406,9 +2824,11 @@ CONFIG_ITCO_WDT=m CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m +CONFIG_HPWDT_NMI_DECODING=y CONFIG_SC1200_WDT=m CONFIG_SCx200_WDT=m CONFIG_PC87413_WDT=m +CONFIG_NV_TCO=m CONFIG_60XX_WDT=m CONFIG_SBC8360_WDT=m CONFIG_SBC7240_WDT=m @@ -2422,6 +2842,7 @@ CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_XEN_WDT=m # # ISA-based Watchdog Cards @@ -2447,10 +2868,9 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y -CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y +# CONFIG_SSB_B43_PCI_BRIDGE is not set CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y @@ -2458,74 +2878,136 @@ CONFIG_SSB_SDIOHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +CONFIG_BCMA=m +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +# CONFIG_BCMA_HOST_PCI is not set +# CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # CONFIG_MFD_CORE=m CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set CONFIG_HTC_PASIC3=m +CONFIG_UCB1400_CORE=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=m -CONFIG_MFD_WM8350=m -CONFIG_MFD_WM8350_I2C=m CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_AB3100_CORE=m -CONFIG_AB3100_OTP=m -# CONFIG_REGULATOR is not set +# CONFIG_ABX500_CORE is not set +CONFIG_MFD_CS5535=m +CONFIG_MFD_TIMBERDALE=m +CONFIG_LPC_SCH=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +CONFIG_REGULATOR_GPIO=m +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_WM8400 is not set +# CONFIG_REGULATOR_PCF50633 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS6105X is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # +CONFIG_MEDIA_CONTROLLER=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m -# CONFIG_VIDEO_ALLOW_V4L1 is not set -CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y CONFIG_DVB_CORE=m +CONFIG_DVB_NET=y CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # -# CONFIG_MEDIA_ATTACH is not set +CONFIG_RC_CORE=m +CONFIG_LIRC=m +CONFIG_RC_MAP=m +# CONFIG_IR_NEC_DECODER is not set +# CONFIG_IR_RC5_DECODER is not set +# CONFIG_IR_RC6_DECODER is not set +# CONFIG_IR_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_RC5_SZ_DECODER is not set +# CONFIG_IR_MCE_KBD_DECODER is not set +# CONFIG_IR_LIRC_CODEC is not set +# CONFIG_RC_ATI_REMOTE is not set +# CONFIG_IR_ENE is not set +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_ITE_CIR is not set +# CONFIG_IR_FINTEK is not set +# CONFIG_IR_NUVOTON is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_IR_WINBOND_CIR is not set +# CONFIG_RC_LOOPBACK is not set +CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=m # -# Encoders/decoders and other helper chips +# Encoders, decoders, sensors and other helper chips # # -# Audio decoders +# Audio decoders, processors and mixers # # CONFIG_VIDEO_TVAUDIO is not set # CONFIG_VIDEO_TDA7432 is not set # CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TDA9875 is not set # CONFIG_VIDEO_TEA6415C is not set # CONFIG_VIDEO_TEA6420 is not set # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS5345 is not set # CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set @@ -2544,19 +3026,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_BT856 is not set # CONFIG_VIDEO_BT866 is not set # CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_TCM825X is not set # CONFIG_VIDEO_SAA7110 is not set # CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_SAA7191 is not set # CONFIG_VIDEO_TVP514X is not set # CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set # CONFIG_VIDEO_VPX3220 is not set # # Video and audio decoders # +# CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_CX25840 is not set # @@ -2571,29 +3052,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_SAA7185 is not set # CONFIG_VIDEO_ADV7170 is not set # CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_THS7303 is not set # CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9P031 is not set +# CONFIG_VIDEO_MT9T001 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_MT9V032 is not set +# CONFIG_VIDEO_TCM825X is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_VIDEO_M5MOLS is not set +# CONFIG_VIDEO_S5K6AA is not set + +# +# Flash devices +# +# CONFIG_VIDEO_ADP1653 is not set # # Video improvement chips # # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_VIDEO_PMS is not set +# CONFIG_VIDEO_BWQCAM is not set +# CONFIG_VIDEO_CQCAM is not set +# CONFIG_VIDEO_W9966 is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set +# CONFIG_VIDEO_MEYE is not set # CONFIG_VIDEO_SAA7134 is not set +# CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set +# CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_CX88 is not set # CONFIG_VIDEO_CX23885 is not set +# CONFIG_VIDEO_CX25821 is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_CX18 is not set # CONFIG_VIDEO_SAA7164 is not set # CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_VIDEO_VIA_CAMERA is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set @@ -2602,24 +3116,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_TLG2300 is not set # CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_TM6000 is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set +# CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_CADET is not set # CONFIG_RADIO_RTRACK is not set # CONFIG_RADIO_RTRACK2 is not set # CONFIG_RADIO_AZTECH is not set # CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_MAESTRO is not set +# CONFIG_RADIO_MIROPCM20 is not set # CONFIG_RADIO_SF16FMI is not set # CONFIG_RADIO_SF16FMR2 is not set # CONFIG_RADIO_TERRATEC is not set @@ -2632,6 +3147,15 @@ CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_TIMBERDALE is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y @@ -2670,17 +3194,76 @@ CONFIG_DVB_CAPTURE_DRIVERS=y # # CONFIG_DVB_DM1105 is not set +# +# Supported FireWire (IEEE 1394) Adapters +# +# CONFIG_DVB_FIREDTV is not set + # # Supported Earthsoft PT1 Adapters # # CONFIG_DVB_PT1 is not set +# +# Supported Mantis Adapters +# +# CONFIG_MANTIS_CORE is not set + +# +# Supported nGene Adapters +# +# CONFIG_DVB_NGENE is not set + +# +# Supported ddbridge ('Octopus') Adapters +# +# CONFIG_DVB_DDBRIDGE is not set + # # Supported DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set # # Graphics support @@ -2697,20 +3280,24 @@ CONFIG_AGP_SWORKS=m CONFIG_AGP_VIA=m CONFIG_AGP_EFFICEON=m CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_TTM=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_KMS=y CONFIG_DRM_I810=m -CONFIG_DRM_I830=m CONFIG_DRM_I915=m CONFIG_DRM_I915_KMS=y CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m +CONFIG_DRM_VMWGFX=m +CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y @@ -2726,6 +3313,7 @@ CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m +# CONFIG_FB_WMT_GE_ROPS is not set CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=m # CONFIG_FB_MACMODES is not set @@ -2740,6 +3328,7 @@ CONFIG_FB_CIRRUS=m CONFIG_FB_PM2=m CONFIG_FB_PM2_FIFO_DISCONNECT=y CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y # CONFIG_FB_ARC is not set CONFIG_FB_ASILIANT=y # CONFIG_FB_IMSTT is not set @@ -2780,6 +3369,7 @@ CONFIG_FB_ATY_CT=y CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_BACKLIGHT=y CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y CONFIG_FB_SAVAGE=m CONFIG_FB_SAVAGE_I2C=y CONFIG_FB_SAVAGE_ACCEL=y @@ -2787,6 +3377,8 @@ CONFIG_FB_SIS=m CONFIG_FB_SIS_300=y CONFIG_FB_SIS_315=y CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +# CONFIG_FB_VIA_X_COMPATIBILITY is not set CONFIG_FB_NEOMAGIC=m CONFIG_FB_KYRO=m CONFIG_FB_3DFX=m @@ -2805,6 +3397,8 @@ CONFIG_FB_GEODE_GX1=m CONFIG_FB_TMIO=m CONFIG_FB_TMIO_ACCELL=y CONFIG_FB_SM501=m +CONFIG_FB_SMSCUFX=m +# CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set CONFIG_XEN_FBDEV_FRONTEND=m CONFIG_FB_METRONOME=m @@ -2812,15 +3406,16 @@ CONFIG_FB_METRONOME=m # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_ILI9320 is not set CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=m CONFIG_BACKLIGHT_PROGEAR=m CONFIG_BACKLIGHT_CARILLO_RANCH=m -CONFIG_BACKLIGHT_MBP_NVIDIA=m +CONFIG_BACKLIGHT_APPLE=m CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_PCF50633=m # # Display device support @@ -2839,7 +3434,7 @@ CONFIG_VGA_CONSOLE=y # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -2854,6 +3449,9 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y @@ -2861,137 +3459,191 @@ CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_HRTIMER=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set +CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y -# CONFIG_SND_RAWMIDI_SEQ is not set -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y # CONFIG_SND_PCSP is not set CONFIG_SND_DUMMY=m -# CONFIG_SND_VIRMIDI is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_MTS64 is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set -# CONFIG_SND_PORTMAN2X4 is not set +CONFIG_SND_ALOOP=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60 +CONFIG_SND_WSS_LIB=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SB16_DSP=m CONFIG_SND_ISA=y -# CONFIG_SND_ADLIB is not set -# CONFIG_SND_AD1816A is not set -# CONFIG_SND_AD1848 is not set -# CONFIG_SND_ALS100 is not set -# CONFIG_SND_AZT2320 is not set -# CONFIG_SND_CMI8330 is not set -# CONFIG_SND_CS4231 is not set -# CONFIG_SND_CS4236 is not set -# CONFIG_SND_DT019X is not set -# CONFIG_SND_ES968 is not set -# CONFIG_SND_ES1688 is not set -# CONFIG_SND_ES18XX is not set -# CONFIG_SND_SC6000 is not set -# CONFIG_SND_GUSCLASSIC is not set -# CONFIG_SND_GUSEXTREME is not set -# CONFIG_SND_GUSMAX is not set -# CONFIG_SND_INTERWAVE is not set -# CONFIG_SND_INTERWAVE_STB is not set -# CONFIG_SND_OPL3SA2 is not set -# CONFIG_SND_OPTI92X_AD1848 is not set -# CONFIG_SND_OPTI92X_CS4231 is not set -# CONFIG_SND_OPTI93X is not set -# CONFIG_SND_MIRO is not set -# CONFIG_SND_SB8 is not set -# CONFIG_SND_SB16 is not set -# CONFIG_SND_SBAWE is not set -# CONFIG_SND_SGALAXY is not set -# CONFIG_SND_SSCAPE is not set -# CONFIG_SND_WAVEFRONT is not set -# CONFIG_SND_MSND_PINNACLE is not set -# CONFIG_SND_MSND_CLASSIC is not set +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_SC6000=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_JAZZ16=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_TEA575X=m CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5530 is not set -# CONFIG_SND_CS5535AUDIO is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_HIFIER is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SIS7019 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=2 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=60 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m CONFIG_SND_USB=y -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_US122L is not set +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_PDAUDIOCF is not set +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HIDRAW is not set @@ -3007,45 +3659,82 @@ CONFIG_USB_HIDDEV=y # Special HID drivers # CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +# CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m +CONFIG_HID_PRODIKEYS=m CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m -CONFIG_DRAGONRISE_FF=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=m CONFIG_HID_EZKEY=m +CONFIG_HID_HOLTEK=m +# CONFIG_HOLTEK_FF is not set +CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m +CONFIG_HID_LCPOWER=m CONFIG_HID_LOGITECH=m -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_HID_LOGITECH_DJ=m +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m -CONFIG_PANTHERLORD_FF=y +# CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_QUANTA=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_ROCCAT_COMMON=m +CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_KONE=m +CONFIG_HID_ROCCAT_KONEPLUS=m +CONFIG_HID_ROCCAT_KOVAPLUS=m +CONFIG_HID_ROCCAT_PYRA=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m -CONFIG_GREENASIA_FF=y +# CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m -CONFIG_SMARTJOYPLUS_FF=y +# CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m -CONFIG_THRUSTMASTER_FF=y +# CONFIG_THRUSTMASTER_FF is not set CONFIG_HID_WACOM=m +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_WIIMOTE=m CONFIG_HID_ZEROPLUS=m -CONFIG_ZEROPLUS_FF=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=m CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -3057,6 +3746,8 @@ CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set # CONFIG_USB_MON is not set CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -3066,32 +3757,28 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SL811_HCD_ISO is not set # CONFIG_USB_SL811_CS is not set CONFIG_USB_R8A66597_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m -# -# Enable Host or Gadget support to see Inventra options -# - # # USB Device Class drivers # @@ -3109,7 +3796,9 @@ CONFIG_USB_TMC=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_REALTEK_AUTOPM=y +CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m @@ -3120,6 +3809,8 @@ CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_UAS=m # CONFIG_USB_LIBUSUAL is not set # @@ -3145,12 +3836,12 @@ CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -# CONFIG_USB_SERIAL_FUNSOFT is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -3160,11 +3851,13 @@ CONFIG_USB_SERIAL_IUU=m # CONFIG_USB_SERIAL_KOBIL_SCT is not set CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m +# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m @@ -3176,9 +3869,13 @@ CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_SSU100=m # CONFIG_USB_SERIAL_DEBUG is not set # @@ -3191,7 +3888,6 @@ CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m -CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m @@ -3205,7 +3901,7 @@ CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set CONFIG_USB_ISIGHTFW=m -CONFIG_USB_VST=m +CONFIG_USB_YUREX=m CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m @@ -3217,21 +3913,22 @@ CONFIG_USB_XUSBATM=m # OTG and related infrastructure # CONFIG_USB_OTG_UTILS=y +CONFIG_USB_GPIO_VBUS=m CONFIG_NOP_USB_XCEIV=m CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m -CONFIG_UWB_WLP=m CONFIG_UWB_I1480U=m -CONFIG_UWB_I1480U_WLP=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set +# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=m @@ -3241,15 +3938,15 @@ CONFIG_MMC_TEST=m # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m -CONFIG_MMC_RICOH_MMC=m +# CONFIG_MMC_RICOH_MMC is not set CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_WBSD=m -# CONFIG_MMC_AT91 is not set -# CONFIG_MMC_ATMELMCI is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_USHC=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set @@ -3264,30 +3961,39 @@ CONFIG_MSPRO_BLOCK=m # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y # # LED drivers # +CONFIG_LEDS_LM3530=m CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_NET5501=m CONFIG_LEDS_WRAP=m -CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_GPIO=m CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_WM8350=m +CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_TRIGGERS=y # # LED Triggers # -CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # @@ -3297,8 +4003,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set -CONFIG_RTC_LIB=m -CONFIG_RTC_CLASS=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set # # RTC interfaces @@ -3307,7 +4016,7 @@ CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_DRV_TEST=m +# CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers @@ -3315,18 +4024,23 @@ CONFIG_RTC_DRV_TEST=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m -# CONFIG_RTC_DRV_M41T80_WDT is not set +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_BQ32K=m CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers @@ -3335,7 +4049,7 @@ CONFIG_RTC_DRV_RX8025=m # # Platform RTC drivers # -CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m @@ -3344,23 +4058,25 @@ CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m -CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m -CONFIG_RTC_DRV_AB3100=m # # on-CPU RTC drivers # CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # -CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y +CONFIG_INTEL_MID_DMAC=m CONFIG_INTEL_IOATDMA=m +CONFIG_TIMB_DMA=m +CONFIG_PCH_DMA=m CONFIG_DMA_ENGINE=y # @@ -3375,104 +4091,169 @@ CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV=m CONFIG_UIO_PDRV_GENIRQ=m -CONFIG_UIO_SMX=m CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_NETX=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_RING=y + +# +# Virtio drivers +# +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_MMIO=m # -# TI VLYNQ +# Xen driver support # CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=m +CONFIG_XEN_BACKEND=y CONFIG_XENFS=m CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XEN_GNTDEV=m +CONFIG_XEN_GRANT_DEV_ALLOC=m +CONFIG_SWIOTLB_XEN=y +CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_STAGING=y -# CONFIG_STAGING_EXCLUDE_BUILD is not set CONFIG_ET131X=m -# CONFIG_ET131X_DEBUG is not set CONFIG_SLICOSS=m -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_CX25821 is not set -# CONFIG_USB_IP_COMMON is not set +CONFIG_USBIP_CORE=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBIP_HOST=m +# CONFIG_USBIP_DEBUG is not set # CONFIG_W35UND is not set # CONFIG_PRISM2_USB is not set # CONFIG_ECHO is not set -# CONFIG_POCH is not set -# CONFIG_OTUS is not set -# CONFIG_RT2860 is not set -# CONFIG_RT2870 is not set -# CONFIG_RT3090 is not set # CONFIG_COMEDI is not set # CONFIG_ASUS_OLED is not set # CONFIG_PANEL is not set -# CONFIG_ALTERA_PCIE_CHDMA is not set -# CONFIG_RTL8187SE is not set -# CONFIG_RTL8192SU is not set +# CONFIG_R8187SE is not set +# CONFIG_RTL8192U is not set # CONFIG_RTL8192E is not set +# CONFIG_R8712U is not set +# CONFIG_RTS_PSTOR is not set +# CONFIG_RTS5139 is not set # CONFIG_TRANZPORT is not set - -# -# Android -# - -# -# Qualcomm MSM Camera And Video -# - -# -# Camera Sensor Selection -# -# CONFIG_INPUT_GPIO is not set -# CONFIG_DST is not set # CONFIG_POHMELFS is not set -# CONFIG_B3DFG is not set CONFIG_IDE_PHISON=m -# CONFIG_PLAN9AUTH is not set # CONFIG_LINE6_USB is not set -# CONFIG_DRM_RADEON_KMS is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set # CONFIG_USB_SERIAL_QUATECH2 is not set # CONFIG_USB_SERIAL_QUATECH_USB2 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set -# CONFIG_FB_UDL is not set -CONFIG_HYPERV=m CONFIG_HYPERV_STORAGE=m -CONFIG_HYPERV_BLOCK=m CONFIG_HYPERV_NET=m +CONFIG_HYPERV_MOUSE=m # CONFIG_VME_BUS is not set - -# -# RAR Register Driver -# -# CONFIG_RAR_REGISTER is not set +# CONFIG_DX_SEP is not set # CONFIG_IIO is not set +# CONFIG_XVMALLOC is not set +# CONFIG_ZRAM is not set +# CONFIG_WLAGS49_H2 is not set +# CONFIG_WLAGS49_H25 is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_CRYSTALHD is not set +# CONFIG_CXT1E1 is not set +# CONFIG_FB_XGI is not set +# CONFIG_ACPI_QUICKSTART is not set +# CONFIG_SBE_2T3E3 is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_DRM_PSB is not set +CONFIG_INTEL_MEI=m +# CONFIG_STAGING_MEDIA is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m +CONFIG_ACERHDF=m CONFIG_ASUS_LAPTOP=m CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_LAPTOP_DEBUG=y CONFIG_TC1100_WMI=m +CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m # CONFIG_SONYPI_COMPAT is not set +CONFIG_IDEAPAD_LAPTOP=m CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +CONFIG_SENSORS_HDAPS=m CONFIG_INTEL_MENLOW=m CONFIG_ACPI_WMI=m +CONFIG_MSI_WMI=m CONFIG_ACPI_ASUS=m CONFIG_TOPSTAR_LAPTOP=m CONFIG_ACPI_TOSHIBA=m +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_ACPI_CMPC=m +CONFIG_INTEL_IPS=m +CONFIG_IBM_RTL=m +CONFIG_XO15_EBOOK=m +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_MXM_WMI=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_SAMSUNG_Q10=m + +# +# Hardware Spinlock drivers +# +CONFIG_CLKSRC_I8253=y +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y +CONFIG_DMAR_TABLE=y +CONFIG_INTEL_IOMMU=y +CONFIG_INTEL_IOMMU_DEFAULT_ON=y +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_VIRT_DRIVERS=y +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m +CONFIG_PM_DEVFREQ=y + +# +# DEVFREQ Governors +# +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_USERSPACE=y + +# +# DEVFREQ Drivers +# # # Firmware Drivers @@ -3482,32 +4263,25 @@ CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m +CONFIG_SIGMA=m +# CONFIG_GOOGLE_FIRMWARE is not set # # File systems # -CONFIG_EXT2_FS=m -CONFIG_EXT2_FS_XATTR=y -CONFIG_EXT2_FS_POSIX_ACL=y -CONFIG_EXT2_FS_SECURITY=y -# CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=m -# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set -CONFIG_EXT3_FS_XATTR=y -CONFIG_EXT3_FS_POSIX_ACL=y -CONFIG_EXT3_FS_SECURITY=y -CONFIG_EXT4_FS=m +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -CONFIG_JBD2=m -CONFIG_FS_MBCACHE=m -CONFIG_REISER4_FS=m -# CONFIG_REISER4_DEBUG is not set +CONFIG_JBD2=y +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y @@ -3519,29 +4293,29 @@ CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y -CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set -# CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=m CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y -CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y -CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_CUSE=m @@ -3587,6 +4361,7 @@ CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set # CONFIG_CONFIGFS_FS is not set @@ -3615,6 +4390,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_JFFS2_CMODE_FAVOURLZO is not set # CONFIG_UBIFS_FS is not set +# CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set @@ -3623,8 +4399,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m @@ -3633,6 +4412,9 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set # CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y @@ -3640,15 +4422,12 @@ CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m -# CONFIG_RPCSEC_GSS_SPKM3 is not set -CONFIG_SMB_FS=m -# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_CEPH_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y @@ -3658,7 +4437,8 @@ CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_FSCACHE is not set +CONFIG_CIFS_ACL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -3673,7 +4453,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3725,13 +4505,13 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y -# CONFIG_DLM is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 @@ -3740,12 +4520,13 @@ CONFIG_STRIP_ASM_SYMS=y # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y @@ -3761,9 +4542,11 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y @@ -3773,6 +4556,7 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set @@ -3780,10 +4564,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y # CONFIG_FRAME_POINTER is not set # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set @@ -3796,27 +4582,30 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set # CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_ASYNC_RAID6_TEST=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y +# CONFIG_KMEMCHECK is not set +# CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_X86_PTDUMP is not set CONFIG_DEBUG_RODATA=y CONFIG_DEBUG_RODATA_TEST=y +# CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_DEBUG_NX_TEST is not set -# CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y @@ -3831,17 +4620,20 @@ CONFIG_IO_DELAY_0X80=y CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options # CONFIG_KEYS=y +# CONFIG_ENCRYPTED_KEYS is not set # CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_FILE_CAPABILITIES is not set # CONFIG_INTEL_TXT is not set -# CONFIG_IMA is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m @@ -3855,7 +4647,6 @@ CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m @@ -3866,11 +4657,15 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_PCOMP=y +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m # CONFIG_CRYPTO_NULL is not set +CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m @@ -3907,7 +4702,7 @@ CONFIG_CRYPTO_VMAC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_GHASH=m -# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m @@ -3925,9 +4720,11 @@ CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -3954,50 +4751,61 @@ CONFIG_CRYPTO_LZO=m # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m -CONFIG_CRYPTO_DEV_HIFN_795X=m -CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_MMIO=y +CONFIG_KVM_ASYNC_PF=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m +CONFIG_VHOST_NET=m CONFIG_LGUEST=m -CONFIG_VIRTIO=y -CONFIG_VIRTIO_RING=y -CONFIG_VIRTIO_PCI=m -CONFIG_VIRTIO_BALLOON=m # CONFIG_BINARY_PRINTF is not set # # Library routines # +CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GENERIC_FIND_NEXT_BIT=y -CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m +CONFIG_CRC8=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=m -CONFIG_LZO_DECOMPRESS=m +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -4006,4 +4814,7 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y CONFIG_NLATTR=y +CONFIG_AVERAGE=y +CONFIG_CORDIC=m diff --git a/config/kernel/kernel.config.i586-ipfire-xen b/config/kernel/kernel.config.i586-ipfire-xen index 72fd49098c..dcdf545611 100644 --- a/config/kernel/kernel.config.i586-ipfire-xen +++ b/config/kernel/kernel.config.i586-ipfire-xen @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.32.41-ipfire-xen -# Mon May 31 15:00:00 2011 +# Linux kernel version: 2.6.32.60 +# Sat Dec 8 11:41:33 2012 # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -47,7 +47,6 @@ CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_NO_TSS=y CONFIG_X86_NO_IDT=y -CONFIG_X86_32_LAZY_GS=y CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -104,7 +103,7 @@ CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y # CONFIG_EMBEDDED is not set @@ -283,8 +282,9 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_HIGHPTE is not set CONFIG_MTRR=y # CONFIG_X86_PAT is not set +CONFIG_ARCH_RANDOM=y CONFIG_SECCOMP=y -# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_300=y @@ -471,7 +471,7 @@ CONFIG_TCP_CONG_ILLINOIS=m CONFIG_DEFAULT_RENO=y CONFIG_DEFAULT_TCP_CONG="reno" # CONFIG_TCP_MD5SIG is not set -CONFIG_IPV6=m +CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set @@ -2140,10 +2140,9 @@ CONFIG_SSB_POSSIBLE=y # CONFIG_SSB=m CONFIG_SSB_SPROM=y -CONFIG_SSB_BLOCKIO=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y -CONFIG_SSB_B43_PCI_BRIDGE=y +# CONFIG_SSB_B43_PCI_BRIDGE is not set CONFIG_SSB_PCMCIAHOST_POSSIBLE=y CONFIG_SSB_PCMCIAHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y @@ -2766,7 +2765,7 @@ CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y -CONFIG_USB=m +CONFIG_USB=y # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y @@ -2787,21 +2786,20 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -CONFIG_USB_XHCI_HCD=m +CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_HCD_DEBUGGING is not set -CONFIG_USB_EHCI_HCD=m -# CONFIG_USB_EHCI_ROOT_HUB_TT is not set -# CONFIG_USB_EHCI_TT_NEWSCHED is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_ISP1362_HCD=m -CONFIG_USB_OHCI_HCD=m -CONFIG_USB_OHCI_HCD_SSB=y +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -CONFIG_USB_UHCI_HCD=m +CONFIG_USB_UHCI_HCD=y CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m # CONFIG_USB_SL811_CS is not set @@ -2809,10 +2807,6 @@ CONFIG_USB_R8A66597_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m -# -# Enable Host or Gadget support to see Inventra options -# - # # USB Device Class drivers # @@ -3385,7 +3379,9 @@ CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_SYSV_FS is not set -# CONFIG_UFS_FS is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m @@ -3433,7 +3429,7 @@ CONFIG_PARTITION_ADVANCED=y # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set +CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set @@ -3563,6 +3559,7 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_DMA_API_DEBUG is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KMEMCHECK=y +# CONFIG_KMEMCHECK is not set # CONFIG_STRICT_DEVMEM is not set CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set diff --git a/config/madwifi/madwifi.conf b/config/madwifi/madwifi.conf deleted file mode 100644 index a4a234f379..0000000000 --- a/config/madwifi/madwifi.conf +++ /dev/null @@ -1,295 +0,0 @@ -##### hostapd configuration file ############################################## -# Empty lines and lines starting with # are ignored - -# AP netdevice name (without 'ap' prefix, i.e., wlan0 uses wlan0ap for -# management frames) -interface=ath0 - -# Driver interface type (hostap/wired/madwifi/prism54; default: hostap) -driver=madwifi - -# hostapd event logger configuration -# -# Two output method: syslog and stdout (only usable if not forking to -# background). -# -# Module bitfield (ORed bitfield of modules that will be logged; -1 = all -# modules): -# bit 0 (1) = IEEE 802.11 -# bit 1 (2) = IEEE 802.1X -# bit 2 (4) = RADIUS -# bit 3 (8) = WPA -# bit 4 (16) = driver interface -# bit 5 (32) = IAPP -# -# Levels (minimum value for logged events): -# 0 = verbose debugging -# 1 = debugging -# 2 = informational messages -# 3 = notification -# 4 = warning -# -logger_syslog=-1 -logger_syslog_level=2 -logger_stdout=-1 -logger_stdout_level=1 - -# Debugging: 0 = no, 1 = minimal, 2 = verbose, 3 = msg dumps, 4 = excessive -debug=0 - -# Dump file for state information (on SIGUSR1) -dump_file=/tmp/hostapd.dump - -# Interface for separate control program. If this is specified, hostapd -# will create this directory and a UNIX domain socket for listening to requests -# from external programs (CLI/GUI, etc.) for status information and -# configuration. The socket file will be named based on the interface name, so -# multiple hostapd processes/interfaces can be run at the same time if more -# than one interface is used. -# /var/run/hostapd is the recommended directory for sockets and by default, -# hostapd_cli will use it when trying to connect with hostapd. -ctrl_interface=/var/run/hostapd - -# Access control for the control interface can be configured by setting the -# directory to allow only members of a group to use sockets. This way, it is -# possible to run hostapd as root (since it needs to change network -# configuration and open raw sockets) and still allow GUI/CLI components to be -# run as non-root users. However, since the control interface can be used to -# change the network configuration, this access needs to be protected in many -# cases. By default, hostapd is configured to use gid 0 (root). If you -# want to allow non-root users to use the contron interface, add a new group -# and change this value to match with that group. Add users that should have -# control interface access to this group. -# -# This variable can be a group name or gid. -#ctrl_interface_group=wheel -ctrl_interface_group=0 - - -##### IEEE 802.11 related configuration ####################################### - -# SSID to be used in IEEE 802.11 management frames -ssid=IPFire - -# Station MAC address -based authentication -# 0 = accept unless in deny list -# 1 = deny unless in accept list -# 2 = use external RADIUS server (accept/deny lists are searched first) -macaddr_acl=0 - -# Accept/deny lists are read from separate files (containing list of -# MAC addresses, one per line). Use absolute path name to make sure that the - -# files can be read on SIGHUP configuration reloads. -#accept_mac_file=/etc/hostapd/hostapd.accept -#deny_mac_file=/etc/hostapd/hostapd.deny - -# IEEE 802.11 specifies two authentication algorithms. hostapd can be -# configured to allow both of these or only one. Open system authentication -# should be used with IEEE 802.1X. -# Bit fields of allowed authentication algorithms: -# bit 0 = Open System Authentication -# bit 1 = Shared Key Authentication (requires WEP) -auth_algs=1 - -# Associate as a station to another AP while still acting as an AP on the same -# channel. -#assoc_ap_addr=00:12:34:56:78:9a - - -##### IEEE 802.1X (and IEEE 802.1aa/D4) related configuration ################# - -# Require IEEE 802.1X authorization -#ieee8021x=0 - -# Use integrated EAP authenticator instead of external RADIUS authentication -# server -#eap_authenticator=0 - -# Path for EAP authenticator user database -#eap_user_file=/etc/hostapd/eap_user - -# CA certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS -#ca_cert=/etc/hostapd/ca.pem - -# Server certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS -#server_cert=/etc/hostapd/server.pem - -# Private key matching with the server certificate for EAP-TLS/PEAP/TTLS -# This may point to the same file as server_cert if both certificate and key -# are included in a single file. PKCS#12 (PFX) file (.p12/.pfx) can also be -# used by commenting out server_cert and specifying the PFX file as the -# private_key. -#private_key=/etc/hostapd/server.prv - -# Passphrase for private key -#private_key_passwd=secret passphrase - -# Configuration data for EAP-SIM database/authentication gateway interface. -# This is a text string in implementation specific format. The example -# implementation in eap_sim_db.c uses this as the file name for the GSM -# authentication triplets. -#eap_sim_db=/etc/hostapd/sim_db - -# Optional displayable message sent with EAP Request-Identity -#eap_message=hello - -# WEP rekeying (disabled if key lengths are not set or are set to 0) -# Key lengths for default/broadcast and individual/unicast keys: -# 5 = 40-bit WEP (also known as 64-bit WEP with 40 secret bits) -# 13 = 104-bit WEP (also known as 128-bit WEP with 104 secret bits) -#wep_key_len_broadcast=5 -#wep_key_len_unicast=5 -# Rekeying period in seconds. 0 = do not rekey (i.e., set keys only once) -#wep_rekey_period=300 - -# EAPOL-Key index workaround (set bit7) for WinXP Supplicant (needed only if -# only broadcast keys are used) -#eapol_key_index_workaround=0 - -# EAP reauthentication period in seconds (default: 3600 seconds; 0 = disable -# reauthentication). -#eap_reauth_period=3600 - - -##### IEEE 802.11f - Inter-Access Point Protocol (IAPP) ####################### - -# Interface to be used for IAPP broadcast packets -#iapp_interface=eth0 - - -##### RADIUS configuration #################################################### -# for IEEE 802.1X with external Authentication Server, IEEE 802.11 -# authentication with external ACL for MAC addresses, and accounting - -# The own IP address of the access point (used as NAS-IP-Address) -#own_ip_addr=127.0.0.1 - -# Optional NAS-Identifier string for RADIUS messages. When used, this should be -# a unique to the NAS within the scope of the RADIUS server. For example, a -# fully qualified domain name can be used here. -#nas_identifier=ap.example.com - -# RADIUS authentication server -#auth_server_addr=127.0.0.1 -#auth_server_port=1812 -#auth_server_shared_secret=secret - -# RADIUS accounting server -#acct_server_addr=127.0.0.1 -#acct_server_port=1813 -#acct_server_shared_secret=secret - -# Secondary RADIUS servers; to be used if primary one does not reply to -# RADIUS packets. These are optional and there can be more than one secondary -# server listed. -#auth_server_addr=127.0.0.2 -#auth_server_port=1812 -#auth_server_shared_secret=secret2 -# -#acct_server_addr=127.0.0.2 -#acct_server_port=1813 -#acct_server_shared_secret=secret2 - -# Retry interval for trying to return to the primary RADIUS server (in -# seconds). RADIUS client code will automatically try to use the next server -# when the current server is not replying to requests. If this interval is set, -# primary server will be retried after configured amount of time even if the -# currently used secondary server is still working. -#radius_retry_primary_interval=600 - -# Interim accounting update interval -# If this is set (larger than 0) and acct_server is configured, hostapd will -# send interim accounting updates every N seconds. Note: if set, this overrides -# possible Acct-Interim-Interval attribute in Access-Accept message. Thus, this -# value should not be configured in hostapd.conf, if RADIUS server is used to -# control the interim interval. -# This value should not be less 600 (10 minutes) and must not be less than -# 60 (1 minute). -#radius_acct_interim_interval=600 - -# hostapd can be used as a RADIUS authentication server for other hosts. This -# requires that the integrated EAP authenticator is also enabled and both -# authentication services are sharing the same configuration. - -# File name of the RADIUS clients configuration for the RADIUS server. If this -# commented out, RADIUS server is disabled. -#radius_server_clients=/etc/hostapd/radius_clients - -# The UDP port number for the RADIUS authentication server -#radius_server_auth_port=1812 - - -##### WPA/IEEE 802.11i configuration ########################################## - -# Enable WPA. Setting this variable configures the AP to require WPA (either -# WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either -# wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK. -# For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys), -# RADIUS authentication server must be configured, and WPA-EAP must be included -# in wpa_key_mgmt. -# This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0) -# and/or WPA2 (full IEEE 802.11i/RSN): -# bit0 = WPA -# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled) -wpa=1 - -# WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit -# secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase -# (8..63 characters) that will be converted to PSK. This conversion uses SSID -# so the PSK changes when ASCII passphrase is used and the SSID is changed. -# wpa_psk (dot11RSNAConfigPSKValue) -# wpa_passphrase (dot11RSNAConfigPSKPassPhrase) -#wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef -wpa_passphrase=yoursecretpassphrase - -# Optionally, WPA PSKs can be read from a separate text file (containing list -# of (PSK,MAC address) pairs. This allows more than one PSK to be configured. -# Use absolute path name to make sure that the files can be read on SIGHUP -# configuration reloads. -#wpa_psk_file=/etc/hostapd/wpa_psk - -# Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The -# entries are separated with a space. -# (dot11RSNAConfigAuthenticationSuitesTable) -#wpa_key_mgmt=WPA-PSK WPA-EAP -wpa_key_mgmt=WPA-PSK - -# Set of accepted cipher suites (encryption algorithms) for pairwise keys -# (unicast packets). This is a space separated list of algorithms: - -# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] -# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] -# Group cipher suite (encryption algorithm for broadcast and multicast frames) -# is automatically selected based on this configuration. If only CCMP is -# allowed as the pairwise cipher, group cipher will also be CCMP. Otherwise, -# TKIP will be used as the group cipher. -# (dot11RSNAConfigPairwiseCiphersTable) -wpa_pairwise=TKIP CCMP - -# Time interval for rekeying GTK (broadcast/multicast encryption keys) in -# seconds. (dot11RSNAConfigGroupRekeyTime) -#wpa_group_rekey=600 - -# Rekey GTK when any STA that possesses the current GTK is leaving the BSS. -# (dot11RSNAConfigGroupRekeyStrict) -#wpa_strict_rekey=1 - -# Time interval for rekeying GMK (master key used internally to generate GTKs -# (in seconds). -#wpa_gmk_rekey=86400 - -# Enable IEEE 802.11i/RSN/WPA2 pre-authentication. This is used to speed up -# roaming be pre-authenticating IEEE 802.1X/EAP part of the full RSN -# authentication and key handshake before actually associating with a new AP. -# (dot11RSNAPreauthenticationEnabled) -#rsn_preauth=1 -# -# Space separated list of interfaces from which pre-authentication frames are -# accepted (e.g., 'eth0' or 'eth0 wlan0wds0'. This list should include all -# interface that are used for connections to other APs. This could include -# wired interfaces and WDS links. The normal wireless data interface towards -# associated stations (e.g., wlan0) should not be added, since -# pre-authentication is only used with APs other than the currently associated -# one. -#rsn_preauth_interfaces=eth0 diff --git a/config/profile.d/colorls.sh b/config/profile.d/colorls.sh new file mode 100644 index 0000000000..dc5c223324 --- /dev/null +++ b/config/profile.d/colorls.sh @@ -0,0 +1,40 @@ +# color-ls initialization + +#when USER_LS_COLORS defined do not override user LS_COLORS, but use them. +if [ -z "$USER_LS_COLORS" ]; then + + alias ll='ls -l' 2>/dev/null + alias l.='ls -d .*' 2>/dev/null + + + # Skip the rest for noninteractive shells. + [ -z "$PS1" ] && return + + COLORS= + + for colors in "$HOME/.dir_colors.$TERM" "$HOME/.dircolors.$TERM" \ + "$HOME/.dir_colors" "$HOME/.dircolors"; do + [ -e "$colors" ] && COLORS="$colors" && break + done + + [ -z "$COLORS" ] && [ -e "/etc/DIR_COLORS.256color" ] && \ + [ "x`tty -s && tput colors 2>/dev/null`" = "x256" ] && \ + COLORS="/etc/DIR_COLORS.256color" + + if [ -z "$COLORS" ]; then + for colors in "/etc/DIR_COLORS.$TERM" "/etc/DIR_COLORS" ; do + [ -e "$colors" ] && COLORS="$colors" && break + done + fi + + # Existence of $COLORS already checked above. + [ -n "$COLORS" ] || return + + eval "`dircolors --sh "$COLORS" 2>/dev/null`" + [ -z "$LS_COLORS" ] && return + grep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null && return +fi + +alias ll='ls -l --color=auto' 2>/dev/null +alias l.='ls -d .* --color=auto' 2>/dev/null +alias ls='ls --color=auto' 2>/dev/null diff --git a/config/profile.d/dircolors.sh b/config/profile.d/dircolors.sh deleted file mode 100644 index 873d91b9b4..0000000000 --- a/config/profile.d/dircolors.sh +++ /dev/null @@ -1,9 +0,0 @@ -# Setup for /bin/ls to support color, the alias is in /etc/bashrc. -if [ -f "/etc/dircolors" ] ; then - eval $(dircolors -b /etc/dircolors) - - if [ -f "$HOME/.dircolors" ] ; then - eval $(dircolors -b $HOME/.dircolors) - fi -fi -alias ls='ls --color=auto' diff --git a/config/profile.d/extrapaths.sh b/config/profile.d/extrapaths.sh index bb8f720935..d712736bd3 100644 --- a/config/profile.d/extrapaths.sh +++ b/config/profile.d/extrapaths.sh @@ -1,15 +1,11 @@ -if [ -d /usr/local/bin ]; then - pathprepend /usr/local/bin -fi -if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then - pathprepend /usr/local/sbin -fi -for directory in $(find /opt/*/bin -type d 2>/dev/null); do - pathappend $directory +# Make sure the basic paths are always available. + +pathmunge /bin +pathmunge /usr/bin +pathmunge /usr/local/bin + +for directory in $(find /opt/*/bin -maxdepth 1 -type d 2>/dev/null); do + pathmunge ${directory} after done -if [ -d ~/bin ]; then - pathprepend ~/bin -fi -#if [ $EUID -gt 99 ]; then -# pathappend . -#fi + +unset directory diff --git a/config/profile.d/glib2-locale.sh b/config/profile.d/glib2-locale.sh new file mode 100644 index 0000000000..8dd50d5570 --- /dev/null +++ b/config/profile.d/glib2-locale.sh @@ -0,0 +1,3 @@ +# Use the current locale charset for filenames +# in applications using GLib +export G_FILENAME_ENCODING=@locale diff --git a/config/profile.d/i18n.sh b/config/profile.d/i18n.sh index ac68d67820..2f66e89c3b 100644 --- a/config/profile.d/i18n.sh +++ b/config/profile.d/i18n.sh @@ -1,2 +1,10 @@ # Set up i18n variables -export LANG=en_US.utf8 + +if [ -f "/etc/sysconfig/console" ]; then + . /etc/sysconfig/console +else + LANG=en_US.UTF-8 +fi + +unset KEYMAP FONT UNICODE KEYMAP_CORRECTIONS LEGACY_CHARSET +export LANG diff --git a/config/profile.d/lang.sh b/config/profile.d/lang.sh new file mode 100644 index 0000000000..5be62ad814 --- /dev/null +++ b/config/profile.d/lang.sh @@ -0,0 +1,90 @@ +# /etc/profile.d/lang.sh - set i18n stuff + +sourced=0 + +if [ -n "$LANG" ]; then + saved_lang="$LANG" + [ -f "$HOME/.i18n" ] && . "$HOME/.i18n" && sourced=1 + LANG="$saved_lang" + unset saved_lang +else + for langfile in /etc/sysconfig/i18n "$HOME/.i18n" ; do + [ -f $langfile ] && . $langfile && sourced=1 + done +fi + +if [ "$sourced" = 1 ]; then + [ -n "$LANG" ] && export LANG || unset LANG + [ -n "$LC_ADDRESS" ] && export LC_ADDRESS || unset LC_ADDRESS + [ -n "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE + [ -n "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE + [ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION || unset LC_IDENTIFICATION + [ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT || unset LC_MEASUREMENT + [ -n "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES + [ -n "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY + [ -n "$LC_NAME" ] && export LC_NAME || unset LC_NAME + [ -n "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC + [ -n "$LC_PAPER" ] && export LC_PAPER || unset LC_PAPER + [ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE || unset LC_TELEPHONE + [ -n "$LC_TIME" ] && export LC_TIME || unset LC_TIME + if [ -n "$LC_ALL" ]; then + if [ "$LC_ALL" != "$LANG" ]; then + export LC_ALL + else + unset LC_ALL + fi + else + unset LC_ALL + fi + [ -n "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE + [ -n "$LINGUAS" ] && export LINGUAS || unset LINGUAS + [ -n "$_XKB_CHARSET" ] && export _XKB_CHARSET || unset _XKB_CHARSET + + consoletype=$CONSOLETYPE + if [ -z "$consoletype" ]; then + consoletype=$(/sbin/consoletype stdout) + fi + + if [ -n "$LANG" ]; then + case $LANG in + *.utf8*|*.UTF-8*) + if [ "$TERM" = "linux" ]; then + if [ "$consoletype" = "vt" ]; then + case $LANG in + ja*) LANG=en_US.UTF-8 ;; + ko*) LANG=en_US.UTF-8 ;; + si*) LANG=en_US.UTF-8 ;; + zh*) LANG=en_US.UTF-8 ;; + ar*) LANG=en_US.UTF-8 ;; + fa*) LANG=en_US.UTF-8 ;; + he*) LANG=en_US.UTF-8 ;; + en_IN*) ;; + *_IN*) LANG=en_US.UTF-8 ;; + esac + fi + fi + ;; + *) + if [ "$TERM" = "linux" ]; then + if [ "$consoletype" = "vt" ]; then + case $LANG in + ja*) LANG=en_US ;; + ko*) LANG=en_US ;; + si*) LANG=en_US ;; + zh*) LANG=en_US ;; + ar*) LANG=en_US ;; + fa*) LANG=en_US ;; + he*) LANG=en_US ;; + en_IN*) ;; + *_IN*) LANG=en_US ;; + esac + fi + fi + ;; + esac + fi + + unset SYSFONTACM SYSFONT consoletype +fi +unset sourced +unset langfile diff --git a/config/profile.d/term256.sh b/config/profile.d/term256.sh new file mode 100644 index 0000000000..546f67bcbc --- /dev/null +++ b/config/profile.d/term256.sh @@ -0,0 +1,26 @@ +# Enable 256 color capabilities for appropriate terminals + +# Set this variable in your local shell config (such as ~/.bashrc) +# if you want remote xterms connecting to this system, to be sent 256 colors. +# This must be set before reading global initialization such as /etc/bashrc. +# SEND_256_COLORS_TO_REMOTE=1 + +# Terminals with any of the following set, support 256 colors (and are local) +local256="$COLORTERM$XTERM_VERSION$ROXTERM_ID$KONSOLE_DBUS_SESSION" + +if [ -n "$local256" ] || [ -n "$SEND_256_COLORS_TO_REMOTE" ]; then + + case "$TERM" in + 'xterm') TERM=xterm-256color;; + 'screen') TERM=screen-256color;; + 'Eterm') TERM=Eterm-256color;; + esac + export TERM + + if [ -n "$TERMCAP" ] && [ "$TERM" = "screen-256color" ]; then + TERMCAP=$(echo "$TERMCAP" | sed -e 's/Co#8/Co#256/g') + export TERMCAP + fi +fi + +unset local256 diff --git a/config/qos/makeqosscripts.pl b/config/qos/makeqosscripts.pl index 0b97b85a6c..b623cbec91 100644 --- a/config/qos/makeqosscripts.pl +++ b/config/qos/makeqosscripts.pl @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -58,6 +58,7 @@ my $subclassfile = "/var/ipfire/qos/subclasses"; my $level7file = "/var/ipfire/qos/level7config"; my $portfile = "/var/ipfire/qos/portconfig"; my $tosfile = "/var/ipfire/qos/tosconfig"; +my $fqcodel_options = "limit 800 quantum 500"; &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); @@ -70,7 +71,6 @@ $qossettings{'DEF_INC_SPD'} = ''; $qossettings{'DEFCLASS_INC'} = ''; $qossettings{'DEFCLASS_OUT'} = ''; $qossettings{'ACK'} = ''; -$qossettings{'MTU'} = '1492'; $qossettings{'RED_DEV'} = `cat /var/ipfire/red/iface`; $qossettings{'IMQ_DEV'} = 'imq0'; $qossettings{'TOS'} = ''; @@ -160,11 +160,8 @@ case "\$1" in ### INIT KERNEL modprobe sch_htb - ### SET QUEUE LENGTH & MTU - has just to be tested!!! IMPORTANT - ip link set dev $qossettings{'RED_DEV'} qlen $qossettings{'QLENGTH'} - #ip link set dev $qossettings{'RED_DEV'} mtu $qossettings{'MTU'} - ### ADD HTB QDISC FOR $qossettings{'RED_DEV'} + tc qdisc del dev $qossettings{'RED_DEV'} root >/dev/null 2>&1 tc qdisc add dev $qossettings{'RED_DEV'} root handle 1: htb default $qossettings{'DEFCLASS_OUT'} ### MAIN RATE LIMIT @@ -223,7 +220,7 @@ foreach $classentry (sort @classes) if ($qossettings{'RED_DEV'} eq $classline[0]) { $qossettings{'DEVICE'} = $classline[0]; $qossettings{'CLASS'} = $classline[1]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n"; } } foreach $subclassentry (sort @subclasses) { @@ -231,7 +228,7 @@ foreach $subclassentry (sort @subclasses) { if ($qossettings{'RED_DEV'} eq $subclassline[0]) { $qossettings{'DEVICE'} = $subclassline[0]; $qossettings{'SCLASS'} = $subclassline[2]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 1:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel $fqcodel_options\n"; } } print "\n\t### FILTER TRAFFIC INTO CLASSES\n"; @@ -417,11 +414,8 @@ print </dev/null 2>&1 tc qdisc add dev $qossettings{'IMQ_DEV'} root handle 2: htb default $qossettings{'DEFCLASS_INC'} ### MAIN RATE LIMIT @@ -480,7 +474,7 @@ foreach $classentry (sort @classes) if ($qossettings{'IMQ_DEV'} eq $classline[0]) { $qossettings{'DEVICE'} = $classline[0]; $qossettings{'CLASS'} = $classline[1]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel $fqcodel_options\n"; } } foreach $subclassentry (sort @subclasses) { @@ -488,7 +482,7 @@ foreach $subclassentry (sort @subclasses) { if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) { $qossettings{'DEVICE'} = $subclassline[0]; $qossettings{'SCLASS'} = $subclassline[2]; - print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n"; + print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel $fqcodel_options\n"; } } print "\n\t### FILTER TRAFFIC INTO CLASSES\n"; @@ -693,7 +687,9 @@ print </dev/null) & # DELETE QDISCS tc qdisc del dev $qossettings{'RED_DEV'} root >/dev/null 2>&1 + tc qdisc add root dev $qossettings{'RED_DEV'} fq_codel >/dev/null 2>&1 tc qdisc del dev $qossettings{'IMQ_DEV'} root >/dev/null 2>&1 + tc qdisc add root dev $qossettings{'IMQ_DEV'} fq_codel >/dev/null 2>&1 # STOP IMQ-DEVICE ip link set $qossettings{'IMQ_DEV'} down >/dev/null 2>&1 iptables -t mangle --delete POSTROUTING -i $qossettings{'RED_DEV'} -p ah -j RETURN >/dev/null 2>&1 diff --git a/config/rootfiles/common/Crypt-PasswdMD5 b/config/rootfiles/common/Crypt-PasswdMD5 index 93df4cbed5..82c392df2c 100644 --- a/config/rootfiles/common/Crypt-PasswdMD5 +++ b/config/rootfiles/common/Crypt-PasswdMD5 @@ -1,6 +1,6 @@ #usr/lib/perl5/site_perl/5.12.3/Crypt usr/lib/perl5/site_perl/5.12.3/Crypt/PasswdMD5.pm -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt/PasswdMD5 -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Crypt/PasswdMD5/.packlist +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt/PasswdMD5 +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Crypt/PasswdMD5/.packlist #usr/share/man/man3/Crypt::PasswdMD5.3 diff --git a/config/rootfiles/common/IO-Socket-SSL b/config/rootfiles/common/IO-Socket-SSL new file mode 100644 index 0000000000..09b9f31987 --- /dev/null +++ b/config/rootfiles/common/IO-Socket-SSL @@ -0,0 +1,6 @@ +usr/lib/perl5/site_perl/5.12.3/IO/Socket +usr/lib/perl5/site_perl/5.12.3/IO/Socket/SSL.pm +usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/IO/Socket +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/IO/Socket/SSL +#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/IO/Socket/SSL/.packlist +#usr/share/man/man3/IO::Socket::SSL.3 diff --git a/config/rootfiles/common/armv5tel/binutils b/config/rootfiles/common/armv5tel/binutils index 7ccfa4fa4f..b3d281d85d 100644 --- a/config/rootfiles/common/armv5tel/binutils +++ b/config/rootfiles/common/armv5tel/binutils @@ -2,8 +2,10 @@ #usr/bin/ar #usr/bin/as #usr/bin/c++filt +#usr/bin/elfedit #usr/bin/gprof #usr/bin/ld +#usr/bin/ld.bfd #usr/bin/nm #usr/bin/objcopy #usr/bin/objdump @@ -18,13 +20,6 @@ #usr/include/dis-asm.h #usr/include/libiberty.h #usr/include/symcat.h -#usr/info/as.info -#usr/info/bfd.info -#usr/info/binutils.info -#usr/info/configure.info -#usr/info/gprof.info -#usr/info/ld.info -#usr/info/standards.info #usr/lib/ldscripts #usr/lib/ldscripts/armelf_linux_eabi.x #usr/lib/ldscripts/armelf_linux_eabi.xbn @@ -52,32 +47,38 @@ #usr/lib/ldscripts/armelfb_linux_eabi.xsw #usr/lib/ldscripts/armelfb_linux_eabi.xu #usr/lib/ldscripts/armelfb_linux_eabi.xw -#usr/lib/libbfd-2.18.so +usr/lib/libbfd-2.22.so #usr/lib/libbfd.a #usr/lib/libbfd.la #usr/lib/libbfd.so #usr/lib/libiberty.a -#usr/lib/libopcodes-2.18.so +usr/lib/libopcodes-2.22.so #usr/lib/libopcodes.a #usr/lib/libopcodes.la #usr/lib/libopcodes.so -#usr/man -#usr/man/man1 -#usr/man/man1/addr2line.1 -#usr/man/man1/ar.1 -#usr/man/man1/as.1 -#usr/man/man1/c++filt.1 -#usr/man/man1/dlltool.1 -#usr/man/man1/gprof.1 -#usr/man/man1/ld.1 -#usr/man/man1/nlmconv.1 -#usr/man/man1/nm.1 -#usr/man/man1/objcopy.1 -#usr/man/man1/objdump.1 -#usr/man/man1/ranlib.1 -#usr/man/man1/readelf.1 -#usr/man/man1/size.1 -#usr/man/man1/strings.1 -#usr/man/man1/strip.1 -#usr/man/man1/windmc.1 -#usr/man/man1/windres.1 +#usr/share/info/as.info +#usr/share/info/bfd.info +#usr/share/info/binutils.info +#usr/share/info/configure.info +#usr/share/info/gprof.info +#usr/share/info/ld.info +#usr/share/info/standards.info +#usr/share/man/man1/addr2line.1 +#usr/share/man/man1/ar.1 +#usr/share/man/man1/as.1 +#usr/share/man/man1/c++filt.1 +#usr/share/man/man1/dlltool.1 +#usr/share/man/man1/elfedit.1 +#usr/share/man/man1/gprof.1 +#usr/share/man/man1/ld.1 +#usr/share/man/man1/nlmconv.1 +#usr/share/man/man1/nm.1 +#usr/share/man/man1/objcopy.1 +#usr/share/man/man1/objdump.1 +#usr/share/man/man1/ranlib.1 +#usr/share/man/man1/readelf.1 +#usr/share/man/man1/size.1 +#usr/share/man/man1/strings.1 +#usr/share/man/man1/strip.1 +#usr/share/man/man1/windmc.1 +#usr/share/man/man1/windres.1 diff --git a/config/rootfiles/common/armv5tel/dracut b/config/rootfiles/common/armv5tel/dracut new file mode 100644 index 0000000000..4d4ed18bf3 --- /dev/null +++ b/config/rootfiles/common/armv5tel/dracut @@ -0,0 +1,65 @@ +#boot/ipfirerd-KVER-kirkwood.img +#boot/ipfirerd-KVER-omap.img +#boot/uInit-ipfire-kirkwood +#boot/uInit-ipfire-omap +etc/dracut.conf +etc/dracut.conf.d +#etc/dracut.conf.d/dracut.conf +sbin/dracut +sbin/dracut-catimages +sbin/dracut-gencmdline +sbin/lsinitrd +sbin/mkinitrd +sbin/switch_root +usr/share/dracut +usr/share/dracut/dracut-functions +usr/share/dracut/modules.d +usr/share/dracut/modules.d/60xen +usr/share/dracut/modules.d/60xen/check +usr/share/dracut/modules.d/60xen/install +usr/share/dracut/modules.d/60xen/installkernel +usr/share/dracut/modules.d/60xen/xen-pre-udev.sh +usr/share/dracut/modules.d/90kernel-modules +usr/share/dracut/modules.d/90kernel-modules/install +usr/share/dracut/modules.d/90kernel-modules/installkernel +usr/share/dracut/modules.d/90kernel-modules/parse-kernel.sh +usr/share/dracut/modules.d/95debug +usr/share/dracut/modules.d/95debug/check +usr/share/dracut/modules.d/95debug/install +usr/share/dracut/modules.d/95rootfs-block +usr/share/dracut/modules.d/95rootfs-block/block-genrules.sh +usr/share/dracut/modules.d/95rootfs-block/install +usr/share/dracut/modules.d/95rootfs-block/mount-root.sh +usr/share/dracut/modules.d/95rootfs-block/parse-block.sh +usr/share/dracut/modules.d/95terminfo +usr/share/dracut/modules.d/95terminfo/install +usr/share/dracut/modules.d/95udev-rules +usr/share/dracut/modules.d/95udev-rules/01-ignore.rules +usr/share/dracut/modules.d/95udev-rules/59-persistent-storage-volid.rules +usr/share/dracut/modules.d/95udev-rules/59-persistent-storage.rules +usr/share/dracut/modules.d/95udev-rules/61-persistent-storage.rules +usr/share/dracut/modules.d/95udev-rules/install +usr/share/dracut/modules.d/95udev-rules/load-modules.sh +usr/share/dracut/modules.d/98syslog +usr/share/dracut/modules.d/98syslog/README +usr/share/dracut/modules.d/98syslog/check +usr/share/dracut/modules.d/98syslog/install +usr/share/dracut/modules.d/98syslog/parse-syslog-opts.sh +usr/share/dracut/modules.d/98syslog/rsyslog.conf +usr/share/dracut/modules.d/98syslog/rsyslogd-start.sh +usr/share/dracut/modules.d/98syslog/rsyslogd-stop.sh +usr/share/dracut/modules.d/98syslog/syslog-cleanup.sh +usr/share/dracut/modules.d/98syslog/syslog-genrules.sh +usr/share/dracut/modules.d/99base +usr/share/dracut/modules.d/99base/check +usr/share/dracut/modules.d/99base/dracut-lib.sh +usr/share/dracut/modules.d/99base/init +usr/share/dracut/modules.d/99base/initqueue +usr/share/dracut/modules.d/99base/install +usr/share/dracut/modules.d/99base/loginit +usr/share/dracut/modules.d/99base/parse-blacklist.sh +usr/share/dracut/modules.d/99base/parse-root-opts.sh +#usr/share/man/man5/dracut.conf.5 +#usr/share/man/man8/dracut-catimages.8 +#usr/share/man/man8/dracut-gencmdline.8 +#usr/share/man/man8/dracut.8 diff --git a/config/rootfiles/common/armv5tel/gcc b/config/rootfiles/common/armv5tel/gcc index 2295ae92f4..ee9d800353 100644 --- a/config/rootfiles/common/armv5tel/gcc +++ b/config/rootfiles/common/armv5tel/gcc @@ -2,7 +2,7 @@ #usr/bin/armv5tel-unknown-linux-gnueabi-c++ #usr/bin/armv5tel-unknown-linux-gnueabi-g++ #usr/bin/armv5tel-unknown-linux-gnueabi-gcc -#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.1.2 +#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.4.7 #usr/bin/c++ #usr/bin/cc #usr/bin/cpp @@ -11,545 +11,766 @@ #usr/bin/gccbug #usr/bin/gcov #usr/include/c++ -#usr/include/c++/4.1.2 -#usr/include/c++/4.1.2/algorithm -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/basic_file.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++config.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++io.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++locale.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/messages_members.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/os_defines.h -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O0g.gch -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O2g.gch -#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/time_members.h -#usr/include/c++/4.1.2/backward -#usr/include/c++/4.1.2/backward/algo.h -#usr/include/c++/4.1.2/backward/algobase.h -#usr/include/c++/4.1.2/backward/alloc.h -#usr/include/c++/4.1.2/backward/backward_warning.h -#usr/include/c++/4.1.2/backward/bvector.h -#usr/include/c++/4.1.2/backward/complex.h -#usr/include/c++/4.1.2/backward/defalloc.h -#usr/include/c++/4.1.2/backward/deque.h -#usr/include/c++/4.1.2/backward/fstream.h -#usr/include/c++/4.1.2/backward/function.h -#usr/include/c++/4.1.2/backward/hash_map.h -#usr/include/c++/4.1.2/backward/hash_set.h -#usr/include/c++/4.1.2/backward/hashtable.h -#usr/include/c++/4.1.2/backward/heap.h -#usr/include/c++/4.1.2/backward/iomanip.h -#usr/include/c++/4.1.2/backward/iostream.h -#usr/include/c++/4.1.2/backward/istream.h -#usr/include/c++/4.1.2/backward/iterator.h -#usr/include/c++/4.1.2/backward/list.h -#usr/include/c++/4.1.2/backward/map.h -#usr/include/c++/4.1.2/backward/multimap.h -#usr/include/c++/4.1.2/backward/multiset.h -#usr/include/c++/4.1.2/backward/new.h -#usr/include/c++/4.1.2/backward/ostream.h -#usr/include/c++/4.1.2/backward/pair.h -#usr/include/c++/4.1.2/backward/queue.h -#usr/include/c++/4.1.2/backward/rope.h -#usr/include/c++/4.1.2/backward/set.h -#usr/include/c++/4.1.2/backward/slist.h -#usr/include/c++/4.1.2/backward/stack.h -#usr/include/c++/4.1.2/backward/stream.h -#usr/include/c++/4.1.2/backward/streambuf.h -#usr/include/c++/4.1.2/backward/strstream -#usr/include/c++/4.1.2/backward/tempbuf.h -#usr/include/c++/4.1.2/backward/tree.h -#usr/include/c++/4.1.2/backward/vector.h -#usr/include/c++/4.1.2/bits -#usr/include/c++/4.1.2/bits/allocator.h -#usr/include/c++/4.1.2/bits/atomicity.h -#usr/include/c++/4.1.2/bits/basic_ios.h -#usr/include/c++/4.1.2/bits/basic_ios.tcc -#usr/include/c++/4.1.2/bits/basic_string.h -#usr/include/c++/4.1.2/bits/basic_string.tcc -#usr/include/c++/4.1.2/bits/boost_concept_check.h -#usr/include/c++/4.1.2/bits/char_traits.h -#usr/include/c++/4.1.2/bits/cmath.tcc -#usr/include/c++/4.1.2/bits/codecvt.h -#usr/include/c++/4.1.2/bits/concept_check.h -#usr/include/c++/4.1.2/bits/concurrence.h -#usr/include/c++/4.1.2/bits/cpp_type_traits.h -#usr/include/c++/4.1.2/bits/deque.tcc -#usr/include/c++/4.1.2/bits/fstream.tcc -#usr/include/c++/4.1.2/bits/functexcept.h -#usr/include/c++/4.1.2/bits/gslice.h -#usr/include/c++/4.1.2/bits/gslice_array.h -#usr/include/c++/4.1.2/bits/indirect_array.h -#usr/include/c++/4.1.2/bits/ios_base.h -#usr/include/c++/4.1.2/bits/istream.tcc -#usr/include/c++/4.1.2/bits/list.tcc -#usr/include/c++/4.1.2/bits/locale_classes.h -#usr/include/c++/4.1.2/bits/locale_facets.h -#usr/include/c++/4.1.2/bits/locale_facets.tcc -#usr/include/c++/4.1.2/bits/localefwd.h -#usr/include/c++/4.1.2/bits/mask_array.h -#usr/include/c++/4.1.2/bits/ostream.tcc -#usr/include/c++/4.1.2/bits/postypes.h -#usr/include/c++/4.1.2/bits/slice_array.h -#usr/include/c++/4.1.2/bits/sstream.tcc -#usr/include/c++/4.1.2/bits/stl_algo.h -#usr/include/c++/4.1.2/bits/stl_algobase.h -#usr/include/c++/4.1.2/bits/stl_bvector.h -#usr/include/c++/4.1.2/bits/stl_construct.h -#usr/include/c++/4.1.2/bits/stl_deque.h -#usr/include/c++/4.1.2/bits/stl_function.h -#usr/include/c++/4.1.2/bits/stl_heap.h -#usr/include/c++/4.1.2/bits/stl_iterator.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h -#usr/include/c++/4.1.2/bits/stl_list.h -#usr/include/c++/4.1.2/bits/stl_map.h -#usr/include/c++/4.1.2/bits/stl_multimap.h -#usr/include/c++/4.1.2/bits/stl_multiset.h -#usr/include/c++/4.1.2/bits/stl_numeric.h -#usr/include/c++/4.1.2/bits/stl_pair.h -#usr/include/c++/4.1.2/bits/stl_queue.h -#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h -#usr/include/c++/4.1.2/bits/stl_relops.h -#usr/include/c++/4.1.2/bits/stl_set.h -#usr/include/c++/4.1.2/bits/stl_stack.h -#usr/include/c++/4.1.2/bits/stl_tempbuf.h -#usr/include/c++/4.1.2/bits/stl_tree.h -#usr/include/c++/4.1.2/bits/stl_uninitialized.h -#usr/include/c++/4.1.2/bits/stl_vector.h -#usr/include/c++/4.1.2/bits/stream_iterator.h -#usr/include/c++/4.1.2/bits/streambuf.tcc -#usr/include/c++/4.1.2/bits/streambuf_iterator.h -#usr/include/c++/4.1.2/bits/stringfwd.h -#usr/include/c++/4.1.2/bits/valarray_after.h -#usr/include/c++/4.1.2/bits/valarray_array.h -#usr/include/c++/4.1.2/bits/valarray_array.tcc -#usr/include/c++/4.1.2/bits/valarray_before.h -#usr/include/c++/4.1.2/bits/vector.tcc -#usr/include/c++/4.1.2/bitset -#usr/include/c++/4.1.2/cassert -#usr/include/c++/4.1.2/cctype -#usr/include/c++/4.1.2/cerrno -#usr/include/c++/4.1.2/cfloat -#usr/include/c++/4.1.2/ciso646 -#usr/include/c++/4.1.2/climits -#usr/include/c++/4.1.2/clocale -#usr/include/c++/4.1.2/cmath -#usr/include/c++/4.1.2/complex -#usr/include/c++/4.1.2/csetjmp -#usr/include/c++/4.1.2/csignal -#usr/include/c++/4.1.2/cstdarg -#usr/include/c++/4.1.2/cstddef -#usr/include/c++/4.1.2/cstdio -#usr/include/c++/4.1.2/cstdlib -#usr/include/c++/4.1.2/cstring -#usr/include/c++/4.1.2/ctime -#usr/include/c++/4.1.2/cwchar -#usr/include/c++/4.1.2/cwctype -#usr/include/c++/4.1.2/cxxabi.h -#usr/include/c++/4.1.2/debug -#usr/include/c++/4.1.2/debug/bitset -#usr/include/c++/4.1.2/debug/debug.h -#usr/include/c++/4.1.2/debug/deque -#usr/include/c++/4.1.2/debug/formatter.h -#usr/include/c++/4.1.2/debug/functions.h -#usr/include/c++/4.1.2/debug/hash_map -#usr/include/c++/4.1.2/debug/hash_map.h -#usr/include/c++/4.1.2/debug/hash_multimap.h -#usr/include/c++/4.1.2/debug/hash_multiset.h -#usr/include/c++/4.1.2/debug/hash_set -#usr/include/c++/4.1.2/debug/hash_set.h -#usr/include/c++/4.1.2/debug/list -#usr/include/c++/4.1.2/debug/macros.h -#usr/include/c++/4.1.2/debug/map -#usr/include/c++/4.1.2/debug/map.h -#usr/include/c++/4.1.2/debug/multimap.h -#usr/include/c++/4.1.2/debug/multiset.h -#usr/include/c++/4.1.2/debug/safe_base.h -#usr/include/c++/4.1.2/debug/safe_iterator.h -#usr/include/c++/4.1.2/debug/safe_iterator.tcc -#usr/include/c++/4.1.2/debug/safe_sequence.h -#usr/include/c++/4.1.2/debug/set -#usr/include/c++/4.1.2/debug/set.h -#usr/include/c++/4.1.2/debug/string -#usr/include/c++/4.1.2/debug/vector -#usr/include/c++/4.1.2/deque -#usr/include/c++/4.1.2/exception -#usr/include/c++/4.1.2/exception_defines.h -#usr/include/c++/4.1.2/ext -#usr/include/c++/4.1.2/ext/algorithm -#usr/include/c++/4.1.2/ext/array_allocator.h -#usr/include/c++/4.1.2/ext/bitmap_allocator.h -#usr/include/c++/4.1.2/ext/codecvt_specializations.h -#usr/include/c++/4.1.2/ext/debug_allocator.h -#usr/include/c++/4.1.2/ext/functional -#usr/include/c++/4.1.2/ext/hash_fun.h -#usr/include/c++/4.1.2/ext/hash_map -#usr/include/c++/4.1.2/ext/hash_set -#usr/include/c++/4.1.2/ext/hashtable.h -#usr/include/c++/4.1.2/ext/iterator -#usr/include/c++/4.1.2/ext/malloc_allocator.h -#usr/include/c++/4.1.2/ext/memory -#usr/include/c++/4.1.2/ext/mt_allocator.h -#usr/include/c++/4.1.2/ext/new_allocator.h -#usr/include/c++/4.1.2/ext/numeric -#usr/include/c++/4.1.2/ext/pb_assoc -#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail -#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp -#usr/include/c++/4.1.2/ext/pod_char_traits.h -#usr/include/c++/4.1.2/ext/pool_allocator.h -#usr/include/c++/4.1.2/ext/rb_tree -#usr/include/c++/4.1.2/ext/rc_string_base.h -#usr/include/c++/4.1.2/ext/rope -#usr/include/c++/4.1.2/ext/ropeimpl.h -#usr/include/c++/4.1.2/ext/slist -#usr/include/c++/4.1.2/ext/sso_string_base.h -#usr/include/c++/4.1.2/ext/stdio_filebuf.h -#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h -#usr/include/c++/4.1.2/ext/typelist.h -#usr/include/c++/4.1.2/ext/vstring.h -#usr/include/c++/4.1.2/ext/vstring.tcc -#usr/include/c++/4.1.2/ext/vstring_fwd.h -#usr/include/c++/4.1.2/ext/vstring_util.h -#usr/include/c++/4.1.2/fstream -#usr/include/c++/4.1.2/functional -#usr/include/c++/4.1.2/iomanip -#usr/include/c++/4.1.2/ios -#usr/include/c++/4.1.2/iosfwd -#usr/include/c++/4.1.2/iostream -#usr/include/c++/4.1.2/istream -#usr/include/c++/4.1.2/iterator -#usr/include/c++/4.1.2/limits -#usr/include/c++/4.1.2/list -#usr/include/c++/4.1.2/locale -#usr/include/c++/4.1.2/map -#usr/include/c++/4.1.2/memory -#usr/include/c++/4.1.2/new -#usr/include/c++/4.1.2/numeric -#usr/include/c++/4.1.2/ostream -#usr/include/c++/4.1.2/queue -#usr/include/c++/4.1.2/set -#usr/include/c++/4.1.2/sstream -#usr/include/c++/4.1.2/stack -#usr/include/c++/4.1.2/stdexcept -#usr/include/c++/4.1.2/streambuf -#usr/include/c++/4.1.2/string -#usr/include/c++/4.1.2/tr1 -#usr/include/c++/4.1.2/tr1/array -#usr/include/c++/4.1.2/tr1/bind_iterate.h -#usr/include/c++/4.1.2/tr1/bind_repeat.h -#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h -#usr/include/c++/4.1.2/tr1/functional -#usr/include/c++/4.1.2/tr1/functional_iterate.h -#usr/include/c++/4.1.2/tr1/hashtable -#usr/include/c++/4.1.2/tr1/memory -#usr/include/c++/4.1.2/tr1/mu_iterate.h -#usr/include/c++/4.1.2/tr1/ref_fwd.h -#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h -#usr/include/c++/4.1.2/tr1/repeat.h -#usr/include/c++/4.1.2/tr1/tuple -#usr/include/c++/4.1.2/tr1/tuple_iterate.h -#usr/include/c++/4.1.2/tr1/type_traits -#usr/include/c++/4.1.2/tr1/type_traits_fwd.h -#usr/include/c++/4.1.2/tr1/unordered_map -#usr/include/c++/4.1.2/tr1/unordered_set -#usr/include/c++/4.1.2/tr1/utility -#usr/include/c++/4.1.2/typeinfo -#usr/include/c++/4.1.2/utility -#usr/include/c++/4.1.2/valarray -#usr/include/c++/4.1.2/vector +#usr/include/c++/4.4.7 +#usr/include/c++/4.4.7/algorithm +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/basic_file.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++config.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++io.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++locale.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/error_constants.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/extc++.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/messages_members.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/os_defines.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdc++.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdtr1c++.h +#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/time_members.h +#usr/include/c++/4.4.7/array +#usr/include/c++/4.4.7/backward +#usr/include/c++/4.4.7/backward/auto_ptr.h +#usr/include/c++/4.4.7/backward/backward_warning.h +#usr/include/c++/4.4.7/backward/binders.h +#usr/include/c++/4.4.7/backward/hash_fun.h +#usr/include/c++/4.4.7/backward/hash_map +#usr/include/c++/4.4.7/backward/hash_set +#usr/include/c++/4.4.7/backward/hashtable.h +#usr/include/c++/4.4.7/backward/strstream +#usr/include/c++/4.4.7/bits +#usr/include/c++/4.4.7/bits/algorithmfwd.h +#usr/include/c++/4.4.7/bits/allocator.h +#usr/include/c++/4.4.7/bits/atomic_0.h +#usr/include/c++/4.4.7/bits/atomic_2.h +#usr/include/c++/4.4.7/bits/atomicfwd_c.h +#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h +#usr/include/c++/4.4.7/bits/basic_ios.h +#usr/include/c++/4.4.7/bits/basic_ios.tcc +#usr/include/c++/4.4.7/bits/basic_string.h +#usr/include/c++/4.4.7/bits/basic_string.tcc +#usr/include/c++/4.4.7/bits/boost_concept_check.h +#usr/include/c++/4.4.7/bits/char_traits.h +#usr/include/c++/4.4.7/bits/cmath.tcc +#usr/include/c++/4.4.7/bits/codecvt.h +#usr/include/c++/4.4.7/bits/concept_check.h +#usr/include/c++/4.4.7/bits/cpp_type_traits.h +#usr/include/c++/4.4.7/bits/deque.tcc +#usr/include/c++/4.4.7/bits/forward_list.h +#usr/include/c++/4.4.7/bits/forward_list.tcc +#usr/include/c++/4.4.7/bits/fstream.tcc +#usr/include/c++/4.4.7/bits/functexcept.h +#usr/include/c++/4.4.7/bits/functional_hash.h +#usr/include/c++/4.4.7/bits/gslice.h +#usr/include/c++/4.4.7/bits/gslice_array.h +#usr/include/c++/4.4.7/bits/hashtable.h +#usr/include/c++/4.4.7/bits/indirect_array.h +#usr/include/c++/4.4.7/bits/ios_base.h +#usr/include/c++/4.4.7/bits/istream.tcc +#usr/include/c++/4.4.7/bits/list.tcc +#usr/include/c++/4.4.7/bits/locale_classes.h +#usr/include/c++/4.4.7/bits/locale_classes.tcc +#usr/include/c++/4.4.7/bits/locale_facets.h +#usr/include/c++/4.4.7/bits/locale_facets.tcc +#usr/include/c++/4.4.7/bits/locale_facets_nonio.h +#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc +#usr/include/c++/4.4.7/bits/localefwd.h +#usr/include/c++/4.4.7/bits/mask_array.h +#usr/include/c++/4.4.7/bits/move.h +#usr/include/c++/4.4.7/bits/ostream.tcc +#usr/include/c++/4.4.7/bits/ostream_insert.h +#usr/include/c++/4.4.7/bits/postypes.h +#usr/include/c++/4.4.7/bits/shared_ptr.h +#usr/include/c++/4.4.7/bits/slice_array.h +#usr/include/c++/4.4.7/bits/sstream.tcc +#usr/include/c++/4.4.7/bits/stl_algo.h +#usr/include/c++/4.4.7/bits/stl_algobase.h +#usr/include/c++/4.4.7/bits/stl_bvector.h +#usr/include/c++/4.4.7/bits/stl_construct.h +#usr/include/c++/4.4.7/bits/stl_deque.h +#usr/include/c++/4.4.7/bits/stl_function.h +#usr/include/c++/4.4.7/bits/stl_heap.h +#usr/include/c++/4.4.7/bits/stl_iterator.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h +#usr/include/c++/4.4.7/bits/stl_list.h +#usr/include/c++/4.4.7/bits/stl_map.h +#usr/include/c++/4.4.7/bits/stl_multimap.h +#usr/include/c++/4.4.7/bits/stl_multiset.h +#usr/include/c++/4.4.7/bits/stl_numeric.h +#usr/include/c++/4.4.7/bits/stl_pair.h +#usr/include/c++/4.4.7/bits/stl_queue.h +#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h +#usr/include/c++/4.4.7/bits/stl_relops.h +#usr/include/c++/4.4.7/bits/stl_set.h +#usr/include/c++/4.4.7/bits/stl_stack.h +#usr/include/c++/4.4.7/bits/stl_tempbuf.h +#usr/include/c++/4.4.7/bits/stl_tree.h +#usr/include/c++/4.4.7/bits/stl_uninitialized.h +#usr/include/c++/4.4.7/bits/stl_vector.h +#usr/include/c++/4.4.7/bits/stream_iterator.h +#usr/include/c++/4.4.7/bits/streambuf.tcc +#usr/include/c++/4.4.7/bits/streambuf_iterator.h +#usr/include/c++/4.4.7/bits/stringfwd.h +#usr/include/c++/4.4.7/bits/unique_ptr.h +#usr/include/c++/4.4.7/bits/valarray_after.h +#usr/include/c++/4.4.7/bits/valarray_array.h +#usr/include/c++/4.4.7/bits/valarray_array.tcc +#usr/include/c++/4.4.7/bits/valarray_before.h +#usr/include/c++/4.4.7/bits/vector.tcc +#usr/include/c++/4.4.7/bitset +#usr/include/c++/4.4.7/c++0x_warning.h +#usr/include/c++/4.4.7/cassert +#usr/include/c++/4.4.7/ccomplex +#usr/include/c++/4.4.7/cctype +#usr/include/c++/4.4.7/cerrno +#usr/include/c++/4.4.7/cfenv +#usr/include/c++/4.4.7/cfloat +#usr/include/c++/4.4.7/chrono +#usr/include/c++/4.4.7/cinttypes +#usr/include/c++/4.4.7/ciso646 +#usr/include/c++/4.4.7/climits +#usr/include/c++/4.4.7/clocale +#usr/include/c++/4.4.7/cmath +#usr/include/c++/4.4.7/complex +#usr/include/c++/4.4.7/complex.h +#usr/include/c++/4.4.7/condition_variable +#usr/include/c++/4.4.7/csetjmp +#usr/include/c++/4.4.7/csignal +#usr/include/c++/4.4.7/cstdarg +#usr/include/c++/4.4.7/cstdatomic +#usr/include/c++/4.4.7/cstdbool +#usr/include/c++/4.4.7/cstddef +#usr/include/c++/4.4.7/cstdint +#usr/include/c++/4.4.7/cstdio +#usr/include/c++/4.4.7/cstdlib +#usr/include/c++/4.4.7/cstring +#usr/include/c++/4.4.7/ctgmath +#usr/include/c++/4.4.7/ctime +#usr/include/c++/4.4.7/cwchar +#usr/include/c++/4.4.7/cwctype +#usr/include/c++/4.4.7/cxxabi-forced.h +#usr/include/c++/4.4.7/cxxabi.h +#usr/include/c++/4.4.7/debug +#usr/include/c++/4.4.7/debug/bitset +#usr/include/c++/4.4.7/debug/debug.h +#usr/include/c++/4.4.7/debug/deque +#usr/include/c++/4.4.7/debug/formatter.h +#usr/include/c++/4.4.7/debug/functions.h +#usr/include/c++/4.4.7/debug/list +#usr/include/c++/4.4.7/debug/macros.h +#usr/include/c++/4.4.7/debug/map +#usr/include/c++/4.4.7/debug/map.h +#usr/include/c++/4.4.7/debug/multimap.h +#usr/include/c++/4.4.7/debug/multiset.h +#usr/include/c++/4.4.7/debug/safe_base.h +#usr/include/c++/4.4.7/debug/safe_iterator.h +#usr/include/c++/4.4.7/debug/safe_iterator.tcc +#usr/include/c++/4.4.7/debug/safe_sequence.h +#usr/include/c++/4.4.7/debug/set +#usr/include/c++/4.4.7/debug/set.h +#usr/include/c++/4.4.7/debug/string +#usr/include/c++/4.4.7/debug/unordered_map +#usr/include/c++/4.4.7/debug/unordered_set +#usr/include/c++/4.4.7/debug/vector +#usr/include/c++/4.4.7/deque +#usr/include/c++/4.4.7/exception +#usr/include/c++/4.4.7/exception_defines.h +#usr/include/c++/4.4.7/exception_ptr.h +#usr/include/c++/4.4.7/ext +#usr/include/c++/4.4.7/ext/algorithm +#usr/include/c++/4.4.7/ext/array_allocator.h +#usr/include/c++/4.4.7/ext/atomicity.h +#usr/include/c++/4.4.7/ext/bitmap_allocator.h +#usr/include/c++/4.4.7/ext/cast.h +#usr/include/c++/4.4.7/ext/codecvt_specializations.h +#usr/include/c++/4.4.7/ext/concurrence.h +#usr/include/c++/4.4.7/ext/debug_allocator.h +#usr/include/c++/4.4.7/ext/enc_filebuf.h +#usr/include/c++/4.4.7/ext/extptr_allocator.h +#usr/include/c++/4.4.7/ext/functional +#usr/include/c++/4.4.7/ext/hash_map +#usr/include/c++/4.4.7/ext/hash_set +#usr/include/c++/4.4.7/ext/iterator +#usr/include/c++/4.4.7/ext/malloc_allocator.h +#usr/include/c++/4.4.7/ext/memory +#usr/include/c++/4.4.7/ext/mt_allocator.h +#usr/include/c++/4.4.7/ext/new_allocator.h +#usr/include/c++/4.4.7/ext/numeric +#usr/include/c++/4.4.7/ext/numeric_traits.h +#usr/include/c++/4.4.7/ext/pb_ds +#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp +#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp +#usr/include/c++/4.4.7/ext/pod_char_traits.h +#usr/include/c++/4.4.7/ext/pointer.h +#usr/include/c++/4.4.7/ext/pool_allocator.h +#usr/include/c++/4.4.7/ext/rb_tree +#usr/include/c++/4.4.7/ext/rc_string_base.h +#usr/include/c++/4.4.7/ext/rope +#usr/include/c++/4.4.7/ext/ropeimpl.h +#usr/include/c++/4.4.7/ext/slist +#usr/include/c++/4.4.7/ext/sso_string_base.h +#usr/include/c++/4.4.7/ext/stdio_filebuf.h +#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h +#usr/include/c++/4.4.7/ext/string_conversions.h +#usr/include/c++/4.4.7/ext/throw_allocator.h +#usr/include/c++/4.4.7/ext/type_traits.h +#usr/include/c++/4.4.7/ext/typelist.h +#usr/include/c++/4.4.7/ext/vstring.h +#usr/include/c++/4.4.7/ext/vstring.tcc +#usr/include/c++/4.4.7/ext/vstring_fwd.h +#usr/include/c++/4.4.7/ext/vstring_util.h +#usr/include/c++/4.4.7/fenv.h +#usr/include/c++/4.4.7/forward_list +#usr/include/c++/4.4.7/fstream +#usr/include/c++/4.4.7/functional +#usr/include/c++/4.4.7/initializer_list +#usr/include/c++/4.4.7/iomanip +#usr/include/c++/4.4.7/ios +#usr/include/c++/4.4.7/iosfwd +#usr/include/c++/4.4.7/iostream +#usr/include/c++/4.4.7/istream +#usr/include/c++/4.4.7/iterator +#usr/include/c++/4.4.7/limits +#usr/include/c++/4.4.7/list +#usr/include/c++/4.4.7/locale +#usr/include/c++/4.4.7/map +#usr/include/c++/4.4.7/memory +#usr/include/c++/4.4.7/mutex +#usr/include/c++/4.4.7/new +#usr/include/c++/4.4.7/numeric +#usr/include/c++/4.4.7/ostream +#usr/include/c++/4.4.7/parallel +#usr/include/c++/4.4.7/parallel/algo.h +#usr/include/c++/4.4.7/parallel/algobase.h +#usr/include/c++/4.4.7/parallel/algorithm +#usr/include/c++/4.4.7/parallel/algorithmfwd.h +#usr/include/c++/4.4.7/parallel/balanced_quicksort.h +#usr/include/c++/4.4.7/parallel/base.h +#usr/include/c++/4.4.7/parallel/basic_iterator.h +#usr/include/c++/4.4.7/parallel/checkers.h +#usr/include/c++/4.4.7/parallel/compatibility.h +#usr/include/c++/4.4.7/parallel/compiletime_settings.h +#usr/include/c++/4.4.7/parallel/equally_split.h +#usr/include/c++/4.4.7/parallel/features.h +#usr/include/c++/4.4.7/parallel/find.h +#usr/include/c++/4.4.7/parallel/find_selectors.h +#usr/include/c++/4.4.7/parallel/for_each.h +#usr/include/c++/4.4.7/parallel/for_each_selectors.h +#usr/include/c++/4.4.7/parallel/iterator.h +#usr/include/c++/4.4.7/parallel/list_partition.h +#usr/include/c++/4.4.7/parallel/losertree.h +#usr/include/c++/4.4.7/parallel/merge.h +#usr/include/c++/4.4.7/parallel/multiseq_selection.h +#usr/include/c++/4.4.7/parallel/multiway_merge.h +#usr/include/c++/4.4.7/parallel/multiway_mergesort.h +#usr/include/c++/4.4.7/parallel/numeric +#usr/include/c++/4.4.7/parallel/numericfwd.h +#usr/include/c++/4.4.7/parallel/omp_loop.h +#usr/include/c++/4.4.7/parallel/omp_loop_static.h +#usr/include/c++/4.4.7/parallel/par_loop.h +#usr/include/c++/4.4.7/parallel/parallel.h +#usr/include/c++/4.4.7/parallel/partial_sum.h +#usr/include/c++/4.4.7/parallel/partition.h +#usr/include/c++/4.4.7/parallel/queue.h +#usr/include/c++/4.4.7/parallel/quicksort.h +#usr/include/c++/4.4.7/parallel/random_number.h +#usr/include/c++/4.4.7/parallel/random_shuffle.h +#usr/include/c++/4.4.7/parallel/search.h +#usr/include/c++/4.4.7/parallel/set_operations.h +#usr/include/c++/4.4.7/parallel/settings.h +#usr/include/c++/4.4.7/parallel/sort.h +#usr/include/c++/4.4.7/parallel/tags.h +#usr/include/c++/4.4.7/parallel/types.h +#usr/include/c++/4.4.7/parallel/unique_copy.h +#usr/include/c++/4.4.7/parallel/workstealing.h +#usr/include/c++/4.4.7/queue +#usr/include/c++/4.4.7/random +#usr/include/c++/4.4.7/ratio +#usr/include/c++/4.4.7/regex +#usr/include/c++/4.4.7/set +#usr/include/c++/4.4.7/sstream +#usr/include/c++/4.4.7/stack +#usr/include/c++/4.4.7/stdatomic.h +#usr/include/c++/4.4.7/stdexcept +#usr/include/c++/4.4.7/streambuf +#usr/include/c++/4.4.7/string +#usr/include/c++/4.4.7/system_error +#usr/include/c++/4.4.7/tgmath.h +#usr/include/c++/4.4.7/thread +#usr/include/c++/4.4.7/tr1 +#usr/include/c++/4.4.7/tr1/array +#usr/include/c++/4.4.7/tr1/bessel_function.tcc +#usr/include/c++/4.4.7/tr1/beta_function.tcc +#usr/include/c++/4.4.7/tr1/ccomplex +#usr/include/c++/4.4.7/tr1/cctype +#usr/include/c++/4.4.7/tr1/cfenv +#usr/include/c++/4.4.7/tr1/cfloat +#usr/include/c++/4.4.7/tr1/cinttypes +#usr/include/c++/4.4.7/tr1/climits +#usr/include/c++/4.4.7/tr1/cmath +#usr/include/c++/4.4.7/tr1/complex +#usr/include/c++/4.4.7/tr1/complex.h +#usr/include/c++/4.4.7/tr1/cstdarg +#usr/include/c++/4.4.7/tr1/cstdbool +#usr/include/c++/4.4.7/tr1/cstdint +#usr/include/c++/4.4.7/tr1/cstdio +#usr/include/c++/4.4.7/tr1/cstdlib +#usr/include/c++/4.4.7/tr1/ctgmath +#usr/include/c++/4.4.7/tr1/ctime +#usr/include/c++/4.4.7/tr1/ctype.h +#usr/include/c++/4.4.7/tr1/cwchar +#usr/include/c++/4.4.7/tr1/cwctype +#usr/include/c++/4.4.7/tr1/ell_integral.tcc +#usr/include/c++/4.4.7/tr1/exp_integral.tcc +#usr/include/c++/4.4.7/tr1/fenv.h +#usr/include/c++/4.4.7/tr1/float.h +#usr/include/c++/4.4.7/tr1/functional +#usr/include/c++/4.4.7/tr1/functional_hash.h +#usr/include/c++/4.4.7/tr1/gamma.tcc +#usr/include/c++/4.4.7/tr1/hashtable.h +#usr/include/c++/4.4.7/tr1/hypergeometric.tcc +#usr/include/c++/4.4.7/tr1/inttypes.h +#usr/include/c++/4.4.7/tr1/legendre_function.tcc +#usr/include/c++/4.4.7/tr1/limits.h +#usr/include/c++/4.4.7/tr1/math.h +#usr/include/c++/4.4.7/tr1/memory +#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc +#usr/include/c++/4.4.7/tr1/poly_hermite.tcc +#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc +#usr/include/c++/4.4.7/tr1/random +#usr/include/c++/4.4.7/tr1/regex +#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc +#usr/include/c++/4.4.7/tr1/shared_ptr.h +#usr/include/c++/4.4.7/tr1/special_function_util.h +#usr/include/c++/4.4.7/tr1/stdarg.h +#usr/include/c++/4.4.7/tr1/stdbool.h +#usr/include/c++/4.4.7/tr1/stdint.h +#usr/include/c++/4.4.7/tr1/stdio.h +#usr/include/c++/4.4.7/tr1/stdlib.h +#usr/include/c++/4.4.7/tr1/tgmath.h +#usr/include/c++/4.4.7/tr1/tuple +#usr/include/c++/4.4.7/tr1/type_traits +#usr/include/c++/4.4.7/tr1/unordered_map +#usr/include/c++/4.4.7/tr1/unordered_set +#usr/include/c++/4.4.7/tr1/utility +#usr/include/c++/4.4.7/tr1/wchar.h +#usr/include/c++/4.4.7/tr1/wctype.h +#usr/include/c++/4.4.7/tr1_impl +#usr/include/c++/4.4.7/tr1_impl/array +#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h +#usr/include/c++/4.4.7/tr1_impl/cctype +#usr/include/c++/4.4.7/tr1_impl/cfenv +#usr/include/c++/4.4.7/tr1_impl/cinttypes +#usr/include/c++/4.4.7/tr1_impl/cmath +#usr/include/c++/4.4.7/tr1_impl/complex +#usr/include/c++/4.4.7/tr1_impl/cstdint +#usr/include/c++/4.4.7/tr1_impl/cstdio +#usr/include/c++/4.4.7/tr1_impl/cstdlib +#usr/include/c++/4.4.7/tr1_impl/cwchar +#usr/include/c++/4.4.7/tr1_impl/cwctype +#usr/include/c++/4.4.7/tr1_impl/functional +#usr/include/c++/4.4.7/tr1_impl/functional_hash.h +#usr/include/c++/4.4.7/tr1_impl/hashtable +#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h +#usr/include/c++/4.4.7/tr1_impl/random +#usr/include/c++/4.4.7/tr1_impl/random.tcc +#usr/include/c++/4.4.7/tr1_impl/regex +#usr/include/c++/4.4.7/tr1_impl/type_traits +#usr/include/c++/4.4.7/tr1_impl/unordered_map +#usr/include/c++/4.4.7/tr1_impl/unordered_set +#usr/include/c++/4.4.7/tr1_impl/utility +#usr/include/c++/4.4.7/tuple +#usr/include/c++/4.4.7/type_traits +#usr/include/c++/4.4.7/typeinfo +#usr/include/c++/4.4.7/unordered_map +#usr/include/c++/4.4.7/unordered_set +#usr/include/c++/4.4.7/utility +#usr/include/c++/4.4.7/valarray +#usr/include/c++/4.4.7/vector +#usr/info #usr/info/cpp.info #usr/info/cppinternals.info +#usr/info/dir #usr/info/gcc.info #usr/info/gccinstall.info #usr/info/gccint.info +#usr/info/libgomp.info #usr/lib/gcc #usr/lib/gcc/armv5tel-unknown-linux-gnueabi -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2 -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1 -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1plus -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/collect2 -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbegin.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginS.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginT.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtend.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtendS.o -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/README -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/float.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/iso646.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/limits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/mmintrin.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdarg.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdbool.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stddef.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/syslimits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/unwind.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/varargs.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixinc.sh -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixincl -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/gsyslimits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/README -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/float.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/iso646.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/limits.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/mmintrin.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdarg.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdbool.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stddef.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/unwind.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/varargs.h -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/macro_list -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders.conf -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc.a -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc_eh.a -#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcov.a +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7 +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1 +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1plus +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/collect2 +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbegin.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginS.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginT.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtend.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtendS.o +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/finclude +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/README +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/limits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/syslimits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/arm_neon.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/float.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/iso646.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mf-runtime.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mmintrin.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/omp.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/ssp.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/stdio.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/string.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/unistd.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdarg.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdbool.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stddef.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdfix.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/unwind.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/varargs.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc.sh +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc_list +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixincl +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/gsyslimits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/README +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/limits.h +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/macro_list +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders.conf +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkinstalldirs +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc.a +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc_eh.a +#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcov.a +#usr/lib/libgomp.a +#usr/lib/libgomp.la +#usr/lib/libgomp.so +usr/lib/libgomp.so.1 +usr/lib/libgomp.so.1.0.0 +#usr/lib/libgomp.spec +#usr/lib/libmudflap.a +#usr/lib/libmudflap.la +#usr/lib/libmudflap.so +usr/lib/libmudflap.so.0 +usr/lib/libmudflap.so.0.0.0 +#usr/lib/libmudflapth.a +#usr/lib/libmudflapth.la +#usr/lib/libmudflapth.so +usr/lib/libmudflapth.so.0 +usr/lib/libmudflapth.so.0.0.0 +#usr/lib/libssp.a +#usr/lib/libssp.la +#usr/lib/libssp.so +usr/lib/libssp.so.0 +usr/lib/libssp.so.0.0.0 +#usr/lib/libssp_nonshared.a +#usr/lib/libssp_nonshared.la #usr/lib/libstdc++.a -#usr/lib/libstdc++.la -#usr/lib/libstdc++.so -usr/lib/libstdc++.so.6 -usr/lib/libstdc++.so.6.0.8 +usr/lib/libstdc++.so.6.0.13 #usr/lib/libsupc++.a #usr/lib/libsupc++.la +#usr/man +#usr/man/man1 #usr/man/man1/cpp.1 #usr/man/man1/g++.1 #usr/man/man1/gcc.1 diff --git a/config/rootfiles/common/armv5tel/glibc b/config/rootfiles/common/armv5tel/glibc index 2393ff2414..42ae490ce2 100644 --- a/config/rootfiles/common/armv5tel/glibc +++ b/config/rootfiles/common/armv5tel/glibc @@ -1,44 +1,48 @@ -#etc/rpc -lib/ld-2.5.so +#etc/ld.so.cache +etc/localtime +etc/rpc +lib/ld-2.12.so lib/ld-linux.so.3 -lib/libBrokenLocale-2.5.so -#lib/libBrokenLocale.so.1 +lib/libBrokenLocale-2.12.so +lib/libBrokenLocale.so.1 #lib/libSegFault.so -lib/libanl-2.5.so -#lib/libanl.so.1 -lib/libc-2.5.so +lib/libanl-2.12.so +lib/libanl.so.1 +lib/libc-2.12.so lib/libc.so.6 -lib/libcrypt-2.5.so +lib/libcidn-2.12.so +lib/libcidn.so.1 +lib/libcrypt-2.12.so lib/libcrypt.so.1 -lib/libdl-2.5.so +lib/libdl-2.12.so lib/libdl.so.2 -lib/libm-2.5.so +lib/libm-2.12.so lib/libm.so.6 #lib/libmemusage.so -lib/libnsl-2.5.so +lib/libnsl-2.12.so lib/libnsl.so.1 -lib/libnss_compat-2.5.so +lib/libnss_compat-2.12.so lib/libnss_compat.so.2 -lib/libnss_dns-2.5.so +lib/libnss_dns-2.12.so lib/libnss_dns.so.2 -lib/libnss_files-2.5.so +lib/libnss_files-2.12.so lib/libnss_files.so.2 -lib/libnss_hesiod-2.5.so -#lib/libnss_hesiod.so.2 -lib/libnss_nis-2.5.so -#lib/libnss_nis.so.2 -lib/libnss_nisplus-2.5.so -#lib/libnss_nisplus.so.2 +lib/libnss_hesiod-2.12.so +lib/libnss_hesiod.so.2 +lib/libnss_nis-2.12.so +lib/libnss_nis.so.2 +lib/libnss_nisplus-2.12.so +lib/libnss_nisplus.so.2 #lib/libpcprofile.so -lib/libpthread-2.5.so +lib/libpthread-2.12.so lib/libpthread.so.0 -lib/libresolv-2.5.so +lib/libresolv-2.12.so lib/libresolv.so.2 -lib/librt-2.5.so +lib/librt-2.12.so lib/librt.so.1 -#lib/libthread_db-1.0.so -#lib/libthread_db.so.1 -lib/libutil-2.5.so +lib/libthread_db-1.0.so +lib/libthread_db.so.1 +lib/libutil-2.12.so lib/libutil.so.1 sbin/ldconfig #sbin/sln @@ -83,7 +87,9 @@ usr/bin/ldd #usr/include/bits/endian.h #usr/include/bits/environments.h #usr/include/bits/errno.h +#usr/include/bits/error.h #usr/include/bits/fcntl.h +#usr/include/bits/fcntl2.h #usr/include/bits/fenv.h #usr/include/bits/fenvinline.h #usr/include/bits/huge_val.h @@ -107,6 +113,7 @@ usr/bin/ldd #usr/include/bits/mman.h #usr/include/bits/monetary-ldbl.h #usr/include/bits/mqueue.h +#usr/include/bits/mqueue2.h #usr/include/bits/msq.h #usr/include/bits/nan.h #usr/include/bits/netdb.h @@ -122,6 +129,7 @@ usr/bin/ldd #usr/include/bits/sem.h #usr/include/bits/semaphore.h #usr/include/bits/setjmp.h +#usr/include/bits/setjmp2.h #usr/include/bits/shm.h #usr/include/bits/sigaction.h #usr/include/bits/sigcontext.h @@ -147,7 +155,6 @@ usr/bin/ldd #usr/include/bits/string.h #usr/include/bits/string2.h #usr/include/bits/string3.h -#usr/include/bits/stropts.h #usr/include/bits/sys_errlist.h #usr/include/bits/syscall.h #usr/include/bits/syslog-ldbl.h @@ -170,7 +177,6 @@ usr/bin/ldd #usr/include/bits/wchar2.h #usr/include/bits/wordsize.h #usr/include/bits/xopen_lim.h -#usr/include/bits/xtitypes.h #usr/include/byteswap.h #usr/include/complex.h #usr/include/cpio.h @@ -203,6 +209,7 @@ usr/bin/ldd #usr/include/gnu/libc-version.h #usr/include/gnu/stubs.h #usr/include/grp.h +#usr/include/gshadow.h #usr/include/iconv.h #usr/include/ieee754.h #usr/include/ifaddrs.h @@ -258,6 +265,8 @@ usr/bin/ldd #usr/include/netinet/udp.h #usr/include/netipx #usr/include/netipx/ipx.h +#usr/include/netiucv +#usr/include/netiucv/iucv.h #usr/include/netpacket #usr/include/netpacket/packet.h #usr/include/netrom @@ -304,10 +313,15 @@ usr/bin/ldd #usr/include/rpc/xdr.h #usr/include/rpcsvc #usr/include/rpcsvc/bootparam.h +#usr/include/rpcsvc/bootparam_prot.h #usr/include/rpcsvc/bootparam_prot.x +#usr/include/rpcsvc/key_prot.h #usr/include/rpcsvc/key_prot.x +#usr/include/rpcsvc/klm_prot.h #usr/include/rpcsvc/klm_prot.x +#usr/include/rpcsvc/mount.h #usr/include/rpcsvc/mount.x +#usr/include/rpcsvc/nfs_prot.h #usr/include/rpcsvc/nfs_prot.x #usr/include/rpcsvc/nis.h #usr/include/rpcsvc/nis.x @@ -316,20 +330,29 @@ usr/bin/ldd #usr/include/rpcsvc/nis_object.x #usr/include/rpcsvc/nis_tags.h #usr/include/rpcsvc/nislib.h +#usr/include/rpcsvc/nlm_prot.h #usr/include/rpcsvc/nlm_prot.x +#usr/include/rpcsvc/rex.h #usr/include/rpcsvc/rex.x +#usr/include/rpcsvc/rquota.h #usr/include/rpcsvc/rquota.x +#usr/include/rpcsvc/rstat.h #usr/include/rpcsvc/rstat.x +#usr/include/rpcsvc/rusers.h #usr/include/rpcsvc/rusers.x +#usr/include/rpcsvc/sm_inter.h #usr/include/rpcsvc/sm_inter.x +#usr/include/rpcsvc/spray.h #usr/include/rpcsvc/spray.x #usr/include/rpcsvc/yp.h #usr/include/rpcsvc/yp.x #usr/include/rpcsvc/yp_prot.h #usr/include/rpcsvc/ypclnt.h +#usr/include/rpcsvc/yppasswd.h #usr/include/rpcsvc/yppasswd.x #usr/include/rpcsvc/ypupd.h #usr/include/sched.h +#usr/include/scsi/scsi.h #usr/include/scsi/scsi_ioctl.h #usr/include/scsi/sg.h #usr/include/search.h @@ -346,7 +369,6 @@ usr/bin/ldd #usr/include/stdlib.h #usr/include/string.h #usr/include/strings.h -#usr/include/stropts.h #usr/include/sys #usr/include/sys/acct.h #usr/include/sys/bitypes.h @@ -355,6 +377,7 @@ usr/bin/ldd #usr/include/sys/elf.h #usr/include/sys/epoll.h #usr/include/sys/errno.h +#usr/include/sys/eventfd.h #usr/include/sys/fcntl.h #usr/include/sys/file.h #usr/include/sys/fsuid.h @@ -389,13 +412,13 @@ usr/bin/ldd #usr/include/sys/sendfile.h #usr/include/sys/shm.h #usr/include/sys/signal.h +#usr/include/sys/signalfd.h #usr/include/sys/socket.h #usr/include/sys/socketvar.h #usr/include/sys/soundcard.h #usr/include/sys/stat.h #usr/include/sys/statfs.h #usr/include/sys/statvfs.h -#usr/include/sys/stropts.h #usr/include/sys/swap.h #usr/include/sys/syscall.h #usr/include/sys/sysctl.h @@ -405,6 +428,7 @@ usr/bin/ldd #usr/include/sys/termios.h #usr/include/sys/time.h #usr/include/sys/timeb.h +#usr/include/sys/timerfd.h #usr/include/sys/times.h #usr/include/sys/timex.h #usr/include/sys/ttychars.h @@ -447,20 +471,6 @@ usr/bin/ldd #usr/include/wctype.h #usr/include/wordexp.h #usr/include/xlocale.h -#usr/info -#usr/info/dir -#usr/info/libc.info -#usr/info/libc.info-1 -#usr/info/libc.info-10 -#usr/info/libc.info-11 -#usr/info/libc.info-2 -#usr/info/libc.info-3 -#usr/info/libc.info-4 -#usr/info/libc.info-5 -#usr/info/libc.info-6 -#usr/info/libc.info-7 -#usr/info/libc.info-8 -#usr/info/libc.info-9 #usr/lib/Mcrt1.o #usr/lib/Scrt1.o #usr/lib/crt1.o @@ -472,6 +482,7 @@ usr/lib/gconv #usr/lib/gconv/ASMO_449.so #usr/lib/gconv/BIG5.so #usr/lib/gconv/BIG5HKSCS.so +#usr/lib/gconv/BRF.so #usr/lib/gconv/CP10007.so #usr/lib/gconv/CP1125.so #usr/lib/gconv/CP1250.so @@ -522,7 +533,11 @@ usr/lib/gconv #usr/lib/gconv/GREEK-CCITT.so #usr/lib/gconv/GREEK7-OLD.so #usr/lib/gconv/GREEK7.so +#usr/lib/gconv/HP-GREEK8.so #usr/lib/gconv/HP-ROMAN8.so +#usr/lib/gconv/HP-ROMAN9.so +#usr/lib/gconv/HP-THAI8.so +#usr/lib/gconv/HP-TURKISH8.so #usr/lib/gconv/IBM037.so #usr/lib/gconv/IBM038.so #usr/lib/gconv/IBM1004.so @@ -663,6 +678,7 @@ usr/lib/gconv #usr/lib/gconv/ISO8859-7.so #usr/lib/gconv/ISO8859-8.so #usr/lib/gconv/ISO8859-9.so +#usr/lib/gconv/ISO8859-9E.so #usr/lib/gconv/ISO_10367-BOX.so #usr/lib/gconv/ISO_11548-1.so #usr/lib/gconv/ISO_2033.so @@ -674,10 +690,12 @@ usr/lib/gconv #usr/lib/gconv/JOHAB.so #usr/lib/gconv/KOI-8.so #usr/lib/gconv/KOI8-R.so +#usr/lib/gconv/KOI8-RU.so #usr/lib/gconv/KOI8-T.so #usr/lib/gconv/KOI8-U.so #usr/lib/gconv/LATIN-GREEK-1.so #usr/lib/gconv/LATIN-GREEK.so +#usr/lib/gconv/MAC-CENTRALEUROPE.so #usr/lib/gconv/MAC-IS.so #usr/lib/gconv/MAC-SAMI.so #usr/lib/gconv/MAC-UK.so @@ -712,6 +730,8 @@ usr/lib/gconv #usr/lib/glibc/getconf #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32 +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG #usr/lib/glibc/pt_chown #usr/lib/libBrokenLocale.a #usr/lib/libBrokenLocale.so @@ -721,6 +741,7 @@ usr/lib/gconv #usr/lib/libc.a #usr/lib/libc.so #usr/lib/libc_nonshared.a +#usr/lib/libcidn.so #usr/lib/libcrypt.a #usr/lib/libcrypt.so #usr/lib/libdl.a @@ -743,6 +764,7 @@ usr/lib/gconv #usr/lib/libpthread_nonshared.a #usr/lib/libresolv.a #usr/lib/libresolv.so +#usr/lib/librpcsvc.a #usr/lib/librt.a #usr/lib/librt.so #usr/lib/libthread_db.so @@ -763,6 +785,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ASMO_449.gz #usr/share/i18n/charmaps/BIG5-HKSCS.gz #usr/share/i18n/charmaps/BIG5.gz +#usr/share/i18n/charmaps/BRF.gz #usr/share/i18n/charmaps/BS_4730.gz #usr/share/i18n/charmaps/BS_VIEWDATA.gz #usr/share/i18n/charmaps/CP10007.gz @@ -821,7 +844,11 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/GREEK-CCITT.gz #usr/share/i18n/charmaps/GREEK7-OLD.gz #usr/share/i18n/charmaps/GREEK7.gz +#usr/share/i18n/charmaps/HP-GREEK8.gz #usr/share/i18n/charmaps/HP-ROMAN8.gz +#usr/share/i18n/charmaps/HP-ROMAN9.gz +#usr/share/i18n/charmaps/HP-THAI8.gz +#usr/share/i18n/charmaps/HP-TURKISH8.gz #usr/share/i18n/charmaps/IBM037.gz #usr/share/i18n/charmaps/IBM038.gz #usr/share/i18n/charmaps/IBM1004.gz @@ -901,6 +928,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ISO-8859-7.gz #usr/share/i18n/charmaps/ISO-8859-8.gz #usr/share/i18n/charmaps/ISO-8859-9.gz +#usr/share/i18n/charmaps/ISO-8859-9E.gz #usr/share/i18n/charmaps/ISO-IR-197.gz #usr/share/i18n/charmaps/ISO-IR-209.gz #usr/share/i18n/charmaps/ISO-IR-90.gz @@ -934,11 +962,13 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz #usr/share/i18n/charmaps/KOI-8.gz #usr/share/i18n/charmaps/KOI8-R.gz +#usr/share/i18n/charmaps/KOI8-RU.gz #usr/share/i18n/charmaps/KOI8-T.gz #usr/share/i18n/charmaps/KOI8-U.gz #usr/share/i18n/charmaps/KSC5636.gz #usr/share/i18n/charmaps/LATIN-GREEK-1.gz #usr/share/i18n/charmaps/LATIN-GREEK.gz +#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz #usr/share/i18n/charmaps/MAC-CYRILLIC.gz #usr/share/i18n/charmaps/MAC-IS.gz #usr/share/i18n/charmaps/MAC-SAMI.gz @@ -1004,12 +1034,17 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ar_TN #usr/share/i18n/locales/ar_YE #usr/share/i18n/locales/as_IN +#usr/share/i18n/locales/ast_ES #usr/share/i18n/locales/az_AZ #usr/share/i18n/locales/be_BY #usr/share/i18n/locales/be_BY@latin +#usr/share/i18n/locales/ber_DZ +#usr/share/i18n/locales/ber_MA #usr/share/i18n/locales/bg_BG #usr/share/i18n/locales/bn_BD #usr/share/i18n/locales/bn_IN +#usr/share/i18n/locales/bo_CN +#usr/share/i18n/locales/bo_IN #usr/share/i18n/locales/br_FR #usr/share/i18n/locales/br_FR@euro #usr/share/i18n/locales/bs_BA @@ -1019,8 +1054,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ca_ES@euro #usr/share/i18n/locales/ca_FR #usr/share/i18n/locales/ca_IT +#usr/share/i18n/locales/crh_UA #usr/share/i18n/locales/cs_CZ #usr/share/i18n/locales/csb_PL +#usr/share/i18n/locales/cv_RU #usr/share/i18n/locales/cy_GB #usr/share/i18n/locales/da_DK #usr/share/i18n/locales/de_AT @@ -1032,10 +1069,12 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/de_DE@euro #usr/share/i18n/locales/de_LU #usr/share/i18n/locales/de_LU@euro +#usr/share/i18n/locales/dv_MV #usr/share/i18n/locales/dz_BT #usr/share/i18n/locales/el_CY #usr/share/i18n/locales/el_GR #usr/share/i18n/locales/el_GR@euro +#usr/share/i18n/locales/en_AG #usr/share/i18n/locales/en_AU #usr/share/i18n/locales/en_BW #usr/share/i18n/locales/en_CA @@ -1045,6 +1084,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/en_IE #usr/share/i18n/locales/en_IE@euro #usr/share/i18n/locales/en_IN +#usr/share/i18n/locales/en_NG #usr/share/i18n/locales/en_NZ #usr/share/i18n/locales/en_PH #usr/share/i18n/locales/en_SG @@ -1078,6 +1118,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fa_IR #usr/share/i18n/locales/fi_FI #usr/share/i18n/locales/fi_FI@euro +#usr/share/i18n/locales/fil_PH #usr/share/i18n/locales/fo_FO #usr/share/i18n/locales/fr_BE #usr/share/i18n/locales/fr_BE@euro @@ -1087,6 +1128,8 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fr_FR@euro #usr/share/i18n/locales/fr_LU #usr/share/i18n/locales/fr_LU@euro +#usr/share/i18n/locales/fur_IT +#usr/share/i18n/locales/fy_DE #usr/share/i18n/locales/fy_NL #usr/share/i18n/locales/ga_IE #usr/share/i18n/locales/ga_IE@euro @@ -1099,19 +1142,27 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/gl_ES@euro #usr/share/i18n/locales/gu_IN #usr/share/i18n/locales/gv_GB +#usr/share/i18n/locales/ha_NG #usr/share/i18n/locales/he_IL #usr/share/i18n/locales/hi_IN +#usr/share/i18n/locales/hne_IN #usr/share/i18n/locales/hr_HR #usr/share/i18n/locales/hsb_DE +#usr/share/i18n/locales/ht_HT #usr/share/i18n/locales/hu_HU #usr/share/i18n/locales/hy_AM #usr/share/i18n/locales/i18n #usr/share/i18n/locales/id_ID +#usr/share/i18n/locales/ig_NG +#usr/share/i18n/locales/ik_CA #usr/share/i18n/locales/is_IS #usr/share/i18n/locales/iso14651_t1 +#usr/share/i18n/locales/iso14651_t1_common +#usr/share/i18n/locales/iso14651_t1_pinyin #usr/share/i18n/locales/it_CH #usr/share/i18n/locales/it_IT #usr/share/i18n/locales/it_IT@euro +#usr/share/i18n/locales/iu_CA #usr/share/i18n/locales/iw_IL #usr/share/i18n/locales/ja_JP #usr/share/i18n/locales/ka_GE @@ -1120,13 +1171,19 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/km_KH #usr/share/i18n/locales/kn_IN #usr/share/i18n/locales/ko_KR +#usr/share/i18n/locales/kok_IN +#usr/share/i18n/locales/ks_IN +#usr/share/i18n/locales/ks_IN@devanagari #usr/share/i18n/locales/ku_TR #usr/share/i18n/locales/kw_GB #usr/share/i18n/locales/ky_KG #usr/share/i18n/locales/lg_UG +#usr/share/i18n/locales/li_BE +#usr/share/i18n/locales/li_NL #usr/share/i18n/locales/lo_LA #usr/share/i18n/locales/lt_LT #usr/share/i18n/locales/lv_LV +#usr/share/i18n/locales/mai_IN #usr/share/i18n/locales/mg_MG #usr/share/i18n/locales/mi_NZ #usr/share/i18n/locales/mk_MK @@ -1135,13 +1192,19 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/mr_IN #usr/share/i18n/locales/ms_MY #usr/share/i18n/locales/mt_MT +#usr/share/i18n/locales/my_MM +#usr/share/i18n/locales/nan_TW@latin #usr/share/i18n/locales/nb_NO +#usr/share/i18n/locales/nds_DE +#usr/share/i18n/locales/nds_NL #usr/share/i18n/locales/ne_NP +#usr/share/i18n/locales/nl_AW #usr/share/i18n/locales/nl_BE #usr/share/i18n/locales/nl_BE@euro #usr/share/i18n/locales/nl_NL #usr/share/i18n/locales/nl_NL@euro #usr/share/i18n/locales/nn_NO +#usr/share/i18n/locales/no_NO #usr/share/i18n/locales/nr_ZA #usr/share/i18n/locales/nso_ZA #usr/share/i18n/locales/oc_FR @@ -1150,7 +1213,9 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/or_IN #usr/share/i18n/locales/pa_IN #usr/share/i18n/locales/pa_PK +#usr/share/i18n/locales/pap_AN #usr/share/i18n/locales/pl_PL +#usr/share/i18n/locales/ps_AF #usr/share/i18n/locales/pt_BR #usr/share/i18n/locales/pt_PT #usr/share/i18n/locales/pt_PT@euro @@ -1158,7 +1223,12 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ru_RU #usr/share/i18n/locales/ru_UA #usr/share/i18n/locales/rw_RW +#usr/share/i18n/locales/sa_IN +#usr/share/i18n/locales/sc_IT +#usr/share/i18n/locales/sd_IN +#usr/share/i18n/locales/sd_IN@devanagari #usr/share/i18n/locales/se_NO +#usr/share/i18n/locales/shs_CA #usr/share/i18n/locales/si_LK #usr/share/i18n/locales/sid_ET #usr/share/i18n/locales/sk_SK @@ -1168,8 +1238,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/so_KE #usr/share/i18n/locales/so_SO #usr/share/i18n/locales/sq_AL -#usr/share/i18n/locales/sr_CS +#usr/share/i18n/locales/sq_MK #usr/share/i18n/locales/sr_ME +#usr/share/i18n/locales/sr_RS +#usr/share/i18n/locales/sr_RS@latin #usr/share/i18n/locales/ss_ZA #usr/share/i18n/locales/st_ZA #usr/share/i18n/locales/sv_FI @@ -1182,6 +1254,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ti_ER #usr/share/i18n/locales/ti_ET #usr/share/i18n/locales/tig_ER +#usr/share/i18n/locales/tk_TM #usr/share/i18n/locales/tl_PH #usr/share/i18n/locales/tn_ZA #usr/share/i18n/locales/tr_CY @@ -1200,7 +1273,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/translit_wide #usr/share/i18n/locales/ts_ZA #usr/share/i18n/locales/tt_RU +#usr/share/i18n/locales/tt_RU@iqtelif +#usr/share/i18n/locales/ug_CN #usr/share/i18n/locales/uk_UA +#usr/share/i18n/locales/ur_IN #usr/share/i18n/locales/ur_PK #usr/share/i18n/locales/uz_UZ #usr/share/i18n/locales/uz_UZ@cyrillic @@ -1209,16 +1285,34 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/wa_BE #usr/share/i18n/locales/wa_BE@euro #usr/share/i18n/locales/wal_ET +#usr/share/i18n/locales/wo_SN #usr/share/i18n/locales/xh_ZA #usr/share/i18n/locales/yi_US +#usr/share/i18n/locales/yo_NG #usr/share/i18n/locales/zh_CN #usr/share/i18n/locales/zh_HK #usr/share/i18n/locales/zh_SG #usr/share/i18n/locales/zh_TW #usr/share/i18n/locales/zu_ZA +#usr/share/info/dir +#usr/share/info/libc.info +#usr/share/info/libc.info-1 +#usr/share/info/libc.info-10 +#usr/share/info/libc.info-11 +#usr/share/info/libc.info-2 +#usr/share/info/libc.info-3 +#usr/share/info/libc.info-4 +#usr/share/info/libc.info-5 +#usr/share/info/libc.info-6 +#usr/share/info/libc.info-7 +#usr/share/info/libc.info-8 +#usr/share/info/libc.info-9 #usr/share/locale/be #usr/share/locale/be/LC_MESSAGES #usr/share/locale/be/LC_MESSAGES/libc.mo +#usr/share/locale/bg +#usr/share/locale/bg/LC_MESSAGES +#usr/share/locale/bg/LC_MESSAGES/libc.mo #usr/share/locale/ca #usr/share/locale/ca/LC_MESSAGES #usr/share/locale/ca/LC_MESSAGES/libc.mo @@ -1255,6 +1349,9 @@ usr/lib/locale/locale-archive #usr/share/locale/hu #usr/share/locale/hu/LC_MESSAGES #usr/share/locale/hu/LC_MESSAGES/libc.mo +#usr/share/locale/id +#usr/share/locale/id/LC_MESSAGES +#usr/share/locale/id/LC_MESSAGES/libc.mo #usr/share/locale/it #usr/share/locale/it/LC_MESSAGES #usr/share/locale/it/LC_MESSAGES/libc.mo @@ -1265,6 +1362,9 @@ usr/lib/locale/locale-archive #usr/share/locale/ko/LC_MESSAGES #usr/share/locale/ko/LC_MESSAGES/libc.mo #usr/share/locale/locale.alias +#usr/share/locale/lt +#usr/share/locale/lt/LC_MESSAGES +#usr/share/locale/lt/LC_MESSAGES/libc.mo #usr/share/locale/nb #usr/share/locale/nb/LC_MESSAGES #usr/share/locale/nb/LC_MESSAGES/libc.mo @@ -1292,11 +1392,14 @@ usr/lib/locale/locale-archive #usr/share/locale/tr #usr/share/locale/tr/LC_MESSAGES #usr/share/locale/tr/LC_MESSAGES/libc.mo +#usr/share/locale/vi +#usr/share/locale/vi/LC_MESSAGES +#usr/share/locale/vi/LC_MESSAGES/libc.mo #usr/share/locale/zh_CN #usr/share/locale/zh_CN/LC_MESSAGES #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo #usr/share/locale/zh_TW #usr/share/locale/zh_TW/LC_MESSAGES #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo -#usr/share/zoneinfo/iso3166.tab -#usr/share/zoneinfo/zone.tab +#var/cache/ldconfig +#var/cache/ldconfig/aux-cache diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index ccb7bfb338..1a613ac34a 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -36,7 +36,6 @@ etc/rc.d/init.d/halt #etc/rc.d/init.d/hostapd #etc/rc.d/init.d/icecream #etc/rc.d/init.d/imspector -#etc/rc.d/init.d/ipfireseeder etc/rc.d/init.d/ipsec #etc/rc.d/init.d/lcd4linux #etc/rc.d/init.d/lcr @@ -74,6 +73,7 @@ etc/rc.d/init.d/networking/red.down/10-ovpn etc/rc.d/init.d/networking/red.down/20-RL-firewall etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl #etc/rc.d/init.d/networking/red.up +etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast @@ -88,6 +88,7 @@ etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn +etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update @@ -141,6 +142,7 @@ etc/rc.d/rc0.d/K28apache etc/rc.d/rc0.d/K30sshd #etc/rc.d/rc0.d/K34client175 etc/rc.d/rc0.d/K45random +etc/rc.d/rc0.d/K47setclock etc/rc.d/rc0.d/K49cyrus-sasl etc/rc.d/rc0.d/K78snort etc/rc.d/rc0.d/K79leds @@ -186,6 +188,7 @@ etc/rc.d/rc6.d/K28apache etc/rc.d/rc6.d/K30sshd #etc/rc.d/rc6.d/K34client175 etc/rc.d/rc6.d/K45random +etc/rc.d/rc6.d/K47setclock etc/rc.d/rc6.d/K49cyrus-sasl etc/rc.d/rc6.d/K78snort etc/rc.d/rc6.d/K79leds diff --git a/config/rootfiles/common/armv5tel/installer b/config/rootfiles/common/armv5tel/installer new file mode 100644 index 0000000000..ef5e90154e --- /dev/null +++ b/config/rootfiles/common/armv5tel/installer @@ -0,0 +1,3 @@ +#etc/system-release +#opt/pakfire/db/core/mine +#var/ipfire/firebuild diff --git a/config/rootfiles/common/armv5tel/linux-headers b/config/rootfiles/common/armv5tel/linux-headers new file mode 100644 index 0000000000..3b8dd3a700 --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-headers @@ -0,0 +1,678 @@ +#usr/include/asm +#usr/include/asm-generic +#usr/include/asm-generic/auxvec.h +#usr/include/asm-generic/bitsperlong.h +#usr/include/asm-generic/errno-base.h +#usr/include/asm-generic/errno.h +#usr/include/asm-generic/fcntl.h +#usr/include/asm-generic/int-l64.h +#usr/include/asm-generic/int-ll64.h +#usr/include/asm-generic/ioctl.h +#usr/include/asm-generic/ioctls.h +#usr/include/asm-generic/ipcbuf.h +#usr/include/asm-generic/mman-common.h +#usr/include/asm-generic/mman.h +#usr/include/asm-generic/msgbuf.h +#usr/include/asm-generic/param.h +#usr/include/asm-generic/poll.h +#usr/include/asm-generic/posix_types.h +#usr/include/asm-generic/resource.h +#usr/include/asm-generic/sembuf.h +#usr/include/asm-generic/setup.h +#usr/include/asm-generic/shmbuf.h +#usr/include/asm-generic/shmparam.h +#usr/include/asm-generic/siginfo.h +#usr/include/asm-generic/signal-defs.h +#usr/include/asm-generic/signal.h +#usr/include/asm-generic/socket.h +#usr/include/asm-generic/sockios.h +#usr/include/asm-generic/stat.h +#usr/include/asm-generic/statfs.h +#usr/include/asm-generic/swab.h +#usr/include/asm-generic/termbits.h +#usr/include/asm-generic/termios.h +#usr/include/asm-generic/types.h +#usr/include/asm-generic/ucontext.h +#usr/include/asm-generic/unistd.h +#usr/include/asm/a.out.h +#usr/include/asm/auxvec.h +#usr/include/asm/bitsperlong.h +#usr/include/asm/byteorder.h +#usr/include/asm/errno.h +#usr/include/asm/fcntl.h +#usr/include/asm/hwcap.h +#usr/include/asm/ioctl.h +#usr/include/asm/ioctls.h +#usr/include/asm/ipcbuf.h +#usr/include/asm/mman.h +#usr/include/asm/msgbuf.h +#usr/include/asm/param.h +#usr/include/asm/poll.h +#usr/include/asm/posix_types.h +#usr/include/asm/ptrace.h +#usr/include/asm/resource.h +#usr/include/asm/sembuf.h +#usr/include/asm/setup.h +#usr/include/asm/shmbuf.h +#usr/include/asm/sigcontext.h +#usr/include/asm/siginfo.h +#usr/include/asm/signal.h +#usr/include/asm/socket.h +#usr/include/asm/sockios.h +#usr/include/asm/stat.h +#usr/include/asm/statfs.h +#usr/include/asm/swab.h +#usr/include/asm/termbits.h +#usr/include/asm/termios.h +#usr/include/asm/types.h +#usr/include/asm/unistd.h +#usr/include/drm +#usr/include/drm/drm.h +#usr/include/drm/drm_mode.h +#usr/include/drm/drm_sarea.h +#usr/include/drm/i810_drm.h +#usr/include/drm/i915_drm.h +#usr/include/drm/mga_drm.h +#usr/include/drm/nouveau_drm.h +#usr/include/drm/r128_drm.h +#usr/include/drm/radeon_drm.h +#usr/include/drm/savage_drm.h +#usr/include/drm/sis_drm.h +#usr/include/drm/via_drm.h +#usr/include/drm/vmwgfx_drm.h +#usr/include/linux +#usr/include/linux/a.out.h +#usr/include/linux/acct.h +#usr/include/linux/adb.h +#usr/include/linux/adfs_fs.h +#usr/include/linux/affs_hardblocks.h +#usr/include/linux/agpgart.h +#usr/include/linux/aio_abi.h +#usr/include/linux/apm_bios.h +#usr/include/linux/arcfb.h +#usr/include/linux/atalk.h +#usr/include/linux/atm.h +#usr/include/linux/atm_eni.h +#usr/include/linux/atm_he.h +#usr/include/linux/atm_idt77105.h +#usr/include/linux/atm_nicstar.h +#usr/include/linux/atm_tcp.h +#usr/include/linux/atm_zatm.h +#usr/include/linux/atmapi.h +#usr/include/linux/atmarp.h +#usr/include/linux/atmbr2684.h +#usr/include/linux/atmclip.h +#usr/include/linux/atmdev.h +#usr/include/linux/atmioc.h +#usr/include/linux/atmlec.h +#usr/include/linux/atmmpc.h +#usr/include/linux/atmppp.h +#usr/include/linux/atmsap.h +#usr/include/linux/atmsvc.h +#usr/include/linux/audit.h +#usr/include/linux/auto_fs.h +#usr/include/linux/auto_fs4.h +#usr/include/linux/auxvec.h +#usr/include/linux/ax25.h +#usr/include/linux/b1lli.h +#usr/include/linux/baycom.h +#usr/include/linux/bfs_fs.h +#usr/include/linux/binfmts.h +#usr/include/linux/blk_types.h +#usr/include/linux/blkpg.h +#usr/include/linux/blktrace_api.h +#usr/include/linux/bpqether.h +#usr/include/linux/bsg.h +#usr/include/linux/byteorder +#usr/include/linux/byteorder/big_endian.h +#usr/include/linux/byteorder/little_endian.h +#usr/include/linux/caif +#usr/include/linux/caif/caif_socket.h +#usr/include/linux/caif/if_caif.h +#usr/include/linux/can +#usr/include/linux/can.h +#usr/include/linux/can/bcm.h +#usr/include/linux/can/error.h +#usr/include/linux/can/gw.h +#usr/include/linux/can/netlink.h +#usr/include/linux/can/raw.h +#usr/include/linux/capability.h +#usr/include/linux/capi.h +#usr/include/linux/cciss_defs.h +#usr/include/linux/cciss_ioctl.h +#usr/include/linux/cdk.h +#usr/include/linux/cdrom.h +#usr/include/linux/cgroupstats.h +#usr/include/linux/chio.h +#usr/include/linux/cm4000_cs.h +#usr/include/linux/cn_proc.h +#usr/include/linux/coda.h +#usr/include/linux/coda_psdev.h +#usr/include/linux/coff.h +#usr/include/linux/comstats.h +#usr/include/linux/connector.h +#usr/include/linux/const.h +#usr/include/linux/cramfs_fs.h +#usr/include/linux/cuda.h +#usr/include/linux/cyclades.h +#usr/include/linux/cycx_cfm.h +#usr/include/linux/dcbnl.h +#usr/include/linux/dccp.h +#usr/include/linux/dlm.h +#usr/include/linux/dlm_device.h +#usr/include/linux/dlm_netlink.h +#usr/include/linux/dlm_plock.h +#usr/include/linux/dlmconstants.h +#usr/include/linux/dm-ioctl.h +#usr/include/linux/dm-log-userspace.h +#usr/include/linux/dn.h +#usr/include/linux/dqblk_xfs.h +#usr/include/linux/dvb +#usr/include/linux/dvb/audio.h +#usr/include/linux/dvb/ca.h +#usr/include/linux/dvb/dmx.h +#usr/include/linux/dvb/frontend.h +#usr/include/linux/dvb/net.h +#usr/include/linux/dvb/osd.h +#usr/include/linux/dvb/version.h +#usr/include/linux/dvb/video.h +#usr/include/linux/edd.h +#usr/include/linux/efs_fs_sb.h +#usr/include/linux/elf-em.h +#usr/include/linux/elf-fdpic.h +#usr/include/linux/elf.h +#usr/include/linux/elfcore.h +#usr/include/linux/errno.h +#usr/include/linux/errqueue.h +#usr/include/linux/ethtool.h +#usr/include/linux/eventpoll.h +#usr/include/linux/ext2_fs.h +#usr/include/linux/fadvise.h +#usr/include/linux/falloc.h +#usr/include/linux/fanotify.h +#usr/include/linux/fb.h +#usr/include/linux/fcntl.h +#usr/include/linux/fd.h +#usr/include/linux/fdreg.h +#usr/include/linux/fib_rules.h +#usr/include/linux/fiemap.h +#usr/include/linux/filter.h +#usr/include/linux/firewire-cdev.h +#usr/include/linux/firewire-constants.h +#usr/include/linux/flat.h +#usr/include/linux/fs.h +#usr/include/linux/fsl_hypervisor.h +#usr/include/linux/fuse.h +#usr/include/linux/futex.h +#usr/include/linux/gameport.h +#usr/include/linux/gen_stats.h +#usr/include/linux/generic_serial.h +#usr/include/linux/genetlink.h +#usr/include/linux/gfs2_ondisk.h +#usr/include/linux/gigaset_dev.h +#usr/include/linux/hdlc +#usr/include/linux/hdlc.h +#usr/include/linux/hdlc/ioctl.h +#usr/include/linux/hdlcdrv.h +#usr/include/linux/hdreg.h +#usr/include/linux/hid.h +#usr/include/linux/hiddev.h +#usr/include/linux/hidraw.h +#usr/include/linux/hpet.h +#usr/include/linux/hysdn_if.h +#usr/include/linux/i2c-dev.h +#usr/include/linux/i2c.h +#usr/include/linux/i2o-dev.h +#usr/include/linux/i8k.h +#usr/include/linux/icmp.h +#usr/include/linux/icmpv6.h +#usr/include/linux/if.h +#usr/include/linux/if_addr.h +#usr/include/linux/if_addrlabel.h +#usr/include/linux/if_alg.h +#usr/include/linux/if_arcnet.h +#usr/include/linux/if_arp.h +#usr/include/linux/if_bonding.h +#usr/include/linux/if_bridge.h +#usr/include/linux/if_cablemodem.h +#usr/include/linux/if_ec.h +#usr/include/linux/if_eql.h +#usr/include/linux/if_ether.h +#usr/include/linux/if_fc.h +#usr/include/linux/if_fddi.h +#usr/include/linux/if_frad.h +#usr/include/linux/if_hippi.h +#usr/include/linux/if_infiniband.h +#usr/include/linux/if_link.h +#usr/include/linux/if_ltalk.h +#usr/include/linux/if_packet.h +#usr/include/linux/if_phonet.h +#usr/include/linux/if_plip.h +#usr/include/linux/if_ppp.h +#usr/include/linux/if_pppol2tp.h +#usr/include/linux/if_pppox.h +#usr/include/linux/if_slip.h +#usr/include/linux/if_strip.h +#usr/include/linux/if_tr.h +#usr/include/linux/if_tun.h +#usr/include/linux/if_tunnel.h +#usr/include/linux/if_vlan.h +#usr/include/linux/if_x25.h +#usr/include/linux/igmp.h +#usr/include/linux/in.h +#usr/include/linux/in6.h +#usr/include/linux/in_route.h +#usr/include/linux/inet_diag.h +#usr/include/linux/inotify.h +#usr/include/linux/input.h +#usr/include/linux/ioctl.h +#usr/include/linux/ip.h +#usr/include/linux/ip6_tunnel.h +#usr/include/linux/ip_vs.h +#usr/include/linux/ipc.h +#usr/include/linux/ipmi.h +#usr/include/linux/ipmi_msgdefs.h +#usr/include/linux/ipsec.h +#usr/include/linux/ipv6.h +#usr/include/linux/ipv6_route.h +#usr/include/linux/ipx.h +#usr/include/linux/irda.h +#usr/include/linux/irqnr.h +#usr/include/linux/isdn +#usr/include/linux/isdn.h +#usr/include/linux/isdn/capicmd.h +#usr/include/linux/isdn_divertif.h +#usr/include/linux/isdn_ppp.h +#usr/include/linux/isdnif.h +#usr/include/linux/iso_fs.h +#usr/include/linux/ivtv.h +#usr/include/linux/ivtvfb.h +#usr/include/linux/ixjuser.h +#usr/include/linux/jffs2.h +#usr/include/linux/joystick.h +#usr/include/linux/kd.h +#usr/include/linux/kdev_t.h +#usr/include/linux/kernel-page-flags.h +#usr/include/linux/kernel.h +#usr/include/linux/kernelcapi.h +#usr/include/linux/keyboard.h +#usr/include/linux/keyctl.h +#usr/include/linux/l2tp.h +#usr/include/linux/limits.h +#usr/include/linux/llc.h +#usr/include/linux/loop.h +#usr/include/linux/lp.h +#usr/include/linux/magic.h +#usr/include/linux/major.h +#usr/include/linux/map_to_7segment.h +#usr/include/linux/matroxfb.h +#usr/include/linux/media.h +#usr/include/linux/mempolicy.h +#usr/include/linux/meye.h +#usr/include/linux/mii.h +#usr/include/linux/minix_fs.h +#usr/include/linux/mman.h +#usr/include/linux/mmc +#usr/include/linux/mmc/ioctl.h +#usr/include/linux/mmtimer.h +#usr/include/linux/mqueue.h +#usr/include/linux/mroute.h +#usr/include/linux/mroute6.h +#usr/include/linux/msdos_fs.h +#usr/include/linux/msg.h +#usr/include/linux/mtio.h +#usr/include/linux/n_r3964.h +#usr/include/linux/nbd.h +#usr/include/linux/ncp.h +#usr/include/linux/ncp_fs.h +#usr/include/linux/ncp_mount.h +#usr/include/linux/ncp_no.h +#usr/include/linux/neighbour.h +#usr/include/linux/net.h +#usr/include/linux/net_dropmon.h +#usr/include/linux/net_tstamp.h +#usr/include/linux/netdevice.h +#usr/include/linux/netfilter +#usr/include/linux/netfilter.h +#usr/include/linux/netfilter/ipset +#usr/include/linux/netfilter/ipset/ip_set.h +#usr/include/linux/netfilter/ipset/ip_set_bitmap.h +#usr/include/linux/netfilter/ipset/ip_set_hash.h +#usr/include/linux/netfilter/ipset/ip_set_list.h +#usr/include/linux/netfilter/nf_conntrack_common.h +#usr/include/linux/netfilter/nf_conntrack_ftp.h +#usr/include/linux/netfilter/nf_conntrack_sctp.h +#usr/include/linux/netfilter/nf_conntrack_tcp.h +#usr/include/linux/netfilter/nf_conntrack_tuple_common.h +#usr/include/linux/netfilter/nfnetlink.h +#usr/include/linux/netfilter/nfnetlink_compat.h +#usr/include/linux/netfilter/nfnetlink_conntrack.h +#usr/include/linux/netfilter/nfnetlink_log.h +#usr/include/linux/netfilter/nfnetlink_queue.h +#usr/include/linux/netfilter/x_tables.h +#usr/include/linux/netfilter/xt_AUDIT.h +#usr/include/linux/netfilter/xt_CHECKSUM.h +#usr/include/linux/netfilter/xt_CLASSIFY.h +#usr/include/linux/netfilter/xt_CONNMARK.h +#usr/include/linux/netfilter/xt_CONNSECMARK.h +#usr/include/linux/netfilter/xt_CT.h +#usr/include/linux/netfilter/xt_DSCP.h +#usr/include/linux/netfilter/xt_IDLETIMER.h +#usr/include/linux/netfilter/xt_LED.h +#usr/include/linux/netfilter/xt_MARK.h +#usr/include/linux/netfilter/xt_NFLOG.h +#usr/include/linux/netfilter/xt_NFQUEUE.h +#usr/include/linux/netfilter/xt_RATEEST.h +#usr/include/linux/netfilter/xt_SECMARK.h +#usr/include/linux/netfilter/xt_TCPMSS.h +#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h +#usr/include/linux/netfilter/xt_TEE.h +#usr/include/linux/netfilter/xt_TPROXY.h +#usr/include/linux/netfilter/xt_addrtype.h +#usr/include/linux/netfilter/xt_cluster.h +#usr/include/linux/netfilter/xt_comment.h +#usr/include/linux/netfilter/xt_connbytes.h +#usr/include/linux/netfilter/xt_connlimit.h +#usr/include/linux/netfilter/xt_connmark.h +#usr/include/linux/netfilter/xt_conntrack.h +#usr/include/linux/netfilter/xt_cpu.h +#usr/include/linux/netfilter/xt_dccp.h +#usr/include/linux/netfilter/xt_devgroup.h +#usr/include/linux/netfilter/xt_dscp.h +#usr/include/linux/netfilter/xt_esp.h +#usr/include/linux/netfilter/xt_hashlimit.h +#usr/include/linux/netfilter/xt_helper.h +#usr/include/linux/netfilter/xt_iprange.h +#usr/include/linux/netfilter/xt_ipvs.h +#usr/include/linux/netfilter/xt_length.h +#usr/include/linux/netfilter/xt_limit.h +#usr/include/linux/netfilter/xt_mac.h +#usr/include/linux/netfilter/xt_mark.h +#usr/include/linux/netfilter/xt_multiport.h +#usr/include/linux/netfilter/xt_osf.h +#usr/include/linux/netfilter/xt_owner.h +#usr/include/linux/netfilter/xt_physdev.h +#usr/include/linux/netfilter/xt_pkttype.h +#usr/include/linux/netfilter/xt_policy.h +#usr/include/linux/netfilter/xt_quota.h +#usr/include/linux/netfilter/xt_rateest.h +#usr/include/linux/netfilter/xt_realm.h +#usr/include/linux/netfilter/xt_recent.h +#usr/include/linux/netfilter/xt_sctp.h +#usr/include/linux/netfilter/xt_set.h +#usr/include/linux/netfilter/xt_socket.h +#usr/include/linux/netfilter/xt_state.h +#usr/include/linux/netfilter/xt_statistic.h +#usr/include/linux/netfilter/xt_string.h +#usr/include/linux/netfilter/xt_tcpmss.h +#usr/include/linux/netfilter/xt_tcpudp.h +#usr/include/linux/netfilter/xt_time.h +#usr/include/linux/netfilter/xt_u32.h +#usr/include/linux/netfilter_arp +#usr/include/linux/netfilter_arp.h +#usr/include/linux/netfilter_arp/arp_tables.h +#usr/include/linux/netfilter_arp/arpt_mangle.h +#usr/include/linux/netfilter_bridge +#usr/include/linux/netfilter_bridge.h +#usr/include/linux/netfilter_bridge/ebt_802_3.h +#usr/include/linux/netfilter_bridge/ebt_among.h +#usr/include/linux/netfilter_bridge/ebt_arp.h +#usr/include/linux/netfilter_bridge/ebt_arpreply.h +#usr/include/linux/netfilter_bridge/ebt_ip.h +#usr/include/linux/netfilter_bridge/ebt_ip6.h +#usr/include/linux/netfilter_bridge/ebt_limit.h +#usr/include/linux/netfilter_bridge/ebt_log.h +#usr/include/linux/netfilter_bridge/ebt_mark_m.h +#usr/include/linux/netfilter_bridge/ebt_mark_t.h +#usr/include/linux/netfilter_bridge/ebt_nat.h +#usr/include/linux/netfilter_bridge/ebt_nflog.h +#usr/include/linux/netfilter_bridge/ebt_pkttype.h +#usr/include/linux/netfilter_bridge/ebt_redirect.h +#usr/include/linux/netfilter_bridge/ebt_stp.h +#usr/include/linux/netfilter_bridge/ebt_ulog.h +#usr/include/linux/netfilter_bridge/ebt_vlan.h +#usr/include/linux/netfilter_bridge/ebtables.h +#usr/include/linux/netfilter_decnet.h +#usr/include/linux/netfilter_ipv4 +#usr/include/linux/netfilter_ipv4.h +#usr/include/linux/netfilter_ipv4/ip_queue.h +#usr/include/linux/netfilter_ipv4/ip_tables.h +#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h +#usr/include/linux/netfilter_ipv4/ipt_ECN.h +#usr/include/linux/netfilter_ipv4/ipt_LOG.h +#usr/include/linux/netfilter_ipv4/ipt_REJECT.h +#usr/include/linux/netfilter_ipv4/ipt_SAME.h +#usr/include/linux/netfilter_ipv4/ipt_TTL.h +#usr/include/linux/netfilter_ipv4/ipt_ULOG.h +#usr/include/linux/netfilter_ipv4/ipt_addrtype.h +#usr/include/linux/netfilter_ipv4/ipt_ah.h +#usr/include/linux/netfilter_ipv4/ipt_ecn.h +#usr/include/linux/netfilter_ipv4/ipt_realm.h +#usr/include/linux/netfilter_ipv4/ipt_ttl.h +#usr/include/linux/netfilter_ipv4/nf_nat.h +#usr/include/linux/netfilter_ipv6 +#usr/include/linux/netfilter_ipv6.h +#usr/include/linux/netfilter_ipv6/ip6_tables.h +#usr/include/linux/netfilter_ipv6/ip6t_HL.h +#usr/include/linux/netfilter_ipv6/ip6t_LOG.h +#usr/include/linux/netfilter_ipv6/ip6t_REJECT.h +#usr/include/linux/netfilter_ipv6/ip6t_ah.h +#usr/include/linux/netfilter_ipv6/ip6t_frag.h +#usr/include/linux/netfilter_ipv6/ip6t_hl.h +#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h +#usr/include/linux/netfilter_ipv6/ip6t_mh.h +#usr/include/linux/netfilter_ipv6/ip6t_opts.h +#usr/include/linux/netfilter_ipv6/ip6t_rt.h +#usr/include/linux/netlink.h +#usr/include/linux/netrom.h +#usr/include/linux/nfc.h +#usr/include/linux/nfs.h +#usr/include/linux/nfs2.h +#usr/include/linux/nfs3.h +#usr/include/linux/nfs4.h +#usr/include/linux/nfs4_mount.h +#usr/include/linux/nfs_fs.h +#usr/include/linux/nfs_idmap.h +#usr/include/linux/nfs_mount.h +#usr/include/linux/nfsacl.h +#usr/include/linux/nfsd +#usr/include/linux/nfsd/debug.h +#usr/include/linux/nfsd/export.h +#usr/include/linux/nfsd/nfsfh.h +#usr/include/linux/nfsd/stats.h +#usr/include/linux/nl80211.h +#usr/include/linux/nubus.h +#usr/include/linux/nvram.h +#usr/include/linux/omap3isp.h +#usr/include/linux/omapfb.h +#usr/include/linux/oom.h +#usr/include/linux/param.h +#usr/include/linux/parport.h +#usr/include/linux/patchkey.h +#usr/include/linux/pci.h +#usr/include/linux/pci_regs.h +#usr/include/linux/perf_event.h +#usr/include/linux/personality.h +#usr/include/linux/pfkeyv2.h +#usr/include/linux/pg.h +#usr/include/linux/phantom.h +#usr/include/linux/phonet.h +#usr/include/linux/pkt_cls.h +#usr/include/linux/pkt_sched.h +#usr/include/linux/pktcdvd.h +#usr/include/linux/pmu.h +#usr/include/linux/poll.h +#usr/include/linux/posix_types.h +#usr/include/linux/ppdev.h +#usr/include/linux/ppp-comp.h +#usr/include/linux/ppp_defs.h +#usr/include/linux/pps.h +#usr/include/linux/prctl.h +#usr/include/linux/ptp_clock.h +#usr/include/linux/ptrace.h +#usr/include/linux/qnx4_fs.h +#usr/include/linux/qnxtypes.h +#usr/include/linux/quota.h +#usr/include/linux/radeonfb.h +#usr/include/linux/raid +#usr/include/linux/raid/md_p.h +#usr/include/linux/raid/md_u.h +#usr/include/linux/random.h +#usr/include/linux/raw.h +#usr/include/linux/rds.h +#usr/include/linux/reboot.h +#usr/include/linux/reiserfs_fs.h +#usr/include/linux/reiserfs_xattr.h +#usr/include/linux/resource.h +#usr/include/linux/rfkill.h +#usr/include/linux/romfs_fs.h +#usr/include/linux/rose.h +#usr/include/linux/route.h +#usr/include/linux/rtc.h +#usr/include/linux/rtnetlink.h +#usr/include/linux/scc.h +#usr/include/linux/sched.h +#usr/include/linux/screen_info.h +#usr/include/linux/sdla.h +#usr/include/linux/securebits.h +#usr/include/linux/selinux_netlink.h +#usr/include/linux/sem.h +#usr/include/linux/serial.h +#usr/include/linux/serial_core.h +#usr/include/linux/serial_reg.h +#usr/include/linux/serio.h +#usr/include/linux/shm.h +#usr/include/linux/signal.h +#usr/include/linux/signalfd.h +#usr/include/linux/snmp.h +#usr/include/linux/socket.h +#usr/include/linux/sockios.h +#usr/include/linux/som.h +#usr/include/linux/sonet.h +#usr/include/linux/sonypi.h +#usr/include/linux/sound.h +#usr/include/linux/soundcard.h +#usr/include/linux/spi +#usr/include/linux/spi/spidev.h +#usr/include/linux/stat.h +#usr/include/linux/stddef.h +#usr/include/linux/string.h +#usr/include/linux/sunrpc +#usr/include/linux/sunrpc/debug.h +#usr/include/linux/suspend_ioctls.h +#usr/include/linux/swab.h +#usr/include/linux/synclink.h +#usr/include/linux/sysctl.h +#usr/include/linux/taskstats.h +#usr/include/linux/tc_act +#usr/include/linux/tc_act/tc_csum.h +#usr/include/linux/tc_act/tc_gact.h +#usr/include/linux/tc_act/tc_ipt.h +#usr/include/linux/tc_act/tc_mirred.h +#usr/include/linux/tc_act/tc_nat.h +#usr/include/linux/tc_act/tc_pedit.h +#usr/include/linux/tc_act/tc_skbedit.h +#usr/include/linux/tc_ematch +#usr/include/linux/tc_ematch/tc_em_cmp.h +#usr/include/linux/tc_ematch/tc_em_meta.h +#usr/include/linux/tc_ematch/tc_em_nbyte.h +#usr/include/linux/tc_ematch/tc_em_text.h +#usr/include/linux/tcp.h +#usr/include/linux/telephony.h +#usr/include/linux/termios.h +#usr/include/linux/time.h +#usr/include/linux/times.h +#usr/include/linux/timex.h +#usr/include/linux/tiocl.h +#usr/include/linux/tipc.h +#usr/include/linux/tipc_config.h +#usr/include/linux/toshiba.h +#usr/include/linux/tty.h +#usr/include/linux/types.h +#usr/include/linux/udf_fs_i.h +#usr/include/linux/udp.h +#usr/include/linux/uinput.h +#usr/include/linux/uio.h +#usr/include/linux/ultrasound.h +#usr/include/linux/un.h +#usr/include/linux/unistd.h +#usr/include/linux/usb +#usr/include/linux/usb/audio.h +#usr/include/linux/usb/cdc.h +#usr/include/linux/usb/ch11.h +#usr/include/linux/usb/ch9.h +#usr/include/linux/usb/functionfs.h +#usr/include/linux/usb/g_printer.h +#usr/include/linux/usb/gadgetfs.h +#usr/include/linux/usb/midi.h +#usr/include/linux/usb/tmc.h +#usr/include/linux/usb/video.h +#usr/include/linux/usbdevice_fs.h +#usr/include/linux/utime.h +#usr/include/linux/utsname.h +#usr/include/linux/uvcvideo.h +#usr/include/linux/v4l2-mediabus.h +#usr/include/linux/v4l2-subdev.h +#usr/include/linux/version.h +#usr/include/linux/veth.h +#usr/include/linux/vhost.h +#usr/include/linux/videodev2.h +#usr/include/linux/virtio_9p.h +#usr/include/linux/virtio_balloon.h +#usr/include/linux/virtio_blk.h +#usr/include/linux/virtio_config.h +#usr/include/linux/virtio_console.h +#usr/include/linux/virtio_ids.h +#usr/include/linux/virtio_net.h +#usr/include/linux/virtio_pci.h +#usr/include/linux/virtio_ring.h +#usr/include/linux/virtio_rng.h +#usr/include/linux/vt.h +#usr/include/linux/wait.h +#usr/include/linux/wanrouter.h +#usr/include/linux/watchdog.h +#usr/include/linux/wimax +#usr/include/linux/wimax.h +#usr/include/linux/wimax/i2400m.h +#usr/include/linux/wireless.h +#usr/include/linux/x25.h +#usr/include/linux/xattr.h +#usr/include/linux/xfrm.h +#usr/include/mtd +#usr/include/mtd/inftl-user.h +#usr/include/mtd/mtd-abi.h +#usr/include/mtd/mtd-user.h +#usr/include/mtd/nftl-user.h +#usr/include/mtd/ubi-user.h +#usr/include/rdma +#usr/include/rdma/ib_user_cm.h +#usr/include/rdma/ib_user_mad.h +#usr/include/rdma/ib_user_sa.h +#usr/include/rdma/ib_user_verbs.h +#usr/include/rdma/rdma_netlink.h +#usr/include/rdma/rdma_user_cm.h +#usr/include/scsi +#usr/include/scsi/fc +#usr/include/scsi/fc/fc_els.h +#usr/include/scsi/fc/fc_fs.h +#usr/include/scsi/fc/fc_gs.h +#usr/include/scsi/fc/fc_ns.h +#usr/include/scsi/scsi_bsg_fc.h +#usr/include/scsi/scsi_netlink.h +#usr/include/scsi/scsi_netlink_fc.h +#usr/include/sound +#usr/include/sound/asequencer.h +#usr/include/sound/asound.h +#usr/include/sound/asound_fm.h +#usr/include/sound/emu10k1.h +#usr/include/sound/hdsp.h +#usr/include/sound/hdspm.h +#usr/include/sound/sb16_csp.h +#usr/include/sound/sfnt_info.h +#usr/include/video +#usr/include/video/edid.h +#usr/include/video/sisfb.h +#usr/include/video/uvesafb.h +#usr/include/xen +#usr/include/xen/evtchn.h +#usr/include/xen/privcmd.h diff --git a/config/rootfiles/common/armv5tel/linux-kirkwood b/config/rootfiles/common/armv5tel/linux-kirkwood index 3cfb393d31..c24aebeb27 100644 --- a/config/rootfiles/common/armv5tel/linux-kirkwood +++ b/config/rootfiles/common/armv5tel/linux-kirkwood @@ -1,5 +1,2085 @@ -boot/uInit-ipfire-kirkwood -boot/uImage-ipfire-kirkwood boot/System.map-KVER-ipfire-kirkwood +#boot/System.map-ipfire-kirkwood boot/config-KVER-ipfire-kirkwood +boot/uImage-ipfire-kirkwood +boot/vmlinuz-KVER-ipfire-kirkwood +etc/modprobe.d/framebuffer +etc/modprobe.d/ipv6 +etc/modprobe.d/isdn lib/modules/KVER-ipfire-kirkwood +#lib/modules/KVER-ipfire-kirkwood/build +#lib/modules/KVER-ipfire-kirkwood/kernel +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/algif_skcipher.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/camellia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cast6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crc32c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/crypto_user.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ecb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/md5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/seqiv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha1_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha256_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/acard-ahci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/ata_piix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libahci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/libata.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ali.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_amd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_artop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_atiixp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_atp867x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cmd640.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cmd64x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5520.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5530.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cs5536.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_cypress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_efar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt366.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt37x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt3x2n.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_hpt3x3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it8213.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_it821x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_jmicron.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_legacy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_marvell.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_mpiix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_netcell.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ninja32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ns87410.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_ns87415.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_oldpiix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_opti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_optidma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pcmcia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc2027x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_pdc202xx_old.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_piccolo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_radisys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rdc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_rz1000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sc1200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_serverworks.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sil680.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sis.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_sl82c105.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_triflex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pata_via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/pdc_adma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_inic162x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_nv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_promise.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_qstor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sil.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sil24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sis.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_svw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_sx4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_uli.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ata/sata_vsc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/ambassador.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/eni.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/firestream.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/fore_200e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/horizon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77105.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/idt77252.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/iphase.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/lanai.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/nicstar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/solos-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/suni.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/uPD98402.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/atm/zatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bcma/bcma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/DAC960.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/aoe/aoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cciss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cpqarray.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/mg_disk.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/nbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/block/sx8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bluecard_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/bt3c_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btuart_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/dtl1_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/cdrom/cdrom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/lp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/nvram.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/pcmcia/synclink_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/char/ppdev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/connector/cn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/hifn_795x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/crypto/mv_cesa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-net.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-ohci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/firewire/firewire-sbp2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-janz-ttl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-ml-ioh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpio/gpio-vx855.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/r128/r128.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/savage/savage.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/tdfx/tdfx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/gpu/stub/poulsbo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-axff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-belkin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cherry.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-chicony.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-cypress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-elecom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-holtekff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-magicmouse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-multitouch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-uclogic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-wiimote.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/hwmon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/i5k_amb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/sis5595.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smm665.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/via686a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/vt8231.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali1535.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali1563.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ali15x3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd756.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-eg20t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-intel-mid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-nforce2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-piix4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis5595.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis630.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-sis96x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-taos-evm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-viapro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/i2c/muxes/pca954x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/ff-memless.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/matrix_keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/mpr121_touchkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/qt2160.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/tca6416-keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/88pm860x_onkey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ad714x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/pcf8574_keypad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/avm_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1dma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/c4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/avm/t1pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/diva_idi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divacapi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divadidd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/netjet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/speedfax.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hardware/mISDN/w6692.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/avma1_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/elsa_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_isac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/sedlbauer_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hisax/teles_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/hysdn/hysdn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/isdn/mISDN/mISDN_dsp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-88pm860x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-flakey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-log.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mirror.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-region-hash.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-thin-pool.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/md-mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda827x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc4000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/rc/rc-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/r592.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/memstick/host/tifm_ms.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptbase.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptctl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptsas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptscsih.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/lpc_sch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/rdc321x-southbridge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/timberdale.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/vx855.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/bmp085.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hmc6352.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/hpilo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/pch_phub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_7xx1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tifm_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_block.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/core/mmc_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/mvsdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdhci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/sdricoh_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ar7part.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdblock.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/mtdchar.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/nand_ids.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/orion_nand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/nand/plat_nand.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ofpart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/sm_ftl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_nandecctest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/eql.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c574_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c589_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/3c59x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/axnet_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/8390/pcnet_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/nmclan_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/mv643xx_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/hamachi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/packetengines/yellowfin.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/stir4200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/irda/vlsi_ir.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mdio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/dp83640.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/slip/slip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/vmxnet3/vmxnet3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dlci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/dscc4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/farsync.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_cisco.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_fr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_ppp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/hdlc_raw_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/lmc/lmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pc300too.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/pci200syn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wan/wanxl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/airo_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/hostap/hostap_plx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/wl3501_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pci/pci-stub.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/i82092.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pcmcia_rsrc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/pd6729.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pcmcia/yenta_socket.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq32k.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/3w-xxxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/a100u2w.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aacraid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aacraid/aacraid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx/aic79xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic7xxx/aic7xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic94xx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/aic94xx/aic94xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/arcmsr +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/arcmsr/arcmsr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/be2iscsi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/be2iscsi/be2iscsi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bfa +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2fc/bnx2fc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/bnx2i/bnx2i.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/cxgbi/libcxgbi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dc395x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dmx3191d.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/dpt_i2o.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/fcoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/fdomain.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hpsa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/hptiop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/initio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ipr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/lpfc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/lpfc/lpfc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_mbox.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_mm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/megaraid/megaraid_sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mpt2sas/mpt2sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/mvumi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/aha152x_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/fdomain_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/nsp_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/qlogic_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pm8001/pm8001.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/pmcraid.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla1280.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla2xxx/qla2xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qla4xxx/qla4xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sd_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/stex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/scsi/tmscsim.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/et131x/et131x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/phison/phison.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/8250_dw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/mfd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/pch_uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/serial_cs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/uartlite.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_aec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_cif.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_netx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pci_generic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uio/uio_sercos3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/hwa-hc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/whci/whci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/host/xhci-hcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/uss720.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/gpio_vbus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/opticon.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/vivopay-serial.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/uas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-cbaf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusb-wa.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/usb/wusbcore/wusbcore.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/hwa-rc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/dfu +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/i1480/i1480-est.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/umc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/uwb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whc-rc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/uwb/whci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/arkfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/aty128fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/atyfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/aty/radeonfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/88pm860x_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/generic_bl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/pcf50633-backlight.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cirrusfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/cyber2000fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/display/display.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_ddc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/kyro/kyrofb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/macmodes.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/g450_pll.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/i2c-matroxfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_DAC1064.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_Ti3026.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_accel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_base.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_crtc2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_g450.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_maven.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/matrox/matroxfb_misc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/metronomefb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/neofb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/nvidia/nvidiafb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/output.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm2fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/pm3fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/riva/rivafb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/s3fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sis/sisfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sstfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/svgalib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/syscopyarea.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysfillrect.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/sysimgblt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tdfxfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tmiofb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/tridentfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vgastate.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/video/vt8623fb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1 +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/masters/w1-gpio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/alim7101_wdt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/max63xx_wdt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/orion_wdt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/watchdog/wdt_pci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4 +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/isofs/isofs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2 +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jffs2/jffs2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/jfs/jfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_tree.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/ufs/ufs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs +#lib/modules/KVER-ipfire-kirkwood/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-ccitt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc-t10dif.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6 +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/garp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/p8022.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/psnap.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/802/stp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q +#lib/modules/KVER-ipfire-kirkwood/kernel/net/8021q/8021q.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/batman-adv +#lib/modules/KVER-ipfire-kirkwood/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/bridge.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ceph/libceph.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/6lowpan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/af_802154.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irlan/irlan.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet +#lib/modules/KVER-ipfire-kirkwood/kernel/net/irda/irnet/irnet.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/key +#lib/modules/KVER-ipfire-kirkwood/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc +#lib/modules/KVER-ipfire-kirkwood/kernel/net/llc/llc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211 +#lib/modules/KVER-ipfire-kirkwood/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_ipvs.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rfkill/rfkill.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/rxrpc/rxkad.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm +#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/net/xfrm/xfrm_user.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/ac97_bus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi-emul.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-firewire-speakers.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/firewire/snd-isight.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lola +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lx6464es +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/trident +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/pcmcia/vx/snd-vxpocket.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-alc5623.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/codecs/snd-soc-cs42l51.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood-i2s.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-kirkwood.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-openrd.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/kirkwood/snd-soc-t5325.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/emux +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-kirkwood/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-kirkwood/modules.alias +#lib/modules/KVER-ipfire-kirkwood/modules.alias.bin +#lib/modules/KVER-ipfire-kirkwood/modules.builtin +#lib/modules/KVER-ipfire-kirkwood/modules.ccwmap +#lib/modules/KVER-ipfire-kirkwood/modules.dep +#lib/modules/KVER-ipfire-kirkwood/modules.dep.bin +#lib/modules/KVER-ipfire-kirkwood/modules.ieee1394map +#lib/modules/KVER-ipfire-kirkwood/modules.inputmap +#lib/modules/KVER-ipfire-kirkwood/modules.isapnpmap +#lib/modules/KVER-ipfire-kirkwood/modules.ofmap +#lib/modules/KVER-ipfire-kirkwood/modules.order +#lib/modules/KVER-ipfire-kirkwood/modules.pcimap +#lib/modules/KVER-ipfire-kirkwood/modules.seriomap +#lib/modules/KVER-ipfire-kirkwood/modules.symbols +#lib/modules/KVER-ipfire-kirkwood/modules.symbols.bin +#lib/modules/KVER-ipfire-kirkwood/modules.usbmap +#lib/modules/KVER-ipfire-kirkwood/source +sbin/gen_init_cpio +boot/uInit-ipfire-kirkwood diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap new file mode 100644 index 0000000000..f3bf7c6d87 --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-omap @@ -0,0 +1,1467 @@ +boot/System.map-KVER-ipfire-omap +#boot/System.map-ipfire-omap +boot/config-KVER-ipfire-omap +boot/uImage-ipfire-omap +boot/vmlinuz-KVER-ipfire-omap +lib/modules/KVER-ipfire-omap +#lib/modules/KVER-ipfire-omap/build +#lib/modules/KVER-ipfire-omap/kernel +#lib/modules/KVER-ipfire-omap/kernel/crypto +#lib/modules/KVER-ipfire-omap/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/algif_skcipher.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/camellia.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cast5.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cast6.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/crc32c.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/crypto_user.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ecb.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/md5.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/pcrypt.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/seqiv.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/sha1_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/sha256_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-omap/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libahci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/libata.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_of_platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/pata_platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/atm +#lib/modules/KVER-ipfire-omap/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/base +#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-omap/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma +#lib/modules/KVER-ipfire-omap/kernel/drivers/bcma/bcma.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/aoe/aoe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/mg_disk.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/nbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom +#lib/modules/KVER-ipfire-omap/kernel/drivers/cdrom/cdrom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/omap-rng.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/lp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/nvram.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/char/ppdev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/connector +#lib/modules/KVER-ipfire-omap/kernel/drivers/connector/cn.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto +#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-aes.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/crypto/omap-sham.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/dw_dmac.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/dma/timb_dma.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpio/gpio-twl4030.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-omap/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-axff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-belkin.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cherry.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-chicony.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-cypress.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-elecom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-holtekff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-magicmouse.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-multitouch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-uclogic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-wiimote.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hid/usbhid/usbmouse.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/hwmon.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smm665.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/twl4030-madc-hwmon.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/hwspinlock_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/hwspinlock/omap_hwspinlock.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-taos-evm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/i2c/muxes/pca954x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154 +#lib/modules/KVER-ipfire-omap/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/ff-memless.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/matrix_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/mpr121_touchkey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap-keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/omap4-keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/qt2160.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/tca6416-keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/twl4030_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ad714x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pcf8574_keypad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/pwm-beeper.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-pwrbutton.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl4030-vibra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/twl6040-vibra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/isdn/mISDN/mISDN_dsp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-flakey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-log.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mirror.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-region-hash.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-thin-pool.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/md-mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda827x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc4000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/radio/wl128x/fm_drv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/rc/rc-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl4030-madc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/twl6030-pwm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/bmp085.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/hmc6352.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_block.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/sdhci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ar7part.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdblock.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/mtdchar.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ofpart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/sm_ftl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_nandecctest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi +#lib/modules/KVER-ipfire-omap/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/eql.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/irda/stir4200.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/dp83640.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/slip/slip.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/dlci.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_cisco.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_fr.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_ppp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wan/hdlc_raw_eth.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/parport +#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/power +#lib/modules/KVER-ipfire-omap/kernel/drivers/power/gpio-charger.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/power/twl4030_charger.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/pps +#lib/modules/KVER-ipfire-omap/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp +#lib/modules/KVER-ipfire-omap/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator +#lib/modules/KVER-ipfire-omap/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sd_mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb +#lib/modules/KVER-ipfire-omap/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/8250_dw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/uss720.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/gpio_vbus.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl4030-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/otg/twl6030-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/opticon.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/vivopay-serial.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/uas.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pcf50633-backlight.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/backlight/pwm_bl.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/metronomefb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/output.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/syscopyarea.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysfillrect.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/sysimgblt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/tmiofb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1 +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/omap_hdq.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/masters/w1-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/dw_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/max63xx_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/mpcore_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/omap_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-omap/kernel/drivers/watchdog/twl4030_wdt.ko +#lib/modules/KVER-ipfire-omap/kernel/fs +#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4 +#lib/modules/KVER-ipfire-omap/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-omap/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/cifs +#lib/modules/KVER-ipfire-omap/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs +#lib/modules/KVER-ipfire-omap/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs +#lib/modules/KVER-ipfire-omap/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fat +#lib/modules/KVER-ipfire-omap/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fscache +#lib/modules/KVER-ipfire-omap/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fuse +#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/isofs +#lib/modules/KVER-ipfire-omap/kernel/fs/isofs/isofs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2 +#lib/modules/KVER-ipfire-omap/kernel/fs/jffs2/jffs2.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/jfs +#lib/modules/KVER-ipfire-omap/kernel/fs/jfs/jfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/lockd +#lib/modules/KVER-ipfire-omap/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-omap/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd +#lib/modules/KVER-ipfire-omap/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/quota +#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_tree.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v1.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-omap/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/udf +#lib/modules/KVER-ipfire-omap/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/ufs +#lib/modules/KVER-ipfire-omap/kernel/fs/ufs/ufs.ko +#lib/modules/KVER-ipfire-omap/kernel/fs/xfs +#lib/modules/KVER-ipfire-omap/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-omap/kernel/lib +#lib/modules/KVER-ipfire-omap/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc-ccitt.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc-t10dif.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/raid6 +#lib/modules/KVER-ipfire-omap/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-omap/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net +#lib/modules/KVER-ipfire-omap/kernel/net/802 +#lib/modules/KVER-ipfire-omap/kernel/net/802/garp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/802/p8022.ko +#lib/modules/KVER-ipfire-omap/kernel/net/802/psnap.ko +#lib/modules/KVER-ipfire-omap/kernel/net/802/stp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/8021q +#lib/modules/KVER-ipfire-omap/kernel/net/8021q/8021q.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm +#lib/modules/KVER-ipfire-omap/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv +#lib/modules/KVER-ipfire-omap/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-omap/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/bridge.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ceph +#lib/modules/KVER-ipfire-omap/kernel/net/ceph/libceph.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/6lowpan.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/af_802154.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4 +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6 +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda +#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm +#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irda.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irlan/irlan.ko +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet +#lib/modules/KVER-ipfire-omap/kernel/net/irda/irnet/irnet.ko +#lib/modules/KVER-ipfire-omap/kernel/net/key +#lib/modules/KVER-ipfire-omap/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-omap/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/llc +#lib/modules/KVER-ipfire-omap/kernel/net/llc/llc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/mac80211 +#lib/modules/KVER-ipfire-omap/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_ipvs.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-omap/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-gpio.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rfkill/rfkill.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc +#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/rxrpc/rxkad.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-omap/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-omap/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-omap/kernel/net/xfrm +#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-omap/kernel/net/xfrm/xfrm_user.ko +#lib/modules/KVER-ipfire-omap/kernel/sound +#lib/modules/KVER-ipfire-omap/kernel/sound/core +#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss +#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-tpa6130a2.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl4030.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/codecs/snd-soc-twl6040.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-am3517evm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-igep0020.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcbsp.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap-mcpdm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3beagle.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3evm.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-omap3pandora.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-overo.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-rx51.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp3430.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-sdp4430.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/omap/snd-soc-zoom2.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-omap/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-omap/modules.alias +#lib/modules/KVER-ipfire-omap/modules.alias.bin +#lib/modules/KVER-ipfire-omap/modules.builtin +#lib/modules/KVER-ipfire-omap/modules.ccwmap +#lib/modules/KVER-ipfire-omap/modules.dep +#lib/modules/KVER-ipfire-omap/modules.dep.bin +#lib/modules/KVER-ipfire-omap/modules.ieee1394map +#lib/modules/KVER-ipfire-omap/modules.inputmap +#lib/modules/KVER-ipfire-omap/modules.isapnpmap +#lib/modules/KVER-ipfire-omap/modules.ofmap +#lib/modules/KVER-ipfire-omap/modules.order +#lib/modules/KVER-ipfire-omap/modules.pcimap +#lib/modules/KVER-ipfire-omap/modules.seriomap +#lib/modules/KVER-ipfire-omap/modules.symbols +#lib/modules/KVER-ipfire-omap/modules.symbols.bin +#lib/modules/KVER-ipfire-omap/modules.usbmap +#lib/modules/KVER-ipfire-omap/source +boot/uInit-ipfire-omap diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi new file mode 100644 index 0000000000..0b8c57c648 --- /dev/null +++ b/config/rootfiles/common/armv5tel/linux-rpi @@ -0,0 +1,1439 @@ +boot/System.map-KVER-ipfire-rpi +#boot/System.map-ipfire-rpi +boot/config-KVER-ipfire-rpi +boot/kernel.img +boot/vmlinuz-KVER-ipfire-rpi +#lib/modules +lib/modules/KVER-ipfire-rpi +#lib/modules/KVER-ipfire-rpi/build +#lib/modules/KVER-ipfire-rpi/kernel +#lib/modules/KVER-ipfire-rpi/kernel/arch +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708 +#lib/modules/KVER-ipfire-rpi/kernel/arch/arm/mach-bcm2708/dmaer.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto +#lib/modules/KVER-ipfire-rpi/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/algif_skcipher.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ansi_cprng.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/anubis.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/arc4.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_pq.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_tx.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/async_xor.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/async_tx/raid6test.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/authenc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/blowfish_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/camellia.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast5.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cast6.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cbc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ccm.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/crc32c.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/crypto_user.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ctr.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/cts.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/des_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ecb.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/fcrypt.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/gcm.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/gf128mul.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/ghash-generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/khazad.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/lrw.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/md4.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/md5.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/michael_mic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd128.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd160.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd256.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/rmd320.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/salsa20_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/seed.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/seqiv.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/serpent.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha1_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha256_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/sha512_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/tea.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/tgr192.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/twofish_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/vmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/wp512.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/xcbc.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/xor.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/xts.ko +#lib/modules/KVER-ipfire-rpi/kernel/crypto/zlib.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/ahci_platform.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libahci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/libata.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/pata_arasan_cf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ata/sata_mv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/atm +#lib/modules/KVER-ipfire-rpi/kernel/drivers/atm/atmtcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-rpi/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bcma/bcma.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/aoe/aoe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/cryptoloop.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/mg_disk.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/nbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/block/rbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/ath3k.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/btwilink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cdrom/cdrom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/lp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/nvram.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/char/ppdev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/connector +#lib/modules/KVER-ipfire-rpi/kernel/drivers/connector/cn.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cpufreq +#lib/modules/KVER-ipfire-rpi/kernel/drivers/cpufreq/cpufreq_stats.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/dma +#lib/modules/KVER-ipfire-rpi/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm +#lib/modules/KVER-ipfire-rpi/kernel/drivers/gpu/drm/drm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-axff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-belkin.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cherry.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-chicony.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-cypress.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-elecom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gaff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-holtekff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-keytouch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech-dj.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-magicmouse.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-multitouch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-ortek.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-picolcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-roccat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-samsung.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-speedlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-tmff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-topseed.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-uclogic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-wiimote.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/hid-zydacron.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7414.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ad7418.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1021.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1025.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1026.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1029.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm1031.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads1015.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7411.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7462.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7470.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/amc6821.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/asc7621.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/atxp1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/dme1737.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/emc6w201.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f71805f.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/g760a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/gpio-fan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/hwmon.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lineage-pem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm73.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm75.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm77.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm78.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm80.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm83.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm85.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm87.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm90.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm92.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm93.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4151.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max16065.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6642.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/ntc_thermistor.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87360.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pc87427.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/sht21.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smm665.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp102.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp401.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/vt1211.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83781d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83791d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83792d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83795.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-bcm2708.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-designware-platform.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-taos-evm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/busses/i2c-xiic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/i2c/muxes/pca954x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/ff-memless.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/input-polldev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/gpio_keys_polled.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/matrix_keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/mpr121_touchkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/qt2160.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/tca6416-keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/88pm860x_onkey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ad714x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/bma150.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/cm109.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/pcf8574_keypad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/powermate.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ambakmi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/input/sparse-keymap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/capi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/divert +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/isdn/mISDN/mISDN_dsp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-88pm860x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lm3530.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-lt3593.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-bufio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-crypt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-flakey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-log.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-mirror.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-mod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-multipath.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-raid.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-region-hash.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-round-robin.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-service-time.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-thin-pool.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/dm-zero.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/linear.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/md-mod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/persistent-data/dm-persistent-data.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid0.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid10.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/md/raid456.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda827x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc4000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/rc/rc-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/ir-kbd-i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/media/video/videodev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/memstick.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/sm501.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wl1273-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/bmp085.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/c2port/core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ds1682.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/hmc6352.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ics932s401.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/ti-st/st_drv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/dw_mmc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/mmci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pxav2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/sdhci-pxav3.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/ushc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mmc/host/vub300.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ar7part.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/maps +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdblock.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/mtdchar.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/nand_ids.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/nand/plat_nand.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ofpart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/sm_ftl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_nandecctest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/bonding +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/bonding/bonding.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/dummy.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/eql.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/8390/ax88796.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/davicom/dm9000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc911x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smc91x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/smsc/smsc911x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ifb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/imq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/irda/stir4200.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/macvtap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/mii.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/broadcom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/cicada.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/dp83640.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/et1011c.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/icplus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/lxt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/marvell.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/micrel.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/national.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/qsemi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/realtek.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/smsc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/phy/vitesse.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/ppp/pptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/slip/slip.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/tun.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/asix.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/catc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_ncm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/cx82310_eth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/dm9601.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/gl620a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/hso.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/kalmia.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/lg-vl600.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/net1080.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/pegasus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/plusb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc75xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/usbnet.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/usb/zaurus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/veth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/dlci.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_cisco.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_fr.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_ppp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wan/hdlc_raw_eth.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport +#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/pps +#lib/modules/KVER-ipfire-rpi/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ptp +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator +#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/regulator/gpio-regulator.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-bq32k.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-em3027.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl12022.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-msm6242.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl030.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-pl031.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rp5c01.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rv3029c2.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/fcoe +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/iscsi_boot_sysfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libfc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libiscsi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libsas +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/osd/osd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/raid_class.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/ses.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/scsi/sr_mod.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/ssb/ssb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/8250_dw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/tty/serial/xilinx_uartps.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usblp.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/dwc3/dwc3.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi26.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/emi62.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbled.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/uss720.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/misc/yurex.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/gpio_vbus.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/aircable.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ch341.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/empeg.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/funsoft.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ipaq.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ir-usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/opticon.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/option.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcaux.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/qcserial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/sierra.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ssu100.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/usb_wwan.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/vivopay-serial.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/serial/zio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/uas.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-eneub6250.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-realtek.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/88pm860x_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/generic_bl.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/lcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/pcf50633-backlight.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/metronomefb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/output.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/smscufx.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/syscopyarea.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysfillrect.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/sysimgblt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/tmiofb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/video/uvesafb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1 +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds1wm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/masters/w1-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2423.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_ds2780.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/w1/wire.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/bcm2708_wdog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/dw_wdt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/max63xx_wdt.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-rpi/kernel/drivers/watchdog/sp805_wdt.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs +#lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4 +#lib/modules/KVER-ipfire-rpi/kernel/fs/autofs4/autofs4.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles +#lib/modules/KVER-ipfire-rpi/kernel/fs/cachefiles/cachefiles.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/cifs +#lib/modules/KVER-ipfire-rpi/kernel/fs/cifs/cifs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/ecryptfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/exportfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/exportfs/exportfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fat +#lib/modules/KVER-ipfire-rpi/kernel/fs/fat/fat.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fat/vfat.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fscache +#lib/modules/KVER-ipfire-rpi/kernel/fs/fscache/fscache.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse +#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse/cuse.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/fuse/fuse.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/isofs +#lib/modules/KVER-ipfire-rpi/kernel/fs/isofs/isofs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/jffs2 +#lib/modules/KVER-ipfire-rpi/kernel/fs/jffs2/jffs2.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/jfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/jfs/jfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/lockd +#lib/modules/KVER-ipfire-rpi/kernel/fs/lockd/lockd.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs/nfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfsd +#lib/modules/KVER-ipfire-rpi/kernel/fs/nfsd/nfsd.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_tree.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_v1.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/quota/quota_v2.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/reiserfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/udf +#lib/modules/KVER-ipfire-rpi/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/ufs +#lib/modules/KVER-ipfire-rpi/kernel/fs/ufs/ufs.ko +#lib/modules/KVER-ipfire-rpi/kernel/fs/xfs +#lib/modules/KVER-ipfire-rpi/kernel/fs/xfs/xfs.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib +#lib/modules/KVER-ipfire-rpi/kernel/lib/cordic.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-ccitt.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-itu-t.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc-t10dif.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/crc8.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/libcrc32c.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/raid6 +#lib/modules/KVER-ipfire-rpi/kernel/lib/raid6/raid6_pq.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_bm.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_fsm.ko +#lib/modules/KVER-ipfire-rpi/kernel/lib/ts_kmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net +#lib/modules/KVER-ipfire-rpi/kernel/net/802 +#lib/modules/KVER-ipfire-rpi/kernel/net/802/garp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/802/p8022.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/802/psnap.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/802/stp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/8021q +#lib/modules/KVER-ipfire-rpi/kernel/net/8021q/8021q.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/atm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/br2684.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/clip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/batman-adv +#lib/modules/KVER-ipfire-rpi/kernel/net/batman-adv/batman-adv.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bluetooth.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bnep +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/cmtp +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/hidp +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/rfcomm +#lib/modules/KVER-ipfire-rpi/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/bridge.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ceph +#lib/modules/KVER-ipfire-rpi/kernel/net/ceph/libceph.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/6lowpan.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/af_802154.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ieee802154/ieee802154.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4 +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ah4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/inet_diag.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ip_gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/ipip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_bic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_diag.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_lp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_veno.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/tunnel4.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6 +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ah6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/esp6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/ipcomp6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/mip6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/sit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/tunnel6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irda.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irlan/irlan.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet +#lib/modules/KVER-ipfire-rpi/kernel/net/irda/irnet/irnet.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/key +#lib/modules/KVER-ipfire-rpi/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/l2tp/l2tp_ppp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/llc +#lib/modules/KVER-ipfire-rpi/kernel/net/llc/llc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/mac80211 +#lib/modules/KVER-ipfire-rpi/kernel/net/mac80211/mac80211.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_broadcast.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_snmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CHECKSUM.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_CT.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IDLETIMER.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_LED.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TEE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_addrtype.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_cluster.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_comment.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_connmark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_cpu.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_devgroup.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_dscp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_esp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_helper.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_hl.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_ipvs.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_layer7.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_length.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_limit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mac.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_mark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_multiport.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_osf.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_owner.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_physdev.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_policy.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_quota.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_rateest.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_realm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_recent.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_sctp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_socket.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_state.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_statistic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_string.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_time.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/netfilter/xt_u32.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-gpio.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill-regulator.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rfkill/rfkill.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc +#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/rxrpc/rxkad.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_csum.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_gact.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_ipt.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_mirred.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_nat.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_pedit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_simple.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/act_skbedit.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_basic.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_flow.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_fw.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_route.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_rsvp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_rsvp6.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_tcindex.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/cls_u32.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_cmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_meta.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_nbyte.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_text.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/em_u32.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_atm.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_choke.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_drr.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_dsmark.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_gred.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_hfsc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_htb.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_mqprio.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_multiq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_netem.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_qfq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_sfb.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_sfq.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_tbf.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sched/sch_teql.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/sunrpc/sunrpc.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/cfg80211.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm +#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/KVER-ipfire-rpi/kernel/net/xfrm/xfrm_user.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound +#lib/modules/KVER-ipfire-rpi/kernel/sound/ac97_bus.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/arm +#lib/modules/KVER-ipfire-rpi/kernel/sound/arm/snd-aaci.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/arm/snd-bcm2835.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/oss +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-hwdep.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-page-alloc.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-rawmidi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd-timer.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/core/snd.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-aloop.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/pci +#lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-rpi/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc +#lib/modules/KVER-ipfire-rpi/kernel/sound/soc/snd-soc-core.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-rpi/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-rpi/modules.alias +#lib/modules/KVER-ipfire-rpi/modules.alias.bin +#lib/modules/KVER-ipfire-rpi/modules.builtin +#lib/modules/KVER-ipfire-rpi/modules.ccwmap +#lib/modules/KVER-ipfire-rpi/modules.dep +#lib/modules/KVER-ipfire-rpi/modules.dep.bin +#lib/modules/KVER-ipfire-rpi/modules.ieee1394map +#lib/modules/KVER-ipfire-rpi/modules.inputmap +#lib/modules/KVER-ipfire-rpi/modules.isapnpmap +#lib/modules/KVER-ipfire-rpi/modules.ofmap +#lib/modules/KVER-ipfire-rpi/modules.order +#lib/modules/KVER-ipfire-rpi/modules.pcimap +#lib/modules/KVER-ipfire-rpi/modules.seriomap +#lib/modules/KVER-ipfire-rpi/modules.symbols +#lib/modules/KVER-ipfire-rpi/modules.symbols.bin +#lib/modules/KVER-ipfire-rpi/modules.usbmap +#lib/modules/KVER-ipfire-rpi/source diff --git a/config/rootfiles/common/armv5tel/linux-versatile b/config/rootfiles/common/armv5tel/linux-versatile deleted file mode 100644 index 8562f2e381..0000000000 --- a/config/rootfiles/common/armv5tel/linux-versatile +++ /dev/null @@ -1,5 +0,0 @@ -boot/System.map-KVER-ipfire-versatile -boot/config-KVER-ipfire-versatile -boot/vmlinuz-KVER-ipfire-versatile -boot/ipfirerd-KVER-versatile.img -lib/modules/KVER-ipfire-versatile diff --git a/config/rootfiles/common/armv5tel/rpi-firmware b/config/rootfiles/common/armv5tel/rpi-firmware new file mode 100644 index 0000000000..3024548c1f --- /dev/null +++ b/config/rootfiles/common/armv5tel/rpi-firmware @@ -0,0 +1,9 @@ +#boot/LICENCE.broadcom +boot/bootcode.bin +boot/cmdline.txt +boot/config.txt +#boot/first32k.bin +boot/start.elf +boot/start_cd.elf +boot/fixup.dat +boot/fixup_cd.dat diff --git a/config/rootfiles/common/armv5tel/u-boot b/config/rootfiles/common/armv5tel/u-boot new file mode 100644 index 0000000000..759d41d76f --- /dev/null +++ b/config/rootfiles/common/armv5tel/u-boot @@ -0,0 +1,6 @@ +#boot/MLO +#boot/u-boot.bin +usr/bin/mkimage +boot/boot.scr +boot/boot.script +boot/convert_bootscript diff --git a/config/rootfiles/common/armv5tel/uboot b/config/rootfiles/common/armv5tel/uboot deleted file mode 100644 index 80864b79c0..0000000000 --- a/config/rootfiles/common/armv5tel/uboot +++ /dev/null @@ -1 +0,0 @@ -usr/bin/mkimage diff --git a/config/rootfiles/common/autoconf b/config/rootfiles/common/autoconf index 8124618cef..b398eb9745 100644 --- a/config/rootfiles/common/autoconf +++ b/config/rootfiles/common/autoconf @@ -5,16 +5,6 @@ #usr/bin/autoscan #usr/bin/autoupdate #usr/bin/ifnames -#usr/info/autoconf.info -#usr/man/man1/autoconf.1 -#usr/man/man1/autoheader.1 -#usr/man/man1/autom4te.1 -#usr/man/man1/autoreconf.1 -#usr/man/man1/autoscan.1 -#usr/man/man1/autoupdate.1 -#usr/man/man1/config.guess.1 -#usr/man/man1/config.sub.1 -#usr/man/man1/ifnames.1 #usr/share/autoconf #usr/share/autoconf/Autom4te #usr/share/autoconf/Autom4te/C4che.pm @@ -23,8 +13,8 @@ #usr/share/autoconf/Autom4te/Configure_ac.pm #usr/share/autoconf/Autom4te/FileUtils.pm #usr/share/autoconf/Autom4te/General.pm +#usr/share/autoconf/Autom4te/Getopt.pm #usr/share/autoconf/Autom4te/Request.pm -#usr/share/autoconf/Autom4te/Struct.pm #usr/share/autoconf/Autom4te/XFile.pm #usr/share/autoconf/INSTALL #usr/share/autoconf/autoconf @@ -35,9 +25,11 @@ #usr/share/autoconf/autoconf/autotest.m4 #usr/share/autoconf/autoconf/autoupdate.m4 #usr/share/autoconf/autoconf/c.m4 +#usr/share/autoconf/autoconf/erlang.m4 #usr/share/autoconf/autoconf/fortran.m4 #usr/share/autoconf/autoconf/functions.m4 #usr/share/autoconf/autoconf/general.m4 +#usr/share/autoconf/autoconf/go.m4 #usr/share/autoconf/autoconf/headers.m4 #usr/share/autoconf/autoconf/lang.m4 #usr/share/autoconf/autoconf/libs.m4 @@ -53,9 +45,21 @@ #usr/share/autoconf/autotest/autotest.m4 #usr/share/autoconf/autotest/autotest.m4f #usr/share/autoconf/autotest/general.m4 +#usr/share/autoconf/autotest/specific.m4 #usr/share/autoconf/m4sugar +#usr/share/autoconf/m4sugar/foreach.m4 #usr/share/autoconf/m4sugar/m4sh.m4 #usr/share/autoconf/m4sugar/m4sh.m4f #usr/share/autoconf/m4sugar/m4sugar.m4 #usr/share/autoconf/m4sugar/m4sugar.m4f #usr/share/autoconf/m4sugar/version.m4 +#usr/share/info/autoconf.info +#usr/share/man/man1/autoconf.1 +#usr/share/man/man1/autoheader.1 +#usr/share/man/man1/autom4te.1 +#usr/share/man/man1/autoreconf.1 +#usr/share/man/man1/autoscan.1 +#usr/share/man/man1/autoupdate.1 +#usr/share/man/man1/config.guess.1 +#usr/share/man/man1/config.sub.1 +#usr/share/man/man1/ifnames.1 diff --git a/config/rootfiles/common/automake b/config/rootfiles/common/automake index 2b2ceb2a75..0c19dc3460 100644 --- a/config/rootfiles/common/automake +++ b/config/rootfiles/common/automake @@ -1,121 +1,133 @@ #usr/bin/aclocal -#usr/bin/aclocal-1.9 +#usr/bin/aclocal-1.12 #usr/bin/automake -#usr/bin/automake-1.9 -#usr/share/aclocal-1.9 -#usr/share/aclocal-1.9/amversion.m4 -#usr/share/aclocal-1.9/as.m4 -#usr/share/aclocal-1.9/auxdir.m4 -#usr/share/aclocal-1.9/ccstdc.m4 -#usr/share/aclocal-1.9/cond.m4 -#usr/share/aclocal-1.9/depend.m4 -#usr/share/aclocal-1.9/depout.m4 -#usr/share/aclocal-1.9/dmalloc.m4 -#usr/share/aclocal-1.9/gcj.m4 -#usr/share/aclocal-1.9/header.m4 -#usr/share/aclocal-1.9/init.m4 -#usr/share/aclocal-1.9/install-sh.m4 -#usr/share/aclocal-1.9/lead-dot.m4 -#usr/share/aclocal-1.9/lex.m4 -#usr/share/aclocal-1.9/lispdir.m4 -#usr/share/aclocal-1.9/maintainer.m4 -#usr/share/aclocal-1.9/make.m4 -#usr/share/aclocal-1.9/minuso.m4 -#usr/share/aclocal-1.9/missing.m4 -#usr/share/aclocal-1.9/mkdirp.m4 -#usr/share/aclocal-1.9/multi.m4 -#usr/share/aclocal-1.9/obsol-gt.m4 -#usr/share/aclocal-1.9/obsol-lt.m4 -#usr/share/aclocal-1.9/obsolete.m4 -#usr/share/aclocal-1.9/options.m4 -#usr/share/aclocal-1.9/protos.m4 -#usr/share/aclocal-1.9/python.m4 -#usr/share/aclocal-1.9/regex.m4 -#usr/share/aclocal-1.9/runlog.m4 -#usr/share/aclocal-1.9/sanity.m4 -#usr/share/aclocal-1.9/strip.m4 -#usr/share/aclocal-1.9/tar.m4 -#usr/share/automake-1.9 -#usr/share/automake-1.9/Automake -#usr/share/automake-1.9/Automake/ChannelDefs.pm -#usr/share/automake-1.9/Automake/Channels.pm -#usr/share/automake-1.9/Automake/Condition.pm -#usr/share/automake-1.9/Automake/Config.pm -#usr/share/automake-1.9/Automake/Configure_ac.pm -#usr/share/automake-1.9/Automake/DisjConditions.pm -#usr/share/automake-1.9/Automake/FileUtils.pm -#usr/share/automake-1.9/Automake/General.pm -#usr/share/automake-1.9/Automake/Item.pm -#usr/share/automake-1.9/Automake/ItemDef.pm -#usr/share/automake-1.9/Automake/Location.pm -#usr/share/automake-1.9/Automake/Options.pm -#usr/share/automake-1.9/Automake/Rule.pm -#usr/share/automake-1.9/Automake/RuleDef.pm -#usr/share/automake-1.9/Automake/Struct.pm -#usr/share/automake-1.9/Automake/VarDef.pm -#usr/share/automake-1.9/Automake/Variable.pm -#usr/share/automake-1.9/Automake/Version.pm -#usr/share/automake-1.9/Automake/Wrap.pm -#usr/share/automake-1.9/Automake/XFile.pm -#usr/share/automake-1.9/COPYING -#usr/share/automake-1.9/INSTALL -#usr/share/automake-1.9/acinstall -#usr/share/automake-1.9/am -#usr/share/automake-1.9/am/ansi2knr.am -#usr/share/automake-1.9/am/check.am -#usr/share/automake-1.9/am/clean-hdr.am -#usr/share/automake-1.9/am/clean.am -#usr/share/automake-1.9/am/compile.am -#usr/share/automake-1.9/am/configure.am -#usr/share/automake-1.9/am/data.am -#usr/share/automake-1.9/am/dejagnu.am -#usr/share/automake-1.9/am/depend.am -#usr/share/automake-1.9/am/depend2.am -#usr/share/automake-1.9/am/distdir.am -#usr/share/automake-1.9/am/footer.am -#usr/share/automake-1.9/am/header-vars.am -#usr/share/automake-1.9/am/header.am -#usr/share/automake-1.9/am/inst-vars.am -#usr/share/automake-1.9/am/install.am -#usr/share/automake-1.9/am/java.am -#usr/share/automake-1.9/am/lang-compile.am -#usr/share/automake-1.9/am/lex.am -#usr/share/automake-1.9/am/library.am -#usr/share/automake-1.9/am/libs.am -#usr/share/automake-1.9/am/libtool.am -#usr/share/automake-1.9/am/lisp.am -#usr/share/automake-1.9/am/ltlib.am -#usr/share/automake-1.9/am/ltlibrary.am -#usr/share/automake-1.9/am/mans-vars.am -#usr/share/automake-1.9/am/mans.am -#usr/share/automake-1.9/am/multilib.am -#usr/share/automake-1.9/am/program.am -#usr/share/automake-1.9/am/progs.am -#usr/share/automake-1.9/am/python.am -#usr/share/automake-1.9/am/remake-hdr.am -#usr/share/automake-1.9/am/scripts.am -#usr/share/automake-1.9/am/subdirs.am -#usr/share/automake-1.9/am/tags.am -#usr/share/automake-1.9/am/texi-vers.am -#usr/share/automake-1.9/am/texibuild.am -#usr/share/automake-1.9/am/texinfos.am -#usr/share/automake-1.9/am/yacc.am -#usr/share/automake-1.9/ansi2knr.1 -#usr/share/automake-1.9/ansi2knr.c -#usr/share/automake-1.9/compile -#usr/share/automake-1.9/config-ml.in -#usr/share/automake-1.9/config.guess -#usr/share/automake-1.9/config.sub -#usr/share/automake-1.9/depcomp -#usr/share/automake-1.9/elisp-comp -#usr/share/automake-1.9/install-sh -#usr/share/automake-1.9/mdate-sh -#usr/share/automake-1.9/missing -#usr/share/automake-1.9/mkinstalldirs -#usr/share/automake-1.9/py-compile -#usr/share/automake-1.9/symlink-tree -#usr/share/automake-1.9/texinfo.tex -#usr/share/automake-1.9/ylwrap +#usr/bin/automake-1.12 +#usr/share/aclocal-1.12 +#usr/share/aclocal-1.12/amversion.m4 +#usr/share/aclocal-1.12/ar-lib.m4 +#usr/share/aclocal-1.12/as.m4 +#usr/share/aclocal-1.12/auxdir.m4 +#usr/share/aclocal-1.12/ccstdc.m4 +#usr/share/aclocal-1.12/cond-if.m4 +#usr/share/aclocal-1.12/cond.m4 +#usr/share/aclocal-1.12/depend.m4 +#usr/share/aclocal-1.12/depout.m4 +#usr/share/aclocal-1.12/dmalloc.m4 +#usr/share/aclocal-1.12/gcj.m4 +#usr/share/aclocal-1.12/header.m4 +#usr/share/aclocal-1.12/init.m4 +#usr/share/aclocal-1.12/install-sh.m4 +#usr/share/aclocal-1.12/lead-dot.m4 +#usr/share/aclocal-1.12/lex.m4 +#usr/share/aclocal-1.12/lispdir.m4 +#usr/share/aclocal-1.12/maintainer.m4 +#usr/share/aclocal-1.12/make.m4 +#usr/share/aclocal-1.12/minuso.m4 +#usr/share/aclocal-1.12/missing.m4 +#usr/share/aclocal-1.12/mkdirp.m4 +#usr/share/aclocal-1.12/obsol-gt.m4 +#usr/share/aclocal-1.12/obsol-lt.m4 +#usr/share/aclocal-1.12/obsolete.m4 +#usr/share/aclocal-1.12/options.m4 +#usr/share/aclocal-1.12/protos.m4 +#usr/share/aclocal-1.12/python.m4 +#usr/share/aclocal-1.12/runlog.m4 +#usr/share/aclocal-1.12/sanity.m4 +#usr/share/aclocal-1.12/silent.m4 +#usr/share/aclocal-1.12/strip.m4 +#usr/share/aclocal-1.12/substnot.m4 +#usr/share/aclocal-1.12/tar.m4 +#usr/share/aclocal-1.12/upc.m4 +#usr/share/aclocal-1.12/vala.m4 +#usr/share/aclocal/README +#usr/share/automake-1.12 +#usr/share/automake-1.12/Automake +#usr/share/automake-1.12/Automake/ChannelDefs.pm +#usr/share/automake-1.12/Automake/Channels.pm +#usr/share/automake-1.12/Automake/Condition.pm +#usr/share/automake-1.12/Automake/Config.pm +#usr/share/automake-1.12/Automake/Configure_ac.pm +#usr/share/automake-1.12/Automake/DisjConditions.pm +#usr/share/automake-1.12/Automake/FileUtils.pm +#usr/share/automake-1.12/Automake/General.pm +#usr/share/automake-1.12/Automake/Getopt.pm +#usr/share/automake-1.12/Automake/Item.pm +#usr/share/automake-1.12/Automake/ItemDef.pm +#usr/share/automake-1.12/Automake/Location.pm +#usr/share/automake-1.12/Automake/Options.pm +#usr/share/automake-1.12/Automake/Rule.pm +#usr/share/automake-1.12/Automake/RuleDef.pm +#usr/share/automake-1.12/Automake/VarDef.pm +#usr/share/automake-1.12/Automake/Variable.pm +#usr/share/automake-1.12/Automake/Version.pm +#usr/share/automake-1.12/Automake/Wrap.pm +#usr/share/automake-1.12/Automake/XFile.pm +#usr/share/automake-1.12/COPYING +#usr/share/automake-1.12/INSTALL +#usr/share/automake-1.12/am +#usr/share/automake-1.12/am/check.am +#usr/share/automake-1.12/am/check2.am +#usr/share/automake-1.12/am/clean-hdr.am +#usr/share/automake-1.12/am/clean.am +#usr/share/automake-1.12/am/compile.am +#usr/share/automake-1.12/am/configure.am +#usr/share/automake-1.12/am/data.am +#usr/share/automake-1.12/am/dejagnu.am +#usr/share/automake-1.12/am/depend.am +#usr/share/automake-1.12/am/depend2.am +#usr/share/automake-1.12/am/distdir.am +#usr/share/automake-1.12/am/footer.am +#usr/share/automake-1.12/am/header-vars.am +#usr/share/automake-1.12/am/header.am +#usr/share/automake-1.12/am/inst-vars.am +#usr/share/automake-1.12/am/install.am +#usr/share/automake-1.12/am/java.am +#usr/share/automake-1.12/am/lang-compile.am +#usr/share/automake-1.12/am/lex.am +#usr/share/automake-1.12/am/library.am +#usr/share/automake-1.12/am/libs.am +#usr/share/automake-1.12/am/libtool.am +#usr/share/automake-1.12/am/lisp.am +#usr/share/automake-1.12/am/ltlib.am +#usr/share/automake-1.12/am/ltlibrary.am +#usr/share/automake-1.12/am/mans-vars.am +#usr/share/automake-1.12/am/mans.am +#usr/share/automake-1.12/am/program.am +#usr/share/automake-1.12/am/progs.am +#usr/share/automake-1.12/am/python.am +#usr/share/automake-1.12/am/remake-hdr.am +#usr/share/automake-1.12/am/scripts.am +#usr/share/automake-1.12/am/subdirs.am +#usr/share/automake-1.12/am/tags.am +#usr/share/automake-1.12/am/texi-vers.am +#usr/share/automake-1.12/am/texibuild.am +#usr/share/automake-1.12/am/texinfos.am +#usr/share/automake-1.12/am/vala.am +#usr/share/automake-1.12/am/yacc.am +#usr/share/automake-1.12/ar-lib +#usr/share/automake-1.12/compile +#usr/share/automake-1.12/config.guess +#usr/share/automake-1.12/config.sub +#usr/share/automake-1.12/depcomp +#usr/share/automake-1.12/elisp-comp +#usr/share/automake-1.12/install-sh +#usr/share/automake-1.12/mdate-sh +#usr/share/automake-1.12/missing +#usr/share/automake-1.12/mkinstalldirs +#usr/share/automake-1.12/py-compile +#usr/share/automake-1.12/tap-driver.pl +#usr/share/automake-1.12/tap-driver.sh +#usr/share/automake-1.12/test-driver +#usr/share/automake-1.12/texinfo.tex +#usr/share/automake-1.12/ylwrap +#usr/share/doc/automake +#usr/share/doc/automake/amhello-1.0.tar.gz +#usr/share/info/automake-history.info #usr/share/info/automake.info #usr/share/info/automake.info-1 #usr/share/info/automake.info-2 +#usr/share/info/automake.info-3 +#usr/share/man/man1/aclocal-1.12.1 +#usr/share/man/man1/aclocal.1 +#usr/share/man/man1/automake-1.12.1 +#usr/share/man/man1/automake.1 diff --git a/config/rootfiles/common/bash b/config/rootfiles/common/bash index 43eecc9435..ecaeb1bdd2 100644 --- a/config/rootfiles/common/bash +++ b/config/rootfiles/common/bash @@ -1,6 +1,6 @@ bin/sh bin/bash #bin/bashbug -#usr/info/bash.info -#usr/man/man1/bash.1 -#usr/man/man1/bashbug.1 +#usr/share/info/bash.info +#usr/share/man/man1/bash.1 +#usr/share/man/man1/bashbug.1 diff --git a/config/rootfiles/common/bind b/config/rootfiles/common/bind index db6bdabf48..df668534b9 100644 --- a/config/rootfiles/common/bind +++ b/config/rootfiles/common/bind @@ -1,4 +1,4 @@ -#usr/bin/dig +usr/bin/dig usr/bin/host usr/bin/nslookup usr/bin/nsupdate diff --git a/config/rootfiles/common/bridge-utils b/config/rootfiles/common/bridge-utils index 6c5db4f49f..3bfa898a05 100644 --- a/config/rootfiles/common/bridge-utils +++ b/config/rootfiles/common/bridge-utils @@ -1,4 +1,2 @@ -#usr/include/libbridge.h -#usr/lib/libbridge.a -#usr/man/man8/brctl.8 usr/sbin/brctl +#usr/share/man/man8/brctl.8 diff --git a/config/rootfiles/common/cairo b/config/rootfiles/common/cairo new file mode 100644 index 0000000000..ca09099eb3 --- /dev/null +++ b/config/rootfiles/common/cairo @@ -0,0 +1,99 @@ +#usr/bin/cairo-trace +#usr/include/cairo +#usr/include/cairo/cairo-deprecated.h +#usr/include/cairo/cairo-features.h +#usr/include/cairo/cairo-ft.h +#usr/include/cairo/cairo-gobject.h +#usr/include/cairo/cairo-pdf.h +#usr/include/cairo/cairo-ps.h +#usr/include/cairo/cairo-script-interpreter.h +#usr/include/cairo/cairo-svg.h +#usr/include/cairo/cairo-version.h +#usr/include/cairo/cairo.h +#usr/lib/cairo +#usr/lib/cairo/libcairo-trace.a +#usr/lib/cairo/libcairo-trace.la +usr/lib/cairo/libcairo-trace.so +usr/lib/cairo/libcairo-trace.so.0 +usr/lib/cairo/libcairo-trace.so.0.0.0 +#usr/lib/libcairo-gobject.a +#usr/lib/libcairo-gobject.la +usr/lib/libcairo-gobject.so +usr/lib/libcairo-gobject.so.2 +usr/lib/libcairo-gobject.so.2.11000.2 +#usr/lib/libcairo-script-interpreter.a +#usr/lib/libcairo-script-interpreter.la +usr/lib/libcairo-script-interpreter.so +usr/lib/libcairo-script-interpreter.so.2 +usr/lib/libcairo-script-interpreter.so.2.11000.2 +#usr/lib/libcairo.a +#usr/lib/libcairo.la +#usr/lib/libcairo.so +usr/lib/libcairo.so.2 +usr/lib/libcairo.so.2.11000.2 +#usr/lib/pkgconfig/cairo-fc.pc +#usr/lib/pkgconfig/cairo-ft.pc +#usr/lib/pkgconfig/cairo-gobject.pc +#usr/lib/pkgconfig/cairo-pdf.pc +#usr/lib/pkgconfig/cairo-png.pc +#usr/lib/pkgconfig/cairo-ps.pc +#usr/lib/pkgconfig/cairo-svg.pc +#usr/lib/pkgconfig/cairo.pc +#usr/share/gtk-doc/html/cairo +#usr/share/gtk-doc/html/cairo/bindings-errors.html +#usr/share/gtk-doc/html/cairo/bindings-fonts.html +#usr/share/gtk-doc/html/cairo/bindings-memory.html +#usr/share/gtk-doc/html/cairo/bindings-overloading.html +#usr/share/gtk-doc/html/cairo/bindings-path.html +#usr/share/gtk-doc/html/cairo/bindings-patterns.html +#usr/share/gtk-doc/html/cairo/bindings-return-values.html +#usr/share/gtk-doc/html/cairo/bindings-streams.html +#usr/share/gtk-doc/html/cairo/bindings-surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Error-handling.html +#usr/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-PNG-Support.html +#usr/share/gtk-doc/html/cairo/cairo-Paths.html +#usr/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Regions.html +#usr/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-Transformations.html +#usr/share/gtk-doc/html/cairo/cairo-Types.html +#usr/share/gtk-doc/html/cairo/cairo-User-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Version-Information.html +#usr/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html +#usr/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-device-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html +#usr/share/gtk-doc/html/cairo/cairo-cairo-t.html +#usr/share/gtk-doc/html/cairo/cairo-drawing.html +#usr/share/gtk-doc/html/cairo/cairo-fonts.html +#usr/share/gtk-doc/html/cairo/cairo-support.html +#usr/share/gtk-doc/html/cairo/cairo-surfaces.html +#usr/share/gtk-doc/html/cairo/cairo-text.html +#usr/share/gtk-doc/html/cairo/cairo.devhelp +#usr/share/gtk-doc/html/cairo/cairo.devhelp2 +#usr/share/gtk-doc/html/cairo/home.png +#usr/share/gtk-doc/html/cairo/index-1.10.html +#usr/share/gtk-doc/html/cairo/index-1.2.html +#usr/share/gtk-doc/html/cairo/index-1.4.html +#usr/share/gtk-doc/html/cairo/index-1.6.html +#usr/share/gtk-doc/html/cairo/index-1.8.html +#usr/share/gtk-doc/html/cairo/index-all.html +#usr/share/gtk-doc/html/cairo/index.html +#usr/share/gtk-doc/html/cairo/index.sgml +#usr/share/gtk-doc/html/cairo/language-bindings.html +#usr/share/gtk-doc/html/cairo/left.png +#usr/share/gtk-doc/html/cairo/right.png +#usr/share/gtk-doc/html/cairo/style.css +#usr/share/gtk-doc/html/cairo/up.png diff --git a/config/rootfiles/common/cmake b/config/rootfiles/common/cmake index 4a1d702c09..81a953958a 100644 --- a/config/rootfiles/common/cmake +++ b/config/rootfiles/common/cmake @@ -1,424 +1,421 @@ -#usr/local/bin/ccmake -#usr/local/bin/cmake -#usr/local/bin/cpack -#usr/local/bin/ctest -#usr/local/doc -#usr/local/doc/cmake-2.6 -#usr/local/doc/cmake-2.6/ccmake.docbook -#usr/local/doc/cmake-2.6/ccmake.html -#usr/local/doc/cmake-2.6/ccmake.txt -#usr/local/doc/cmake-2.6/cmake-commands.html -#usr/local/doc/cmake-2.6/cmake-commands.txt -#usr/local/doc/cmake-2.6/cmake-compatcommands.html -#usr/local/doc/cmake-2.6/cmake-compatcommands.txt -#usr/local/doc/cmake-2.6/cmake-modules.html -#usr/local/doc/cmake-2.6/cmake-modules.txt -#usr/local/doc/cmake-2.6/cmake-policies.html -#usr/local/doc/cmake-2.6/cmake-policies.txt -#usr/local/doc/cmake-2.6/cmake-properties.html -#usr/local/doc/cmake-2.6/cmake-properties.txt -#usr/local/doc/cmake-2.6/cmake-variables.html -#usr/local/doc/cmake-2.6/cmake-variables.txt -#usr/local/doc/cmake-2.6/cmake.docbook -#usr/local/doc/cmake-2.6/cmake.html -#usr/local/doc/cmake-2.6/cmake.txt -#usr/local/doc/cmake-2.6/cpack.docbook -#usr/local/doc/cmake-2.6/cpack.html -#usr/local/doc/cmake-2.6/cpack.txt -#usr/local/doc/cmake-2.6/ctest.docbook -#usr/local/doc/cmake-2.6/ctest.html -#usr/local/doc/cmake-2.6/ctest.txt -#usr/local/man -#usr/local/man/man1 -#usr/local/man/man1/ccmake.1 -#usr/local/man/man1/cmake.1 -#usr/local/man/man1/cmakecommands.1 -#usr/local/man/man1/cmakecompat.1 -#usr/local/man/man1/cmakemodules.1 -#usr/local/man/man1/cmakepolicies.1 -#usr/local/man/man1/cmakeprops.1 -#usr/local/man/man1/cmakevars.1 -#usr/local/man/man1/cpack.1 -#usr/local/man/man1/ctest.1 -#usr/local/share/cmake-2.6 -#usr/local/share/cmake-2.6/Modules -#usr/local/share/cmake-2.6/Modules/AddFileDependencies.cmake -#usr/local/share/cmake-2.6/Modules/BundleUtilities.cmake -#usr/local/share/cmake-2.6/Modules/CMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeASMInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeCCompilerABI.c -#usr/local/share/cmake-2.6/Modules/CMakeCCompilerId.c.in -#usr/local/share/cmake-2.6/Modules/CMakeCInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp -#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in -#usr/local/share/cmake-2.6/Modules/CMakeCXXInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake -#usr/local/share/cmake-2.6/Modules/CMakeCompilerABI.h -#usr/local/share/cmake-2.6/Modules/CMakeConfigurableFile.in -#usr/local/share/cmake-2.6/Modules/CMakeDependentOption.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake -#usr/local/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindWMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFindXCode.cmake -#usr/local/share/cmake-2.6/Modules/CMakeForceCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in -#usr/local/share/cmake-2.6/Modules/CMakeFortranInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeGenericSystem.cmake -#usr/local/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake -#usr/local/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeJavaInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakePlatformId.h.in -#usr/local/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeRCInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeSystem.cmake.in -#usr/local/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx -#usr/local/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestGNU.c -#usr/local/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c -#usr/local/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake -#usr/local/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake -#usr/local/share/cmake-2.6/Modules/CPack.DS_Store.in -#usr/local/share/cmake-2.6/Modules/CPack.Description.plist.in -#usr/local/share/cmake-2.6/Modules/CPack.Info.plist.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in -#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in -#usr/local/share/cmake-2.6/Modules/CPack.RuntimeScript.in -#usr/local/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in -#usr/local/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in -#usr/local/share/cmake-2.6/Modules/CPack.background.png.in -#usr/local/share/cmake-2.6/Modules/CPack.cmake -#usr/local/share/cmake-2.6/Modules/CPack.distribution.dist.in -#usr/local/share/cmake-2.6/Modules/CPackDeb.cmake -#usr/local/share/cmake-2.6/Modules/CPackRPM.cmake -#usr/local/share/cmake-2.6/Modules/CPackZIP.cmake -#usr/local/share/cmake-2.6/Modules/CTest.cmake -#usr/local/share/cmake-2.6/Modules/CTestTargets.cmake -#usr/local/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake -#usr/local/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake -#usr/local/share/cmake-2.6/Modules/CheckCSourceRuns.cmake -#usr/local/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake -#usr/local/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake -#usr/local/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake -#usr/local/share/cmake-2.6/Modules/CheckForPthreads.c -#usr/local/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.c -#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.c.in -#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cmake -#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in -#usr/local/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake -#usr/local/share/cmake-2.6/Modules/CheckIncludeFiles.cmake -#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.lists.in -#usr/local/share/cmake-2.6/Modules/CheckSizeOf.cmake -#usr/local/share/cmake-2.6/Modules/CheckStructHasMember.cmake -#usr/local/share/cmake-2.6/Modules/CheckSymbolExists.cmake -#usr/local/share/cmake-2.6/Modules/CheckTypeSize.cmake -#usr/local/share/cmake-2.6/Modules/CheckTypeSizeC.c.in -#usr/local/share/cmake-2.6/Modules/CheckVariableExists.c -#usr/local/share/cmake-2.6/Modules/CheckVariableExists.cmake -#usr/local/share/cmake-2.6/Modules/Dart.cmake -#usr/local/share/cmake-2.6/Modules/DartConfiguration.tcl.in -#usr/local/share/cmake-2.6/Modules/Documentation.cmake -#usr/local/share/cmake-2.6/Modules/DummyCXXFile.cxx -#usr/local/share/cmake-2.6/Modules/FLTKCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/FeatureSummary.cmake -#usr/local/share/cmake-2.6/Modules/FindASPELL.cmake -#usr/local/share/cmake-2.6/Modules/FindAVIFile.cmake -#usr/local/share/cmake-2.6/Modules/FindBLAS.cmake -#usr/local/share/cmake-2.6/Modules/FindBZip2.cmake -#usr/local/share/cmake-2.6/Modules/FindBoost.cmake -#usr/local/share/cmake-2.6/Modules/FindCABLE.cmake -#usr/local/share/cmake-2.6/Modules/FindCURL.cmake -#usr/local/share/cmake-2.6/Modules/FindCVS.cmake -#usr/local/share/cmake-2.6/Modules/FindCoin3D.cmake -#usr/local/share/cmake-2.6/Modules/FindCups.cmake -#usr/local/share/cmake-2.6/Modules/FindCurses.cmake -#usr/local/share/cmake-2.6/Modules/FindCxxTest.cmake -#usr/local/share/cmake-2.6/Modules/FindCygwin.cmake -#usr/local/share/cmake-2.6/Modules/FindDCMTK.cmake -#usr/local/share/cmake-2.6/Modules/FindDart.cmake -#usr/local/share/cmake-2.6/Modules/FindDevIL.cmake -#usr/local/share/cmake-2.6/Modules/FindDoxygen.cmake -#usr/local/share/cmake-2.6/Modules/FindEXPAT.cmake -#usr/local/share/cmake-2.6/Modules/FindFLTK.cmake -#usr/local/share/cmake-2.6/Modules/FindFLTK2.cmake -#usr/local/share/cmake-2.6/Modules/FindFreetype.cmake -#usr/local/share/cmake-2.6/Modules/FindGCCXML.cmake -#usr/local/share/cmake-2.6/Modules/FindGDAL.cmake -#usr/local/share/cmake-2.6/Modules/FindGIF.cmake -#usr/local/share/cmake-2.6/Modules/FindGLU.cmake -#usr/local/share/cmake-2.6/Modules/FindGLUT.cmake -#usr/local/share/cmake-2.6/Modules/FindGTK.cmake -#usr/local/share/cmake-2.6/Modules/FindGettext.cmake -#usr/local/share/cmake-2.6/Modules/FindGnuplot.cmake -#usr/local/share/cmake-2.6/Modules/FindHSPELL.cmake -#usr/local/share/cmake-2.6/Modules/FindHTMLHelp.cmake -#usr/local/share/cmake-2.6/Modules/FindITK.cmake -#usr/local/share/cmake-2.6/Modules/FindImageMagick.cmake -#usr/local/share/cmake-2.6/Modules/FindJNI.cmake -#usr/local/share/cmake-2.6/Modules/FindJPEG.cmake -#usr/local/share/cmake-2.6/Modules/FindJasper.cmake -#usr/local/share/cmake-2.6/Modules/FindJava.cmake -#usr/local/share/cmake-2.6/Modules/FindKDE3.cmake -#usr/local/share/cmake-2.6/Modules/FindKDE4.cmake -#usr/local/share/cmake-2.6/Modules/FindLAPACK.cmake -#usr/local/share/cmake-2.6/Modules/FindLATEX.cmake -#usr/local/share/cmake-2.6/Modules/FindLibXml2.cmake -#usr/local/share/cmake-2.6/Modules/FindLibXslt.cmake -#usr/local/share/cmake-2.6/Modules/FindLua50.cmake -#usr/local/share/cmake-2.6/Modules/FindLua51.cmake -#usr/local/share/cmake-2.6/Modules/FindMFC.cmake -#usr/local/share/cmake-2.6/Modules/FindMPEG.cmake -#usr/local/share/cmake-2.6/Modules/FindMPEG2.cmake -#usr/local/share/cmake-2.6/Modules/FindMPI.cmake -#usr/local/share/cmake-2.6/Modules/FindMatlab.cmake -#usr/local/share/cmake-2.6/Modules/FindMotif.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenAL.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenGL.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenMP.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenSSL.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake -#usr/local/share/cmake-2.6/Modules/FindOpenThreads.cmake -#usr/local/share/cmake-2.6/Modules/FindPHP4.cmake -#usr/local/share/cmake-2.6/Modules/FindPNG.cmake -#usr/local/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake -#usr/local/share/cmake-2.6/Modules/FindPackageMessage.cmake -#usr/local/share/cmake-2.6/Modules/FindPerl.cmake -#usr/local/share/cmake-2.6/Modules/FindPerlLibs.cmake -#usr/local/share/cmake-2.6/Modules/FindPhysFS.cmake -#usr/local/share/cmake-2.6/Modules/FindPike.cmake -#usr/local/share/cmake-2.6/Modules/FindPkgConfig.cmake -#usr/local/share/cmake-2.6/Modules/FindProducer.cmake -#usr/local/share/cmake-2.6/Modules/FindPythonInterp.cmake -#usr/local/share/cmake-2.6/Modules/FindPythonLibs.cmake -#usr/local/share/cmake-2.6/Modules/FindQt.cmake -#usr/local/share/cmake-2.6/Modules/FindQt3.cmake -#usr/local/share/cmake-2.6/Modules/FindQt4.cmake -#usr/local/share/cmake-2.6/Modules/FindQuickTime.cmake -#usr/local/share/cmake-2.6/Modules/FindRTI.cmake -#usr/local/share/cmake-2.6/Modules/FindRuby.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_image.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_mixer.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_net.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_sound.cmake -#usr/local/share/cmake-2.6/Modules/FindSDL_ttf.cmake -#usr/local/share/cmake-2.6/Modules/FindSWIG.cmake -#usr/local/share/cmake-2.6/Modules/FindSelfPackers.cmake -#usr/local/share/cmake-2.6/Modules/FindSquish.cmake -#usr/local/share/cmake-2.6/Modules/FindSubversion.cmake -#usr/local/share/cmake-2.6/Modules/FindTCL.cmake -#usr/local/share/cmake-2.6/Modules/FindTIFF.cmake -#usr/local/share/cmake-2.6/Modules/FindTclStub.cmake -#usr/local/share/cmake-2.6/Modules/FindTclsh.cmake -#usr/local/share/cmake-2.6/Modules/FindThreads.cmake -#usr/local/share/cmake-2.6/Modules/FindUnixCommands.cmake -#usr/local/share/cmake-2.6/Modules/FindVTK.cmake -#usr/local/share/cmake-2.6/Modules/FindWget.cmake -#usr/local/share/cmake-2.6/Modules/FindWish.cmake -#usr/local/share/cmake-2.6/Modules/FindX11.cmake -#usr/local/share/cmake-2.6/Modules/FindXMLRPC.cmake -#usr/local/share/cmake-2.6/Modules/FindZLIB.cmake -#usr/local/share/cmake-2.6/Modules/Findosg.cmake -#usr/local/share/cmake-2.6/Modules/FindosgAnimation.cmake -#usr/local/share/cmake-2.6/Modules/FindosgDB.cmake -#usr/local/share/cmake-2.6/Modules/FindosgFX.cmake -#usr/local/share/cmake-2.6/Modules/FindosgGA.cmake -#usr/local/share/cmake-2.6/Modules/FindosgIntrospection.cmake -#usr/local/share/cmake-2.6/Modules/FindosgManipulator.cmake -#usr/local/share/cmake-2.6/Modules/FindosgParticle.cmake -#usr/local/share/cmake-2.6/Modules/FindosgProducer.cmake -#usr/local/share/cmake-2.6/Modules/FindosgShadow.cmake -#usr/local/share/cmake-2.6/Modules/FindosgSim.cmake -#usr/local/share/cmake-2.6/Modules/FindosgTerrain.cmake -#usr/local/share/cmake-2.6/Modules/FindosgText.cmake -#usr/local/share/cmake-2.6/Modules/FindosgUtil.cmake -#usr/local/share/cmake-2.6/Modules/FindosgViewer.cmake -#usr/local/share/cmake-2.6/Modules/FindosgVolume.cmake -#usr/local/share/cmake-2.6/Modules/FindosgWidget.cmake -#usr/local/share/cmake-2.6/Modules/Findosg_functions.cmake -#usr/local/share/cmake-2.6/Modules/FindwxWidgets.cmake -#usr/local/share/cmake-2.6/Modules/FindwxWindows.cmake -#usr/local/share/cmake-2.6/Modules/FortranCInterface.cmake -#usr/local/share/cmake-2.6/Modules/FortranCInterface.h.in -#usr/local/share/cmake-2.6/Modules/GetPrerequisites.cmake -#usr/local/share/cmake-2.6/Modules/ITKCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake -#usr/local/share/cmake-2.6/Modules/KDE3Macros.cmake -#usr/local/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in -#usr/local/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in -#usr/local/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake -#usr/local/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in -#usr/local/share/cmake-2.6/Modules/NSIS.template.in -#usr/local/share/cmake-2.6/Modules/Platform -#usr/local/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/AIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/BSDOS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/BeOS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake -#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake -#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Catamount.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Darwin.cmake -#usr/local/share/cmake-2.6/Modules/Platform/DragonFly.cmake -#usr/local/share/cmake-2.6/Modules/Platform/FreeBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/GNU.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Generic.cmake -#usr/local/share/cmake-2.6/Modules/Platform/HP-UX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Haiku.cmake -#usr/local/share/cmake-2.6/Modules/Platform/IRIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/IRIX64.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-como.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Linux.cmake -#usr/local/share/cmake-2.6/Modules/Platform/MP-RAS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/NetBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/OSF1.cmake -#usr/local/share/cmake-2.6/Modules/Platform/OpenBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/QNX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/RISCos.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SCO_SV.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SINIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake -#usr/local/share/cmake-2.6/Modules/Platform/SunOS.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Tru64.cmake -#usr/local/share/cmake-2.6/Modules/Platform/ULTRIX.cmake -#usr/local/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake -#usr/local/share/cmake-2.6/Modules/Platform/UnixPaths.cmake -#usr/local/share/cmake-2.6/Modules/Platform/UnixWare.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in -#usr/local/share/cmake-2.6/Modules/Platform/Windows-df.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-g++.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-g77.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-icl.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Windows.cmake -#usr/local/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake -#usr/local/share/cmake-2.6/Modules/Platform/Xenix.cmake -#usr/local/share/cmake-2.6/Modules/Platform/cl.cmake -#usr/local/share/cmake-2.6/Modules/Platform/eCos.cmake -#usr/local/share/cmake-2.6/Modules/Platform/g77.cmake -#usr/local/share/cmake-2.6/Modules/Platform/gas.cmake -#usr/local/share/cmake-2.6/Modules/Platform/gcc.cmake -#usr/local/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake -#usr/local/share/cmake-2.6/Modules/Platform/syllable.cmake -#usr/local/share/cmake-2.6/Modules/Platform/xlf.cmake -#usr/local/share/cmake-2.6/Modules/SquishTestScript.cmake -#usr/local/share/cmake-2.6/Modules/SystemInformation.cmake -#usr/local/share/cmake-2.6/Modules/SystemInformation.in -#usr/local/share/cmake-2.6/Modules/TestBigEndian.cmake -#usr/local/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake -#usr/local/share/cmake-2.6/Modules/TestEndianess.c.in -#usr/local/share/cmake-2.6/Modules/TestForANSIForScope.cmake -#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake -#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx -#usr/local/share/cmake-2.6/Modules/TestForAnsiForScope.cxx -#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cmake -#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cxx -#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cmake -#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cxx -#usr/local/share/cmake-2.6/Modules/UseEcos.cmake -#usr/local/share/cmake-2.6/Modules/UsePkgConfig.cmake -#usr/local/share/cmake-2.6/Modules/UseQt4.cmake -#usr/local/share/cmake-2.6/Modules/UseSWIG.cmake -#usr/local/share/cmake-2.6/Modules/UseVTK40.cmake -#usr/local/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake -#usr/local/share/cmake-2.6/Modules/UseVTKConfig40.cmake -#usr/local/share/cmake-2.6/Modules/Use_wxWindows.cmake -#usr/local/share/cmake-2.6/Modules/UsewxWidgets.cmake -#usr/local/share/cmake-2.6/Modules/VTKCompatibility.cmake -#usr/local/share/cmake-2.6/Modules/ecos_clean.cmake -#usr/local/share/cmake-2.6/Modules/kde3init_dummy.cpp.in -#usr/local/share/cmake-2.6/Modules/kde3uic.cmake -#usr/local/share/cmake-2.6/Modules/readme.txt -#usr/local/share/cmake-2.6/Templates -#usr/local/share/cmake-2.6/Templates/CMakeLists.txt -#usr/local/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros -#usr/local/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros -#usr/local/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake -#usr/local/share/cmake-2.6/Templates/CPack.GenericDescription.txt -#usr/local/share/cmake-2.6/Templates/CPack.GenericLicense.txt -#usr/local/share/cmake-2.6/Templates/CPack.GenericWelcome.txt -#usr/local/share/cmake-2.6/Templates/CPackConfig.cmake.in -#usr/local/share/cmake-2.6/Templates/CTestScript.cmake.in -#usr/local/share/cmake-2.6/Templates/DLLFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/DLLHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/EXEFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/EXEHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/TestDriver.cxx.in -#usr/local/share/cmake-2.6/Templates/UtilityFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/UtilityHeader.dsptemplate -#usr/local/share/cmake-2.6/Templates/cygwin-package.sh.in -#usr/local/share/cmake-2.6/Templates/staticLibFooter.dsptemplate -#usr/local/share/cmake-2.6/Templates/staticLibHeader.dsptemplate -#usr/local/share/cmake-2.6/include -#usr/local/share/cmake-2.6/include/cmCPluginAPI.h +#usr/bin/ccmake +#usr/bin/cmake +#usr/bin/cpack +#usr/bin/ctest +#usr/doc/cmake-2.6 +#usr/doc/cmake-2.6/ccmake.docbook +#usr/doc/cmake-2.6/ccmake.html +#usr/doc/cmake-2.6/ccmake.txt +#usr/doc/cmake-2.6/cmake-commands.html +#usr/doc/cmake-2.6/cmake-commands.txt +#usr/doc/cmake-2.6/cmake-compatcommands.html +#usr/doc/cmake-2.6/cmake-compatcommands.txt +#usr/doc/cmake-2.6/cmake-modules.html +#usr/doc/cmake-2.6/cmake-modules.txt +#usr/doc/cmake-2.6/cmake-policies.html +#usr/doc/cmake-2.6/cmake-policies.txt +#usr/doc/cmake-2.6/cmake-properties.html +#usr/doc/cmake-2.6/cmake-properties.txt +#usr/doc/cmake-2.6/cmake-variables.html +#usr/doc/cmake-2.6/cmake-variables.txt +#usr/doc/cmake-2.6/cmake.docbook +#usr/doc/cmake-2.6/cmake.html +#usr/doc/cmake-2.6/cmake.txt +#usr/doc/cmake-2.6/cpack.docbook +#usr/doc/cmake-2.6/cpack.html +#usr/doc/cmake-2.6/cpack.txt +#usr/doc/cmake-2.6/ctest.docbook +#usr/doc/cmake-2.6/ctest.html +#usr/doc/cmake-2.6/ctest.txt +#usr/man/man1/ccmake.1 +#usr/man/man1/cmake.1 +#usr/man/man1/cmakecommands.1 +#usr/man/man1/cmakecompat.1 +#usr/man/man1/cmakemodules.1 +#usr/man/man1/cmakepolicies.1 +#usr/man/man1/cmakeprops.1 +#usr/man/man1/cmakevars.1 +#usr/man/man1/cpack.1 +#usr/man/man1/ctest.1 +#usr/share/cmake-2.6 +#usr/share/cmake-2.6/Modules +#usr/share/cmake-2.6/Modules/AddFileDependencies.cmake +#usr/share/cmake-2.6/Modules/BundleUtilities.cmake +#usr/share/cmake-2.6/Modules/CMake.cmake +#usr/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeASMInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake +#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake +#usr/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in +#usr/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeCCompilerABI.c +#usr/share/cmake-2.6/Modules/CMakeCCompilerId.c.in +#usr/share/cmake-2.6/Modules/CMakeCInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp +#usr/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in +#usr/share/cmake-2.6/Modules/CMakeCXXInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake +#usr/share/cmake-2.6/Modules/CMakeCompilerABI.h +#usr/share/cmake-2.6/Modules/CMakeConfigurableFile.in +#usr/share/cmake-2.6/Modules/CMakeDependentOption.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake +#usr/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake +#usr/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake +#usr/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake +#usr/share/cmake-2.6/Modules/CMakeFindWMake.cmake +#usr/share/cmake-2.6/Modules/CMakeFindXCode.cmake +#usr/share/cmake-2.6/Modules/CMakeForceCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in +#usr/share/cmake-2.6/Modules/CMakeFortranInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeGenericSystem.cmake +#usr/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake +#usr/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeJavaInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakePlatformId.h.in +#usr/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in +#usr/share/cmake-2.6/Modules/CMakeRCInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeSystem.cmake.in +#usr/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake +#usr/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx +#usr/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestGNU.c +#usr/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c +#usr/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake +#usr/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake +#usr/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake +#usr/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake +#usr/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake +#usr/share/cmake-2.6/Modules/CPack.DS_Store.in +#usr/share/cmake-2.6/Modules/CPack.Description.plist.in +#usr/share/cmake-2.6/Modules/CPack.Info.plist.in +#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in +#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in +#usr/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in +#usr/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in +#usr/share/cmake-2.6/Modules/CPack.RuntimeScript.in +#usr/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in +#usr/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in +#usr/share/cmake-2.6/Modules/CPack.background.png.in +#usr/share/cmake-2.6/Modules/CPack.cmake +#usr/share/cmake-2.6/Modules/CPack.distribution.dist.in +#usr/share/cmake-2.6/Modules/CPackDeb.cmake +#usr/share/cmake-2.6/Modules/CPackRPM.cmake +#usr/share/cmake-2.6/Modules/CPackZIP.cmake +#usr/share/cmake-2.6/Modules/CTest.cmake +#usr/share/cmake-2.6/Modules/CTestTargets.cmake +#usr/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake +#usr/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake +#usr/share/cmake-2.6/Modules/CheckCSourceRuns.cmake +#usr/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake +#usr/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake +#usr/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake +#usr/share/cmake-2.6/Modules/CheckForPthreads.c +#usr/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake +#usr/share/cmake-2.6/Modules/CheckFunctionExists.c +#usr/share/cmake-2.6/Modules/CheckFunctionExists.cmake +#usr/share/cmake-2.6/Modules/CheckIncludeFile.c.in +#usr/share/cmake-2.6/Modules/CheckIncludeFile.cmake +#usr/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in +#usr/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake +#usr/share/cmake-2.6/Modules/CheckIncludeFiles.cmake +#usr/share/cmake-2.6/Modules/CheckLibraryExists.cmake +#usr/share/cmake-2.6/Modules/CheckLibraryExists.lists.in +#usr/share/cmake-2.6/Modules/CheckSizeOf.cmake +#usr/share/cmake-2.6/Modules/CheckStructHasMember.cmake +#usr/share/cmake-2.6/Modules/CheckSymbolExists.cmake +#usr/share/cmake-2.6/Modules/CheckTypeSize.cmake +#usr/share/cmake-2.6/Modules/CheckTypeSizeC.c.in +#usr/share/cmake-2.6/Modules/CheckVariableExists.c +#usr/share/cmake-2.6/Modules/CheckVariableExists.cmake +#usr/share/cmake-2.6/Modules/Dart.cmake +#usr/share/cmake-2.6/Modules/DartConfiguration.tcl.in +#usr/share/cmake-2.6/Modules/Documentation.cmake +#usr/share/cmake-2.6/Modules/DummyCXXFile.cxx +#usr/share/cmake-2.6/Modules/FLTKCompatibility.cmake +#usr/share/cmake-2.6/Modules/FeatureSummary.cmake +#usr/share/cmake-2.6/Modules/FindASPELL.cmake +#usr/share/cmake-2.6/Modules/FindAVIFile.cmake +#usr/share/cmake-2.6/Modules/FindBLAS.cmake +#usr/share/cmake-2.6/Modules/FindBZip2.cmake +#usr/share/cmake-2.6/Modules/FindBoost.cmake +#usr/share/cmake-2.6/Modules/FindCABLE.cmake +#usr/share/cmake-2.6/Modules/FindCURL.cmake +#usr/share/cmake-2.6/Modules/FindCVS.cmake +#usr/share/cmake-2.6/Modules/FindCoin3D.cmake +#usr/share/cmake-2.6/Modules/FindCups.cmake +#usr/share/cmake-2.6/Modules/FindCurses.cmake +#usr/share/cmake-2.6/Modules/FindCxxTest.cmake +#usr/share/cmake-2.6/Modules/FindCygwin.cmake +#usr/share/cmake-2.6/Modules/FindDCMTK.cmake +#usr/share/cmake-2.6/Modules/FindDart.cmake +#usr/share/cmake-2.6/Modules/FindDevIL.cmake +#usr/share/cmake-2.6/Modules/FindDoxygen.cmake +#usr/share/cmake-2.6/Modules/FindEXPAT.cmake +#usr/share/cmake-2.6/Modules/FindFLTK.cmake +#usr/share/cmake-2.6/Modules/FindFLTK2.cmake +#usr/share/cmake-2.6/Modules/FindFreetype.cmake +#usr/share/cmake-2.6/Modules/FindGCCXML.cmake +#usr/share/cmake-2.6/Modules/FindGDAL.cmake +#usr/share/cmake-2.6/Modules/FindGIF.cmake +#usr/share/cmake-2.6/Modules/FindGLU.cmake +#usr/share/cmake-2.6/Modules/FindGLUT.cmake +#usr/share/cmake-2.6/Modules/FindGTK.cmake +#usr/share/cmake-2.6/Modules/FindGettext.cmake +#usr/share/cmake-2.6/Modules/FindGnuplot.cmake +#usr/share/cmake-2.6/Modules/FindHSPELL.cmake +#usr/share/cmake-2.6/Modules/FindHTMLHelp.cmake +#usr/share/cmake-2.6/Modules/FindITK.cmake +#usr/share/cmake-2.6/Modules/FindImageMagick.cmake +#usr/share/cmake-2.6/Modules/FindJNI.cmake +#usr/share/cmake-2.6/Modules/FindJPEG.cmake +#usr/share/cmake-2.6/Modules/FindJasper.cmake +#usr/share/cmake-2.6/Modules/FindJava.cmake +#usr/share/cmake-2.6/Modules/FindKDE3.cmake +#usr/share/cmake-2.6/Modules/FindKDE4.cmake +#usr/share/cmake-2.6/Modules/FindLAPACK.cmake +#usr/share/cmake-2.6/Modules/FindLATEX.cmake +#usr/share/cmake-2.6/Modules/FindLibXml2.cmake +#usr/share/cmake-2.6/Modules/FindLibXslt.cmake +#usr/share/cmake-2.6/Modules/FindLua50.cmake +#usr/share/cmake-2.6/Modules/FindLua51.cmake +#usr/share/cmake-2.6/Modules/FindMFC.cmake +#usr/share/cmake-2.6/Modules/FindMPEG.cmake +#usr/share/cmake-2.6/Modules/FindMPEG2.cmake +#usr/share/cmake-2.6/Modules/FindMPI.cmake +#usr/share/cmake-2.6/Modules/FindMatlab.cmake +#usr/share/cmake-2.6/Modules/FindMotif.cmake +#usr/share/cmake-2.6/Modules/FindOpenAL.cmake +#usr/share/cmake-2.6/Modules/FindOpenGL.cmake +#usr/share/cmake-2.6/Modules/FindOpenMP.cmake +#usr/share/cmake-2.6/Modules/FindOpenSSL.cmake +#usr/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake +#usr/share/cmake-2.6/Modules/FindOpenThreads.cmake +#usr/share/cmake-2.6/Modules/FindPHP4.cmake +#usr/share/cmake-2.6/Modules/FindPNG.cmake +#usr/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake +#usr/share/cmake-2.6/Modules/FindPackageMessage.cmake +#usr/share/cmake-2.6/Modules/FindPerl.cmake +#usr/share/cmake-2.6/Modules/FindPerlLibs.cmake +#usr/share/cmake-2.6/Modules/FindPhysFS.cmake +#usr/share/cmake-2.6/Modules/FindPike.cmake +#usr/share/cmake-2.6/Modules/FindPkgConfig.cmake +#usr/share/cmake-2.6/Modules/FindProducer.cmake +#usr/share/cmake-2.6/Modules/FindPythonInterp.cmake +#usr/share/cmake-2.6/Modules/FindPythonLibs.cmake +#usr/share/cmake-2.6/Modules/FindQt.cmake +#usr/share/cmake-2.6/Modules/FindQt3.cmake +#usr/share/cmake-2.6/Modules/FindQt4.cmake +#usr/share/cmake-2.6/Modules/FindQuickTime.cmake +#usr/share/cmake-2.6/Modules/FindRTI.cmake +#usr/share/cmake-2.6/Modules/FindRuby.cmake +#usr/share/cmake-2.6/Modules/FindSDL.cmake +#usr/share/cmake-2.6/Modules/FindSDL_image.cmake +#usr/share/cmake-2.6/Modules/FindSDL_mixer.cmake +#usr/share/cmake-2.6/Modules/FindSDL_net.cmake +#usr/share/cmake-2.6/Modules/FindSDL_sound.cmake +#usr/share/cmake-2.6/Modules/FindSDL_ttf.cmake +#usr/share/cmake-2.6/Modules/FindSWIG.cmake +#usr/share/cmake-2.6/Modules/FindSelfPackers.cmake +#usr/share/cmake-2.6/Modules/FindSquish.cmake +#usr/share/cmake-2.6/Modules/FindSubversion.cmake +#usr/share/cmake-2.6/Modules/FindTCL.cmake +#usr/share/cmake-2.6/Modules/FindTIFF.cmake +#usr/share/cmake-2.6/Modules/FindTclStub.cmake +#usr/share/cmake-2.6/Modules/FindTclsh.cmake +#usr/share/cmake-2.6/Modules/FindThreads.cmake +#usr/share/cmake-2.6/Modules/FindUnixCommands.cmake +#usr/share/cmake-2.6/Modules/FindVTK.cmake +#usr/share/cmake-2.6/Modules/FindWget.cmake +#usr/share/cmake-2.6/Modules/FindWish.cmake +#usr/share/cmake-2.6/Modules/FindX11.cmake +#usr/share/cmake-2.6/Modules/FindXMLRPC.cmake +#usr/share/cmake-2.6/Modules/FindZLIB.cmake +#usr/share/cmake-2.6/Modules/Findosg.cmake +#usr/share/cmake-2.6/Modules/FindosgAnimation.cmake +#usr/share/cmake-2.6/Modules/FindosgDB.cmake +#usr/share/cmake-2.6/Modules/FindosgFX.cmake +#usr/share/cmake-2.6/Modules/FindosgGA.cmake +#usr/share/cmake-2.6/Modules/FindosgIntrospection.cmake +#usr/share/cmake-2.6/Modules/FindosgManipulator.cmake +#usr/share/cmake-2.6/Modules/FindosgParticle.cmake +#usr/share/cmake-2.6/Modules/FindosgProducer.cmake +#usr/share/cmake-2.6/Modules/FindosgShadow.cmake +#usr/share/cmake-2.6/Modules/FindosgSim.cmake +#usr/share/cmake-2.6/Modules/FindosgTerrain.cmake +#usr/share/cmake-2.6/Modules/FindosgText.cmake +#usr/share/cmake-2.6/Modules/FindosgUtil.cmake +#usr/share/cmake-2.6/Modules/FindosgViewer.cmake +#usr/share/cmake-2.6/Modules/FindosgVolume.cmake +#usr/share/cmake-2.6/Modules/FindosgWidget.cmake +#usr/share/cmake-2.6/Modules/Findosg_functions.cmake +#usr/share/cmake-2.6/Modules/FindwxWidgets.cmake +#usr/share/cmake-2.6/Modules/FindwxWindows.cmake +#usr/share/cmake-2.6/Modules/FortranCInterface.cmake +#usr/share/cmake-2.6/Modules/FortranCInterface.h.in +#usr/share/cmake-2.6/Modules/GetPrerequisites.cmake +#usr/share/cmake-2.6/Modules/ITKCompatibility.cmake +#usr/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake +#usr/share/cmake-2.6/Modules/KDE3Macros.cmake +#usr/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in +#usr/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in +#usr/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake +#usr/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in +#usr/share/cmake-2.6/Modules/NSIS.template.in +#usr/share/cmake-2.6/Modules/Platform +#usr/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/AIX.cmake +#usr/share/cmake-2.6/Modules/Platform/BSDOS.cmake +#usr/share/cmake-2.6/Modules/Platform/BeOS.cmake +#usr/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake +#usr/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake +#usr/share/cmake-2.6/Modules/Platform/CYGWIN.cmake +#usr/share/cmake-2.6/Modules/Platform/Catamount.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake +#usr/share/cmake-2.6/Modules/Platform/Darwin.cmake +#usr/share/cmake-2.6/Modules/Platform/DragonFly.cmake +#usr/share/cmake-2.6/Modules/Platform/FreeBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/GNU.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Generic.cmake +#usr/share/cmake-2.6/Modules/Platform/HP-UX.cmake +#usr/share/cmake-2.6/Modules/Platform/Haiku.cmake +#usr/share/cmake-2.6/Modules/Platform/IRIX.cmake +#usr/share/cmake-2.6/Modules/Platform/IRIX64.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-como.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake +#usr/share/cmake-2.6/Modules/Platform/Linux.cmake +#usr/share/cmake-2.6/Modules/Platform/MP-RAS.cmake +#usr/share/cmake-2.6/Modules/Platform/NetBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/OSF1.cmake +#usr/share/cmake-2.6/Modules/Platform/OpenBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/QNX.cmake +#usr/share/cmake-2.6/Modules/Platform/RISCos.cmake +#usr/share/cmake-2.6/Modules/Platform/SCO_SV.cmake +#usr/share/cmake-2.6/Modules/Platform/SINIX.cmake +#usr/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake +#usr/share/cmake-2.6/Modules/Platform/SunOS.cmake +#usr/share/cmake-2.6/Modules/Platform/Tru64.cmake +#usr/share/cmake-2.6/Modules/Platform/ULTRIX.cmake +#usr/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake +#usr/share/cmake-2.6/Modules/Platform/UnixPaths.cmake +#usr/share/cmake-2.6/Modules/Platform/UnixWare.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in +#usr/share/cmake-2.6/Modules/Platform/Windows-df.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-g++.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-g77.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-icl.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake +#usr/share/cmake-2.6/Modules/Platform/Windows.cmake +#usr/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake +#usr/share/cmake-2.6/Modules/Platform/Xenix.cmake +#usr/share/cmake-2.6/Modules/Platform/cl.cmake +#usr/share/cmake-2.6/Modules/Platform/eCos.cmake +#usr/share/cmake-2.6/Modules/Platform/g77.cmake +#usr/share/cmake-2.6/Modules/Platform/gas.cmake +#usr/share/cmake-2.6/Modules/Platform/gcc.cmake +#usr/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake +#usr/share/cmake-2.6/Modules/Platform/syllable.cmake +#usr/share/cmake-2.6/Modules/Platform/xlf.cmake +#usr/share/cmake-2.6/Modules/SquishTestScript.cmake +#usr/share/cmake-2.6/Modules/SystemInformation.cmake +#usr/share/cmake-2.6/Modules/SystemInformation.in +#usr/share/cmake-2.6/Modules/TestBigEndian.cmake +#usr/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake +#usr/share/cmake-2.6/Modules/TestEndianess.c.in +#usr/share/cmake-2.6/Modules/TestForANSIForScope.cmake +#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake +#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx +#usr/share/cmake-2.6/Modules/TestForAnsiForScope.cxx +#usr/share/cmake-2.6/Modules/TestForSSTREAM.cmake +#usr/share/cmake-2.6/Modules/TestForSSTREAM.cxx +#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cmake +#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cxx +#usr/share/cmake-2.6/Modules/UseEcos.cmake +#usr/share/cmake-2.6/Modules/UsePkgConfig.cmake +#usr/share/cmake-2.6/Modules/UseQt4.cmake +#usr/share/cmake-2.6/Modules/UseSWIG.cmake +#usr/share/cmake-2.6/Modules/UseVTK40.cmake +#usr/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake +#usr/share/cmake-2.6/Modules/UseVTKConfig40.cmake +#usr/share/cmake-2.6/Modules/Use_wxWindows.cmake +#usr/share/cmake-2.6/Modules/UsewxWidgets.cmake +#usr/share/cmake-2.6/Modules/VTKCompatibility.cmake +#usr/share/cmake-2.6/Modules/ecos_clean.cmake +#usr/share/cmake-2.6/Modules/kde3init_dummy.cpp.in +#usr/share/cmake-2.6/Modules/kde3uic.cmake +#usr/share/cmake-2.6/Modules/readme.txt +#usr/share/cmake-2.6/Templates +#usr/share/cmake-2.6/Templates/CMakeLists.txt +#usr/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros +#usr/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros +#usr/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake +#usr/share/cmake-2.6/Templates/CPack.GenericDescription.txt +#usr/share/cmake-2.6/Templates/CPack.GenericLicense.txt +#usr/share/cmake-2.6/Templates/CPack.GenericWelcome.txt +#usr/share/cmake-2.6/Templates/CPackConfig.cmake.in +#usr/share/cmake-2.6/Templates/CTestScript.cmake.in +#usr/share/cmake-2.6/Templates/DLLFooter.dsptemplate +#usr/share/cmake-2.6/Templates/DLLHeader.dsptemplate +#usr/share/cmake-2.6/Templates/EXEFooter.dsptemplate +#usr/share/cmake-2.6/Templates/EXEHeader.dsptemplate +#usr/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate +#usr/share/cmake-2.6/Templates/TestDriver.cxx.in +#usr/share/cmake-2.6/Templates/UtilityFooter.dsptemplate +#usr/share/cmake-2.6/Templates/UtilityHeader.dsptemplate +#usr/share/cmake-2.6/Templates/cygwin-package.sh.in +#usr/share/cmake-2.6/Templates/staticLibFooter.dsptemplate +#usr/share/cmake-2.6/Templates/staticLibHeader.dsptemplate +#usr/share/cmake-2.6/include +#usr/share/cmake-2.6/include/cmCPluginAPI.h diff --git a/config/rootfiles/common/collectd b/config/rootfiles/common/collectd index 2e4448bde4..2b9fa285c7 100644 --- a/config/rootfiles/common/collectd +++ b/config/rootfiles/common/collectd @@ -2,6 +2,7 @@ etc/collectd.conf etc/collectd.custom etc/collectd.precache etc/collectd.thermal +etc/rc.d/init.d/collectd etc/rc.d/rc0.d/K50collectd etc/rc.d/rc3.d/S29collectd etc/rc.d/rc6.d/K50collectd @@ -11,134 +12,202 @@ etc/rc.d/rc6.d/K50collectd #usr/include/collectd/client.h #usr/include/collectd/lcc_features.h #usr/lib/collectd +#usr/lib/collectd/apache.a #usr/lib/collectd/apache.la usr/lib/collectd/apache.so +#usr/lib/collectd/apcups.a #usr/lib/collectd/apcups.la usr/lib/collectd/apcups.so +#usr/lib/collectd/ascent.a #usr/lib/collectd/ascent.la usr/lib/collectd/ascent.so +#usr/lib/collectd/battery.a #usr/lib/collectd/battery.la usr/lib/collectd/battery.so +#usr/lib/collectd/bind.a #usr/lib/collectd/bind.la usr/lib/collectd/bind.so +#usr/lib/collectd/conntrack.a #usr/lib/collectd/conntrack.la usr/lib/collectd/conntrack.so +#usr/lib/collectd/contextswitch.a #usr/lib/collectd/contextswitch.la usr/lib/collectd/contextswitch.so +#usr/lib/collectd/cpu.a #usr/lib/collectd/cpu.la usr/lib/collectd/cpu.so +#usr/lib/collectd/cpufreq.a #usr/lib/collectd/cpufreq.la usr/lib/collectd/cpufreq.so +#usr/lib/collectd/curl.a #usr/lib/collectd/curl.la usr/lib/collectd/curl.so +#usr/lib/collectd/curl_xml.a #usr/lib/collectd/curl_xml.la usr/lib/collectd/curl_xml.so +#usr/lib/collectd/df.a #usr/lib/collectd/df.la usr/lib/collectd/df.so +#usr/lib/collectd/disk.a #usr/lib/collectd/disk.la usr/lib/collectd/disk.so +#usr/lib/collectd/dns.a #usr/lib/collectd/dns.la usr/lib/collectd/dns.so +#usr/lib/collectd/email.a #usr/lib/collectd/email.la usr/lib/collectd/email.so +#usr/lib/collectd/entropy.a #usr/lib/collectd/entropy.la usr/lib/collectd/entropy.so +#usr/lib/collectd/exec.a #usr/lib/collectd/exec.la usr/lib/collectd/exec.so +#usr/lib/collectd/filecount.a #usr/lib/collectd/filecount.la usr/lib/collectd/filecount.so +#usr/lib/collectd/fscache.a #usr/lib/collectd/fscache.la usr/lib/collectd/fscache.so +#usr/lib/collectd/hddtemp.a #usr/lib/collectd/hddtemp.la usr/lib/collectd/hddtemp.so +#usr/lib/collectd/interface.a #usr/lib/collectd/interface.la usr/lib/collectd/interface.so +#usr/lib/collectd/iptables.a #usr/lib/collectd/iptables.la usr/lib/collectd/iptables.so +#usr/lib/collectd/irq.a #usr/lib/collectd/irq.la usr/lib/collectd/irq.so +#usr/lib/collectd/load.a #usr/lib/collectd/load.la usr/lib/collectd/load.so +#usr/lib/collectd/logfile.a #usr/lib/collectd/logfile.la usr/lib/collectd/logfile.so +#usr/lib/collectd/madwifi.a #usr/lib/collectd/madwifi.la usr/lib/collectd/madwifi.so +#usr/lib/collectd/match_empty_counter.a #usr/lib/collectd/match_empty_counter.la usr/lib/collectd/match_empty_counter.so +#usr/lib/collectd/match_hashed.a #usr/lib/collectd/match_hashed.la usr/lib/collectd/match_hashed.so +#usr/lib/collectd/match_regex.a #usr/lib/collectd/match_regex.la usr/lib/collectd/match_regex.so +#usr/lib/collectd/match_timediff.a #usr/lib/collectd/match_timediff.la usr/lib/collectd/match_timediff.so +#usr/lib/collectd/match_value.a #usr/lib/collectd/match_value.la usr/lib/collectd/match_value.so +#usr/lib/collectd/memory.a #usr/lib/collectd/memory.la usr/lib/collectd/memory.so +#usr/lib/collectd/multimeter.a #usr/lib/collectd/multimeter.la usr/lib/collectd/multimeter.so +#usr/lib/collectd/network.a #usr/lib/collectd/network.la usr/lib/collectd/network.so +#usr/lib/collectd/nfs.a #usr/lib/collectd/nfs.la usr/lib/collectd/nfs.so +#usr/lib/collectd/ntpd.a #usr/lib/collectd/ntpd.la usr/lib/collectd/ntpd.so +#usr/lib/collectd/olsrd.a #usr/lib/collectd/olsrd.la usr/lib/collectd/olsrd.so +#usr/lib/collectd/openvpn.a #usr/lib/collectd/openvpn.la usr/lib/collectd/openvpn.so +#usr/lib/collectd/ping.a #usr/lib/collectd/ping.la usr/lib/collectd/ping.so +#usr/lib/collectd/powerdns.a #usr/lib/collectd/powerdns.la usr/lib/collectd/powerdns.so +#usr/lib/collectd/processes.a #usr/lib/collectd/processes.la usr/lib/collectd/processes.so +#usr/lib/collectd/protocols.a #usr/lib/collectd/protocols.la usr/lib/collectd/protocols.so +#usr/lib/collectd/python.a #usr/lib/collectd/python.la usr/lib/collectd/python.so +#usr/lib/collectd/rrdcached.a +#usr/lib/collectd/rrdcached.la +usr/lib/collectd/rrdcached.so +#usr/lib/collectd/rrdtool.a #usr/lib/collectd/rrdtool.la usr/lib/collectd/rrdtool.so +#usr/lib/collectd/sensors.a #usr/lib/collectd/sensors.la usr/lib/collectd/sensors.so +#usr/lib/collectd/swap.a #usr/lib/collectd/swap.la usr/lib/collectd/swap.so +#usr/lib/collectd/syslog.a #usr/lib/collectd/syslog.la usr/lib/collectd/syslog.so +#usr/lib/collectd/table.a #usr/lib/collectd/table.la usr/lib/collectd/table.so +#usr/lib/collectd/tail.a #usr/lib/collectd/tail.la usr/lib/collectd/tail.so +#usr/lib/collectd/target_notification.a #usr/lib/collectd/target_notification.la usr/lib/collectd/target_notification.so +#usr/lib/collectd/target_replace.a #usr/lib/collectd/target_replace.la usr/lib/collectd/target_replace.so +#usr/lib/collectd/target_scale.a #usr/lib/collectd/target_scale.la usr/lib/collectd/target_scale.so +#usr/lib/collectd/target_set.a #usr/lib/collectd/target_set.la usr/lib/collectd/target_set.so +#usr/lib/collectd/tcpconns.a #usr/lib/collectd/tcpconns.la usr/lib/collectd/tcpconns.so +#usr/lib/collectd/teamspeak2.a #usr/lib/collectd/teamspeak2.la usr/lib/collectd/teamspeak2.so +#usr/lib/collectd/ted.a #usr/lib/collectd/ted.la usr/lib/collectd/ted.so +#usr/lib/collectd/thermal.a #usr/lib/collectd/thermal.la usr/lib/collectd/thermal.so +#usr/lib/collectd/unixsock.a #usr/lib/collectd/unixsock.la usr/lib/collectd/unixsock.so +#usr/lib/collectd/uptime.a #usr/lib/collectd/uptime.la usr/lib/collectd/uptime.so +#usr/lib/collectd/users.a #usr/lib/collectd/users.la usr/lib/collectd/users.so +#usr/lib/collectd/uuid.a #usr/lib/collectd/uuid.la usr/lib/collectd/uuid.so +#usr/lib/collectd/vmem.a #usr/lib/collectd/vmem.la usr/lib/collectd/vmem.so +#usr/lib/collectd/wireless.a #usr/lib/collectd/wireless.la usr/lib/collectd/wireless.so +#usr/lib/collectd/write_http.a #usr/lib/collectd/write_http.la usr/lib/collectd/write_http.so +#usr/lib/libcollectdclient.a #usr/lib/libcollectdclient.la usr/lib/libcollectdclient.so usr/lib/libcollectdclient.so.0 @@ -171,4 +240,3 @@ usr/share/collectd/types.db #usr/share/man/man5/collectd.conf.5 #usr/share/man/man5/types.db.5 #var/lib/collectd -etc/rc.d/init.d/collectd diff --git a/config/rootfiles/common/compat-wireless b/config/rootfiles/common/compat-wireless index 80018c84d1..5a562d2825 100644 --- a/config/rootfiles/common/compat-wireless +++ b/config/rootfiles/common/compat-wireless @@ -1,2 +1,2 @@ -etc/udev/rules.d/50-compat_firmware.rules +lib/udev/rules.d/50-compat_firmware.rules lib/udev/compat_firmware.sh diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index e14f7e0e23..51fd388fb8 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -59,6 +59,7 @@ var/ipfire/langs #var/ipfire/langs/es.pl #var/ipfire/langs/fr.pl #var/ipfire/langs/list +#var/ipfire/langs/nl.pl #var/ipfire/langs/pl.pl #var/ipfire/langs/ru.pl var/ipfire/logging @@ -110,6 +111,10 @@ var/ipfire/outgoing/defaultservices #var/ipfire/outgoing/p2protocols #var/ipfire/outgoing/rules #var/ipfire/outgoing/settings +var/ipfire/ovpn +var/ipfire/ovpn/ccd.conf +var/ipfire/ovpn/ccdroute +var/ipfire/ovpn/ccdroute2 var/ipfire/pakfire #var/ipfire/pakfire/settings #var/ipfire/patches diff --git a/config/rootfiles/common/conntrack-tools b/config/rootfiles/common/conntrack-tools new file mode 100644 index 0000000000..5ce29aa4a2 --- /dev/null +++ b/config/rootfiles/common/conntrack-tools @@ -0,0 +1,6 @@ +usr/sbin/conntrack +#usr/sbin/conntrackd +#usr/sbin/nfct +#usr/share/man/man8/conntrack.8 +#usr/share/man/man8/conntrackd.8 +#usr/share/man/man8/nfct.8 diff --git a/config/rootfiles/common/coreutils b/config/rootfiles/common/coreutils index 3901b697eb..c08e228a94 100644 --- a/config/rootfiles/common/coreutils +++ b/config/rootfiles/common/coreutils @@ -6,7 +6,6 @@ bin/cp bin/date bin/dd bin/df -bin/echo bin/false bin/head bin/ln @@ -21,7 +20,7 @@ bin/sleep bin/sync bin/true bin/uname -etc/dircolors +etc/DIR_COLORS usr/bin/[ usr/bin/basename #usr/bin/cksum @@ -59,7 +58,7 @@ usr/bin/printf #usr/bin/ptx usr/bin/readlink usr/bin/seq -#usr/bin/sha1sum +usr/bin/sha1sum usr/bin/shred usr/bin/sort usr/bin/split @@ -84,7 +83,6 @@ usr/bin/whoami usr/bin/yes usr/sbin/chroot #usr/share/info/coreutils.info -#usr/share/info/dir #usr/share/man/man1/basename.1 #usr/share/man/man1/cat.1 #usr/share/man/man1/chroot.1 diff --git a/config/rootfiles/common/curl b/config/rootfiles/common/curl index 1e962e0180..c5567519b6 100644 --- a/config/rootfiles/common/curl +++ b/config/rootfiles/common/curl @@ -16,10 +16,11 @@ usr/bin/curl usr/lib/libcurl.so usr/lib/libcurl.so.3 usr/lib/libcurl.so.4 -usr/lib/libcurl.so.4.1.1 +usr/lib/libcurl.so.4.3.0 #usr/lib/pkgconfig/libcurl.pc #usr/share/man/man1/curl-config.1 #usr/share/man/man1/curl.1 +#usr/share/man/man1/mk-ca-bundle.1 #usr/share/man/man3/curl_easy_cleanup.3 #usr/share/man/man3/curl_easy_duphandle.3 #usr/share/man/man3/curl_easy_escape.3 @@ -57,6 +58,7 @@ usr/lib/libcurl.so.4.1.1 #usr/share/man/man3/curl_multi_socket_action.3 #usr/share/man/man3/curl_multi_strerror.3 #usr/share/man/man3/curl_multi_timeout.3 +#usr/share/man/man3/curl_multi_wait.3 #usr/share/man/man3/curl_share_cleanup.3 #usr/share/man/man3/curl_share_init.3 #usr/share/man/man3/curl_share_setopt.3 diff --git a/config/rootfiles/common/daq b/config/rootfiles/common/daq index e68cee464f..10ec777b26 100644 --- a/config/rootfiles/common/daq +++ b/config/rootfiles/common/daq @@ -1,4 +1,4 @@ -usr/bin/daq-modules-config +#usr/bin/daq-modules-config #usr/include/daq.h #usr/include/daq_api.h #usr/include/daq_common.h @@ -20,8 +20,8 @@ usr/lib/daq #usr/lib/libdaq.a #usr/lib/libdaq.la #usr/lib/libdaq.so -#usr/lib/libdaq.so.1 -#usr/lib/libdaq.so.1.0.0 +usr/lib/libdaq.so.2 +usr/lib/libdaq.so.2.0.0 #usr/lib/libdaq_static.a #usr/lib/libdaq_static.la #usr/lib/libdaq_static_modules.a @@ -29,7 +29,5 @@ usr/lib/daq #usr/lib/libsfbpf.a #usr/lib/libsfbpf.la #usr/lib/libsfbpf.so -#usr/lib/libsfbpf.so.0 -#usr/lib/libsfbpf.so.0.0.1 -#usr/lib/libdaq.so.0 -#usr/lib/libdaq.so.0.0.1 +usr/lib/libsfbpf.so.0 +usr/lib/libsfbpf.so.0.0.1 diff --git a/config/rootfiles/common/dejavu-fonts-ttf b/config/rootfiles/common/dejavu-fonts-ttf new file mode 100644 index 0000000000..bfdfed8b5c --- /dev/null +++ b/config/rootfiles/common/dejavu-fonts-ttf @@ -0,0 +1,22 @@ +#usr/share/fonts +usr/share/fonts/DejaVuSans-Bold.ttf +usr/share/fonts/DejaVuSans-BoldOblique.ttf +usr/share/fonts/DejaVuSans-ExtraLight.ttf +usr/share/fonts/DejaVuSans-Oblique.ttf +usr/share/fonts/DejaVuSans.ttf +#usr/share/fonts/DejaVuSansCondensed-Bold.ttf +#usr/share/fonts/DejaVuSansCondensed-BoldOblique.ttf +#usr/share/fonts/DejaVuSansCondensed-Oblique.ttf +#usr/share/fonts/DejaVuSansCondensed.ttf +#usr/share/fonts/DejaVuSansMono-Bold.ttf +#usr/share/fonts/DejaVuSansMono-BoldOblique.ttf +#usr/share/fonts/DejaVuSansMono-Oblique.ttf +#usr/share/fonts/DejaVuSansMono.ttf +#usr/share/fonts/DejaVuSerif-Bold.ttf +#usr/share/fonts/DejaVuSerif-BoldItalic.ttf +#usr/share/fonts/DejaVuSerif-Italic.ttf +#usr/share/fonts/DejaVuSerif.ttf +#usr/share/fonts/DejaVuSerifCondensed-Bold.ttf +#usr/share/fonts/DejaVuSerifCondensed-BoldItalic.ttf +#usr/share/fonts/DejaVuSerifCondensed-Italic.ttf +#usr/share/fonts/DejaVuSerifCondensed.ttf diff --git a/config/rootfiles/common/dvb-firmwares b/config/rootfiles/common/dvb-firmwares new file mode 100644 index 0000000000..3a521b1b72 --- /dev/null +++ b/config/rootfiles/common/dvb-firmwares @@ -0,0 +1,23 @@ +lib/firmware/dvb-fe-bcm3510-01.fw +lib/firmware/dvb-fe-or51132-qam.fw +lib/firmware/dvb-fe-or51132-vsb.fw +lib/firmware/dvb-fe-or51211.fw +lib/firmware/dvb-ttpci-01.fw +#lib/firmware/dvb-ttpci-01.fw-261a +#lib/firmware/dvb-ttpci-01.fw-261b +#lib/firmware/dvb-ttpci-01.fw-261c +#lib/firmware/dvb-ttpci-01.fw-261d +#lib/firmware/dvb-ttpci-01.fw-261f +#lib/firmware/dvb-ttpci-01.fw-2622 +lib/firmware/dvb-usb-avertv-a800-02.fw +lib/firmware/dvb-usb-bluebird-01.fw +lib/firmware/dvb-usb-dibusb-5.0.0.11.fw +lib/firmware/dvb-usb-dibusb-6.0.0.8.fw +lib/firmware/dvb-usb-dtt200u-01.fw +lib/firmware/dvb-usb-terratec-h7-az6007.fw +lib/firmware/dvb-usb-terratec-h7-drxk.fw +lib/firmware/dvb-usb-umt-010-02.fw +lib/firmware/dvb-usb-vp702x-01.fw +lib/firmware/dvb-usb-vp7045-01.fw +lib/firmware/dvb-usb-wt220u-01.fw +lib/firmware/dvb-usb-wt220u-02.fw diff --git a/config/rootfiles/common/e2fsprogs b/config/rootfiles/common/e2fsprogs index a2932906d5..9622e6cbc3 100644 --- a/config/rootfiles/common/e2fsprogs +++ b/config/rootfiles/common/e2fsprogs @@ -41,6 +41,7 @@ usr/bin/uuidgen #usr/include/blkid #usr/include/blkid/blkid.h #usr/include/blkid/blkid_types.h +#usr/include/com_err.h #usr/include/e2p #usr/include/e2p/e2p.h #usr/include/et @@ -54,7 +55,10 @@ usr/bin/uuidgen #usr/include/ext2fs/ext2_types.h #usr/include/ext2fs/ext2fs.h #usr/include/ext2fs/ext3_extents.h +#usr/include/ext2fs/qcow2.h #usr/include/ext2fs/tdb.h +#usr/include/quota +#usr/include/quota/mkquota.h #usr/include/ss #usr/include/ss/ss.h #usr/include/ss/ss_err.h @@ -69,18 +73,20 @@ usr/lib/libcom_err.so usr/lib/libe2p.so #usr/lib/libext2fs.a usr/lib/libext2fs.so +#usr/lib/libquota.a #usr/lib/libss.a usr/lib/libss.so #usr/lib/libuuid.a usr/lib/libuuid.so -#usr/lib/pkgconfig #usr/lib/pkgconfig/blkid.pc #usr/lib/pkgconfig/com_err.pc #usr/lib/pkgconfig/e2p.pc #usr/lib/pkgconfig/ext2fs.pc +#usr/lib/pkgconfig/quota.pc #usr/lib/pkgconfig/ss.pc #usr/lib/pkgconfig/uuid.pc usr/sbin/e2freefrag +usr/sbin/e4defrag usr/sbin/filefrag usr/sbin/mklost+found usr/sbin/uuidd @@ -117,6 +123,7 @@ usr/sbin/uuidd #usr/share/man/man8/e2image.8 #usr/share/man/man8/e2label.8 #usr/share/man/man8/e2undo.8 +#usr/share/man/man8/e4defrag.8 #usr/share/man/man8/filefrag.8 #usr/share/man/man8/findfs.8 #usr/share/man/man8/fsck.8 diff --git a/config/rootfiles/common/file b/config/rootfiles/common/file index 0fe0c6d7f6..c48045abe1 100644 --- a/config/rootfiles/common/file +++ b/config/rootfiles/common/file @@ -2,15 +2,10 @@ usr/bin/file #usr/include/magic.h #usr/lib/libmagic.a #usr/lib/libmagic.la -usr/lib/libmagic.so +#usr/lib/libmagic.so usr/lib/libmagic.so.1 usr/lib/libmagic.so.1.0.0 -#usr/man/man1/file.1 -#usr/man/man3/libmagic.3 -#usr/man/man4 -#usr/man/man4/magic.4 -#usr/share/file -usr/share/file/magic -usr/share/file/magic.mgc -usr/share/file/magic.mime -usr/share/file/magic.mime.mgc +#usr/share/man/man1/file.1 +#usr/share/man/man3/libmagic.3 +#usr/share/man/man4/magic.4 +usr/share/misc/magic.mgc diff --git a/config/rootfiles/packages/fontconfig b/config/rootfiles/common/fontconfig similarity index 99% rename from config/rootfiles/packages/fontconfig rename to config/rootfiles/common/fontconfig index 6f3726fb4b..ade611e11d 100644 --- a/config/rootfiles/packages/fontconfig +++ b/config/rootfiles/common/fontconfig @@ -1,7 +1,3 @@ -usr/bin/fc-cache -usr/bin/fc-cat -usr/bin/fc-list -usr/bin/fc-match #etc/fonts #etc/fonts/conf.avail etc/fonts/conf.avail/10-autohint.conf @@ -49,6 +45,10 @@ etc/fonts/conf.d/90-synthetic.conf #etc/fonts/conf.d/README etc/fonts/fonts.conf etc/fonts/fonts.dtd +usr/bin/fc-cache +usr/bin/fc-cat +usr/bin/fc-list +usr/bin/fc-match #usr/include/fontconfig #usr/include/fontconfig/fcfreetype.h #usr/include/fontconfig/fcprivate.h @@ -59,7 +59,6 @@ usr/lib/libfontconfig.so usr/lib/libfontconfig.so.1 usr/lib/libfontconfig.so.1.3.0 usr/lib/pkgconfig/fontconfig.pc -usr/var/cache/fontconfig #usr/share/doc/fontconfig #usr/share/doc/fontconfig/fontconfig-devel #usr/share/doc/fontconfig/fontconfig-devel.pdf @@ -420,4 +419,6 @@ usr/var/cache/fontconfig #usr/share/man/man3/FcValuePrint.3 #usr/share/man/man3/FcValueSave.3 #usr/share/man/man5/fonts-conf.5 +#usr/var #usr/var/cache +usr/var/cache/fontconfig diff --git a/config/rootfiles/common/fstrim b/config/rootfiles/common/fstrim new file mode 100644 index 0000000000..775fa92864 --- /dev/null +++ b/config/rootfiles/common/fstrim @@ -0,0 +1,2 @@ +etc/fcron.daily/trim +usr/bin/fstrim diff --git a/config/rootfiles/common/fw_ath9k_htc b/config/rootfiles/common/fw_ath9k_htc deleted file mode 100644 index a841a113e1..0000000000 --- a/config/rootfiles/common/fw_ath9k_htc +++ /dev/null @@ -1,2 +0,0 @@ -lib/firmware/htc_7010.fw -lib/firmware/htc_9271.fw diff --git a/config/rootfiles/common/gettext b/config/rootfiles/common/gettext index 915985b5ae..e7404416f7 100644 --- a/config/rootfiles/common/gettext +++ b/config/rootfiles/common/gettext @@ -1,28 +1,27 @@ -usr/bin/autopoint -usr/bin/envsubst -usr/bin/gettext -usr/bin/gettext.sh -usr/bin/gettextize -usr/bin/msgattrib -usr/bin/msgcat -usr/bin/msgcmp -usr/bin/msgcomm -usr/bin/msgconv -usr/bin/msgen -usr/bin/msgexec -usr/bin/msgfilter -usr/bin/msgfmt -usr/bin/msggrep -usr/bin/msginit -usr/bin/msgmerge -usr/bin/msgunfmt -usr/bin/msguniq -usr/bin/ngettext -usr/bin/xgettext +#usr/bin/autopoint +#usr/bin/envsubst +#usr/bin/gettext +#usr/bin/gettext.sh +#usr/bin/gettextize +#usr/bin/msgattrib +#usr/bin/msgcat +#usr/bin/msgcmp +#usr/bin/msgcomm +#usr/bin/msgconv +#usr/bin/msgen +#usr/bin/msgexec +#usr/bin/msgfilter +#usr/bin/msgfmt +#usr/bin/msggrep +#usr/bin/msginit +#usr/bin/msgmerge +#usr/bin/msgunfmt +#usr/bin/msguniq +#usr/bin/ngettext +#usr/bin/recode-sr-latin +#usr/bin/xgettext #usr/include/autosprintf.h #usr/include/gettext-po.h -#usr/info/autosprintf.info -#usr/info/gettext.info #usr/lib/gettext #usr/lib/gettext/hostname #usr/lib/gettext/project-id @@ -30,47 +29,49 @@ usr/bin/xgettext #usr/lib/gettext/user-email #usr/lib/libasprintf.a #usr/lib/libasprintf.la -usr/lib/libasprintf.so +#usr/lib/libasprintf.so usr/lib/libasprintf.so.0 usr/lib/libasprintf.so.0.0.0 -usr/lib/libgettextlib-0.14.5.so +usr/lib/libgettextlib-0.18.1.so #usr/lib/libgettextlib.la -usr/lib/libgettextlib.so +#usr/lib/libgettextlib.so #usr/lib/libgettextpo.a #usr/lib/libgettextpo.la -usr/lib/libgettextpo.so +#usr/lib/libgettextpo.so usr/lib/libgettextpo.so.0 -usr/lib/libgettextpo.so.0.1.0 -usr/lib/libgettextsrc-0.14.5.so +usr/lib/libgettextpo.so.0.5.1 +usr/lib/libgettextsrc-0.18.1.so #usr/lib/libgettextsrc.la usr/lib/libgettextsrc.so usr/lib/preloadable_libintl.so #usr/share/aclocal/codeset.m4 +#usr/share/aclocal/fcntl-o.m4 #usr/share/aclocal/gettext.m4 #usr/share/aclocal/glibc2.m4 #usr/share/aclocal/glibc21.m4 #usr/share/aclocal/iconv.m4 #usr/share/aclocal/intdiv0.m4 +#usr/share/aclocal/intl.m4 +#usr/share/aclocal/intldir.m4 +#usr/share/aclocal/intlmacosx.m4 #usr/share/aclocal/intmax.m4 #usr/share/aclocal/inttypes-pri.m4 -#usr/share/aclocal/inttypes.m4 #usr/share/aclocal/inttypes_h.m4 -#usr/share/aclocal/isc-posix.m4 #usr/share/aclocal/lcmessage.m4 #usr/share/aclocal/lib-ld.m4 #usr/share/aclocal/lib-link.m4 #usr/share/aclocal/lib-prefix.m4 -#usr/share/aclocal/longdouble.m4 +#usr/share/aclocal/lock.m4 #usr/share/aclocal/longlong.m4 #usr/share/aclocal/nls.m4 #usr/share/aclocal/po.m4 #usr/share/aclocal/printf-posix.m4 #usr/share/aclocal/progtest.m4 -#usr/share/aclocal/signed.m4 #usr/share/aclocal/size_max.m4 #usr/share/aclocal/stdint_h.m4 +#usr/share/aclocal/threadlib.m4 #usr/share/aclocal/uintmax_t.m4 -#usr/share/aclocal/ulonglong.m4 +#usr/share/aclocal/visibility.m4 #usr/share/aclocal/wchar_t.m4 #usr/share/aclocal/wint_t.m4 #usr/share/aclocal/xsize.m4 @@ -92,6 +93,7 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/build-aux #usr/share/doc/gettext/examples/build-aux/csharpcomp.m4 #usr/share/doc/gettext/examples/build-aux/csharpcomp.sh.in +#usr/share/doc/gettext/examples/build-aux/csharpexec-test.exe #usr/share/doc/gettext/examples/build-aux/csharpexec.m4 #usr/share/doc/gettext/examples/build-aux/csharpexec.sh.in #usr/share/doc/gettext/examples/build-aux/gcj.m4 @@ -120,25 +122,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-gnome/po/Makevars #usr/share/doc/gettext/examples/hello-c++-gnome/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c++-gnome/po/af.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/bg.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ca.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/de.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/el.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/eo.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/es.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/fi.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/fr.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/id.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/it.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/mt.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/nl.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/pt.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ro.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/ru.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/sl.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/sr.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/sv.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/tr.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/uk.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/vi.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c++-kde #usr/share/doc/gettext/examples/hello-c++-kde/BUGS @@ -182,25 +197,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-kde/po/Makevars #usr/share/doc/gettext/examples/hello-c++-kde/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c++-kde/po/af.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/bg.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ca.po #usr/share/doc/gettext/examples/hello-c++-kde/po/de.po #usr/share/doc/gettext/examples/hello-c++-kde/po/el.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/eo.po #usr/share/doc/gettext/examples/hello-c++-kde/po/es.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/fi.po #usr/share/doc/gettext/examples/hello-c++-kde/po/fr.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/id.po #usr/share/doc/gettext/examples/hello-c++-kde/po/it.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/mt.po #usr/share/doc/gettext/examples/hello-c++-kde/po/nl.po #usr/share/doc/gettext/examples/hello-c++-kde/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/pt.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ro.po #usr/share/doc/gettext/examples/hello-c++-kde/po/ru.po #usr/share/doc/gettext/examples/hello-c++-kde/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/sl.po #usr/share/doc/gettext/examples/hello-c++-kde/po/sr.po #usr/share/doc/gettext/examples/hello-c++-kde/po/sv.po #usr/share/doc/gettext/examples/hello-c++-kde/po/tr.po #usr/share/doc/gettext/examples/hello-c++-kde/po/uk.po #usr/share/doc/gettext/examples/hello-c++-kde/po/vi.po #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-kde/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c++-qt #usr/share/doc/gettext/examples/hello-c++-qt/BUGS @@ -217,26 +245,86 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++-qt/po/LINGUAS #usr/share/doc/gettext/examples/hello-c++-qt/po/Makefile.am #usr/share/doc/gettext/examples/hello-c++-qt/po/af.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/bg.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ca.po #usr/share/doc/gettext/examples/hello-c++-qt/po/de.po #usr/share/doc/gettext/examples/hello-c++-qt/po/el.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/eo.po #usr/share/doc/gettext/examples/hello-c++-qt/po/es.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/fi.po #usr/share/doc/gettext/examples/hello-c++-qt/po/fr.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/id.po #usr/share/doc/gettext/examples/hello-c++-qt/po/it.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/mt.po #usr/share/doc/gettext/examples/hello-c++-qt/po/nl.po #usr/share/doc/gettext/examples/hello-c++-qt/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/pt.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ro.po #usr/share/doc/gettext/examples/hello-c++-qt/po/ru.po #usr/share/doc/gettext/examples/hello-c++-qt/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/sl.po #usr/share/doc/gettext/examples/hello-c++-qt/po/sr.po #usr/share/doc/gettext/examples/hello-c++-qt/po/sv.po #usr/share/doc/gettext/examples/hello-c++-qt/po/tr.po #usr/share/doc/gettext/examples/hello-c++-qt/po/uk.po #usr/share/doc/gettext/examples/hello-c++-qt/po/vi.po #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-qt/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_TW.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/INSTALL +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/Makefile.am +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autoclean.sh +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autogen.sh +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/configure.ac +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/hello.cc +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4 +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/Makefile.am +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/wxwidgets.m4 +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/LINGUAS +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/Makefile.am +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/af.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ast.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/bg.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ca.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/de.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/el.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/eo.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/es.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fi.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fr.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ga.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/hu.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/mt.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/nl.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pl.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ro.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ru.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sk.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sl.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sr.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sv.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/tr.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/uk.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/vi.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_HK.po +#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c++/INSTALL #usr/share/doc/gettext/examples/hello-c++/Makefile.am #usr/share/doc/gettext/examples/hello-c++/autoclean.sh @@ -250,25 +338,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c++/po/Makevars #usr/share/doc/gettext/examples/hello-c++/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c++/po/af.po +#usr/share/doc/gettext/examples/hello-c++/po/ast.po +#usr/share/doc/gettext/examples/hello-c++/po/bg.po #usr/share/doc/gettext/examples/hello-c++/po/ca.po #usr/share/doc/gettext/examples/hello-c++/po/de.po #usr/share/doc/gettext/examples/hello-c++/po/el.po +#usr/share/doc/gettext/examples/hello-c++/po/eo.po #usr/share/doc/gettext/examples/hello-c++/po/es.po +#usr/share/doc/gettext/examples/hello-c++/po/fi.po #usr/share/doc/gettext/examples/hello-c++/po/fr.po #usr/share/doc/gettext/examples/hello-c++/po/ga.po +#usr/share/doc/gettext/examples/hello-c++/po/hu.po +#usr/share/doc/gettext/examples/hello-c++/po/id.po #usr/share/doc/gettext/examples/hello-c++/po/it.po #usr/share/doc/gettext/examples/hello-c++/po/ja.po +#usr/share/doc/gettext/examples/hello-c++/po/ky.po +#usr/share/doc/gettext/examples/hello-c++/po/lv.po +#usr/share/doc/gettext/examples/hello-c++/po/ms.po +#usr/share/doc/gettext/examples/hello-c++/po/mt.po #usr/share/doc/gettext/examples/hello-c++/po/nl.po #usr/share/doc/gettext/examples/hello-c++/po/pl.po +#usr/share/doc/gettext/examples/hello-c++/po/pt.po #usr/share/doc/gettext/examples/hello-c++/po/ro.po #usr/share/doc/gettext/examples/hello-c++/po/ru.po #usr/share/doc/gettext/examples/hello-c++/po/sk.po +#usr/share/doc/gettext/examples/hello-c++/po/sl.po #usr/share/doc/gettext/examples/hello-c++/po/sr.po #usr/share/doc/gettext/examples/hello-c++/po/sv.po #usr/share/doc/gettext/examples/hello-c++/po/tr.po #usr/share/doc/gettext/examples/hello-c++/po/uk.po #usr/share/doc/gettext/examples/hello-c++/po/vi.po #usr/share/doc/gettext/examples/hello-c++/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c++/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c++/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c-gnome #usr/share/doc/gettext/examples/hello-c-gnome/INSTALL @@ -287,25 +388,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c-gnome/po/Makevars #usr/share/doc/gettext/examples/hello-c-gnome/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c-gnome/po/af.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/ast.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/bg.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ca.po #usr/share/doc/gettext/examples/hello-c-gnome/po/de.po #usr/share/doc/gettext/examples/hello-c-gnome/po/el.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/eo.po #usr/share/doc/gettext/examples/hello-c-gnome/po/es.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/fi.po #usr/share/doc/gettext/examples/hello-c-gnome/po/fr.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ga.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/hu.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/id.po #usr/share/doc/gettext/examples/hello-c-gnome/po/it.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/ky.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/lv.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/ms.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/mt.po #usr/share/doc/gettext/examples/hello-c-gnome/po/nl.po #usr/share/doc/gettext/examples/hello-c-gnome/po/pl.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/pt.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ro.po #usr/share/doc/gettext/examples/hello-c-gnome/po/ru.po #usr/share/doc/gettext/examples/hello-c-gnome/po/sk.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/sl.po #usr/share/doc/gettext/examples/hello-c-gnome/po/sr.po #usr/share/doc/gettext/examples/hello-c-gnome/po/sv.po #usr/share/doc/gettext/examples/hello-c-gnome/po/tr.po #usr/share/doc/gettext/examples/hello-c-gnome/po/uk.po #usr/share/doc/gettext/examples/hello-c-gnome/po/vi.po #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c-gnome/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_TW.po #usr/share/doc/gettext/examples/hello-c/INSTALL #usr/share/doc/gettext/examples/hello-c/Makefile.am @@ -320,25 +434,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-c/po/Makevars #usr/share/doc/gettext/examples/hello-c/po/POTFILES.in #usr/share/doc/gettext/examples/hello-c/po/af.po +#usr/share/doc/gettext/examples/hello-c/po/ast.po +#usr/share/doc/gettext/examples/hello-c/po/bg.po #usr/share/doc/gettext/examples/hello-c/po/ca.po #usr/share/doc/gettext/examples/hello-c/po/de.po #usr/share/doc/gettext/examples/hello-c/po/el.po +#usr/share/doc/gettext/examples/hello-c/po/eo.po #usr/share/doc/gettext/examples/hello-c/po/es.po +#usr/share/doc/gettext/examples/hello-c/po/fi.po #usr/share/doc/gettext/examples/hello-c/po/fr.po #usr/share/doc/gettext/examples/hello-c/po/ga.po +#usr/share/doc/gettext/examples/hello-c/po/hu.po +#usr/share/doc/gettext/examples/hello-c/po/id.po #usr/share/doc/gettext/examples/hello-c/po/it.po #usr/share/doc/gettext/examples/hello-c/po/ja.po +#usr/share/doc/gettext/examples/hello-c/po/ky.po +#usr/share/doc/gettext/examples/hello-c/po/lv.po +#usr/share/doc/gettext/examples/hello-c/po/ms.po +#usr/share/doc/gettext/examples/hello-c/po/mt.po #usr/share/doc/gettext/examples/hello-c/po/nl.po #usr/share/doc/gettext/examples/hello-c/po/pl.po +#usr/share/doc/gettext/examples/hello-c/po/pt.po #usr/share/doc/gettext/examples/hello-c/po/ro.po #usr/share/doc/gettext/examples/hello-c/po/ru.po #usr/share/doc/gettext/examples/hello-c/po/sk.po +#usr/share/doc/gettext/examples/hello-c/po/sl.po #usr/share/doc/gettext/examples/hello-c/po/sr.po #usr/share/doc/gettext/examples/hello-c/po/sv.po #usr/share/doc/gettext/examples/hello-c/po/tr.po #usr/share/doc/gettext/examples/hello-c/po/uk.po #usr/share/doc/gettext/examples/hello-c/po/vi.po #usr/share/doc/gettext/examples/hello-c/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-c/po/zh_HK.po #usr/share/doc/gettext/examples/hello-c/po/zh_TW.po #usr/share/doc/gettext/examples/hello-clisp #usr/share/doc/gettext/examples/hello-clisp/INSTALL @@ -353,31 +480,45 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-clisp/po/LINGUAS #usr/share/doc/gettext/examples/hello-clisp/po/Makefile.am #usr/share/doc/gettext/examples/hello-clisp/po/af.po +#usr/share/doc/gettext/examples/hello-clisp/po/ast.po +#usr/share/doc/gettext/examples/hello-clisp/po/bg.po #usr/share/doc/gettext/examples/hello-clisp/po/ca.po #usr/share/doc/gettext/examples/hello-clisp/po/de.po #usr/share/doc/gettext/examples/hello-clisp/po/el.po +#usr/share/doc/gettext/examples/hello-clisp/po/eo.po #usr/share/doc/gettext/examples/hello-clisp/po/es.po +#usr/share/doc/gettext/examples/hello-clisp/po/fi.po #usr/share/doc/gettext/examples/hello-clisp/po/fr.po #usr/share/doc/gettext/examples/hello-clisp/po/ga.po +#usr/share/doc/gettext/examples/hello-clisp/po/hu.po +#usr/share/doc/gettext/examples/hello-clisp/po/id.po #usr/share/doc/gettext/examples/hello-clisp/po/it.po #usr/share/doc/gettext/examples/hello-clisp/po/ja.po +#usr/share/doc/gettext/examples/hello-clisp/po/ky.po +#usr/share/doc/gettext/examples/hello-clisp/po/lv.po +#usr/share/doc/gettext/examples/hello-clisp/po/ms.po +#usr/share/doc/gettext/examples/hello-clisp/po/mt.po #usr/share/doc/gettext/examples/hello-clisp/po/nl.po #usr/share/doc/gettext/examples/hello-clisp/po/pl.po +#usr/share/doc/gettext/examples/hello-clisp/po/pt.po #usr/share/doc/gettext/examples/hello-clisp/po/ro.po #usr/share/doc/gettext/examples/hello-clisp/po/ru.po #usr/share/doc/gettext/examples/hello-clisp/po/sk.po +#usr/share/doc/gettext/examples/hello-clisp/po/sl.po #usr/share/doc/gettext/examples/hello-clisp/po/sr.po #usr/share/doc/gettext/examples/hello-clisp/po/sv.po #usr/share/doc/gettext/examples/hello-clisp/po/tr.po #usr/share/doc/gettext/examples/hello-clisp/po/uk.po #usr/share/doc/gettext/examples/hello-clisp/po/vi.po #usr/share/doc/gettext/examples/hello-clisp/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-clisp/po/zh_HK.po #usr/share/doc/gettext/examples/hello-clisp/po/zh_TW.po #usr/share/doc/gettext/examples/hello-csharp #usr/share/doc/gettext/examples/hello-csharp-forms #usr/share/doc/gettext/examples/hello-csharp-forms/BUGS #usr/share/doc/gettext/examples/hello-csharp-forms/INSTALL #usr/share/doc/gettext/examples/hello-csharp-forms/Makefile.am +#usr/share/doc/gettext/examples/hello-csharp-forms/README #usr/share/doc/gettext/examples/hello-csharp-forms/autoclean.sh #usr/share/doc/gettext/examples/hello-csharp-forms/autogen.sh #usr/share/doc/gettext/examples/hello-csharp-forms/configure.ac @@ -388,25 +529,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-csharp-forms/po/LINGUAS #usr/share/doc/gettext/examples/hello-csharp-forms/po/Makefile.am #usr/share/doc/gettext/examples/hello-csharp-forms/po/af.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/ast.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/bg.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ca.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/de.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/el.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/eo.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/es.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/fi.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/fr.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ga.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/hu.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/id.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/it.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ja.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/ky.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/lv.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/ms.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/mt.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/nl.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/pl.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/pt.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ro.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/ru.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/sk.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/sl.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/sr.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/sv.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/tr.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/uk.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/vi.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_HK.po #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_TW.po #usr/share/doc/gettext/examples/hello-csharp/INSTALL #usr/share/doc/gettext/examples/hello-csharp/Makefile.am @@ -420,25 +574,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-csharp/po/LINGUAS #usr/share/doc/gettext/examples/hello-csharp/po/Makefile.am #usr/share/doc/gettext/examples/hello-csharp/po/af.po +#usr/share/doc/gettext/examples/hello-csharp/po/ast.po +#usr/share/doc/gettext/examples/hello-csharp/po/bg.po #usr/share/doc/gettext/examples/hello-csharp/po/ca.po #usr/share/doc/gettext/examples/hello-csharp/po/de.po #usr/share/doc/gettext/examples/hello-csharp/po/el.po +#usr/share/doc/gettext/examples/hello-csharp/po/eo.po #usr/share/doc/gettext/examples/hello-csharp/po/es.po +#usr/share/doc/gettext/examples/hello-csharp/po/fi.po #usr/share/doc/gettext/examples/hello-csharp/po/fr.po #usr/share/doc/gettext/examples/hello-csharp/po/ga.po +#usr/share/doc/gettext/examples/hello-csharp/po/hu.po +#usr/share/doc/gettext/examples/hello-csharp/po/id.po #usr/share/doc/gettext/examples/hello-csharp/po/it.po #usr/share/doc/gettext/examples/hello-csharp/po/ja.po +#usr/share/doc/gettext/examples/hello-csharp/po/ky.po +#usr/share/doc/gettext/examples/hello-csharp/po/lv.po +#usr/share/doc/gettext/examples/hello-csharp/po/ms.po +#usr/share/doc/gettext/examples/hello-csharp/po/mt.po #usr/share/doc/gettext/examples/hello-csharp/po/nl.po #usr/share/doc/gettext/examples/hello-csharp/po/pl.po +#usr/share/doc/gettext/examples/hello-csharp/po/pt.po #usr/share/doc/gettext/examples/hello-csharp/po/ro.po #usr/share/doc/gettext/examples/hello-csharp/po/ru.po #usr/share/doc/gettext/examples/hello-csharp/po/sk.po +#usr/share/doc/gettext/examples/hello-csharp/po/sl.po #usr/share/doc/gettext/examples/hello-csharp/po/sr.po #usr/share/doc/gettext/examples/hello-csharp/po/sv.po #usr/share/doc/gettext/examples/hello-csharp/po/tr.po #usr/share/doc/gettext/examples/hello-csharp/po/uk.po #usr/share/doc/gettext/examples/hello-csharp/po/vi.po #usr/share/doc/gettext/examples/hello-csharp/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-csharp/po/zh_HK.po #usr/share/doc/gettext/examples/hello-csharp/po/zh_TW.po #usr/share/doc/gettext/examples/hello-gawk #usr/share/doc/gettext/examples/hello-gawk/INSTALL @@ -453,25 +620,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-gawk/po/LINGUAS #usr/share/doc/gettext/examples/hello-gawk/po/Makefile.am #usr/share/doc/gettext/examples/hello-gawk/po/af.po +#usr/share/doc/gettext/examples/hello-gawk/po/ast.po +#usr/share/doc/gettext/examples/hello-gawk/po/bg.po #usr/share/doc/gettext/examples/hello-gawk/po/ca.po #usr/share/doc/gettext/examples/hello-gawk/po/de.po #usr/share/doc/gettext/examples/hello-gawk/po/el.po +#usr/share/doc/gettext/examples/hello-gawk/po/eo.po #usr/share/doc/gettext/examples/hello-gawk/po/es.po +#usr/share/doc/gettext/examples/hello-gawk/po/fi.po #usr/share/doc/gettext/examples/hello-gawk/po/fr.po #usr/share/doc/gettext/examples/hello-gawk/po/ga.po +#usr/share/doc/gettext/examples/hello-gawk/po/hu.po +#usr/share/doc/gettext/examples/hello-gawk/po/id.po #usr/share/doc/gettext/examples/hello-gawk/po/it.po #usr/share/doc/gettext/examples/hello-gawk/po/ja.po +#usr/share/doc/gettext/examples/hello-gawk/po/ky.po +#usr/share/doc/gettext/examples/hello-gawk/po/lv.po +#usr/share/doc/gettext/examples/hello-gawk/po/ms.po +#usr/share/doc/gettext/examples/hello-gawk/po/mt.po #usr/share/doc/gettext/examples/hello-gawk/po/nl.po #usr/share/doc/gettext/examples/hello-gawk/po/pl.po +#usr/share/doc/gettext/examples/hello-gawk/po/pt.po #usr/share/doc/gettext/examples/hello-gawk/po/ro.po #usr/share/doc/gettext/examples/hello-gawk/po/ru.po #usr/share/doc/gettext/examples/hello-gawk/po/sk.po +#usr/share/doc/gettext/examples/hello-gawk/po/sl.po #usr/share/doc/gettext/examples/hello-gawk/po/sr.po #usr/share/doc/gettext/examples/hello-gawk/po/sv.po #usr/share/doc/gettext/examples/hello-gawk/po/tr.po #usr/share/doc/gettext/examples/hello-gawk/po/uk.po #usr/share/doc/gettext/examples/hello-gawk/po/vi.po #usr/share/doc/gettext/examples/hello-gawk/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-gawk/po/zh_HK.po #usr/share/doc/gettext/examples/hello-gawk/po/zh_TW.po #usr/share/doc/gettext/examples/hello-guile #usr/share/doc/gettext/examples/hello-guile/INSTALL @@ -486,25 +666,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-guile/po/LINGUAS #usr/share/doc/gettext/examples/hello-guile/po/Makefile.am #usr/share/doc/gettext/examples/hello-guile/po/af.po +#usr/share/doc/gettext/examples/hello-guile/po/ast.po +#usr/share/doc/gettext/examples/hello-guile/po/bg.po #usr/share/doc/gettext/examples/hello-guile/po/ca.po #usr/share/doc/gettext/examples/hello-guile/po/de.po #usr/share/doc/gettext/examples/hello-guile/po/el.po +#usr/share/doc/gettext/examples/hello-guile/po/eo.po #usr/share/doc/gettext/examples/hello-guile/po/es.po +#usr/share/doc/gettext/examples/hello-guile/po/fi.po #usr/share/doc/gettext/examples/hello-guile/po/fr.po #usr/share/doc/gettext/examples/hello-guile/po/ga.po +#usr/share/doc/gettext/examples/hello-guile/po/hu.po +#usr/share/doc/gettext/examples/hello-guile/po/id.po #usr/share/doc/gettext/examples/hello-guile/po/it.po #usr/share/doc/gettext/examples/hello-guile/po/ja.po +#usr/share/doc/gettext/examples/hello-guile/po/ky.po +#usr/share/doc/gettext/examples/hello-guile/po/lv.po +#usr/share/doc/gettext/examples/hello-guile/po/ms.po +#usr/share/doc/gettext/examples/hello-guile/po/mt.po #usr/share/doc/gettext/examples/hello-guile/po/nl.po #usr/share/doc/gettext/examples/hello-guile/po/pl.po +#usr/share/doc/gettext/examples/hello-guile/po/pt.po #usr/share/doc/gettext/examples/hello-guile/po/ro.po #usr/share/doc/gettext/examples/hello-guile/po/ru.po #usr/share/doc/gettext/examples/hello-guile/po/sk.po +#usr/share/doc/gettext/examples/hello-guile/po/sl.po #usr/share/doc/gettext/examples/hello-guile/po/sr.po #usr/share/doc/gettext/examples/hello-guile/po/sv.po #usr/share/doc/gettext/examples/hello-guile/po/tr.po #usr/share/doc/gettext/examples/hello-guile/po/uk.po #usr/share/doc/gettext/examples/hello-guile/po/vi.po #usr/share/doc/gettext/examples/hello-guile/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-guile/po/zh_HK.po #usr/share/doc/gettext/examples/hello-guile/po/zh_TW.po #usr/share/doc/gettext/examples/hello-java #usr/share/doc/gettext/examples/hello-java-awt @@ -523,26 +716,88 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java-awt/po/LINGUAS #usr/share/doc/gettext/examples/hello-java-awt/po/Makefile.am #usr/share/doc/gettext/examples/hello-java-awt/po/af.po +#usr/share/doc/gettext/examples/hello-java-awt/po/ast.po +#usr/share/doc/gettext/examples/hello-java-awt/po/bg.po #usr/share/doc/gettext/examples/hello-java-awt/po/ca.po #usr/share/doc/gettext/examples/hello-java-awt/po/de.po #usr/share/doc/gettext/examples/hello-java-awt/po/el.po +#usr/share/doc/gettext/examples/hello-java-awt/po/eo.po #usr/share/doc/gettext/examples/hello-java-awt/po/es.po +#usr/share/doc/gettext/examples/hello-java-awt/po/fi.po #usr/share/doc/gettext/examples/hello-java-awt/po/fr.po #usr/share/doc/gettext/examples/hello-java-awt/po/ga.po +#usr/share/doc/gettext/examples/hello-java-awt/po/hu.po +#usr/share/doc/gettext/examples/hello-java-awt/po/id.po #usr/share/doc/gettext/examples/hello-java-awt/po/it.po #usr/share/doc/gettext/examples/hello-java-awt/po/ja.po +#usr/share/doc/gettext/examples/hello-java-awt/po/ky.po +#usr/share/doc/gettext/examples/hello-java-awt/po/lv.po +#usr/share/doc/gettext/examples/hello-java-awt/po/ms.po +#usr/share/doc/gettext/examples/hello-java-awt/po/mt.po #usr/share/doc/gettext/examples/hello-java-awt/po/nl.po #usr/share/doc/gettext/examples/hello-java-awt/po/pl.po +#usr/share/doc/gettext/examples/hello-java-awt/po/pt.po #usr/share/doc/gettext/examples/hello-java-awt/po/ro.po #usr/share/doc/gettext/examples/hello-java-awt/po/ru.po #usr/share/doc/gettext/examples/hello-java-awt/po/sk.po +#usr/share/doc/gettext/examples/hello-java-awt/po/sl.po #usr/share/doc/gettext/examples/hello-java-awt/po/sr.po #usr/share/doc/gettext/examples/hello-java-awt/po/sv.po #usr/share/doc/gettext/examples/hello-java-awt/po/tr.po #usr/share/doc/gettext/examples/hello-java-awt/po/uk.po #usr/share/doc/gettext/examples/hello-java-awt/po/vi.po #usr/share/doc/gettext/examples/hello-java-awt/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java-awt/po/zh_HK.po #usr/share/doc/gettext/examples/hello-java-awt/po/zh_TW.po +#usr/share/doc/gettext/examples/hello-java-qtjambi +#usr/share/doc/gettext/examples/hello-java-qtjambi/BUGS +#usr/share/doc/gettext/examples/hello-java-qtjambi/Hello.java +#usr/share/doc/gettext/examples/hello-java-qtjambi/INSTALL +#usr/share/doc/gettext/examples/hello-java-qtjambi/Makefile.am +#usr/share/doc/gettext/examples/hello-java-qtjambi/autoclean.sh +#usr/share/doc/gettext/examples/hello-java-qtjambi/autogen.sh +#usr/share/doc/gettext/examples/hello-java-qtjambi/configure.ac +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4 +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Makefile.am +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.class +#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.java +#usr/share/doc/gettext/examples/hello-java-qtjambi/po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/LINGUAS +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/Makefile.am +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/af.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ast.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/bg.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ca.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/de.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/el.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/eo.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/es.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fi.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fr.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ga.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/hu.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/id.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/it.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/mt.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/nl.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pl.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pt.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ro.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ru.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sk.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sl.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sr.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sv.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/tr.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/uk.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/vi.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_HK.po +#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_TW.po #usr/share/doc/gettext/examples/hello-java-swing #usr/share/doc/gettext/examples/hello-java-swing/BUGS #usr/share/doc/gettext/examples/hello-java-swing/Hello.java @@ -559,25 +814,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java-swing/po/LINGUAS #usr/share/doc/gettext/examples/hello-java-swing/po/Makefile.am #usr/share/doc/gettext/examples/hello-java-swing/po/af.po +#usr/share/doc/gettext/examples/hello-java-swing/po/ast.po +#usr/share/doc/gettext/examples/hello-java-swing/po/bg.po #usr/share/doc/gettext/examples/hello-java-swing/po/ca.po #usr/share/doc/gettext/examples/hello-java-swing/po/de.po #usr/share/doc/gettext/examples/hello-java-swing/po/el.po +#usr/share/doc/gettext/examples/hello-java-swing/po/eo.po #usr/share/doc/gettext/examples/hello-java-swing/po/es.po +#usr/share/doc/gettext/examples/hello-java-swing/po/fi.po #usr/share/doc/gettext/examples/hello-java-swing/po/fr.po #usr/share/doc/gettext/examples/hello-java-swing/po/ga.po +#usr/share/doc/gettext/examples/hello-java-swing/po/hu.po +#usr/share/doc/gettext/examples/hello-java-swing/po/id.po #usr/share/doc/gettext/examples/hello-java-swing/po/it.po #usr/share/doc/gettext/examples/hello-java-swing/po/ja.po +#usr/share/doc/gettext/examples/hello-java-swing/po/ky.po +#usr/share/doc/gettext/examples/hello-java-swing/po/lv.po +#usr/share/doc/gettext/examples/hello-java-swing/po/ms.po +#usr/share/doc/gettext/examples/hello-java-swing/po/mt.po #usr/share/doc/gettext/examples/hello-java-swing/po/nl.po #usr/share/doc/gettext/examples/hello-java-swing/po/pl.po +#usr/share/doc/gettext/examples/hello-java-swing/po/pt.po #usr/share/doc/gettext/examples/hello-java-swing/po/ro.po #usr/share/doc/gettext/examples/hello-java-swing/po/ru.po #usr/share/doc/gettext/examples/hello-java-swing/po/sk.po +#usr/share/doc/gettext/examples/hello-java-swing/po/sl.po #usr/share/doc/gettext/examples/hello-java-swing/po/sr.po #usr/share/doc/gettext/examples/hello-java-swing/po/sv.po #usr/share/doc/gettext/examples/hello-java-swing/po/tr.po #usr/share/doc/gettext/examples/hello-java-swing/po/uk.po #usr/share/doc/gettext/examples/hello-java-swing/po/vi.po #usr/share/doc/gettext/examples/hello-java-swing/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java-swing/po/zh_HK.po #usr/share/doc/gettext/examples/hello-java-swing/po/zh_TW.po #usr/share/doc/gettext/examples/hello-java/Hello.java #usr/share/doc/gettext/examples/hello-java/INSTALL @@ -591,25 +859,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-java/po/LINGUAS #usr/share/doc/gettext/examples/hello-java/po/Makefile.am #usr/share/doc/gettext/examples/hello-java/po/af.po +#usr/share/doc/gettext/examples/hello-java/po/ast.po +#usr/share/doc/gettext/examples/hello-java/po/bg.po #usr/share/doc/gettext/examples/hello-java/po/ca.po #usr/share/doc/gettext/examples/hello-java/po/de.po #usr/share/doc/gettext/examples/hello-java/po/el.po +#usr/share/doc/gettext/examples/hello-java/po/eo.po #usr/share/doc/gettext/examples/hello-java/po/es.po +#usr/share/doc/gettext/examples/hello-java/po/fi.po #usr/share/doc/gettext/examples/hello-java/po/fr.po #usr/share/doc/gettext/examples/hello-java/po/ga.po +#usr/share/doc/gettext/examples/hello-java/po/hu.po +#usr/share/doc/gettext/examples/hello-java/po/id.po #usr/share/doc/gettext/examples/hello-java/po/it.po #usr/share/doc/gettext/examples/hello-java/po/ja.po +#usr/share/doc/gettext/examples/hello-java/po/ky.po +#usr/share/doc/gettext/examples/hello-java/po/lv.po +#usr/share/doc/gettext/examples/hello-java/po/ms.po +#usr/share/doc/gettext/examples/hello-java/po/mt.po #usr/share/doc/gettext/examples/hello-java/po/nl.po #usr/share/doc/gettext/examples/hello-java/po/pl.po +#usr/share/doc/gettext/examples/hello-java/po/pt.po #usr/share/doc/gettext/examples/hello-java/po/ro.po #usr/share/doc/gettext/examples/hello-java/po/ru.po #usr/share/doc/gettext/examples/hello-java/po/sk.po +#usr/share/doc/gettext/examples/hello-java/po/sl.po #usr/share/doc/gettext/examples/hello-java/po/sr.po #usr/share/doc/gettext/examples/hello-java/po/sv.po #usr/share/doc/gettext/examples/hello-java/po/tr.po #usr/share/doc/gettext/examples/hello-java/po/uk.po #usr/share/doc/gettext/examples/hello-java/po/vi.po #usr/share/doc/gettext/examples/hello-java/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-java/po/zh_HK.po #usr/share/doc/gettext/examples/hello-java/po/zh_TW.po #usr/share/doc/gettext/examples/hello-librep #usr/share/doc/gettext/examples/hello-librep/INSTALL @@ -624,25 +905,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-librep/po/LINGUAS #usr/share/doc/gettext/examples/hello-librep/po/Makefile.am #usr/share/doc/gettext/examples/hello-librep/po/af.po +#usr/share/doc/gettext/examples/hello-librep/po/ast.po +#usr/share/doc/gettext/examples/hello-librep/po/bg.po #usr/share/doc/gettext/examples/hello-librep/po/ca.po #usr/share/doc/gettext/examples/hello-librep/po/de.po #usr/share/doc/gettext/examples/hello-librep/po/el.po +#usr/share/doc/gettext/examples/hello-librep/po/eo.po #usr/share/doc/gettext/examples/hello-librep/po/es.po +#usr/share/doc/gettext/examples/hello-librep/po/fi.po #usr/share/doc/gettext/examples/hello-librep/po/fr.po #usr/share/doc/gettext/examples/hello-librep/po/ga.po +#usr/share/doc/gettext/examples/hello-librep/po/hu.po +#usr/share/doc/gettext/examples/hello-librep/po/id.po #usr/share/doc/gettext/examples/hello-librep/po/it.po #usr/share/doc/gettext/examples/hello-librep/po/ja.po +#usr/share/doc/gettext/examples/hello-librep/po/ky.po +#usr/share/doc/gettext/examples/hello-librep/po/lv.po +#usr/share/doc/gettext/examples/hello-librep/po/ms.po +#usr/share/doc/gettext/examples/hello-librep/po/mt.po #usr/share/doc/gettext/examples/hello-librep/po/nl.po #usr/share/doc/gettext/examples/hello-librep/po/pl.po +#usr/share/doc/gettext/examples/hello-librep/po/pt.po #usr/share/doc/gettext/examples/hello-librep/po/ro.po #usr/share/doc/gettext/examples/hello-librep/po/ru.po #usr/share/doc/gettext/examples/hello-librep/po/sk.po +#usr/share/doc/gettext/examples/hello-librep/po/sl.po #usr/share/doc/gettext/examples/hello-librep/po/sr.po #usr/share/doc/gettext/examples/hello-librep/po/sv.po #usr/share/doc/gettext/examples/hello-librep/po/tr.po #usr/share/doc/gettext/examples/hello-librep/po/uk.po #usr/share/doc/gettext/examples/hello-librep/po/vi.po #usr/share/doc/gettext/examples/hello-librep/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-librep/po/zh_HK.po #usr/share/doc/gettext/examples/hello-librep/po/zh_TW.po #usr/share/doc/gettext/examples/hello-objc #usr/share/doc/gettext/examples/hello-objc-gnome @@ -662,25 +956,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc-gnome/po/Makevars #usr/share/doc/gettext/examples/hello-objc-gnome/po/POTFILES.in #usr/share/doc/gettext/examples/hello-objc-gnome/po/af.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/ast.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/bg.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ca.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/de.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/el.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/eo.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/es.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/fi.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/fr.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ga.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/hu.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/id.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/it.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ja.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/ky.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/lv.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/ms.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/mt.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/nl.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/pl.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/pt.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ro.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/ru.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/sk.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/sl.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/sr.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/sv.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/tr.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/uk.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/vi.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_HK.po #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_TW.po #usr/share/doc/gettext/examples/hello-objc-gnustep #usr/share/doc/gettext/examples/hello-objc-gnustep/AppController.h @@ -698,25 +1005,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LINGUAS #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LocaleAliases #usr/share/doc/gettext/examples/hello-objc-gnustep/po/af.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ast.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/bg.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ca.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/de.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/el.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/eo.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/es.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/fi.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/fr.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ga.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/hu.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/id.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/it.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/mt.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/nl.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/pl.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/pt.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ro.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ru.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sk.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/sl.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sr.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sv.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/tr.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/uk.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/vi.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_HK.po #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_TW.po #usr/share/doc/gettext/examples/hello-objc/INSTALL #usr/share/doc/gettext/examples/hello-objc/Makefile.am @@ -731,25 +1051,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-objc/po/Makevars #usr/share/doc/gettext/examples/hello-objc/po/POTFILES.in #usr/share/doc/gettext/examples/hello-objc/po/af.po +#usr/share/doc/gettext/examples/hello-objc/po/ast.po +#usr/share/doc/gettext/examples/hello-objc/po/bg.po #usr/share/doc/gettext/examples/hello-objc/po/ca.po #usr/share/doc/gettext/examples/hello-objc/po/de.po #usr/share/doc/gettext/examples/hello-objc/po/el.po +#usr/share/doc/gettext/examples/hello-objc/po/eo.po #usr/share/doc/gettext/examples/hello-objc/po/es.po +#usr/share/doc/gettext/examples/hello-objc/po/fi.po #usr/share/doc/gettext/examples/hello-objc/po/fr.po #usr/share/doc/gettext/examples/hello-objc/po/ga.po +#usr/share/doc/gettext/examples/hello-objc/po/hu.po +#usr/share/doc/gettext/examples/hello-objc/po/id.po #usr/share/doc/gettext/examples/hello-objc/po/it.po #usr/share/doc/gettext/examples/hello-objc/po/ja.po +#usr/share/doc/gettext/examples/hello-objc/po/ky.po +#usr/share/doc/gettext/examples/hello-objc/po/lv.po +#usr/share/doc/gettext/examples/hello-objc/po/ms.po +#usr/share/doc/gettext/examples/hello-objc/po/mt.po #usr/share/doc/gettext/examples/hello-objc/po/nl.po #usr/share/doc/gettext/examples/hello-objc/po/pl.po +#usr/share/doc/gettext/examples/hello-objc/po/pt.po #usr/share/doc/gettext/examples/hello-objc/po/ro.po #usr/share/doc/gettext/examples/hello-objc/po/ru.po #usr/share/doc/gettext/examples/hello-objc/po/sk.po +#usr/share/doc/gettext/examples/hello-objc/po/sl.po #usr/share/doc/gettext/examples/hello-objc/po/sr.po #usr/share/doc/gettext/examples/hello-objc/po/sv.po #usr/share/doc/gettext/examples/hello-objc/po/tr.po #usr/share/doc/gettext/examples/hello-objc/po/uk.po #usr/share/doc/gettext/examples/hello-objc/po/vi.po #usr/share/doc/gettext/examples/hello-objc/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-objc/po/zh_HK.po #usr/share/doc/gettext/examples/hello-objc/po/zh_TW.po #usr/share/doc/gettext/examples/hello-pascal #usr/share/doc/gettext/examples/hello-pascal/INSTALL @@ -765,25 +1098,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-pascal/po/LINGUAS #usr/share/doc/gettext/examples/hello-pascal/po/Makefile.am #usr/share/doc/gettext/examples/hello-pascal/po/af.po +#usr/share/doc/gettext/examples/hello-pascal/po/ast.po +#usr/share/doc/gettext/examples/hello-pascal/po/bg.po #usr/share/doc/gettext/examples/hello-pascal/po/ca.po #usr/share/doc/gettext/examples/hello-pascal/po/de.po #usr/share/doc/gettext/examples/hello-pascal/po/el.po +#usr/share/doc/gettext/examples/hello-pascal/po/eo.po #usr/share/doc/gettext/examples/hello-pascal/po/es.po +#usr/share/doc/gettext/examples/hello-pascal/po/fi.po #usr/share/doc/gettext/examples/hello-pascal/po/fr.po #usr/share/doc/gettext/examples/hello-pascal/po/ga.po +#usr/share/doc/gettext/examples/hello-pascal/po/hu.po +#usr/share/doc/gettext/examples/hello-pascal/po/id.po #usr/share/doc/gettext/examples/hello-pascal/po/it.po #usr/share/doc/gettext/examples/hello-pascal/po/ja.po +#usr/share/doc/gettext/examples/hello-pascal/po/ky.po +#usr/share/doc/gettext/examples/hello-pascal/po/lv.po +#usr/share/doc/gettext/examples/hello-pascal/po/ms.po +#usr/share/doc/gettext/examples/hello-pascal/po/mt.po #usr/share/doc/gettext/examples/hello-pascal/po/nl.po #usr/share/doc/gettext/examples/hello-pascal/po/pl.po +#usr/share/doc/gettext/examples/hello-pascal/po/pt.po #usr/share/doc/gettext/examples/hello-pascal/po/ro.po #usr/share/doc/gettext/examples/hello-pascal/po/ru.po #usr/share/doc/gettext/examples/hello-pascal/po/sk.po +#usr/share/doc/gettext/examples/hello-pascal/po/sl.po #usr/share/doc/gettext/examples/hello-pascal/po/sr.po #usr/share/doc/gettext/examples/hello-pascal/po/sv.po #usr/share/doc/gettext/examples/hello-pascal/po/tr.po #usr/share/doc/gettext/examples/hello-pascal/po/uk.po #usr/share/doc/gettext/examples/hello-pascal/po/vi.po #usr/share/doc/gettext/examples/hello-pascal/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-pascal/po/zh_HK.po #usr/share/doc/gettext/examples/hello-pascal/po/zh_TW.po #usr/share/doc/gettext/examples/hello-perl #usr/share/doc/gettext/examples/hello-perl/INSTALL @@ -799,25 +1145,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-perl/po/LINGUAS #usr/share/doc/gettext/examples/hello-perl/po/Makefile.am #usr/share/doc/gettext/examples/hello-perl/po/af.po +#usr/share/doc/gettext/examples/hello-perl/po/ast.po +#usr/share/doc/gettext/examples/hello-perl/po/bg.po #usr/share/doc/gettext/examples/hello-perl/po/ca.po #usr/share/doc/gettext/examples/hello-perl/po/de.po #usr/share/doc/gettext/examples/hello-perl/po/el.po +#usr/share/doc/gettext/examples/hello-perl/po/eo.po #usr/share/doc/gettext/examples/hello-perl/po/es.po +#usr/share/doc/gettext/examples/hello-perl/po/fi.po #usr/share/doc/gettext/examples/hello-perl/po/fr.po #usr/share/doc/gettext/examples/hello-perl/po/ga.po +#usr/share/doc/gettext/examples/hello-perl/po/hu.po +#usr/share/doc/gettext/examples/hello-perl/po/id.po #usr/share/doc/gettext/examples/hello-perl/po/it.po #usr/share/doc/gettext/examples/hello-perl/po/ja.po +#usr/share/doc/gettext/examples/hello-perl/po/ky.po +#usr/share/doc/gettext/examples/hello-perl/po/lv.po +#usr/share/doc/gettext/examples/hello-perl/po/ms.po +#usr/share/doc/gettext/examples/hello-perl/po/mt.po #usr/share/doc/gettext/examples/hello-perl/po/nl.po #usr/share/doc/gettext/examples/hello-perl/po/pl.po +#usr/share/doc/gettext/examples/hello-perl/po/pt.po #usr/share/doc/gettext/examples/hello-perl/po/ro.po #usr/share/doc/gettext/examples/hello-perl/po/ru.po #usr/share/doc/gettext/examples/hello-perl/po/sk.po +#usr/share/doc/gettext/examples/hello-perl/po/sl.po #usr/share/doc/gettext/examples/hello-perl/po/sr.po #usr/share/doc/gettext/examples/hello-perl/po/sv.po #usr/share/doc/gettext/examples/hello-perl/po/tr.po #usr/share/doc/gettext/examples/hello-perl/po/uk.po #usr/share/doc/gettext/examples/hello-perl/po/vi.po #usr/share/doc/gettext/examples/hello-perl/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-perl/po/zh_HK.po #usr/share/doc/gettext/examples/hello-perl/po/zh_TW.po #usr/share/doc/gettext/examples/hello-php #usr/share/doc/gettext/examples/hello-php/INSTALL @@ -833,25 +1192,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-php/po/LINGUAS #usr/share/doc/gettext/examples/hello-php/po/Makefile.am #usr/share/doc/gettext/examples/hello-php/po/af.po +#usr/share/doc/gettext/examples/hello-php/po/ast.po +#usr/share/doc/gettext/examples/hello-php/po/bg.po #usr/share/doc/gettext/examples/hello-php/po/ca.po #usr/share/doc/gettext/examples/hello-php/po/de.po #usr/share/doc/gettext/examples/hello-php/po/el.po +#usr/share/doc/gettext/examples/hello-php/po/eo.po #usr/share/doc/gettext/examples/hello-php/po/es.po +#usr/share/doc/gettext/examples/hello-php/po/fi.po #usr/share/doc/gettext/examples/hello-php/po/fr.po #usr/share/doc/gettext/examples/hello-php/po/ga.po +#usr/share/doc/gettext/examples/hello-php/po/hu.po +#usr/share/doc/gettext/examples/hello-php/po/id.po #usr/share/doc/gettext/examples/hello-php/po/it.po #usr/share/doc/gettext/examples/hello-php/po/ja.po +#usr/share/doc/gettext/examples/hello-php/po/ky.po +#usr/share/doc/gettext/examples/hello-php/po/lv.po +#usr/share/doc/gettext/examples/hello-php/po/ms.po +#usr/share/doc/gettext/examples/hello-php/po/mt.po #usr/share/doc/gettext/examples/hello-php/po/nl.po #usr/share/doc/gettext/examples/hello-php/po/pl.po +#usr/share/doc/gettext/examples/hello-php/po/pt.po #usr/share/doc/gettext/examples/hello-php/po/ro.po #usr/share/doc/gettext/examples/hello-php/po/ru.po #usr/share/doc/gettext/examples/hello-php/po/sk.po +#usr/share/doc/gettext/examples/hello-php/po/sl.po #usr/share/doc/gettext/examples/hello-php/po/sr.po #usr/share/doc/gettext/examples/hello-php/po/sv.po #usr/share/doc/gettext/examples/hello-php/po/tr.po #usr/share/doc/gettext/examples/hello-php/po/uk.po #usr/share/doc/gettext/examples/hello-php/po/vi.po #usr/share/doc/gettext/examples/hello-php/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-php/po/zh_HK.po #usr/share/doc/gettext/examples/hello-php/po/zh_TW.po #usr/share/doc/gettext/examples/hello-python #usr/share/doc/gettext/examples/hello-python/INSTALL @@ -866,25 +1238,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-python/po/LINGUAS #usr/share/doc/gettext/examples/hello-python/po/Makefile.am #usr/share/doc/gettext/examples/hello-python/po/af.po +#usr/share/doc/gettext/examples/hello-python/po/ast.po +#usr/share/doc/gettext/examples/hello-python/po/bg.po #usr/share/doc/gettext/examples/hello-python/po/ca.po #usr/share/doc/gettext/examples/hello-python/po/de.po #usr/share/doc/gettext/examples/hello-python/po/el.po +#usr/share/doc/gettext/examples/hello-python/po/eo.po #usr/share/doc/gettext/examples/hello-python/po/es.po +#usr/share/doc/gettext/examples/hello-python/po/fi.po #usr/share/doc/gettext/examples/hello-python/po/fr.po #usr/share/doc/gettext/examples/hello-python/po/ga.po +#usr/share/doc/gettext/examples/hello-python/po/hu.po +#usr/share/doc/gettext/examples/hello-python/po/id.po #usr/share/doc/gettext/examples/hello-python/po/it.po #usr/share/doc/gettext/examples/hello-python/po/ja.po +#usr/share/doc/gettext/examples/hello-python/po/ky.po +#usr/share/doc/gettext/examples/hello-python/po/lv.po +#usr/share/doc/gettext/examples/hello-python/po/ms.po +#usr/share/doc/gettext/examples/hello-python/po/mt.po #usr/share/doc/gettext/examples/hello-python/po/nl.po #usr/share/doc/gettext/examples/hello-python/po/pl.po +#usr/share/doc/gettext/examples/hello-python/po/pt.po #usr/share/doc/gettext/examples/hello-python/po/ro.po #usr/share/doc/gettext/examples/hello-python/po/ru.po #usr/share/doc/gettext/examples/hello-python/po/sk.po +#usr/share/doc/gettext/examples/hello-python/po/sl.po #usr/share/doc/gettext/examples/hello-python/po/sr.po #usr/share/doc/gettext/examples/hello-python/po/sv.po #usr/share/doc/gettext/examples/hello-python/po/tr.po #usr/share/doc/gettext/examples/hello-python/po/uk.po #usr/share/doc/gettext/examples/hello-python/po/vi.po #usr/share/doc/gettext/examples/hello-python/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-python/po/zh_HK.po #usr/share/doc/gettext/examples/hello-python/po/zh_TW.po #usr/share/doc/gettext/examples/hello-sh #usr/share/doc/gettext/examples/hello-sh/INSTALL @@ -899,25 +1284,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-sh/po/LINGUAS #usr/share/doc/gettext/examples/hello-sh/po/Makefile.am #usr/share/doc/gettext/examples/hello-sh/po/af.po +#usr/share/doc/gettext/examples/hello-sh/po/ast.po +#usr/share/doc/gettext/examples/hello-sh/po/bg.po #usr/share/doc/gettext/examples/hello-sh/po/ca.po #usr/share/doc/gettext/examples/hello-sh/po/de.po #usr/share/doc/gettext/examples/hello-sh/po/el.po +#usr/share/doc/gettext/examples/hello-sh/po/eo.po #usr/share/doc/gettext/examples/hello-sh/po/es.po +#usr/share/doc/gettext/examples/hello-sh/po/fi.po #usr/share/doc/gettext/examples/hello-sh/po/fr.po #usr/share/doc/gettext/examples/hello-sh/po/ga.po +#usr/share/doc/gettext/examples/hello-sh/po/hu.po +#usr/share/doc/gettext/examples/hello-sh/po/id.po #usr/share/doc/gettext/examples/hello-sh/po/it.po #usr/share/doc/gettext/examples/hello-sh/po/ja.po +#usr/share/doc/gettext/examples/hello-sh/po/ky.po +#usr/share/doc/gettext/examples/hello-sh/po/lv.po +#usr/share/doc/gettext/examples/hello-sh/po/ms.po +#usr/share/doc/gettext/examples/hello-sh/po/mt.po #usr/share/doc/gettext/examples/hello-sh/po/nl.po #usr/share/doc/gettext/examples/hello-sh/po/pl.po +#usr/share/doc/gettext/examples/hello-sh/po/pt.po #usr/share/doc/gettext/examples/hello-sh/po/ro.po #usr/share/doc/gettext/examples/hello-sh/po/ru.po #usr/share/doc/gettext/examples/hello-sh/po/sk.po +#usr/share/doc/gettext/examples/hello-sh/po/sl.po #usr/share/doc/gettext/examples/hello-sh/po/sr.po #usr/share/doc/gettext/examples/hello-sh/po/sv.po #usr/share/doc/gettext/examples/hello-sh/po/tr.po #usr/share/doc/gettext/examples/hello-sh/po/uk.po #usr/share/doc/gettext/examples/hello-sh/po/vi.po #usr/share/doc/gettext/examples/hello-sh/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-sh/po/zh_HK.po #usr/share/doc/gettext/examples/hello-sh/po/zh_TW.po #usr/share/doc/gettext/examples/hello-smalltalk #usr/share/doc/gettext/examples/hello-smalltalk/INSTALL @@ -932,25 +1330,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-smalltalk/po/LINGUAS #usr/share/doc/gettext/examples/hello-smalltalk/po/Makefile.am #usr/share/doc/gettext/examples/hello-smalltalk/po/af.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/ast.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/bg.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ca.po #usr/share/doc/gettext/examples/hello-smalltalk/po/de.po #usr/share/doc/gettext/examples/hello-smalltalk/po/el.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/eo.po #usr/share/doc/gettext/examples/hello-smalltalk/po/es.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/fi.po #usr/share/doc/gettext/examples/hello-smalltalk/po/fr.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ga.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/hu.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/id.po #usr/share/doc/gettext/examples/hello-smalltalk/po/it.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ja.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/ky.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/lv.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/ms.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/mt.po #usr/share/doc/gettext/examples/hello-smalltalk/po/nl.po #usr/share/doc/gettext/examples/hello-smalltalk/po/pl.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/pt.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ro.po #usr/share/doc/gettext/examples/hello-smalltalk/po/ru.po #usr/share/doc/gettext/examples/hello-smalltalk/po/sk.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/sl.po #usr/share/doc/gettext/examples/hello-smalltalk/po/sr.po #usr/share/doc/gettext/examples/hello-smalltalk/po/sv.po #usr/share/doc/gettext/examples/hello-smalltalk/po/tr.po #usr/share/doc/gettext/examples/hello-smalltalk/po/uk.po #usr/share/doc/gettext/examples/hello-smalltalk/po/vi.po #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-smalltalk/po/zh_HK.po #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_TW.po #usr/share/doc/gettext/examples/hello-tcl #usr/share/doc/gettext/examples/hello-tcl-tk @@ -966,25 +1377,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-tcl-tk/po/LINGUAS #usr/share/doc/gettext/examples/hello-tcl-tk/po/Makefile.am #usr/share/doc/gettext/examples/hello-tcl-tk/po/af.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/ast.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/bg.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ca.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/de.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/el.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/eo.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/es.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/fi.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/fr.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ga.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/hu.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/id.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/it.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ja.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/ky.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/lv.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/ms.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/mt.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/nl.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/pl.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/pt.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ro.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/ru.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/sk.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/sl.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/sr.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/sv.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/tr.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/uk.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/vi.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_HK.po #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_TW.po #usr/share/doc/gettext/examples/hello-tcl/INSTALL #usr/share/doc/gettext/examples/hello-tcl/Makefile.am @@ -998,25 +1422,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-tcl/po/LINGUAS #usr/share/doc/gettext/examples/hello-tcl/po/Makefile.am #usr/share/doc/gettext/examples/hello-tcl/po/af.po +#usr/share/doc/gettext/examples/hello-tcl/po/ast.po +#usr/share/doc/gettext/examples/hello-tcl/po/bg.po #usr/share/doc/gettext/examples/hello-tcl/po/ca.po #usr/share/doc/gettext/examples/hello-tcl/po/de.po #usr/share/doc/gettext/examples/hello-tcl/po/el.po +#usr/share/doc/gettext/examples/hello-tcl/po/eo.po #usr/share/doc/gettext/examples/hello-tcl/po/es.po +#usr/share/doc/gettext/examples/hello-tcl/po/fi.po #usr/share/doc/gettext/examples/hello-tcl/po/fr.po #usr/share/doc/gettext/examples/hello-tcl/po/ga.po +#usr/share/doc/gettext/examples/hello-tcl/po/hu.po +#usr/share/doc/gettext/examples/hello-tcl/po/id.po #usr/share/doc/gettext/examples/hello-tcl/po/it.po #usr/share/doc/gettext/examples/hello-tcl/po/ja.po +#usr/share/doc/gettext/examples/hello-tcl/po/ky.po +#usr/share/doc/gettext/examples/hello-tcl/po/lv.po +#usr/share/doc/gettext/examples/hello-tcl/po/ms.po +#usr/share/doc/gettext/examples/hello-tcl/po/mt.po #usr/share/doc/gettext/examples/hello-tcl/po/nl.po #usr/share/doc/gettext/examples/hello-tcl/po/pl.po +#usr/share/doc/gettext/examples/hello-tcl/po/pt.po #usr/share/doc/gettext/examples/hello-tcl/po/ro.po #usr/share/doc/gettext/examples/hello-tcl/po/ru.po #usr/share/doc/gettext/examples/hello-tcl/po/sk.po +#usr/share/doc/gettext/examples/hello-tcl/po/sl.po #usr/share/doc/gettext/examples/hello-tcl/po/sr.po #usr/share/doc/gettext/examples/hello-tcl/po/sv.po #usr/share/doc/gettext/examples/hello-tcl/po/tr.po #usr/share/doc/gettext/examples/hello-tcl/po/uk.po #usr/share/doc/gettext/examples/hello-tcl/po/vi.po #usr/share/doc/gettext/examples/hello-tcl/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-tcl/po/zh_HK.po #usr/share/doc/gettext/examples/hello-tcl/po/zh_TW.po #usr/share/doc/gettext/examples/hello-ycp #usr/share/doc/gettext/examples/hello-ycp/INSTALL @@ -1031,25 +1468,38 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/examples/hello-ycp/po/LINGUAS #usr/share/doc/gettext/examples/hello-ycp/po/Makefile.am #usr/share/doc/gettext/examples/hello-ycp/po/af.po +#usr/share/doc/gettext/examples/hello-ycp/po/ast.po +#usr/share/doc/gettext/examples/hello-ycp/po/bg.po #usr/share/doc/gettext/examples/hello-ycp/po/ca.po #usr/share/doc/gettext/examples/hello-ycp/po/de.po #usr/share/doc/gettext/examples/hello-ycp/po/el.po +#usr/share/doc/gettext/examples/hello-ycp/po/eo.po #usr/share/doc/gettext/examples/hello-ycp/po/es.po +#usr/share/doc/gettext/examples/hello-ycp/po/fi.po #usr/share/doc/gettext/examples/hello-ycp/po/fr.po #usr/share/doc/gettext/examples/hello-ycp/po/ga.po +#usr/share/doc/gettext/examples/hello-ycp/po/hu.po +#usr/share/doc/gettext/examples/hello-ycp/po/id.po #usr/share/doc/gettext/examples/hello-ycp/po/it.po #usr/share/doc/gettext/examples/hello-ycp/po/ja.po +#usr/share/doc/gettext/examples/hello-ycp/po/ky.po +#usr/share/doc/gettext/examples/hello-ycp/po/lv.po +#usr/share/doc/gettext/examples/hello-ycp/po/ms.po +#usr/share/doc/gettext/examples/hello-ycp/po/mt.po #usr/share/doc/gettext/examples/hello-ycp/po/nl.po #usr/share/doc/gettext/examples/hello-ycp/po/pl.po +#usr/share/doc/gettext/examples/hello-ycp/po/pt.po #usr/share/doc/gettext/examples/hello-ycp/po/ro.po #usr/share/doc/gettext/examples/hello-ycp/po/ru.po #usr/share/doc/gettext/examples/hello-ycp/po/sk.po +#usr/share/doc/gettext/examples/hello-ycp/po/sl.po #usr/share/doc/gettext/examples/hello-ycp/po/sr.po #usr/share/doc/gettext/examples/hello-ycp/po/sv.po #usr/share/doc/gettext/examples/hello-ycp/po/tr.po #usr/share/doc/gettext/examples/hello-ycp/po/uk.po #usr/share/doc/gettext/examples/hello-ycp/po/vi.po #usr/share/doc/gettext/examples/hello-ycp/po/zh_CN.po +#usr/share/doc/gettext/examples/hello-ycp/po/zh_HK.po #usr/share/doc/gettext/examples/hello-ycp/po/zh_TW.po #usr/share/doc/gettext/examples/installpaths #usr/share/doc/gettext/gettext.1.html @@ -1069,6 +1519,9 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/gettext_20.html #usr/share/doc/gettext/gettext_21.html #usr/share/doc/gettext/gettext_22.html +#usr/share/doc/gettext/gettext_23.html +#usr/share/doc/gettext/gettext_24.html +#usr/share/doc/gettext/gettext_25.html #usr/share/doc/gettext/gettext_3.html #usr/share/doc/gettext/gettext_4.html #usr/share/doc/gettext/gettext_5.html @@ -1079,35 +1532,6 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/gettext_foot.html #usr/share/doc/gettext/gettext_toc.html #usr/share/doc/gettext/gettextize.1.html -#usr/share/doc/gettext/javadoc1 -#usr/share/doc/gettext/javadoc1/AllNames.html -#usr/share/doc/gettext/javadoc1/gnu.gettext.GettextResource.html -#usr/share/doc/gettext/javadoc1/images -#usr/share/doc/gettext/javadoc1/images/blue-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/blue-ball.gif -#usr/share/doc/gettext/javadoc1/images/class-index.gif -#usr/share/doc/gettext/javadoc1/images/constructor-index.gif -#usr/share/doc/gettext/javadoc1/images/constructors.gif -#usr/share/doc/gettext/javadoc1/images/cyan-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/cyan-ball.gif -#usr/share/doc/gettext/javadoc1/images/error-index.gif -#usr/share/doc/gettext/javadoc1/images/exception-index.gif -#usr/share/doc/gettext/javadoc1/images/green-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/green-ball.gif -#usr/share/doc/gettext/javadoc1/images/interface-index.gif -#usr/share/doc/gettext/javadoc1/images/magenta-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/magenta-ball.gif -#usr/share/doc/gettext/javadoc1/images/method-index.gif -#usr/share/doc/gettext/javadoc1/images/methods.gif -#usr/share/doc/gettext/javadoc1/images/package-index.gif -#usr/share/doc/gettext/javadoc1/images/red-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/red-ball.gif -#usr/share/doc/gettext/javadoc1/images/variable-index.gif -#usr/share/doc/gettext/javadoc1/images/variables.gif -#usr/share/doc/gettext/javadoc1/images/yellow-ball-small.gif -#usr/share/doc/gettext/javadoc1/images/yellow-ball.gif -#usr/share/doc/gettext/javadoc1/packages.html -#usr/share/doc/gettext/javadoc1/tree.html #usr/share/doc/gettext/javadoc2 #usr/share/doc/gettext/javadoc2/allclasses-frame.html #usr/share/doc/gettext/javadoc2/deprecated-list.html @@ -1141,14 +1565,15 @@ usr/lib/preloadable_libintl.so #usr/share/doc/gettext/msguniq.1.html #usr/share/doc/gettext/ngettext.1.html #usr/share/doc/gettext/ngettext.3.html +#usr/share/doc/gettext/recode-sr-latin.1.html #usr/share/doc/gettext/textdomain.3.html #usr/share/doc/gettext/tutorial.html #usr/share/doc/gettext/xgettext.1.html #usr/share/doc/libasprintf -#usr/share/doc/libasprintf/autosprintf.html +#usr/share/doc/libasprintf/autosprintf_all.html #usr/share/gettext #usr/share/gettext/ABOUT-NLS -#usr/share/gettext/archive.tar.gz +#usr/share/gettext/archive.dir.tar.gz #usr/share/gettext/config.rpath #usr/share/gettext/gettext.h #usr/share/gettext/intl @@ -1166,15 +1591,19 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/intl/dngettext.c #usr/share/gettext/intl/eval-plural.h #usr/share/gettext/intl/explodename.c +#usr/share/gettext/intl/export.h #usr/share/gettext/intl/finddomain.c #usr/share/gettext/intl/gettext.c #usr/share/gettext/intl/gettextP.h #usr/share/gettext/intl/gmo.h +#usr/share/gettext/intl/hash-string.c #usr/share/gettext/intl/hash-string.h #usr/share/gettext/intl/intl-compat.c +#usr/share/gettext/intl/intl-exports.c #usr/share/gettext/intl/l10nflist.c #usr/share/gettext/intl/langprefs.c #usr/share/gettext/intl/libgnuintl.h.in +#usr/share/gettext/intl/libintl.rc #usr/share/gettext/intl/loadinfo.h #usr/share/gettext/intl/loadmsgcat.c #usr/share/gettext/intl/localcharset.c @@ -1182,6 +1611,8 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/intl/locale.alias #usr/share/gettext/intl/localealias.c #usr/share/gettext/intl/localename.c +#usr/share/gettext/intl/lock.c +#usr/share/gettext/intl/lock.h #usr/share/gettext/intl/log.c #usr/share/gettext/intl/ngettext.c #usr/share/gettext/intl/os2compat.c @@ -1200,13 +1631,18 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/intl/ref-del.sin #usr/share/gettext/intl/relocatable.c #usr/share/gettext/intl/relocatable.h +#usr/share/gettext/intl/setlocale.c #usr/share/gettext/intl/textdomain.c +#usr/share/gettext/intl/threadlib.c +#usr/share/gettext/intl/tsearch.c +#usr/share/gettext/intl/tsearch.h #usr/share/gettext/intl/vasnprintf.c #usr/share/gettext/intl/vasnprintf.h #usr/share/gettext/intl/vasnwprintf.h +#usr/share/gettext/intl/version.c #usr/share/gettext/intl/wprintf-parse.h #usr/share/gettext/intl/xsize.h -#usr/share/gettext/mkinstalldirs +#usr/share/gettext/javaversion.class #usr/share/gettext/msgunfmt.tcl #usr/share/gettext/po #usr/share/gettext/po/Makefile.in.in @@ -1236,6 +1672,15 @@ usr/lib/preloadable_libintl.so #usr/share/gettext/projects/TP/trigger #usr/share/gettext/projects/index #usr/share/gettext/projects/team-address +#usr/share/gettext/styles +#usr/share/gettext/styles/po-default.css +#usr/share/gettext/styles/po-emacs-x.css +#usr/share/gettext/styles/po-emacs-xterm.css +#usr/share/gettext/styles/po-emacs-xterm16.css +#usr/share/gettext/styles/po-emacs-xterm256.css +#usr/share/gettext/styles/po-vim.css +#usr/share/info/autosprintf.info +#usr/share/info/gettext.info #usr/share/man/man1/autopoint.1 #usr/share/man/man1/envsubst.1 #usr/share/man/man1/gettext.1 @@ -1255,6 +1700,7 @@ usr/lib/preloadable_libintl.so #usr/share/man/man1/msgunfmt.1 #usr/share/man/man1/msguniq.1 #usr/share/man/man1/ngettext.1 +#usr/share/man/man1/recode-sr-latin.1 #usr/share/man/man1/xgettext.1 #usr/share/man/man3/bind_textdomain_codeset.3 #usr/share/man/man3/bindtextdomain.3 diff --git a/config/rootfiles/packages/glib b/config/rootfiles/common/glib similarity index 60% rename from config/rootfiles/packages/glib rename to config/rootfiles/common/glib index d4913a261a..be6d57def5 100644 --- a/config/rootfiles/packages/glib +++ b/config/rootfiles/common/glib @@ -1,13 +1,27 @@ +#etc/bash_completion.d +#etc/bash_completion.d/gdbus-bash-completion.sh +#etc/bash_completion.d/gresource-bash-completion.sh +#etc/bash_completion.d/gsettings-bash-completion.sh +#usr/bin/gdbus +#usr/bin/gdbus-codegen +#usr/bin/gio-querymodules +#usr/bin/glib-compile-resources +#usr/bin/glib-compile-schemas #usr/bin/glib-genmarshal #usr/bin/glib-gettextize #usr/bin/glib-mkenums #usr/bin/gobject-query +#usr/bin/gresource +#usr/bin/gsettings #usr/bin/gtester #usr/bin/gtester-report #usr/include/gio-unix-2.0 #usr/include/gio-unix-2.0/gio #usr/include/gio-unix-2.0/gio/gdesktopappinfo.h +#usr/include/gio-unix-2.0/gio/gfiledescriptorbased.h #usr/include/gio-unix-2.0/gio/gunixconnection.h +#usr/include/gio-unix-2.0/gio/gunixcredentialsmessage.h +#usr/include/gio-unix-2.0/gio/gunixfdlist.h #usr/include/gio-unix-2.0/gio/gunixfdmessage.h #usr/include/gio-unix-2.0/gio/gunixinputstream.h #usr/include/gio-unix-2.0/gio/gunixmounts.h @@ -15,15 +29,48 @@ #usr/include/gio-unix-2.0/gio/gunixsocketaddress.h #usr/include/glib-2.0 #usr/include/glib-2.0/gio +#usr/include/glib-2.0/gio/gaction.h +#usr/include/glib-2.0/gio/gactiongroup.h +#usr/include/glib-2.0/gio/gactiongroupexporter.h +#usr/include/glib-2.0/gio/gactionmap.h #usr/include/glib-2.0/gio/gappinfo.h +#usr/include/glib-2.0/gio/gapplication.h +#usr/include/glib-2.0/gio/gapplicationcommandline.h #usr/include/glib-2.0/gio/gasyncinitable.h #usr/include/glib-2.0/gio/gasyncresult.h #usr/include/glib-2.0/gio/gbufferedinputstream.h #usr/include/glib-2.0/gio/gbufferedoutputstream.h #usr/include/glib-2.0/gio/gcancellable.h +#usr/include/glib-2.0/gio/gcharsetconverter.h #usr/include/glib-2.0/gio/gcontenttype.h +#usr/include/glib-2.0/gio/gconverter.h +#usr/include/glib-2.0/gio/gconverterinputstream.h +#usr/include/glib-2.0/gio/gconverteroutputstream.h +#usr/include/glib-2.0/gio/gcredentials.h #usr/include/glib-2.0/gio/gdatainputstream.h #usr/include/glib-2.0/gio/gdataoutputstream.h +#usr/include/glib-2.0/gio/gdbusactiongroup.h +#usr/include/glib-2.0/gio/gdbusaddress.h +#usr/include/glib-2.0/gio/gdbusauthobserver.h +#usr/include/glib-2.0/gio/gdbusconnection.h +#usr/include/glib-2.0/gio/gdbuserror.h +#usr/include/glib-2.0/gio/gdbusinterface.h +#usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h +#usr/include/glib-2.0/gio/gdbusintrospection.h +#usr/include/glib-2.0/gio/gdbusmenumodel.h +#usr/include/glib-2.0/gio/gdbusmessage.h +#usr/include/glib-2.0/gio/gdbusmethodinvocation.h +#usr/include/glib-2.0/gio/gdbusnameowning.h +#usr/include/glib-2.0/gio/gdbusnamewatching.h +#usr/include/glib-2.0/gio/gdbusobject.h +#usr/include/glib-2.0/gio/gdbusobjectmanager.h +#usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h +#usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h +#usr/include/glib-2.0/gio/gdbusobjectproxy.h +#usr/include/glib-2.0/gio/gdbusobjectskeleton.h +#usr/include/glib-2.0/gio/gdbusproxy.h +#usr/include/glib-2.0/gio/gdbusserver.h +#usr/include/glib-2.0/gio/gdbusutils.h #usr/include/glib-2.0/gio/gdrive.h #usr/include/glib-2.0/gio/gemblem.h #usr/include/glib-2.0/gio/gemblemedicon.h @@ -41,6 +88,7 @@ #usr/include/glib-2.0/gio/gfilteroutputstream.h #usr/include/glib-2.0/gio/gicon.h #usr/include/glib-2.0/gio/ginetaddress.h +#usr/include/glib-2.0/gio/ginetaddressmask.h #usr/include/glib-2.0/gio/ginetsocketaddress.h #usr/include/glib-2.0/gio/ginitable.h #usr/include/glib-2.0/gio/ginputstream.h @@ -55,15 +103,34 @@ #usr/include/glib-2.0/gio/gloadableicon.h #usr/include/glib-2.0/gio/gmemoryinputstream.h #usr/include/glib-2.0/gio/gmemoryoutputstream.h +#usr/include/glib-2.0/gio/gmenu.h +#usr/include/glib-2.0/gio/gmenuexporter.h +#usr/include/glib-2.0/gio/gmenumodel.h #usr/include/glib-2.0/gio/gmount.h #usr/include/glib-2.0/gio/gmountoperation.h #usr/include/glib-2.0/gio/gnativevolumemonitor.h #usr/include/glib-2.0/gio/gnetworkaddress.h +#usr/include/glib-2.0/gio/gnetworkmonitor.h #usr/include/glib-2.0/gio/gnetworkservice.h #usr/include/glib-2.0/gio/goutputstream.h +#usr/include/glib-2.0/gio/gpermission.h +#usr/include/glib-2.0/gio/gpollableinputstream.h +#usr/include/glib-2.0/gio/gpollableoutputstream.h +#usr/include/glib-2.0/gio/gproxy.h +#usr/include/glib-2.0/gio/gproxyaddress.h +#usr/include/glib-2.0/gio/gproxyaddressenumerator.h +#usr/include/glib-2.0/gio/gproxyresolver.h +#usr/include/glib-2.0/gio/gremoteactiongroup.h #usr/include/glib-2.0/gio/gresolver.h +#usr/include/glib-2.0/gio/gresource.h #usr/include/glib-2.0/gio/gseekable.h +#usr/include/glib-2.0/gio/gsettings.h +#usr/include/glib-2.0/gio/gsettingsbackend.h +#usr/include/glib-2.0/gio/gsettingsschema.h +#usr/include/glib-2.0/gio/gsimpleaction.h +#usr/include/glib-2.0/gio/gsimpleactiongroup.h #usr/include/glib-2.0/gio/gsimpleasyncresult.h +#usr/include/glib-2.0/gio/gsimplepermission.h #usr/include/glib-2.0/gio/gsocket.h #usr/include/glib-2.0/gio/gsocketaddress.h #usr/include/glib-2.0/gio/gsocketaddressenumerator.h @@ -75,31 +142,56 @@ #usr/include/glib-2.0/gio/gsocketservice.h #usr/include/glib-2.0/gio/gsrvtarget.h #usr/include/glib-2.0/gio/gtcpconnection.h +#usr/include/glib-2.0/gio/gtcpwrapperconnection.h #usr/include/glib-2.0/gio/gthemedicon.h #usr/include/glib-2.0/gio/gthreadedsocketservice.h +#usr/include/glib-2.0/gio/gtlsbackend.h +#usr/include/glib-2.0/gio/gtlscertificate.h +#usr/include/glib-2.0/gio/gtlsclientconnection.h +#usr/include/glib-2.0/gio/gtlsconnection.h +#usr/include/glib-2.0/gio/gtlsdatabase.h +#usr/include/glib-2.0/gio/gtlsfiledatabase.h +#usr/include/glib-2.0/gio/gtlsinteraction.h +#usr/include/glib-2.0/gio/gtlspassword.h +#usr/include/glib-2.0/gio/gtlsserverconnection.h #usr/include/glib-2.0/gio/gvfs.h #usr/include/glib-2.0/gio/gvolume.h #usr/include/glib-2.0/gio/gvolumemonitor.h +#usr/include/glib-2.0/gio/gzlibcompressor.h +#usr/include/glib-2.0/gio/gzlibdecompressor.h #usr/include/glib-2.0/glib #usr/include/glib-2.0/glib-object.h +#usr/include/glib-2.0/glib-unix.h #usr/include/glib-2.0/glib.h +#usr/include/glib-2.0/glib/deprecated +#usr/include/glib-2.0/glib/deprecated/gallocator.h +#usr/include/glib-2.0/glib/deprecated/gcache.h +#usr/include/glib-2.0/glib/deprecated/gcompletion.h +#usr/include/glib-2.0/glib/deprecated/gmain.h +#usr/include/glib-2.0/glib/deprecated/grel.h +#usr/include/glib-2.0/glib/deprecated/gthread.h #usr/include/glib-2.0/glib/galloca.h #usr/include/glib-2.0/glib/garray.h #usr/include/glib-2.0/glib/gasyncqueue.h #usr/include/glib-2.0/glib/gatomic.h #usr/include/glib-2.0/glib/gbacktrace.h #usr/include/glib-2.0/glib/gbase64.h +#usr/include/glib-2.0/glib/gbitlock.h #usr/include/glib-2.0/glib/gbookmarkfile.h -#usr/include/glib-2.0/glib/gcache.h +#usr/include/glib-2.0/glib/gbytes.h +#usr/include/glib-2.0/glib/gcharset.h #usr/include/glib-2.0/glib/gchecksum.h -#usr/include/glib-2.0/glib/gcompletion.h #usr/include/glib-2.0/glib/gconvert.h #usr/include/glib-2.0/glib/gdataset.h #usr/include/glib-2.0/glib/gdate.h +#usr/include/glib-2.0/glib/gdatetime.h #usr/include/glib-2.0/glib/gdir.h +#usr/include/glib-2.0/glib/genviron.h #usr/include/glib-2.0/glib/gerror.h #usr/include/glib-2.0/glib/gfileutils.h +#usr/include/glib-2.0/glib/ggettext.h #usr/include/glib-2.0/glib/ghash.h +#usr/include/glib-2.0/glib/ghmac.h #usr/include/glib-2.0/glib/ghook.h #usr/include/glib-2.0/glib/ghostutils.h #usr/include/glib-2.0/glib/gi18n-lib.h @@ -124,7 +216,6 @@ #usr/include/glib-2.0/glib/gqueue.h #usr/include/glib-2.0/glib/grand.h #usr/include/glib-2.0/glib/gregex.h -#usr/include/glib-2.0/glib/grel.h #usr/include/glib-2.0/glib/gscanner.h #usr/include/glib-2.0/glib/gsequence.h #usr/include/glib-2.0/glib/gshell.h @@ -134,21 +225,30 @@ #usr/include/glib-2.0/glib/gstdio.h #usr/include/glib-2.0/glib/gstrfuncs.h #usr/include/glib-2.0/glib/gstring.h +#usr/include/glib-2.0/glib/gstringchunk.h #usr/include/glib-2.0/glib/gtestutils.h #usr/include/glib-2.0/glib/gthread.h #usr/include/glib-2.0/glib/gthreadpool.h #usr/include/glib-2.0/glib/gtimer.h +#usr/include/glib-2.0/glib/gtimezone.h +#usr/include/glib-2.0/glib/gtrashstack.h #usr/include/glib-2.0/glib/gtree.h #usr/include/glib-2.0/glib/gtypes.h #usr/include/glib-2.0/glib/gunicode.h #usr/include/glib-2.0/glib/gurifuncs.h #usr/include/glib-2.0/glib/gutils.h +#usr/include/glib-2.0/glib/gvariant.h +#usr/include/glib-2.0/glib/gvarianttype.h +#usr/include/glib-2.0/glib/gversion.h +#usr/include/glib-2.0/glib/gversionmacros.h #usr/include/glib-2.0/glib/gwin32.h #usr/include/glib-2.0/gmodule.h #usr/include/glib-2.0/gobject +#usr/include/glib-2.0/gobject/gbinding.h #usr/include/glib-2.0/gobject/gboxed.h #usr/include/glib-2.0/gobject/gclosure.h #usr/include/glib-2.0/gobject/genums.h +#usr/include/glib-2.0/gobject/glib-types.h #usr/include/glib-2.0/gobject/gmarshal.h #usr/include/glib-2.0/gobject/gobject.h #usr/include/glib-2.0/gobject/gobjectnotifyqueue.c @@ -163,31 +263,57 @@ #usr/include/glib-2.0/gobject/gvaluearray.h #usr/include/glib-2.0/gobject/gvaluecollector.h #usr/include/glib-2.0/gobject/gvaluetypes.h +#usr/lib/gdbus-2.0 +#usr/lib/gdbus-2.0/codegen +#usr/lib/gdbus-2.0/codegen/__init__.py +#usr/lib/gdbus-2.0/codegen/__init__.pyc +#usr/lib/gdbus-2.0/codegen/__init__.pyo +#usr/lib/gdbus-2.0/codegen/codegen.py +#usr/lib/gdbus-2.0/codegen/codegen.pyc +#usr/lib/gdbus-2.0/codegen/codegen.pyo +#usr/lib/gdbus-2.0/codegen/codegen_docbook.py +#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyc +#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyo +#usr/lib/gdbus-2.0/codegen/codegen_main.py +#usr/lib/gdbus-2.0/codegen/codegen_main.pyc +#usr/lib/gdbus-2.0/codegen/codegen_main.pyo +#usr/lib/gdbus-2.0/codegen/config.py +#usr/lib/gdbus-2.0/codegen/config.pyc +#usr/lib/gdbus-2.0/codegen/config.pyo +#usr/lib/gdbus-2.0/codegen/dbustypes.py +#usr/lib/gdbus-2.0/codegen/dbustypes.pyc +#usr/lib/gdbus-2.0/codegen/dbustypes.pyo +#usr/lib/gdbus-2.0/codegen/parser.py +#usr/lib/gdbus-2.0/codegen/parser.pyc +#usr/lib/gdbus-2.0/codegen/parser.pyo +#usr/lib/gdbus-2.0/codegen/utils.py +#usr/lib/gdbus-2.0/codegen/utils.pyc +#usr/lib/gdbus-2.0/codegen/utils.pyo #usr/lib/gio #usr/lib/gio/modules #usr/lib/glib-2.0 #usr/lib/glib-2.0/include #usr/lib/glib-2.0/include/glibconfig.h #usr/lib/libgio-2.0.la -usr/lib/libgio-2.0.so +#usr/lib/libgio-2.0.so usr/lib/libgio-2.0.so.0 -usr/lib/libgio-2.0.so.0.2200.2 +usr/lib/libgio-2.0.so.0.3200.3 #usr/lib/libglib-2.0.la -usr/lib/libglib-2.0.so +#usr/lib/libglib-2.0.so usr/lib/libglib-2.0.so.0 -usr/lib/libglib-2.0.so.0.2200.2 +usr/lib/libglib-2.0.so.0.3200.3 #usr/lib/libgmodule-2.0.la -usr/lib/libgmodule-2.0.so +#usr/lib/libgmodule-2.0.so usr/lib/libgmodule-2.0.so.0 -usr/lib/libgmodule-2.0.so.0.2200.2 +usr/lib/libgmodule-2.0.so.0.3200.3 #usr/lib/libgobject-2.0.la -usr/lib/libgobject-2.0.so +#usr/lib/libgobject-2.0.so usr/lib/libgobject-2.0.so.0 -usr/lib/libgobject-2.0.so.0.2200.2 +usr/lib/libgobject-2.0.so.0.3200.3 #usr/lib/libgthread-2.0.la -usr/lib/libgthread-2.0.so +#usr/lib/libgthread-2.0.so usr/lib/libgthread-2.0.so.0 -usr/lib/libgthread-2.0.so.0.2200.2 +usr/lib/libgthread-2.0.so.0.3200.3 #usr/lib/pkgconfig/gio-2.0.pc #usr/lib/pkgconfig/gio-unix-2.0.pc #usr/lib/pkgconfig/glib-2.0.pc @@ -198,31 +324,63 @@ usr/lib/libgthread-2.0.so.0.2200.2 #usr/lib/pkgconfig/gthread-2.0.pc #usr/share/aclocal/glib-2.0.m4 #usr/share/aclocal/glib-gettext.m4 +#usr/share/aclocal/gsettings.m4 #usr/share/gdb #usr/share/gdb/auto-load -usr/share/gdb/auto-load/libglib-2.0.so.0.2200.2-gdb.py -usr/share/gdb/auto-load/libgobject-2.0.so.0.2200.2-gdb.py +#usr/share/gdb/auto-load/libglib-2.0.so.0.3200.3-gdb.py +#usr/share/gdb/auto-load/libgobject-2.0.so.0.3200.3-gdb.py #usr/share/glib-2.0 #usr/share/glib-2.0/gdb -usr/share/glib-2.0/gdb/glib.py -usr/share/glib-2.0/gdb/gobject.py +#usr/share/glib-2.0/gdb/glib.py +#usr/share/glib-2.0/gdb/gobject.py #usr/share/glib-2.0/gettext #usr/share/glib-2.0/gettext/mkinstalldirs #usr/share/glib-2.0/gettext/po #usr/share/glib-2.0/gettext/po/Makefile.in.in +#usr/share/glib-2.0/schemas +#usr/share/glib-2.0/schemas/gschema.dtd #usr/share/gtk-doc/html/gio +#usr/share/gtk-doc/html/gio/ExampleAnimal.html +#usr/share/gtk-doc/html/gio/ExampleCat.html +#usr/share/gtk-doc/html/gio/ExampleObject.html +#usr/share/gtk-doc/html/gio/ExampleObjectManagerClient.html +#usr/share/gtk-doc/html/gio/GAction.html +#usr/share/gtk-doc/html/gio/GActionGroup.html +#usr/share/gtk-doc/html/gio/GActionMap.html #usr/share/gtk-doc/html/gio/GAppInfo.html +#usr/share/gtk-doc/html/gio/GApplication.html +#usr/share/gtk-doc/html/gio/GApplicationCommandLine.html #usr/share/gtk-doc/html/gio/GAsyncInitable.html #usr/share/gtk-doc/html/gio/GAsyncResult.html #usr/share/gtk-doc/html/gio/GBufferedInputStream.html #usr/share/gtk-doc/html/gio/GBufferedOutputStream.html #usr/share/gtk-doc/html/gio/GCancellable.html +#usr/share/gtk-doc/html/gio/GCharsetConverter.html +#usr/share/gtk-doc/html/gio/GConverter.html +#usr/share/gtk-doc/html/gio/GCredentials.html +#usr/share/gtk-doc/html/gio/GDBusActionGroup.html +#usr/share/gtk-doc/html/gio/GDBusAuthObserver.html +#usr/share/gtk-doc/html/gio/GDBusConnection.html +#usr/share/gtk-doc/html/gio/GDBusInterface.html +#usr/share/gtk-doc/html/gio/GDBusInterfaceSkeleton.html +#usr/share/gtk-doc/html/gio/GDBusMenuModel.html +#usr/share/gtk-doc/html/gio/GDBusMessage.html +#usr/share/gtk-doc/html/gio/GDBusMethodInvocation.html +#usr/share/gtk-doc/html/gio/GDBusObject.html +#usr/share/gtk-doc/html/gio/GDBusObjectManager.html +#usr/share/gtk-doc/html/gio/GDBusObjectManagerClient.html +#usr/share/gtk-doc/html/gio/GDBusObjectManagerServer.html +#usr/share/gtk-doc/html/gio/GDBusObjectProxy.html +#usr/share/gtk-doc/html/gio/GDBusObjectSkeleton.html +#usr/share/gtk-doc/html/gio/GDBusProxy.html +#usr/share/gtk-doc/html/gio/GDBusServer.html #usr/share/gtk-doc/html/gio/GDataInputStream.html #usr/share/gtk-doc/html/gio/GDataOutputStream.html #usr/share/gtk-doc/html/gio/GDrive.html #usr/share/gtk-doc/html/gio/GEmblem.html #usr/share/gtk-doc/html/gio/GEmblemedIcon.html #usr/share/gtk-doc/html/gio/GFile.html +#usr/share/gtk-doc/html/gio/GFileDescriptorBased.html #usr/share/gtk-doc/html/gio/GFileEnumerator.html #usr/share/gtk-doc/html/gio/GFileIOStream.html #usr/share/gtk-doc/html/gio/GFileIcon.html @@ -243,14 +401,29 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/gio/GLoadableIcon.html #usr/share/gtk-doc/html/gio/GMemoryInputStream.html #usr/share/gtk-doc/html/gio/GMemoryOutputStream.html +#usr/share/gtk-doc/html/gio/GMenu.html +#usr/share/gtk-doc/html/gio/GMenuModel.html #usr/share/gtk-doc/html/gio/GMount.html #usr/share/gtk-doc/html/gio/GMountOperation.html #usr/share/gtk-doc/html/gio/GNetworkAddress.html +#usr/share/gtk-doc/html/gio/GNetworkMonitor.html #usr/share/gtk-doc/html/gio/GNetworkService.html #usr/share/gtk-doc/html/gio/GOutputStream.html +#usr/share/gtk-doc/html/gio/GPermission.html +#usr/share/gtk-doc/html/gio/GPollableInputStream.html +#usr/share/gtk-doc/html/gio/GPollableOutputStream.html +#usr/share/gtk-doc/html/gio/GProxy.html +#usr/share/gtk-doc/html/gio/GProxyAddress.html +#usr/share/gtk-doc/html/gio/GProxyResolver.html +#usr/share/gtk-doc/html/gio/GRemoteActionGroup.html #usr/share/gtk-doc/html/gio/GResolver.html #usr/share/gtk-doc/html/gio/GSeekable.html +#usr/share/gtk-doc/html/gio/GSettings.html +#usr/share/gtk-doc/html/gio/GSettingsBackend.html +#usr/share/gtk-doc/html/gio/GSimpleAction.html +#usr/share/gtk-doc/html/gio/GSimpleActionGroup.html #usr/share/gtk-doc/html/gio/GSimpleAsyncResult.html +#usr/share/gtk-doc/html/gio/GSimplePermission.html #usr/share/gtk-doc/html/gio/GSocket.html #usr/share/gtk-doc/html/gio/GSocketAddress.html #usr/share/gtk-doc/html/gio/GSocketClient.html @@ -259,8 +432,23 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/gio/GSocketControlMessage.html #usr/share/gtk-doc/html/gio/GSocketListener.html #usr/share/gtk-doc/html/gio/GSocketService.html +#usr/share/gtk-doc/html/gio/GSrvTarget.html +#usr/share/gtk-doc/html/gio/GTcpConnection.html +#usr/share/gtk-doc/html/gio/GTcpWrapperConnection.html #usr/share/gtk-doc/html/gio/GThemedIcon.html #usr/share/gtk-doc/html/gio/GThreadedSocketService.html +#usr/share/gtk-doc/html/gio/GTlsBackend.html +#usr/share/gtk-doc/html/gio/GTlsCertificate.html +#usr/share/gtk-doc/html/gio/GTlsClientConnection.html +#usr/share/gtk-doc/html/gio/GTlsConnection.html +#usr/share/gtk-doc/html/gio/GTlsDatabase.html +#usr/share/gtk-doc/html/gio/GTlsFileDatabase.html +#usr/share/gtk-doc/html/gio/GTlsInteraction.html +#usr/share/gtk-doc/html/gio/GTlsPassword.html +#usr/share/gtk-doc/html/gio/GTlsServerConnection.html +#usr/share/gtk-doc/html/gio/GUnixConnection.html +#usr/share/gtk-doc/html/gio/GUnixCredentialsMessage.html +#usr/share/gtk-doc/html/gio/GUnixFDList.html #usr/share/gtk-doc/html/gio/GUnixFDMessage.html #usr/share/gtk-doc/html/gio/GUnixInputStream.html #usr/share/gtk-doc/html/gio/GUnixOutputStream.html @@ -268,55 +456,129 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/gio/GVfs.html #usr/share/gtk-doc/html/gio/GVolume.html #usr/share/gtk-doc/html/gio/GVolumeMonitor.html +#usr/share/gtk-doc/html/gio/GZlibCompressor.html +#usr/share/gtk-doc/html/gio/GZlibDecompressor.html +#usr/share/gtk-doc/html/gio/annotation-glossary.html +#usr/share/gtk-doc/html/gio/api-index-2-18.html +#usr/share/gtk-doc/html/gio/api-index-2-20.html +#usr/share/gtk-doc/html/gio/api-index-2-22.html +#usr/share/gtk-doc/html/gio/api-index-2-24.html +#usr/share/gtk-doc/html/gio/api-index-2-26.html +#usr/share/gtk-doc/html/gio/api-index-2-28.html +#usr/share/gtk-doc/html/gio/api-index-2-30.html +#usr/share/gtk-doc/html/gio/api-index-2-32.html +#usr/share/gtk-doc/html/gio/api-index-deprecated.html +#usr/share/gtk-doc/html/gio/api-index-full.html +#usr/share/gtk-doc/html/gio/application.html #usr/share/gtk-doc/html/gio/async.html #usr/share/gtk-doc/html/gio/ch01.html #usr/share/gtk-doc/html/gio/ch02.html #usr/share/gtk-doc/html/gio/ch03.html -#usr/share/gtk-doc/html/gio/ch18.html -#usr/share/gtk-doc/html/gio/ch19.html -#usr/share/gtk-doc/html/gio/ch19s02.html -#usr/share/gtk-doc/html/gio/ch19s03.html +#usr/share/gtk-doc/html/gio/ch27.html +#usr/share/gtk-doc/html/gio/ch28.html +#usr/share/gtk-doc/html/gio/ch28s02.html +#usr/share/gtk-doc/html/gio/ch28s03.html +#usr/share/gtk-doc/html/gio/ch29.html +#usr/share/gtk-doc/html/gio/ch29s02.html +#usr/share/gtk-doc/html/gio/ch29s03.html +#usr/share/gtk-doc/html/gio/ch29s04.html +#usr/share/gtk-doc/html/gio/ch29s05.html +#usr/share/gtk-doc/html/gio/ch29s06.html +#usr/share/gtk-doc/html/gio/ch29s07.html +#usr/share/gtk-doc/html/gio/ch30.html +#usr/share/gtk-doc/html/gio/ch30s02.html +#usr/share/gtk-doc/html/gio/ch30s03.html +#usr/share/gtk-doc/html/gio/ch30s04.html +#usr/share/gtk-doc/html/gio/ch30s05.html +#usr/share/gtk-doc/html/gio/conversion.html #usr/share/gtk-doc/html/gio/extending-gio.html #usr/share/gtk-doc/html/gio/extending.html #usr/share/gtk-doc/html/gio/failable_initialization.html #usr/share/gtk-doc/html/gio/file_mon.html #usr/share/gtk-doc/html/gio/file_ops.html +#usr/share/gtk-doc/html/gio/gdbus-codegen.html +#usr/share/gtk-doc/html/gio/gdbus-convenience.html +#usr/share/gtk-doc/html/gio/gdbus-lowlevel.html +#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Animal.html +#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Cat.html +#usr/share/gtk-doc/html/gio/gdbus.html +#usr/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html +#usr/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html +#usr/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html #usr/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html #usr/share/gtk-doc/html/gio/gio-Extension-Points.html +#usr/share/gtk-doc/html/gio/gio-GActionGroup-exporter.html #usr/share/gtk-doc/html/gio/gio-GContentType.html +#usr/share/gtk-doc/html/gio/gio-GConverterInputstream.html +#usr/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +#usr/share/gtk-doc/html/gio/gio-GDBusError.html #usr/share/gtk-doc/html/gio/gio-GFileAttribute.html #usr/share/gtk-doc/html/gio/gio-GIOError.html #usr/share/gtk-doc/html/gio/gio-GIOScheduler.html -#usr/share/gtk-doc/html/gio/gio-GSrvTarget.html +#usr/share/gtk-doc/html/gio/gio-GInetAddressMask.html +#usr/share/gtk-doc/html/gio/gio-GMenuModel-exporter.html +#usr/share/gtk-doc/html/gio/gio-GResource.html +#usr/share/gtk-doc/html/gio/gio-GSettingsSchema-GSettingsSchemaSource.html +#usr/share/gtk-doc/html/gio/gio-GWin32InputStream.html +#usr/share/gtk-doc/html/gio/gio-GWin32OutputStream.html +#usr/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html +#usr/share/gtk-doc/html/gio/gio-TLS-Overview.html #usr/share/gtk-doc/html/gio/gio-Unix-Mounts.html +#usr/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html #usr/share/gtk-doc/html/gio/gio-hierarchy.html -#usr/share/gtk-doc/html/gio/gio.devhelp +#usr/share/gtk-doc/html/gio/gio-querymodules.html #usr/share/gtk-doc/html/gio/gio.devhelp2 +#usr/share/gtk-doc/html/gio/glib-compile-resources.html +#usr/share/gtk-doc/html/gio/glib-compile-schemas.html +#usr/share/gtk-doc/html/gio/gresource-tool.html +#usr/share/gtk-doc/html/gio/gsettings-tool.html #usr/share/gtk-doc/html/gio/gvfs-overview.png #usr/share/gtk-doc/html/gio/highlevel-socket.html #usr/share/gtk-doc/html/gio/home.png #usr/share/gtk-doc/html/gio/icons.html #usr/share/gtk-doc/html/gio/index.html #usr/share/gtk-doc/html/gio/index.sgml -#usr/share/gtk-doc/html/gio/ix01.html -#usr/share/gtk-doc/html/gio/ix02.html -#usr/share/gtk-doc/html/gio/ix03.html -#usr/share/gtk-doc/html/gio/ix04.html -#usr/share/gtk-doc/html/gio/ix05.html #usr/share/gtk-doc/html/gio/left.png +#usr/share/gtk-doc/html/gio/menu-example.png +#usr/share/gtk-doc/html/gio/menu-model.png #usr/share/gtk-doc/html/gio/migrating.html #usr/share/gtk-doc/html/gio/networking.html +#usr/share/gtk-doc/html/gio/permissions.html #usr/share/gtk-doc/html/gio/pt01.html #usr/share/gtk-doc/html/gio/pt02.html #usr/share/gtk-doc/html/gio/resolver.html +#usr/share/gtk-doc/html/gio/resources.html #usr/share/gtk-doc/html/gio/right.png +#usr/share/gtk-doc/html/gio/settings.html #usr/share/gtk-doc/html/gio/streaming.html #usr/share/gtk-doc/html/gio/style.css +#usr/share/gtk-doc/html/gio/tls.html +#usr/share/gtk-doc/html/gio/tools.html #usr/share/gtk-doc/html/gio/types.html #usr/share/gtk-doc/html/gio/up.png #usr/share/gtk-doc/html/gio/utils.html #usr/share/gtk-doc/html/gio/volume_mon.html #usr/share/gtk-doc/html/glib +#usr/share/gtk-doc/html/glib/annotation-glossary.html +#usr/share/gtk-doc/html/glib/api-index-2-10.html +#usr/share/gtk-doc/html/glib/api-index-2-12.html +#usr/share/gtk-doc/html/glib/api-index-2-14.html +#usr/share/gtk-doc/html/glib/api-index-2-16.html +#usr/share/gtk-doc/html/glib/api-index-2-18.html +#usr/share/gtk-doc/html/glib/api-index-2-2.html +#usr/share/gtk-doc/html/glib/api-index-2-20.html +#usr/share/gtk-doc/html/glib/api-index-2-22.html +#usr/share/gtk-doc/html/glib/api-index-2-24.html +#usr/share/gtk-doc/html/glib/api-index-2-26.html +#usr/share/gtk-doc/html/glib/api-index-2-28.html +#usr/share/gtk-doc/html/glib/api-index-2-30.html +#usr/share/gtk-doc/html/glib/api-index-2-32.html +#usr/share/gtk-doc/html/glib/api-index-2-4.html +#usr/share/gtk-doc/html/glib/api-index-2-6.html +#usr/share/gtk-doc/html/glib/api-index-2-8.html +#usr/share/gtk-doc/html/glib/api-index-deprecated.html +#usr/share/gtk-doc/html/glib/api-index-full.html +#usr/share/gtk-doc/html/glib/deprecated.html #usr/share/gtk-doc/html/glib/file-name-encodings.png #usr/share/gtk-doc/html/glib/glib-Arrays.html #usr/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html @@ -332,13 +594,19 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html #usr/share/gtk-doc/html/glib/glib-Commandline-option-parser.html #usr/share/gtk-doc/html/glib/glib-Data-Checksums.html +#usr/share/gtk-doc/html/glib/glib-Data-HMACs.html #usr/share/gtk-doc/html/glib/glib-Datasets.html #usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +#usr/share/gtk-doc/html/glib/glib-Deprecated-Thread-APIs.html #usr/share/gtk-doc/html/glib/glib-Double-ended-Queues.html #usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html #usr/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html #usr/share/gtk-doc/html/glib/glib-Error-Reporting.html #usr/share/gtk-doc/html/glib/glib-File-Utilities.html +#usr/share/gtk-doc/html/glib/glib-GDateTime.html +#usr/share/gtk-doc/html/glib/glib-GTimeZone.html +#usr/share/gtk-doc/html/glib/glib-GVariant.html +#usr/share/gtk-doc/html/glib/glib-GVariantType.html #usr/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html #usr/share/gtk-doc/html/glib/glib-Hash-Tables.html #usr/share/gtk-doc/html/glib/glib-Hook-Functions.html @@ -348,10 +616,7 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/glib/glib-Key-value-file-parser.html #usr/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html #usr/share/gtk-doc/html/glib/glib-Lexical-Scanner.html -#usr/share/gtk-doc/html/glib/glib-Limits-of-Basic-Types.html #usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html -#usr/share/gtk-doc/html/glib/glib-Memory-Allocators.html -#usr/share/gtk-doc/html/glib/glib-Memory-Chunks.html #usr/share/gtk-doc/html/glib/glib-Memory-Slices.html #usr/share/gtk-doc/html/glib/glib-Message-Logging.html #usr/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html @@ -379,6 +644,7 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/glib/glib-Timers.html #usr/share/gtk-doc/html/glib/glib-Trash-Stacks.html #usr/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +#usr/share/gtk-doc/html/glib/glib-UNIX-specific-utilities-and-integration.html #usr/share/gtk-doc/html/glib/glib-URI-Functions.html #usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html #usr/share/gtk-doc/html/glib/glib-Version-Information.html @@ -396,27 +662,15 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/glib/glib-resources.html #usr/share/gtk-doc/html/glib/glib-running.html #usr/share/gtk-doc/html/glib/glib-utilities.html -#usr/share/gtk-doc/html/glib/glib.devhelp #usr/share/gtk-doc/html/glib/glib.devhelp2 #usr/share/gtk-doc/html/glib/glib.html #usr/share/gtk-doc/html/glib/gtester-report.html #usr/share/gtk-doc/html/glib/gtester.html +#usr/share/gtk-doc/html/glib/gvariant-format-strings.html +#usr/share/gtk-doc/html/glib/gvariant-text.html #usr/share/gtk-doc/html/glib/home.png #usr/share/gtk-doc/html/glib/index.html #usr/share/gtk-doc/html/glib/index.sgml -#usr/share/gtk-doc/html/glib/ix01.html -#usr/share/gtk-doc/html/glib/ix02.html -#usr/share/gtk-doc/html/glib/ix03.html -#usr/share/gtk-doc/html/glib/ix04.html -#usr/share/gtk-doc/html/glib/ix05.html -#usr/share/gtk-doc/html/glib/ix06.html -#usr/share/gtk-doc/html/glib/ix07.html -#usr/share/gtk-doc/html/glib/ix08.html -#usr/share/gtk-doc/html/glib/ix09.html -#usr/share/gtk-doc/html/glib/ix10.html -#usr/share/gtk-doc/html/glib/ix11.html -#usr/share/gtk-doc/html/glib/ix12.html -#usr/share/gtk-doc/html/glib/ix13.html #usr/share/gtk-doc/html/glib/left.png #usr/share/gtk-doc/html/glib/mainloop-states.gif #usr/share/gtk-doc/html/glib/right.png @@ -424,8 +678,26 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/glib/tools.html #usr/share/gtk-doc/html/glib/up.png #usr/share/gtk-doc/html/gobject +#usr/share/gtk-doc/html/gobject/GBinding.html #usr/share/gtk-doc/html/gobject/GTypeModule.html #usr/share/gtk-doc/html/gobject/GTypePlugin.html +#usr/share/gtk-doc/html/gobject/annotation-glossary.html +#usr/share/gtk-doc/html/gobject/api-index-2-10.html +#usr/share/gtk-doc/html/gobject/api-index-2-12.html +#usr/share/gtk-doc/html/gobject/api-index-2-14.html +#usr/share/gtk-doc/html/gobject/api-index-2-18.html +#usr/share/gtk-doc/html/gobject/api-index-2-2.html +#usr/share/gtk-doc/html/gobject/api-index-2-22.html +#usr/share/gtk-doc/html/gobject/api-index-2-24.html +#usr/share/gtk-doc/html/gobject/api-index-2-26.html +#usr/share/gtk-doc/html/gobject/api-index-2-28.html +#usr/share/gtk-doc/html/gobject/api-index-2-30.html +#usr/share/gtk-doc/html/gobject/api-index-2-32.html +#usr/share/gtk-doc/html/gobject/api-index-2-4.html +#usr/share/gtk-doc/html/gobject/api-index-2-6.html +#usr/share/gtk-doc/html/gobject/api-index-2-8.html +#usr/share/gtk-doc/html/gobject/api-index-deprecated.html +#usr/share/gtk-doc/html/gobject/api-index-full.html #usr/share/gtk-doc/html/gobject/ch01s02.html #usr/share/gtk-doc/html/gobject/ch06s03.html #usr/share/gtk-doc/html/gobject/chapter-gobject.html @@ -449,7 +721,6 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/gobject/gobject-memory.html #usr/share/gtk-doc/html/gobject/gobject-properties.html #usr/share/gtk-doc/html/gobject/gobject-query.html -#usr/share/gtk-doc/html/gobject/gobject.devhelp #usr/share/gtk-doc/html/gobject/gobject.devhelp2 #usr/share/gtk-doc/html/gobject/gtype-conventions.html #usr/share/gtk-doc/html/gobject/gtype-instantiable-classed.html @@ -468,17 +739,6 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/gobject/howto-signals.html #usr/share/gtk-doc/html/gobject/index.html #usr/share/gtk-doc/html/gobject/index.sgml -#usr/share/gtk-doc/html/gobject/ix01.html -#usr/share/gtk-doc/html/gobject/ix02.html -#usr/share/gtk-doc/html/gobject/ix03.html -#usr/share/gtk-doc/html/gobject/ix04.html -#usr/share/gtk-doc/html/gobject/ix05.html -#usr/share/gtk-doc/html/gobject/ix06.html -#usr/share/gtk-doc/html/gobject/ix07.html -#usr/share/gtk-doc/html/gobject/ix08.html -#usr/share/gtk-doc/html/gobject/ix09.html -#usr/share/gtk-doc/html/gobject/ix10.html -#usr/share/gtk-doc/html/gobject/ix11.html #usr/share/gtk-doc/html/gobject/left.png #usr/share/gtk-doc/html/gobject/pr01.html #usr/share/gtk-doc/html/gobject/pt01.html @@ -495,11 +755,21 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/gtk-doc/html/gobject/tools-refdb.html #usr/share/gtk-doc/html/gobject/tools-vala.html #usr/share/gtk-doc/html/gobject/up.png +#usr/share/locale/af +#usr/share/locale/af/LC_MESSAGES +#usr/share/locale/af/LC_MESSAGES/glib20.mo #usr/share/locale/am #usr/share/locale/am/LC_MESSAGES #usr/share/locale/am/LC_MESSAGES/glib20.mo +#usr/share/locale/ar +#usr/share/locale/ar/LC_MESSAGES #usr/share/locale/ar/LC_MESSAGES/glib20.mo +#usr/share/locale/as +#usr/share/locale/as/LC_MESSAGES #usr/share/locale/as/LC_MESSAGES/glib20.mo +#usr/share/locale/ast +#usr/share/locale/ast/LC_MESSAGES +#usr/share/locale/ast/LC_MESSAGES/glib20.mo #usr/share/locale/az #usr/share/locale/az/LC_MESSAGES #usr/share/locale/az/LC_MESSAGES/glib20.mo @@ -508,7 +778,11 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/be@latin/LC_MESSAGES #usr/share/locale/be@latin/LC_MESSAGES/glib20.mo #usr/share/locale/bg/LC_MESSAGES/glib20.mo +#usr/share/locale/bn +#usr/share/locale/bn/LC_MESSAGES #usr/share/locale/bn/LC_MESSAGES/glib20.mo +#usr/share/locale/bn_IN +#usr/share/locale/bn_IN/LC_MESSAGES #usr/share/locale/bn_IN/LC_MESSAGES/glib20.mo #usr/share/locale/bs/LC_MESSAGES/glib20.mo #usr/share/locale/ca/LC_MESSAGES/glib20.mo @@ -516,6 +790,8 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/ca@valencia/LC_MESSAGES #usr/share/locale/ca@valencia/LC_MESSAGES/glib20.mo #usr/share/locale/cs/LC_MESSAGES/glib20.mo +#usr/share/locale/cy +#usr/share/locale/cy/LC_MESSAGES #usr/share/locale/cy/LC_MESSAGES/glib20.mo #usr/share/locale/da/LC_MESSAGES/glib20.mo #usr/share/locale/de/LC_MESSAGES/glib20.mo @@ -523,8 +799,9 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/dz/LC_MESSAGES #usr/share/locale/dz/LC_MESSAGES/glib20.mo #usr/share/locale/el/LC_MESSAGES/glib20.mo -#usr/share/locale/en_CA -#usr/share/locale/en_CA/LC_MESSAGES +#usr/share/locale/en@shaw +#usr/share/locale/en@shaw/LC_MESSAGES +#usr/share/locale/en@shaw/LC_MESSAGES/glib20.mo #usr/share/locale/en_CA/LC_MESSAGES/glib20.mo #usr/share/locale/en_GB/LC_MESSAGES/glib20.mo #usr/share/locale/eo @@ -540,25 +817,44 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/fa/LC_MESSAGES/glib20.mo #usr/share/locale/fi/LC_MESSAGES/glib20.mo #usr/share/locale/fr/LC_MESSAGES/glib20.mo -#usr/share/locale/ga -#usr/share/locale/ga/LC_MESSAGES #usr/share/locale/ga/LC_MESSAGES/glib20.mo #usr/share/locale/gl/LC_MESSAGES/glib20.mo +#usr/share/locale/gu +#usr/share/locale/gu/LC_MESSAGES #usr/share/locale/gu/LC_MESSAGES/glib20.mo +#usr/share/locale/he +#usr/share/locale/he/LC_MESSAGES #usr/share/locale/he/LC_MESSAGES/glib20.mo +#usr/share/locale/hi +#usr/share/locale/hi/LC_MESSAGES #usr/share/locale/hi/LC_MESSAGES/glib20.mo #usr/share/locale/hr/LC_MESSAGES/glib20.mo #usr/share/locale/hu/LC_MESSAGES/glib20.mo +#usr/share/locale/hy +#usr/share/locale/hy/LC_MESSAGES #usr/share/locale/hy/LC_MESSAGES/glib20.mo #usr/share/locale/id/LC_MESSAGES/glib20.mo +#usr/share/locale/is +#usr/share/locale/is/LC_MESSAGES #usr/share/locale/is/LC_MESSAGES/glib20.mo #usr/share/locale/it/LC_MESSAGES/glib20.mo #usr/share/locale/ja/LC_MESSAGES/glib20.mo +#usr/share/locale/ka +#usr/share/locale/ka/LC_MESSAGES #usr/share/locale/ka/LC_MESSAGES/glib20.mo +#usr/share/locale/kk +#usr/share/locale/kk/LC_MESSAGES +#usr/share/locale/kk/LC_MESSAGES/glib20.mo +#usr/share/locale/kn +#usr/share/locale/kn/LC_MESSAGES #usr/share/locale/kn/LC_MESSAGES/glib20.mo #usr/share/locale/ko/LC_MESSAGES/glib20.mo +#usr/share/locale/ku +#usr/share/locale/ku/LC_MESSAGES #usr/share/locale/ku/LC_MESSAGES/glib20.mo #usr/share/locale/lt/LC_MESSAGES/glib20.mo +#usr/share/locale/lv +#usr/share/locale/lv/LC_MESSAGES #usr/share/locale/lv/LC_MESSAGES/glib20.mo #usr/share/locale/mai #usr/share/locale/mai/LC_MESSAGES @@ -566,23 +862,40 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/mg #usr/share/locale/mg/LC_MESSAGES #usr/share/locale/mg/LC_MESSAGES/glib20.mo +#usr/share/locale/mk +#usr/share/locale/mk/LC_MESSAGES #usr/share/locale/mk/LC_MESSAGES/glib20.mo +#usr/share/locale/ml +#usr/share/locale/ml/LC_MESSAGES #usr/share/locale/ml/LC_MESSAGES/glib20.mo #usr/share/locale/mn #usr/share/locale/mn/LC_MESSAGES #usr/share/locale/mn/LC_MESSAGES/glib20.mo +#usr/share/locale/mr +#usr/share/locale/mr/LC_MESSAGES #usr/share/locale/mr/LC_MESSAGES/glib20.mo +#usr/share/locale/ms +#usr/share/locale/ms/LC_MESSAGES #usr/share/locale/ms/LC_MESSAGES/glib20.mo #usr/share/locale/nb/LC_MESSAGES/glib20.mo +#usr/share/locale/nds +#usr/share/locale/nds/LC_MESSAGES +#usr/share/locale/nds/LC_MESSAGES/glib20.mo #usr/share/locale/ne #usr/share/locale/ne/LC_MESSAGES #usr/share/locale/ne/LC_MESSAGES/glib20.mo #usr/share/locale/nl/LC_MESSAGES/glib20.mo +#usr/share/locale/nn +#usr/share/locale/nn/LC_MESSAGES #usr/share/locale/nn/LC_MESSAGES/glib20.mo #usr/share/locale/oc #usr/share/locale/oc/LC_MESSAGES #usr/share/locale/oc/LC_MESSAGES/glib20.mo +#usr/share/locale/or +#usr/share/locale/or/LC_MESSAGES #usr/share/locale/or/LC_MESSAGES/glib20.mo +#usr/share/locale/pa +#usr/share/locale/pa/LC_MESSAGES #usr/share/locale/pa/LC_MESSAGES/glib20.mo #usr/share/locale/pl/LC_MESSAGES/glib20.mo #usr/share/locale/ps @@ -592,9 +905,9 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo #usr/share/locale/ro/LC_MESSAGES/glib20.mo #usr/share/locale/ru/LC_MESSAGES/glib20.mo -#usr/share/locale/rw -#usr/share/locale/rw/LC_MESSAGES #usr/share/locale/rw/LC_MESSAGES/glib20.mo +#usr/share/locale/si +#usr/share/locale/si/LC_MESSAGES #usr/share/locale/si/LC_MESSAGES/glib20.mo #usr/share/locale/sk/LC_MESSAGES/glib20.mo #usr/share/locale/sl/LC_MESSAGES/glib20.mo @@ -607,7 +920,11 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/sr@latin/LC_MESSAGES #usr/share/locale/sr@latin/LC_MESSAGES/glib20.mo #usr/share/locale/sv/LC_MESSAGES/glib20.mo +#usr/share/locale/ta +#usr/share/locale/ta/LC_MESSAGES #usr/share/locale/ta/LC_MESSAGES/glib20.mo +#usr/share/locale/te +#usr/share/locale/te/LC_MESSAGES #usr/share/locale/te/LC_MESSAGES/glib20.mo #usr/share/locale/th #usr/share/locale/th/LC_MESSAGES @@ -619,8 +936,13 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/tt #usr/share/locale/tt/LC_MESSAGES #usr/share/locale/tt/LC_MESSAGES/glib20.mo +#usr/share/locale/ug +#usr/share/locale/ug/LC_MESSAGES +#usr/share/locale/ug/LC_MESSAGES/glib20.mo #usr/share/locale/uk/LC_MESSAGES/glib20.mo #usr/share/locale/vi/LC_MESSAGES/glib20.mo +#usr/share/locale/wa +#usr/share/locale/wa/LC_MESSAGES #usr/share/locale/wa/LC_MESSAGES/glib20.mo #usr/share/locale/xh #usr/share/locale/xh/LC_MESSAGES @@ -633,9 +955,16 @@ usr/share/glib-2.0/gdb/gobject.py #usr/share/locale/zh_HK/LC_MESSAGES #usr/share/locale/zh_HK/LC_MESSAGES/glib20.mo #usr/share/locale/zh_TW/LC_MESSAGES/glib20.mo +#usr/share/man/man1/gdbus-codegen.1 +#usr/share/man/man1/gdbus.1 +#usr/share/man/man1/gio-querymodules.1 +#usr/share/man/man1/glib-compile-resources.1 +#usr/share/man/man1/glib-compile-schemas.1 #usr/share/man/man1/glib-genmarshal.1 #usr/share/man/man1/glib-gettextize.1 #usr/share/man/man1/glib-mkenums.1 #usr/share/man/man1/gobject-query.1 +#usr/share/man/man1/gresource.1 +#usr/share/man/man1/gsettings.1 #usr/share/man/man1/gtester-report.1 #usr/share/man/man1/gtester.1 diff --git a/config/rootfiles/common/gmp b/config/rootfiles/common/gmp index 669d191333..67f557fbb5 100644 --- a/config/rootfiles/common/gmp +++ b/config/rootfiles/common/gmp @@ -1,21 +1,21 @@ #usr/include/gmp.h #usr/include/gmpxx.h #usr/include/mp.h -#usr/info/gmp.info -#usr/info/gmp.info-1 -#usr/info/gmp.info-2 #usr/lib/libgmp.a #usr/lib/libgmp.la -usr/lib/libgmp.so -usr/lib/libgmp.so.3 -usr/lib/libgmp.so.3.4.4 +#usr/lib/libgmp.so +usr/lib/libgmp.so.10 +usr/lib/libgmp.so.10.0.5 #usr/lib/libgmpxx.a #usr/lib/libgmpxx.la #usr/lib/libgmpxx.so -#usr/lib/libgmpxx.so.4 -#usr/lib/libgmpxx.so.4.0.4 +usr/lib/libgmpxx.so.4 +usr/lib/libgmpxx.so.4.2.5 #usr/lib/libmp.a #usr/lib/libmp.la #usr/lib/libmp.so -#usr/lib/libmp.so.3 -#usr/lib/libmp.so.3.1.13 +usr/lib/libmp.so.3 +usr/lib/libmp.so.3.1.25 +#usr/share/info/gmp.info +#usr/share/info/gmp.info-1 +#usr/share/info/gmp.info-2 diff --git a/config/rootfiles/common/gmp-compat b/config/rootfiles/common/gmp-compat new file mode 100644 index 0000000000..a4b82f25c4 --- /dev/null +++ b/config/rootfiles/common/gmp-compat @@ -0,0 +1,2 @@ +usr/lib/libgmp.so.3 +usr/lib/libgmp.so.3.5.2 diff --git a/config/rootfiles/common/gnupg b/config/rootfiles/common/gnupg index 616ed05c0b..9aecc418a3 100644 --- a/config/rootfiles/common/gnupg +++ b/config/rootfiles/common/gnupg @@ -2,18 +2,17 @@ usr/bin/gpg #usr/bin/gpg-zip #usr/bin/gpgsplit #usr/bin/gpgv -#usr/info/gpg.info -#usr/info/gpgv.info #usr/lib/gnupg usr/lib/gnupg/gpgkeys_curl usr/lib/gnupg/gpgkeys_finger usr/lib/gnupg/gpgkeys_hkp usr/lib/gnupg/gpgkeys_ldap -#usr/man/man1/gpg.1 -#usr/man/man1/gpg.ru.1 -#usr/man/man1/gpgv.1 -#usr/man/man7/gnupg.7 #usr/share/gnupg #usr/share/gnupg/FAQ -#usr/share/gnupg/faq.html #usr/share/gnupg/options.skel +#usr/share/info/gnupg1.info +#usr/share/man/man1/gpg-zip.1 +#usr/share/man/man1/gpg.1 +#usr/share/man/man1/gpg.ru.1 +#usr/share/man/man1/gpgv.1 +#usr/share/man/man7/gnupg.7 diff --git a/config/rootfiles/common/grep b/config/rootfiles/common/grep index 5d5db68a12..a00737d4da 100644 --- a/config/rootfiles/common/grep +++ b/config/rootfiles/common/grep @@ -1,7 +1,7 @@ bin/egrep bin/fgrep bin/grep -#usr/info/grep.info -#usr/man/man1/egrep.1 -#usr/man/man1/fgrep.1 -#usr/man/man1/grep.1 +#usr/share/info/grep.info +#usr/share/man/man1/egrep.1 +#usr/share/man/man1/fgrep.1 +#usr/share/man/man1/grep.1 diff --git a/config/rootfiles/common/hddtemp b/config/rootfiles/common/hddtemp deleted file mode 100644 index bc4c8d7f96..0000000000 --- a/config/rootfiles/common/hddtemp +++ /dev/null @@ -1,4 +0,0 @@ -#usr/man/man8/hddtemp.8 -usr/sbin/hddtemp -#usr/share/locale/fr/LC_MESSAGES/hddtemp.mo -#usr/share/locale/ru/LC_MESSAGES/hddtemp.mo diff --git a/config/rootfiles/common/i586/acpid b/config/rootfiles/common/i586/acpid new file mode 100644 index 0000000000..535e2bdcc3 --- /dev/null +++ b/config/rootfiles/common/i586/acpid @@ -0,0 +1,17 @@ +etc/acpi +etc/acpi/actions +etc/acpi/actions/power.sh +etc/acpi/events +etc/acpi/events/power +usr/bin/acpi_listen +usr/sbin/acpid +#usr/sbin/kacpimon +#usr/share/doc/acpid +#usr/share/doc/acpid/COPYING +#usr/share/doc/acpid/Changelog +#usr/share/doc/acpid/README +#usr/share/doc/acpid/TESTPLAN +#usr/share/doc/acpid/TODO +#usr/share/man/man8/acpi_listen.8 +#usr/share/man/man8/acpid.8 +#usr/share/man/man8/kacpimon.8 diff --git a/config/rootfiles/common/i586/binutils b/config/rootfiles/common/i586/binutils index 0cd5af9150..48f20e9197 100644 --- a/config/rootfiles/common/i586/binutils +++ b/config/rootfiles/common/i586/binutils @@ -2,8 +2,10 @@ #usr/bin/ar #usr/bin/as #usr/bin/c++filt +#usr/bin/elfedit #usr/bin/gprof #usr/bin/ld +#usr/bin/ld.bfd #usr/bin/nm #usr/bin/objcopy #usr/bin/objdump @@ -18,14 +20,20 @@ #usr/include/dis-asm.h #usr/include/libiberty.h #usr/include/symcat.h -#usr/info/as.info -#usr/info/bfd.info -#usr/info/binutils.info -#usr/info/configure.info -#usr/info/gprof.info -#usr/info/ld.info -#usr/info/standards.info #usr/lib/ldscripts +#usr/lib/ldscripts/elf32_x86_64.x +#usr/lib/ldscripts/elf32_x86_64.xbn +#usr/lib/ldscripts/elf32_x86_64.xc +#usr/lib/ldscripts/elf32_x86_64.xd +#usr/lib/ldscripts/elf32_x86_64.xdc +#usr/lib/ldscripts/elf32_x86_64.xdw +#usr/lib/ldscripts/elf32_x86_64.xn +#usr/lib/ldscripts/elf32_x86_64.xr +#usr/lib/ldscripts/elf32_x86_64.xs +#usr/lib/ldscripts/elf32_x86_64.xsc +#usr/lib/ldscripts/elf32_x86_64.xsw +#usr/lib/ldscripts/elf32_x86_64.xu +#usr/lib/ldscripts/elf32_x86_64.xw #usr/lib/ldscripts/elf_i386.x #usr/lib/ldscripts/elf_i386.xbn #usr/lib/ldscripts/elf_i386.xc @@ -44,32 +52,38 @@ #usr/lib/ldscripts/i386linux.xn #usr/lib/ldscripts/i386linux.xr #usr/lib/ldscripts/i386linux.xu -#usr/lib/libbfd-2.18.so +usr/lib/libbfd-2.22.so #usr/lib/libbfd.a #usr/lib/libbfd.la #usr/lib/libbfd.so #usr/lib/libiberty.a -#usr/lib/libopcodes-2.18.so +usr/lib/libopcodes-2.22.so #usr/lib/libopcodes.a #usr/lib/libopcodes.la #usr/lib/libopcodes.so -#usr/man -#usr/man/man1 -#usr/man/man1/addr2line.1 -#usr/man/man1/ar.1 -#usr/man/man1/as.1 -#usr/man/man1/c++filt.1 -#usr/man/man1/dlltool.1 -#usr/man/man1/gprof.1 -#usr/man/man1/ld.1 -#usr/man/man1/nlmconv.1 -#usr/man/man1/nm.1 -#usr/man/man1/objcopy.1 -#usr/man/man1/objdump.1 -#usr/man/man1/ranlib.1 -#usr/man/man1/readelf.1 -#usr/man/man1/size.1 -#usr/man/man1/strings.1 -#usr/man/man1/strip.1 -#usr/man/man1/windmc.1 -#usr/man/man1/windres.1 +#usr/share/info/as.info +#usr/share/info/bfd.info +#usr/share/info/binutils.info +#usr/share/info/configure.info +#usr/share/info/gprof.info +#usr/share/info/ld.info +#usr/share/info/standards.info +#usr/share/man/man1/addr2line.1 +#usr/share/man/man1/ar.1 +#usr/share/man/man1/as.1 +#usr/share/man/man1/c++filt.1 +#usr/share/man/man1/dlltool.1 +#usr/share/man/man1/elfedit.1 +#usr/share/man/man1/gprof.1 +#usr/share/man/man1/ld.1 +#usr/share/man/man1/nlmconv.1 +#usr/share/man/man1/nm.1 +#usr/share/man/man1/objcopy.1 +#usr/share/man/man1/objdump.1 +#usr/share/man/man1/ranlib.1 +#usr/share/man/man1/readelf.1 +#usr/share/man/man1/size.1 +#usr/share/man/man1/strings.1 +#usr/share/man/man1/strip.1 +#usr/share/man/man1/windmc.1 +#usr/share/man/man1/windres.1 diff --git a/config/rootfiles/common/dracut b/config/rootfiles/common/i586/dracut similarity index 100% rename from config/rootfiles/common/dracut rename to config/rootfiles/common/i586/dracut diff --git a/config/rootfiles/common/i586/gcc b/config/rootfiles/common/i586/gcc index cde9e4f424..10c712a758 100644 --- a/config/rootfiles/common/i586/gcc +++ b/config/rootfiles/common/i586/gcc @@ -9,581 +9,788 @@ #usr/bin/i586-pc-linux-gnu-c++ #usr/bin/i586-pc-linux-gnu-g++ #usr/bin/i586-pc-linux-gnu-gcc -#usr/bin/i586-pc-linux-gnu-gcc-4.1.2 +#usr/bin/i586-pc-linux-gnu-gcc-4.4.7 #usr/include/c++ -#usr/include/c++/4.1.2 -#usr/include/c++/4.1.2/algorithm -#usr/include/c++/4.1.2/backward -#usr/include/c++/4.1.2/backward/algo.h -#usr/include/c++/4.1.2/backward/algobase.h -#usr/include/c++/4.1.2/backward/alloc.h -#usr/include/c++/4.1.2/backward/backward_warning.h -#usr/include/c++/4.1.2/backward/bvector.h -#usr/include/c++/4.1.2/backward/complex.h -#usr/include/c++/4.1.2/backward/defalloc.h -#usr/include/c++/4.1.2/backward/deque.h -#usr/include/c++/4.1.2/backward/fstream.h -#usr/include/c++/4.1.2/backward/function.h -#usr/include/c++/4.1.2/backward/hash_map.h -#usr/include/c++/4.1.2/backward/hash_set.h -#usr/include/c++/4.1.2/backward/hashtable.h -#usr/include/c++/4.1.2/backward/heap.h -#usr/include/c++/4.1.2/backward/iomanip.h -#usr/include/c++/4.1.2/backward/iostream.h -#usr/include/c++/4.1.2/backward/istream.h -#usr/include/c++/4.1.2/backward/iterator.h -#usr/include/c++/4.1.2/backward/list.h -#usr/include/c++/4.1.2/backward/map.h -#usr/include/c++/4.1.2/backward/multimap.h -#usr/include/c++/4.1.2/backward/multiset.h -#usr/include/c++/4.1.2/backward/new.h -#usr/include/c++/4.1.2/backward/ostream.h -#usr/include/c++/4.1.2/backward/pair.h -#usr/include/c++/4.1.2/backward/queue.h -#usr/include/c++/4.1.2/backward/rope.h -#usr/include/c++/4.1.2/backward/set.h -#usr/include/c++/4.1.2/backward/slist.h -#usr/include/c++/4.1.2/backward/stack.h -#usr/include/c++/4.1.2/backward/stream.h -#usr/include/c++/4.1.2/backward/streambuf.h -#usr/include/c++/4.1.2/backward/strstream -#usr/include/c++/4.1.2/backward/tempbuf.h -#usr/include/c++/4.1.2/backward/tree.h -#usr/include/c++/4.1.2/backward/vector.h -#usr/include/c++/4.1.2/bits -#usr/include/c++/4.1.2/bits/allocator.h -#usr/include/c++/4.1.2/bits/atomicity.h -#usr/include/c++/4.1.2/bits/basic_ios.h -#usr/include/c++/4.1.2/bits/basic_ios.tcc -#usr/include/c++/4.1.2/bits/basic_string.h -#usr/include/c++/4.1.2/bits/basic_string.tcc -#usr/include/c++/4.1.2/bits/boost_concept_check.h -#usr/include/c++/4.1.2/bits/char_traits.h -#usr/include/c++/4.1.2/bits/cmath.tcc -#usr/include/c++/4.1.2/bits/codecvt.h -#usr/include/c++/4.1.2/bits/concept_check.h -#usr/include/c++/4.1.2/bits/concurrence.h -#usr/include/c++/4.1.2/bits/cpp_type_traits.h -#usr/include/c++/4.1.2/bits/deque.tcc -#usr/include/c++/4.1.2/bits/fstream.tcc -#usr/include/c++/4.1.2/bits/functexcept.h -#usr/include/c++/4.1.2/bits/gslice.h -#usr/include/c++/4.1.2/bits/gslice_array.h -#usr/include/c++/4.1.2/bits/indirect_array.h -#usr/include/c++/4.1.2/bits/ios_base.h -#usr/include/c++/4.1.2/bits/istream.tcc -#usr/include/c++/4.1.2/bits/list.tcc -#usr/include/c++/4.1.2/bits/locale_classes.h -#usr/include/c++/4.1.2/bits/locale_facets.h -#usr/include/c++/4.1.2/bits/locale_facets.tcc -#usr/include/c++/4.1.2/bits/localefwd.h -#usr/include/c++/4.1.2/bits/mask_array.h -#usr/include/c++/4.1.2/bits/ostream.tcc -#usr/include/c++/4.1.2/bits/postypes.h -#usr/include/c++/4.1.2/bits/slice_array.h -#usr/include/c++/4.1.2/bits/sstream.tcc -#usr/include/c++/4.1.2/bits/stl_algo.h -#usr/include/c++/4.1.2/bits/stl_algobase.h -#usr/include/c++/4.1.2/bits/stl_bvector.h -#usr/include/c++/4.1.2/bits/stl_construct.h -#usr/include/c++/4.1.2/bits/stl_deque.h -#usr/include/c++/4.1.2/bits/stl_function.h -#usr/include/c++/4.1.2/bits/stl_heap.h -#usr/include/c++/4.1.2/bits/stl_iterator.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h -#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h -#usr/include/c++/4.1.2/bits/stl_list.h -#usr/include/c++/4.1.2/bits/stl_map.h -#usr/include/c++/4.1.2/bits/stl_multimap.h -#usr/include/c++/4.1.2/bits/stl_multiset.h -#usr/include/c++/4.1.2/bits/stl_numeric.h -#usr/include/c++/4.1.2/bits/stl_pair.h -#usr/include/c++/4.1.2/bits/stl_queue.h -#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h -#usr/include/c++/4.1.2/bits/stl_relops.h -#usr/include/c++/4.1.2/bits/stl_set.h -#usr/include/c++/4.1.2/bits/stl_stack.h -#usr/include/c++/4.1.2/bits/stl_tempbuf.h -#usr/include/c++/4.1.2/bits/stl_tree.h -#usr/include/c++/4.1.2/bits/stl_uninitialized.h -#usr/include/c++/4.1.2/bits/stl_vector.h -#usr/include/c++/4.1.2/bits/stream_iterator.h -#usr/include/c++/4.1.2/bits/streambuf.tcc -#usr/include/c++/4.1.2/bits/streambuf_iterator.h -#usr/include/c++/4.1.2/bits/stringfwd.h -#usr/include/c++/4.1.2/bits/valarray_after.h -#usr/include/c++/4.1.2/bits/valarray_array.h -#usr/include/c++/4.1.2/bits/valarray_array.tcc -#usr/include/c++/4.1.2/bits/valarray_before.h -#usr/include/c++/4.1.2/bits/vector.tcc -#usr/include/c++/4.1.2/bitset -#usr/include/c++/4.1.2/cassert -#usr/include/c++/4.1.2/cctype -#usr/include/c++/4.1.2/cerrno -#usr/include/c++/4.1.2/cfloat -#usr/include/c++/4.1.2/ciso646 -#usr/include/c++/4.1.2/climits -#usr/include/c++/4.1.2/clocale -#usr/include/c++/4.1.2/cmath -#usr/include/c++/4.1.2/complex -#usr/include/c++/4.1.2/csetjmp -#usr/include/c++/4.1.2/csignal -#usr/include/c++/4.1.2/cstdarg -#usr/include/c++/4.1.2/cstddef -#usr/include/c++/4.1.2/cstdio -#usr/include/c++/4.1.2/cstdlib -#usr/include/c++/4.1.2/cstring -#usr/include/c++/4.1.2/ctime -#usr/include/c++/4.1.2/cwchar -#usr/include/c++/4.1.2/cwctype -#usr/include/c++/4.1.2/cxxabi.h -#usr/include/c++/4.1.2/debug -#usr/include/c++/4.1.2/debug/bitset -#usr/include/c++/4.1.2/debug/debug.h -#usr/include/c++/4.1.2/debug/deque -#usr/include/c++/4.1.2/debug/formatter.h -#usr/include/c++/4.1.2/debug/functions.h -#usr/include/c++/4.1.2/debug/hash_map -#usr/include/c++/4.1.2/debug/hash_map.h -#usr/include/c++/4.1.2/debug/hash_multimap.h -#usr/include/c++/4.1.2/debug/hash_multiset.h -#usr/include/c++/4.1.2/debug/hash_set -#usr/include/c++/4.1.2/debug/hash_set.h -#usr/include/c++/4.1.2/debug/list -#usr/include/c++/4.1.2/debug/macros.h -#usr/include/c++/4.1.2/debug/map -#usr/include/c++/4.1.2/debug/map.h -#usr/include/c++/4.1.2/debug/multimap.h -#usr/include/c++/4.1.2/debug/multiset.h -#usr/include/c++/4.1.2/debug/safe_base.h -#usr/include/c++/4.1.2/debug/safe_iterator.h -#usr/include/c++/4.1.2/debug/safe_iterator.tcc -#usr/include/c++/4.1.2/debug/safe_sequence.h -#usr/include/c++/4.1.2/debug/set -#usr/include/c++/4.1.2/debug/set.h -#usr/include/c++/4.1.2/debug/string -#usr/include/c++/4.1.2/debug/vector -#usr/include/c++/4.1.2/deque -#usr/include/c++/4.1.2/exception -#usr/include/c++/4.1.2/exception_defines.h -#usr/include/c++/4.1.2/ext -#usr/include/c++/4.1.2/ext/algorithm -#usr/include/c++/4.1.2/ext/array_allocator.h -#usr/include/c++/4.1.2/ext/bitmap_allocator.h -#usr/include/c++/4.1.2/ext/codecvt_specializations.h -#usr/include/c++/4.1.2/ext/debug_allocator.h -#usr/include/c++/4.1.2/ext/functional -#usr/include/c++/4.1.2/ext/hash_fun.h -#usr/include/c++/4.1.2/ext/hash_map -#usr/include/c++/4.1.2/ext/hash_set -#usr/include/c++/4.1.2/ext/hashtable.h -#usr/include/c++/4.1.2/ext/iterator -#usr/include/c++/4.1.2/ext/malloc_allocator.h -#usr/include/c++/4.1.2/ext/memory -#usr/include/c++/4.1.2/ext/mt_allocator.h -#usr/include/c++/4.1.2/ext/new_allocator.h -#usr/include/c++/4.1.2/ext/numeric -#usr/include/c++/4.1.2/ext/pb_assoc -#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail -#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_ -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp -#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp -#usr/include/c++/4.1.2/ext/pod_char_traits.h -#usr/include/c++/4.1.2/ext/pool_allocator.h -#usr/include/c++/4.1.2/ext/rb_tree -#usr/include/c++/4.1.2/ext/rc_string_base.h -#usr/include/c++/4.1.2/ext/rope -#usr/include/c++/4.1.2/ext/ropeimpl.h -#usr/include/c++/4.1.2/ext/slist -#usr/include/c++/4.1.2/ext/sso_string_base.h -#usr/include/c++/4.1.2/ext/stdio_filebuf.h -#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h -#usr/include/c++/4.1.2/ext/typelist.h -#usr/include/c++/4.1.2/ext/vstring.h -#usr/include/c++/4.1.2/ext/vstring.tcc -#usr/include/c++/4.1.2/ext/vstring_fwd.h -#usr/include/c++/4.1.2/ext/vstring_util.h -#usr/include/c++/4.1.2/fstream -#usr/include/c++/4.1.2/functional -#usr/include/c++/4.1.2/i586-pc-linux-gnu -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/atomic_word.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/basic_file.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++allocator.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++config.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++io.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++locale.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cpu_defines.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_base.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_inline.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_noninline.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cxxabi_tweaks.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-default.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-posix.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-single.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-tpf.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/messages_members.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/os_defines.h -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O0g.gch -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O2g.gch -#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/time_members.h -#usr/include/c++/4.1.2/iomanip -#usr/include/c++/4.1.2/ios -#usr/include/c++/4.1.2/iosfwd -#usr/include/c++/4.1.2/iostream -#usr/include/c++/4.1.2/istream -#usr/include/c++/4.1.2/iterator -#usr/include/c++/4.1.2/limits -#usr/include/c++/4.1.2/list -#usr/include/c++/4.1.2/locale -#usr/include/c++/4.1.2/map -#usr/include/c++/4.1.2/memory -#usr/include/c++/4.1.2/new -#usr/include/c++/4.1.2/numeric -#usr/include/c++/4.1.2/ostream -#usr/include/c++/4.1.2/queue -#usr/include/c++/4.1.2/set -#usr/include/c++/4.1.2/sstream -#usr/include/c++/4.1.2/stack -#usr/include/c++/4.1.2/stdexcept -#usr/include/c++/4.1.2/streambuf -#usr/include/c++/4.1.2/string -#usr/include/c++/4.1.2/tr1 -#usr/include/c++/4.1.2/tr1/array -#usr/include/c++/4.1.2/tr1/bind_iterate.h -#usr/include/c++/4.1.2/tr1/bind_repeat.h -#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h -#usr/include/c++/4.1.2/tr1/functional -#usr/include/c++/4.1.2/tr1/functional_iterate.h -#usr/include/c++/4.1.2/tr1/hashtable -#usr/include/c++/4.1.2/tr1/memory -#usr/include/c++/4.1.2/tr1/mu_iterate.h -#usr/include/c++/4.1.2/tr1/ref_fwd.h -#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h -#usr/include/c++/4.1.2/tr1/repeat.h -#usr/include/c++/4.1.2/tr1/tuple -#usr/include/c++/4.1.2/tr1/tuple_iterate.h -#usr/include/c++/4.1.2/tr1/type_traits -#usr/include/c++/4.1.2/tr1/type_traits_fwd.h -#usr/include/c++/4.1.2/tr1/unordered_map -#usr/include/c++/4.1.2/tr1/unordered_set -#usr/include/c++/4.1.2/tr1/utility -#usr/include/c++/4.1.2/typeinfo -#usr/include/c++/4.1.2/utility -#usr/include/c++/4.1.2/valarray -#usr/include/c++/4.1.2/vector -#usr/include/mf-runtime.h +#usr/include/c++/4.4.7 +#usr/include/c++/4.4.7/algorithm +#usr/include/c++/4.4.7/array +#usr/include/c++/4.4.7/backward +#usr/include/c++/4.4.7/backward/auto_ptr.h +#usr/include/c++/4.4.7/backward/backward_warning.h +#usr/include/c++/4.4.7/backward/binders.h +#usr/include/c++/4.4.7/backward/hash_fun.h +#usr/include/c++/4.4.7/backward/hash_map +#usr/include/c++/4.4.7/backward/hash_set +#usr/include/c++/4.4.7/backward/hashtable.h +#usr/include/c++/4.4.7/backward/strstream +#usr/include/c++/4.4.7/bits +#usr/include/c++/4.4.7/bits/algorithmfwd.h +#usr/include/c++/4.4.7/bits/allocator.h +#usr/include/c++/4.4.7/bits/atomic_0.h +#usr/include/c++/4.4.7/bits/atomic_2.h +#usr/include/c++/4.4.7/bits/atomicfwd_c.h +#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h +#usr/include/c++/4.4.7/bits/basic_ios.h +#usr/include/c++/4.4.7/bits/basic_ios.tcc +#usr/include/c++/4.4.7/bits/basic_string.h +#usr/include/c++/4.4.7/bits/basic_string.tcc +#usr/include/c++/4.4.7/bits/boost_concept_check.h +#usr/include/c++/4.4.7/bits/char_traits.h +#usr/include/c++/4.4.7/bits/cmath.tcc +#usr/include/c++/4.4.7/bits/codecvt.h +#usr/include/c++/4.4.7/bits/concept_check.h +#usr/include/c++/4.4.7/bits/cpp_type_traits.h +#usr/include/c++/4.4.7/bits/deque.tcc +#usr/include/c++/4.4.7/bits/forward_list.h +#usr/include/c++/4.4.7/bits/forward_list.tcc +#usr/include/c++/4.4.7/bits/fstream.tcc +#usr/include/c++/4.4.7/bits/functexcept.h +#usr/include/c++/4.4.7/bits/functional_hash.h +#usr/include/c++/4.4.7/bits/gslice.h +#usr/include/c++/4.4.7/bits/gslice_array.h +#usr/include/c++/4.4.7/bits/hashtable.h +#usr/include/c++/4.4.7/bits/indirect_array.h +#usr/include/c++/4.4.7/bits/ios_base.h +#usr/include/c++/4.4.7/bits/istream.tcc +#usr/include/c++/4.4.7/bits/list.tcc +#usr/include/c++/4.4.7/bits/locale_classes.h +#usr/include/c++/4.4.7/bits/locale_classes.tcc +#usr/include/c++/4.4.7/bits/locale_facets.h +#usr/include/c++/4.4.7/bits/locale_facets.tcc +#usr/include/c++/4.4.7/bits/locale_facets_nonio.h +#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc +#usr/include/c++/4.4.7/bits/localefwd.h +#usr/include/c++/4.4.7/bits/mask_array.h +#usr/include/c++/4.4.7/bits/move.h +#usr/include/c++/4.4.7/bits/ostream.tcc +#usr/include/c++/4.4.7/bits/ostream_insert.h +#usr/include/c++/4.4.7/bits/postypes.h +#usr/include/c++/4.4.7/bits/shared_ptr.h +#usr/include/c++/4.4.7/bits/slice_array.h +#usr/include/c++/4.4.7/bits/sstream.tcc +#usr/include/c++/4.4.7/bits/stl_algo.h +#usr/include/c++/4.4.7/bits/stl_algobase.h +#usr/include/c++/4.4.7/bits/stl_bvector.h +#usr/include/c++/4.4.7/bits/stl_construct.h +#usr/include/c++/4.4.7/bits/stl_deque.h +#usr/include/c++/4.4.7/bits/stl_function.h +#usr/include/c++/4.4.7/bits/stl_heap.h +#usr/include/c++/4.4.7/bits/stl_iterator.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h +#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h +#usr/include/c++/4.4.7/bits/stl_list.h +#usr/include/c++/4.4.7/bits/stl_map.h +#usr/include/c++/4.4.7/bits/stl_multimap.h +#usr/include/c++/4.4.7/bits/stl_multiset.h +#usr/include/c++/4.4.7/bits/stl_numeric.h +#usr/include/c++/4.4.7/bits/stl_pair.h +#usr/include/c++/4.4.7/bits/stl_queue.h +#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h +#usr/include/c++/4.4.7/bits/stl_relops.h +#usr/include/c++/4.4.7/bits/stl_set.h +#usr/include/c++/4.4.7/bits/stl_stack.h +#usr/include/c++/4.4.7/bits/stl_tempbuf.h +#usr/include/c++/4.4.7/bits/stl_tree.h +#usr/include/c++/4.4.7/bits/stl_uninitialized.h +#usr/include/c++/4.4.7/bits/stl_vector.h +#usr/include/c++/4.4.7/bits/stream_iterator.h +#usr/include/c++/4.4.7/bits/streambuf.tcc +#usr/include/c++/4.4.7/bits/streambuf_iterator.h +#usr/include/c++/4.4.7/bits/stringfwd.h +#usr/include/c++/4.4.7/bits/unique_ptr.h +#usr/include/c++/4.4.7/bits/valarray_after.h +#usr/include/c++/4.4.7/bits/valarray_array.h +#usr/include/c++/4.4.7/bits/valarray_array.tcc +#usr/include/c++/4.4.7/bits/valarray_before.h +#usr/include/c++/4.4.7/bits/vector.tcc +#usr/include/c++/4.4.7/bitset +#usr/include/c++/4.4.7/c++0x_warning.h +#usr/include/c++/4.4.7/cassert +#usr/include/c++/4.4.7/ccomplex +#usr/include/c++/4.4.7/cctype +#usr/include/c++/4.4.7/cerrno +#usr/include/c++/4.4.7/cfenv +#usr/include/c++/4.4.7/cfloat +#usr/include/c++/4.4.7/chrono +#usr/include/c++/4.4.7/cinttypes +#usr/include/c++/4.4.7/ciso646 +#usr/include/c++/4.4.7/climits +#usr/include/c++/4.4.7/clocale +#usr/include/c++/4.4.7/cmath +#usr/include/c++/4.4.7/complex +#usr/include/c++/4.4.7/complex.h +#usr/include/c++/4.4.7/condition_variable +#usr/include/c++/4.4.7/csetjmp +#usr/include/c++/4.4.7/csignal +#usr/include/c++/4.4.7/cstdarg +#usr/include/c++/4.4.7/cstdatomic +#usr/include/c++/4.4.7/cstdbool +#usr/include/c++/4.4.7/cstddef +#usr/include/c++/4.4.7/cstdint +#usr/include/c++/4.4.7/cstdio +#usr/include/c++/4.4.7/cstdlib +#usr/include/c++/4.4.7/cstring +#usr/include/c++/4.4.7/ctgmath +#usr/include/c++/4.4.7/ctime +#usr/include/c++/4.4.7/cwchar +#usr/include/c++/4.4.7/cwctype +#usr/include/c++/4.4.7/cxxabi-forced.h +#usr/include/c++/4.4.7/cxxabi.h +#usr/include/c++/4.4.7/debug +#usr/include/c++/4.4.7/debug/bitset +#usr/include/c++/4.4.7/debug/debug.h +#usr/include/c++/4.4.7/debug/deque +#usr/include/c++/4.4.7/debug/formatter.h +#usr/include/c++/4.4.7/debug/functions.h +#usr/include/c++/4.4.7/debug/list +#usr/include/c++/4.4.7/debug/macros.h +#usr/include/c++/4.4.7/debug/map +#usr/include/c++/4.4.7/debug/map.h +#usr/include/c++/4.4.7/debug/multimap.h +#usr/include/c++/4.4.7/debug/multiset.h +#usr/include/c++/4.4.7/debug/safe_base.h +#usr/include/c++/4.4.7/debug/safe_iterator.h +#usr/include/c++/4.4.7/debug/safe_iterator.tcc +#usr/include/c++/4.4.7/debug/safe_sequence.h +#usr/include/c++/4.4.7/debug/set +#usr/include/c++/4.4.7/debug/set.h +#usr/include/c++/4.4.7/debug/string +#usr/include/c++/4.4.7/debug/unordered_map +#usr/include/c++/4.4.7/debug/unordered_set +#usr/include/c++/4.4.7/debug/vector +#usr/include/c++/4.4.7/deque +#usr/include/c++/4.4.7/exception +#usr/include/c++/4.4.7/exception_defines.h +#usr/include/c++/4.4.7/exception_ptr.h +#usr/include/c++/4.4.7/ext +#usr/include/c++/4.4.7/ext/algorithm +#usr/include/c++/4.4.7/ext/array_allocator.h +#usr/include/c++/4.4.7/ext/atomicity.h +#usr/include/c++/4.4.7/ext/bitmap_allocator.h +#usr/include/c++/4.4.7/ext/cast.h +#usr/include/c++/4.4.7/ext/codecvt_specializations.h +#usr/include/c++/4.4.7/ext/concurrence.h +#usr/include/c++/4.4.7/ext/debug_allocator.h +#usr/include/c++/4.4.7/ext/enc_filebuf.h +#usr/include/c++/4.4.7/ext/extptr_allocator.h +#usr/include/c++/4.4.7/ext/functional +#usr/include/c++/4.4.7/ext/hash_map +#usr/include/c++/4.4.7/ext/hash_set +#usr/include/c++/4.4.7/ext/iterator +#usr/include/c++/4.4.7/ext/malloc_allocator.h +#usr/include/c++/4.4.7/ext/memory +#usr/include/c++/4.4.7/ext/mt_allocator.h +#usr/include/c++/4.4.7/ext/new_allocator.h +#usr/include/c++/4.4.7/ext/numeric +#usr/include/c++/4.4.7/ext/numeric_traits.h +#usr/include/c++/4.4.7/ext/pb_ds +#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_ +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp +#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp +#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp +#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp +#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp +#usr/include/c++/4.4.7/ext/pod_char_traits.h +#usr/include/c++/4.4.7/ext/pointer.h +#usr/include/c++/4.4.7/ext/pool_allocator.h +#usr/include/c++/4.4.7/ext/rb_tree +#usr/include/c++/4.4.7/ext/rc_string_base.h +#usr/include/c++/4.4.7/ext/rope +#usr/include/c++/4.4.7/ext/ropeimpl.h +#usr/include/c++/4.4.7/ext/slist +#usr/include/c++/4.4.7/ext/sso_string_base.h +#usr/include/c++/4.4.7/ext/stdio_filebuf.h +#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h +#usr/include/c++/4.4.7/ext/string_conversions.h +#usr/include/c++/4.4.7/ext/throw_allocator.h +#usr/include/c++/4.4.7/ext/type_traits.h +#usr/include/c++/4.4.7/ext/typelist.h +#usr/include/c++/4.4.7/ext/vstring.h +#usr/include/c++/4.4.7/ext/vstring.tcc +#usr/include/c++/4.4.7/ext/vstring_fwd.h +#usr/include/c++/4.4.7/ext/vstring_util.h +#usr/include/c++/4.4.7/fenv.h +#usr/include/c++/4.4.7/forward_list +#usr/include/c++/4.4.7/fstream +#usr/include/c++/4.4.7/functional +#usr/include/c++/4.4.7/i586-pc-linux-gnu +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/atomic_word.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/basic_file.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++allocator.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++config.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++io.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++locale.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cpu_defines.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_base.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_inline.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_noninline.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cxxabi_tweaks.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/error_constants.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/extc++.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-default.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-posix.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-single.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-tpf.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/messages_members.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/os_defines.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdc++.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdtr1c++.h +#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/time_members.h +#usr/include/c++/4.4.7/initializer_list +#usr/include/c++/4.4.7/iomanip +#usr/include/c++/4.4.7/ios +#usr/include/c++/4.4.7/iosfwd +#usr/include/c++/4.4.7/iostream +#usr/include/c++/4.4.7/istream +#usr/include/c++/4.4.7/iterator +#usr/include/c++/4.4.7/limits +#usr/include/c++/4.4.7/list +#usr/include/c++/4.4.7/locale +#usr/include/c++/4.4.7/map +#usr/include/c++/4.4.7/memory +#usr/include/c++/4.4.7/mutex +#usr/include/c++/4.4.7/new +#usr/include/c++/4.4.7/numeric +#usr/include/c++/4.4.7/ostream +#usr/include/c++/4.4.7/parallel +#usr/include/c++/4.4.7/parallel/algo.h +#usr/include/c++/4.4.7/parallel/algobase.h +#usr/include/c++/4.4.7/parallel/algorithm +#usr/include/c++/4.4.7/parallel/algorithmfwd.h +#usr/include/c++/4.4.7/parallel/balanced_quicksort.h +#usr/include/c++/4.4.7/parallel/base.h +#usr/include/c++/4.4.7/parallel/basic_iterator.h +#usr/include/c++/4.4.7/parallel/checkers.h +#usr/include/c++/4.4.7/parallel/compatibility.h +#usr/include/c++/4.4.7/parallel/compiletime_settings.h +#usr/include/c++/4.4.7/parallel/equally_split.h +#usr/include/c++/4.4.7/parallel/features.h +#usr/include/c++/4.4.7/parallel/find.h +#usr/include/c++/4.4.7/parallel/find_selectors.h +#usr/include/c++/4.4.7/parallel/for_each.h +#usr/include/c++/4.4.7/parallel/for_each_selectors.h +#usr/include/c++/4.4.7/parallel/iterator.h +#usr/include/c++/4.4.7/parallel/list_partition.h +#usr/include/c++/4.4.7/parallel/losertree.h +#usr/include/c++/4.4.7/parallel/merge.h +#usr/include/c++/4.4.7/parallel/multiseq_selection.h +#usr/include/c++/4.4.7/parallel/multiway_merge.h +#usr/include/c++/4.4.7/parallel/multiway_mergesort.h +#usr/include/c++/4.4.7/parallel/numeric +#usr/include/c++/4.4.7/parallel/numericfwd.h +#usr/include/c++/4.4.7/parallel/omp_loop.h +#usr/include/c++/4.4.7/parallel/omp_loop_static.h +#usr/include/c++/4.4.7/parallel/par_loop.h +#usr/include/c++/4.4.7/parallel/parallel.h +#usr/include/c++/4.4.7/parallel/partial_sum.h +#usr/include/c++/4.4.7/parallel/partition.h +#usr/include/c++/4.4.7/parallel/queue.h +#usr/include/c++/4.4.7/parallel/quicksort.h +#usr/include/c++/4.4.7/parallel/random_number.h +#usr/include/c++/4.4.7/parallel/random_shuffle.h +#usr/include/c++/4.4.7/parallel/search.h +#usr/include/c++/4.4.7/parallel/set_operations.h +#usr/include/c++/4.4.7/parallel/settings.h +#usr/include/c++/4.4.7/parallel/sort.h +#usr/include/c++/4.4.7/parallel/tags.h +#usr/include/c++/4.4.7/parallel/types.h +#usr/include/c++/4.4.7/parallel/unique_copy.h +#usr/include/c++/4.4.7/parallel/workstealing.h +#usr/include/c++/4.4.7/queue +#usr/include/c++/4.4.7/random +#usr/include/c++/4.4.7/ratio +#usr/include/c++/4.4.7/regex +#usr/include/c++/4.4.7/set +#usr/include/c++/4.4.7/sstream +#usr/include/c++/4.4.7/stack +#usr/include/c++/4.4.7/stdatomic.h +#usr/include/c++/4.4.7/stdexcept +#usr/include/c++/4.4.7/streambuf +#usr/include/c++/4.4.7/string +#usr/include/c++/4.4.7/system_error +#usr/include/c++/4.4.7/tgmath.h +#usr/include/c++/4.4.7/thread +#usr/include/c++/4.4.7/tr1 +#usr/include/c++/4.4.7/tr1/array +#usr/include/c++/4.4.7/tr1/bessel_function.tcc +#usr/include/c++/4.4.7/tr1/beta_function.tcc +#usr/include/c++/4.4.7/tr1/ccomplex +#usr/include/c++/4.4.7/tr1/cctype +#usr/include/c++/4.4.7/tr1/cfenv +#usr/include/c++/4.4.7/tr1/cfloat +#usr/include/c++/4.4.7/tr1/cinttypes +#usr/include/c++/4.4.7/tr1/climits +#usr/include/c++/4.4.7/tr1/cmath +#usr/include/c++/4.4.7/tr1/complex +#usr/include/c++/4.4.7/tr1/complex.h +#usr/include/c++/4.4.7/tr1/cstdarg +#usr/include/c++/4.4.7/tr1/cstdbool +#usr/include/c++/4.4.7/tr1/cstdint +#usr/include/c++/4.4.7/tr1/cstdio +#usr/include/c++/4.4.7/tr1/cstdlib +#usr/include/c++/4.4.7/tr1/ctgmath +#usr/include/c++/4.4.7/tr1/ctime +#usr/include/c++/4.4.7/tr1/ctype.h +#usr/include/c++/4.4.7/tr1/cwchar +#usr/include/c++/4.4.7/tr1/cwctype +#usr/include/c++/4.4.7/tr1/ell_integral.tcc +#usr/include/c++/4.4.7/tr1/exp_integral.tcc +#usr/include/c++/4.4.7/tr1/fenv.h +#usr/include/c++/4.4.7/tr1/float.h +#usr/include/c++/4.4.7/tr1/functional +#usr/include/c++/4.4.7/tr1/functional_hash.h +#usr/include/c++/4.4.7/tr1/gamma.tcc +#usr/include/c++/4.4.7/tr1/hashtable.h +#usr/include/c++/4.4.7/tr1/hypergeometric.tcc +#usr/include/c++/4.4.7/tr1/inttypes.h +#usr/include/c++/4.4.7/tr1/legendre_function.tcc +#usr/include/c++/4.4.7/tr1/limits.h +#usr/include/c++/4.4.7/tr1/math.h +#usr/include/c++/4.4.7/tr1/memory +#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc +#usr/include/c++/4.4.7/tr1/poly_hermite.tcc +#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc +#usr/include/c++/4.4.7/tr1/random +#usr/include/c++/4.4.7/tr1/regex +#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc +#usr/include/c++/4.4.7/tr1/shared_ptr.h +#usr/include/c++/4.4.7/tr1/special_function_util.h +#usr/include/c++/4.4.7/tr1/stdarg.h +#usr/include/c++/4.4.7/tr1/stdbool.h +#usr/include/c++/4.4.7/tr1/stdint.h +#usr/include/c++/4.4.7/tr1/stdio.h +#usr/include/c++/4.4.7/tr1/stdlib.h +#usr/include/c++/4.4.7/tr1/tgmath.h +#usr/include/c++/4.4.7/tr1/tuple +#usr/include/c++/4.4.7/tr1/type_traits +#usr/include/c++/4.4.7/tr1/unordered_map +#usr/include/c++/4.4.7/tr1/unordered_set +#usr/include/c++/4.4.7/tr1/utility +#usr/include/c++/4.4.7/tr1/wchar.h +#usr/include/c++/4.4.7/tr1/wctype.h +#usr/include/c++/4.4.7/tr1_impl +#usr/include/c++/4.4.7/tr1_impl/array +#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h +#usr/include/c++/4.4.7/tr1_impl/cctype +#usr/include/c++/4.4.7/tr1_impl/cfenv +#usr/include/c++/4.4.7/tr1_impl/cinttypes +#usr/include/c++/4.4.7/tr1_impl/cmath +#usr/include/c++/4.4.7/tr1_impl/complex +#usr/include/c++/4.4.7/tr1_impl/cstdint +#usr/include/c++/4.4.7/tr1_impl/cstdio +#usr/include/c++/4.4.7/tr1_impl/cstdlib +#usr/include/c++/4.4.7/tr1_impl/cwchar +#usr/include/c++/4.4.7/tr1_impl/cwctype +#usr/include/c++/4.4.7/tr1_impl/functional +#usr/include/c++/4.4.7/tr1_impl/functional_hash.h +#usr/include/c++/4.4.7/tr1_impl/hashtable +#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h +#usr/include/c++/4.4.7/tr1_impl/random +#usr/include/c++/4.4.7/tr1_impl/random.tcc +#usr/include/c++/4.4.7/tr1_impl/regex +#usr/include/c++/4.4.7/tr1_impl/type_traits +#usr/include/c++/4.4.7/tr1_impl/unordered_map +#usr/include/c++/4.4.7/tr1_impl/unordered_set +#usr/include/c++/4.4.7/tr1_impl/utility +#usr/include/c++/4.4.7/tuple +#usr/include/c++/4.4.7/type_traits +#usr/include/c++/4.4.7/typeinfo +#usr/include/c++/4.4.7/unordered_map +#usr/include/c++/4.4.7/unordered_set +#usr/include/c++/4.4.7/utility +#usr/include/c++/4.4.7/valarray +#usr/include/c++/4.4.7/vector +#usr/info #usr/info/cpp.info #usr/info/cppinternals.info +#usr/info/dir #usr/info/gcc.info #usr/info/gccinstall.info #usr/info/gccint.info +#usr/info/libgomp.info #usr/lib/gcc #usr/lib/gcc/i586-pc-linux-gnu -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2 -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1 -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1plus -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/collect2 -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbegin.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginS.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginT.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtend.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtendS.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtfastmath.o -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/README -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/emmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/float.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/iso646.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/limits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm3dnow.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm_malloc.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/pmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/ssp.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/stdio.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/string.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/unistd.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdarg.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdbool.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stddef.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/syslimits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/unwind.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/varargs.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/xmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixinc.sh -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixincl -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/gsyslimits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/README -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/emmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/float.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/iso646.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/limits.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm3dnow.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm_malloc.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/pmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdarg.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdbool.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stddef.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/unwind.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/varargs.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/xmmintrin.h -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/macro_list -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders.conf -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc.a -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc_eh.a -#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcov.a +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7 +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1 +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1plus +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/collect2 +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbegin.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginS.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginT.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtend.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtendS.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtfastmath.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec32.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec64.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec80.o +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/finclude +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/README +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/limits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/syslimits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ammintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/avxintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/bmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cpuid.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cross-stdarg.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/emmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/float.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/immintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/iso646.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mf-runtime.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm3dnow.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm_malloc.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin-common.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/nmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/omp.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/pmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/smmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/ssp.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/stdio.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/string.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/unistd.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdarg.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdbool.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stddef.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdfix.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/tmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/unwind.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/varargs.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/wmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/x86intrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/xmmintrin.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc.sh +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc_list +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixincl +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/gsyslimits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/README +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/limits.h +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/macro_list +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders.conf +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkinstalldirs +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc.a +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc_eh.a +#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcov.a +#usr/lib/libgomp.a +#usr/lib/libgomp.la +#usr/lib/libgomp.so +usr/lib/libgomp.so.1 +usr/lib/libgomp.so.1.0.0 +#usr/lib/libgomp.spec #usr/lib/libmudflap.a #usr/lib/libmudflap.la -usr/lib/libmudflap.so +#usr/lib/libmudflap.so usr/lib/libmudflap.so.0 usr/lib/libmudflap.so.0.0.0 #usr/lib/libmudflapth.a #usr/lib/libmudflapth.la -usr/lib/libmudflapth.so +#usr/lib/libmudflapth.so usr/lib/libmudflapth.so.0 usr/lib/libmudflapth.so.0.0.0 #usr/lib/libssp.a #usr/lib/libssp.la -usr/lib/libssp.so +#usr/lib/libssp.so usr/lib/libssp.so.0 usr/lib/libssp.so.0.0.0 #usr/lib/libssp_nonshared.a #usr/lib/libssp_nonshared.la #usr/lib/libstdc++.a -#usr/lib/libstdc++.la -usr/lib/libstdc++.so -usr/lib/libstdc++.so.6 -usr/lib/libstdc++.so.6.0.8 +usr/lib/libstdc++.so.6.0.13 #usr/lib/libsupc++.a #usr/lib/libsupc++.la +#usr/man +#usr/man/man1 #usr/man/man1/cpp.1 #usr/man/man1/g++.1 #usr/man/man1/gcc.1 diff --git a/config/rootfiles/common/i586/glibc b/config/rootfiles/common/i586/glibc index 2b0d06e4d4..ca62948a3a 100644 --- a/config/rootfiles/common/i586/glibc +++ b/config/rootfiles/common/i586/glibc @@ -1,46 +1,48 @@ -etc/ld.so.cache +#etc/ld.so.cache etc/localtime -#etc/rpc -lib/ld-2.3.6.so +etc/rpc +lib/ld-2.12.so lib/ld-linux.so.2 -#lib/libBrokenLocale-2.3.6.so -#lib/libBrokenLocale.so.1 +lib/libBrokenLocale-2.12.so +lib/libBrokenLocale.so.1 #lib/libSegFault.so -#lib/libanl-2.3.6.so -#lib/libanl.so.1 -lib/libc-2.3.6.so +lib/libanl-2.12.so +lib/libanl.so.1 +lib/libc-2.12.so lib/libc.so.6 -lib/libcrypt-2.3.6.so +lib/libcidn-2.12.so +lib/libcidn.so.1 +lib/libcrypt-2.12.so lib/libcrypt.so.1 -lib/libdl-2.3.6.so +lib/libdl-2.12.so lib/libdl.so.2 -lib/libm-2.3.6.so +lib/libm-2.12.so lib/libm.so.6 #lib/libmemusage.so -lib/libnsl-2.3.6.so +lib/libnsl-2.12.so lib/libnsl.so.1 -lib/libnss_compat-2.3.6.so +lib/libnss_compat-2.12.so lib/libnss_compat.so.2 -lib/libnss_dns-2.3.6.so +lib/libnss_dns-2.12.so lib/libnss_dns.so.2 -lib/libnss_files-2.3.6.so +lib/libnss_files-2.12.so lib/libnss_files.so.2 -#lib/libnss_hesiod-2.3.6.so -#lib/libnss_hesiod.so.2 -#lib/libnss_nis-2.3.6.so -#lib/libnss_nis.so.2 -#lib/libnss_nisplus-2.3.6.so -#lib/libnss_nisplus.so.2 +lib/libnss_hesiod-2.12.so +lib/libnss_hesiod.so.2 +lib/libnss_nis-2.12.so +lib/libnss_nis.so.2 +lib/libnss_nisplus-2.12.so +lib/libnss_nisplus.so.2 #lib/libpcprofile.so -lib/libpthread-2.3.6.so +lib/libpthread-2.12.so lib/libpthread.so.0 -lib/libresolv-2.3.6.so +lib/libresolv-2.12.so lib/libresolv.so.2 -lib/librt-2.3.6.so +lib/librt-2.12.so lib/librt.so.1 -#lib/libthread_db-1.0.so -#lib/libthread_db.so.1 -lib/libutil-2.3.6.so +lib/libthread_db-1.0.so +lib/libthread_db.so.1 +lib/libutil-2.12.so lib/libutil.so.1 sbin/ldconfig #sbin/sln @@ -86,7 +88,9 @@ usr/bin/ldd #usr/include/bits/endian.h #usr/include/bits/environments.h #usr/include/bits/errno.h +#usr/include/bits/error.h #usr/include/bits/fcntl.h +#usr/include/bits/fcntl2.h #usr/include/bits/fenv.h #usr/include/bits/fenvinline.h #usr/include/bits/huge_val.h @@ -100,13 +104,17 @@ usr/bin/ldd #usr/include/bits/ipc.h #usr/include/bits/ipctypes.h #usr/include/bits/libc-lock.h +#usr/include/bits/libio-ldbl.h +#usr/include/bits/link.h #usr/include/bits/local_lim.h #usr/include/bits/locale.h #usr/include/bits/mathcalls.h #usr/include/bits/mathdef.h #usr/include/bits/mathinline.h #usr/include/bits/mman.h +#usr/include/bits/monetary-ldbl.h #usr/include/bits/mqueue.h +#usr/include/bits/mqueue2.h #usr/include/bits/msq.h #usr/include/bits/nan.h #usr/include/bits/netdb.h @@ -114,6 +122,7 @@ usr/bin/ldd #usr/include/bits/posix1_lim.h #usr/include/bits/posix2_lim.h #usr/include/bits/posix_opt.h +#usr/include/bits/printf-ldbl.h #usr/include/bits/pthreadtypes.h #usr/include/bits/resource.h #usr/include/bits/sched.h @@ -121,6 +130,7 @@ usr/bin/ldd #usr/include/bits/sem.h #usr/include/bits/semaphore.h #usr/include/bits/setjmp.h +#usr/include/bits/setjmp2.h #usr/include/bits/shm.h #usr/include/bits/sigaction.h #usr/include/bits/sigcontext.h @@ -131,35 +141,43 @@ usr/bin/ldd #usr/include/bits/sigthread.h #usr/include/bits/sockaddr.h #usr/include/bits/socket.h +#usr/include/bits/socket2.h #usr/include/bits/stab.def #usr/include/bits/stat.h #usr/include/bits/statfs.h #usr/include/bits/statvfs.h +#usr/include/bits/stdio-ldbl.h #usr/include/bits/stdio-lock.h #usr/include/bits/stdio.h #usr/include/bits/stdio2.h #usr/include/bits/stdio_lim.h +#usr/include/bits/stdlib-ldbl.h +#usr/include/bits/stdlib.h #usr/include/bits/string.h #usr/include/bits/string2.h #usr/include/bits/string3.h -#usr/include/bits/stropts.h #usr/include/bits/sys_errlist.h #usr/include/bits/syscall.h +#usr/include/bits/syslog-ldbl.h +#usr/include/bits/syslog-path.h +#usr/include/bits/syslog.h #usr/include/bits/termios.h #usr/include/bits/time.h #usr/include/bits/types.h #usr/include/bits/typesizes.h #usr/include/bits/uio.h +#usr/include/bits/unistd.h #usr/include/bits/ustat.h #usr/include/bits/utmp.h #usr/include/bits/utmpx.h #usr/include/bits/utsname.h #usr/include/bits/waitflags.h #usr/include/bits/waitstatus.h +#usr/include/bits/wchar-ldbl.h #usr/include/bits/wchar.h +#usr/include/bits/wchar2.h #usr/include/bits/wordsize.h #usr/include/bits/xopen_lim.h -#usr/include/bits/xtitypes.h #usr/include/byteswap.h #usr/include/complex.h #usr/include/cpio.h @@ -190,8 +208,10 @@ usr/bin/ldd #usr/include/gnu-versions.h #usr/include/gnu/lib-names.h #usr/include/gnu/libc-version.h +#usr/include/gnu/stubs-32.h #usr/include/gnu/stubs.h #usr/include/grp.h +#usr/include/gshadow.h #usr/include/iconv.h #usr/include/ieee754.h #usr/include/ifaddrs.h @@ -247,6 +267,8 @@ usr/bin/ldd #usr/include/netinet/udp.h #usr/include/netipx #usr/include/netipx/ipx.h +#usr/include/netiucv +#usr/include/netiucv/iucv.h #usr/include/netpacket #usr/include/netpacket/packet.h #usr/include/netrom @@ -332,7 +354,6 @@ usr/bin/ldd #usr/include/rpcsvc/yppasswd.x #usr/include/rpcsvc/ypupd.h #usr/include/sched.h -#usr/include/scsi #usr/include/scsi/scsi.h #usr/include/scsi/scsi_ioctl.h #usr/include/scsi/sg.h @@ -350,7 +371,6 @@ usr/bin/ldd #usr/include/stdlib.h #usr/include/string.h #usr/include/strings.h -#usr/include/stropts.h #usr/include/sys #usr/include/sys/acct.h #usr/include/sys/bitypes.h @@ -360,6 +380,7 @@ usr/bin/ldd #usr/include/sys/elf.h #usr/include/sys/epoll.h #usr/include/sys/errno.h +#usr/include/sys/eventfd.h #usr/include/sys/fcntl.h #usr/include/sys/file.h #usr/include/sys/fsuid.h @@ -396,13 +417,13 @@ usr/bin/ldd #usr/include/sys/sendfile.h #usr/include/sys/shm.h #usr/include/sys/signal.h +#usr/include/sys/signalfd.h #usr/include/sys/socket.h #usr/include/sys/socketvar.h #usr/include/sys/soundcard.h #usr/include/sys/stat.h #usr/include/sys/statfs.h #usr/include/sys/statvfs.h -#usr/include/sys/stropts.h #usr/include/sys/swap.h #usr/include/sys/syscall.h #usr/include/sys/sysctl.h @@ -412,6 +433,7 @@ usr/bin/ldd #usr/include/sys/termios.h #usr/include/sys/time.h #usr/include/sys/timeb.h +#usr/include/sys/timerfd.h #usr/include/sys/times.h #usr/include/sys/timex.h #usr/include/sys/ttychars.h @@ -455,20 +477,6 @@ usr/bin/ldd #usr/include/wctype.h #usr/include/wordexp.h #usr/include/xlocale.h -#usr/info -#usr/info/dir -#usr/info/libc.info -#usr/info/libc.info-1 -#usr/info/libc.info-10 -#usr/info/libc.info-11 -#usr/info/libc.info-2 -#usr/info/libc.info-3 -#usr/info/libc.info-4 -#usr/info/libc.info-5 -#usr/info/libc.info-6 -#usr/info/libc.info-7 -#usr/info/libc.info-8 -#usr/info/libc.info-9 #usr/lib/Mcrt1.o #usr/lib/Scrt1.o #usr/lib/crt1.o @@ -480,6 +488,7 @@ usr/lib/gconv #usr/lib/gconv/ASMO_449.so #usr/lib/gconv/BIG5.so #usr/lib/gconv/BIG5HKSCS.so +#usr/lib/gconv/BRF.so #usr/lib/gconv/CP10007.so #usr/lib/gconv/CP1125.so #usr/lib/gconv/CP1250.so @@ -530,22 +539,60 @@ usr/lib/gconv #usr/lib/gconv/GREEK-CCITT.so #usr/lib/gconv/GREEK7-OLD.so #usr/lib/gconv/GREEK7.so +#usr/lib/gconv/HP-GREEK8.so #usr/lib/gconv/HP-ROMAN8.so +#usr/lib/gconv/HP-ROMAN9.so +#usr/lib/gconv/HP-THAI8.so +#usr/lib/gconv/HP-TURKISH8.so #usr/lib/gconv/IBM037.so #usr/lib/gconv/IBM038.so #usr/lib/gconv/IBM1004.so +#usr/lib/gconv/IBM1008.so +#usr/lib/gconv/IBM1008_420.so +#usr/lib/gconv/IBM1025.so #usr/lib/gconv/IBM1026.so #usr/lib/gconv/IBM1046.so #usr/lib/gconv/IBM1047.so +#usr/lib/gconv/IBM1097.so +#usr/lib/gconv/IBM1112.so +#usr/lib/gconv/IBM1122.so +#usr/lib/gconv/IBM1123.so #usr/lib/gconv/IBM1124.so #usr/lib/gconv/IBM1129.so +#usr/lib/gconv/IBM1130.so #usr/lib/gconv/IBM1132.so #usr/lib/gconv/IBM1133.so +#usr/lib/gconv/IBM1137.so +#usr/lib/gconv/IBM1140.so +#usr/lib/gconv/IBM1141.so +#usr/lib/gconv/IBM1142.so +#usr/lib/gconv/IBM1143.so +#usr/lib/gconv/IBM1144.so +#usr/lib/gconv/IBM1145.so +#usr/lib/gconv/IBM1146.so +#usr/lib/gconv/IBM1147.so +#usr/lib/gconv/IBM1148.so +#usr/lib/gconv/IBM1149.so +#usr/lib/gconv/IBM1153.so +#usr/lib/gconv/IBM1154.so +#usr/lib/gconv/IBM1155.so +#usr/lib/gconv/IBM1156.so +#usr/lib/gconv/IBM1157.so +#usr/lib/gconv/IBM1158.so #usr/lib/gconv/IBM1160.so #usr/lib/gconv/IBM1161.so #usr/lib/gconv/IBM1162.so #usr/lib/gconv/IBM1163.so #usr/lib/gconv/IBM1164.so +#usr/lib/gconv/IBM1166.so +#usr/lib/gconv/IBM1167.so +#usr/lib/gconv/IBM12712.so +#usr/lib/gconv/IBM1364.so +#usr/lib/gconv/IBM1371.so +#usr/lib/gconv/IBM1388.so +#usr/lib/gconv/IBM1390.so +#usr/lib/gconv/IBM1399.so +#usr/lib/gconv/IBM16804.so #usr/lib/gconv/IBM256.so #usr/lib/gconv/IBM273.so #usr/lib/gconv/IBM274.so @@ -562,7 +609,13 @@ usr/lib/gconv #usr/lib/gconv/IBM423.so #usr/lib/gconv/IBM424.so #usr/lib/gconv/IBM437.so +#usr/lib/gconv/IBM4517.so +#usr/lib/gconv/IBM4899.so +#usr/lib/gconv/IBM4909.so +#usr/lib/gconv/IBM4971.so #usr/lib/gconv/IBM500.so +#usr/lib/gconv/IBM5347.so +#usr/lib/gconv/IBM803.so #usr/lib/gconv/IBM850.so #usr/lib/gconv/IBM851.so #usr/lib/gconv/IBM852.so @@ -585,10 +638,15 @@ usr/lib/gconv #usr/lib/gconv/IBM875.so #usr/lib/gconv/IBM880.so #usr/lib/gconv/IBM891.so +#usr/lib/gconv/IBM901.so +#usr/lib/gconv/IBM902.so #usr/lib/gconv/IBM903.so +#usr/lib/gconv/IBM9030.so #usr/lib/gconv/IBM904.so #usr/lib/gconv/IBM905.so +#usr/lib/gconv/IBM9066.so #usr/lib/gconv/IBM918.so +#usr/lib/gconv/IBM921.so #usr/lib/gconv/IBM922.so #usr/lib/gconv/IBM930.so #usr/lib/gconv/IBM932.so @@ -597,6 +655,7 @@ usr/lib/gconv #usr/lib/gconv/IBM937.so #usr/lib/gconv/IBM939.so #usr/lib/gconv/IBM943.so +#usr/lib/gconv/IBM9448.so #usr/lib/gconv/IEC_P27-1.so #usr/lib/gconv/INIS-8.so #usr/lib/gconv/INIS-CYRILLIC.so @@ -625,7 +684,9 @@ usr/lib/gconv #usr/lib/gconv/ISO8859-7.so #usr/lib/gconv/ISO8859-8.so #usr/lib/gconv/ISO8859-9.so +#usr/lib/gconv/ISO8859-9E.so #usr/lib/gconv/ISO_10367-BOX.so +#usr/lib/gconv/ISO_11548-1.so #usr/lib/gconv/ISO_2033.so #usr/lib/gconv/ISO_5427-EXT.so #usr/lib/gconv/ISO_5427.so @@ -635,14 +696,17 @@ usr/lib/gconv #usr/lib/gconv/JOHAB.so #usr/lib/gconv/KOI-8.so #usr/lib/gconv/KOI8-R.so +#usr/lib/gconv/KOI8-RU.so #usr/lib/gconv/KOI8-T.so #usr/lib/gconv/KOI8-U.so #usr/lib/gconv/LATIN-GREEK-1.so #usr/lib/gconv/LATIN-GREEK.so +#usr/lib/gconv/MAC-CENTRALEUROPE.so #usr/lib/gconv/MAC-IS.so #usr/lib/gconv/MAC-SAMI.so #usr/lib/gconv/MAC-UK.so #usr/lib/gconv/MACINTOSH.so +#usr/lib/gconv/MIK.so #usr/lib/gconv/NATS-DANO.so #usr/lib/gconv/NATS-SEFI.so #usr/lib/gconv/PT154.so @@ -672,6 +736,8 @@ usr/lib/gconv #usr/lib/glibc/getconf #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32 +#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG #usr/lib/glibc/pt_chown #usr/lib/libBrokenLocale.a #usr/lib/libBrokenLocale.so @@ -681,6 +747,7 @@ usr/lib/gconv #usr/lib/libc.a #usr/lib/libc.so #usr/lib/libc_nonshared.a +#usr/lib/libcidn.so #usr/lib/libcrypt.a #usr/lib/libcrypt.so #usr/lib/libdl.a @@ -713,7 +780,6 @@ usr/lib/gconv usr/lib/locale/locale-archive #usr/sbin/iconvconfig #usr/sbin/nscd -#usr/sbin/nscd_nischeck #usr/sbin/rpcinfo #usr/sbin/zdump #usr/sbin/zic @@ -725,6 +791,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ASMO_449.gz #usr/share/i18n/charmaps/BIG5-HKSCS.gz #usr/share/i18n/charmaps/BIG5.gz +#usr/share/i18n/charmaps/BRF.gz #usr/share/i18n/charmaps/BS_4730.gz #usr/share/i18n/charmaps/BS_VIEWDATA.gz #usr/share/i18n/charmaps/CP10007.gz @@ -783,7 +850,11 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/GREEK-CCITT.gz #usr/share/i18n/charmaps/GREEK7-OLD.gz #usr/share/i18n/charmaps/GREEK7.gz +#usr/share/i18n/charmaps/HP-GREEK8.gz #usr/share/i18n/charmaps/HP-ROMAN8.gz +#usr/share/i18n/charmaps/HP-ROMAN9.gz +#usr/share/i18n/charmaps/HP-THAI8.gz +#usr/share/i18n/charmaps/HP-TURKISH8.gz #usr/share/i18n/charmaps/IBM037.gz #usr/share/i18n/charmaps/IBM038.gz #usr/share/i18n/charmaps/IBM1004.gz @@ -863,11 +934,13 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/ISO-8859-7.gz #usr/share/i18n/charmaps/ISO-8859-8.gz #usr/share/i18n/charmaps/ISO-8859-9.gz +#usr/share/i18n/charmaps/ISO-8859-9E.gz #usr/share/i18n/charmaps/ISO-IR-197.gz #usr/share/i18n/charmaps/ISO-IR-209.gz #usr/share/i18n/charmaps/ISO-IR-90.gz #usr/share/i18n/charmaps/ISO_10367-BOX.gz #usr/share/i18n/charmaps/ISO_10646.gz +#usr/share/i18n/charmaps/ISO_11548-1.gz #usr/share/i18n/charmaps/ISO_2033-1983.gz #usr/share/i18n/charmaps/ISO_5427-EXT.gz #usr/share/i18n/charmaps/ISO_5427.gz @@ -895,16 +968,19 @@ usr/lib/locale/locale-archive #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz #usr/share/i18n/charmaps/KOI-8.gz #usr/share/i18n/charmaps/KOI8-R.gz +#usr/share/i18n/charmaps/KOI8-RU.gz #usr/share/i18n/charmaps/KOI8-T.gz #usr/share/i18n/charmaps/KOI8-U.gz #usr/share/i18n/charmaps/KSC5636.gz #usr/share/i18n/charmaps/LATIN-GREEK-1.gz #usr/share/i18n/charmaps/LATIN-GREEK.gz +#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz #usr/share/i18n/charmaps/MAC-CYRILLIC.gz #usr/share/i18n/charmaps/MAC-IS.gz #usr/share/i18n/charmaps/MAC-SAMI.gz #usr/share/i18n/charmaps/MAC-UK.gz #usr/share/i18n/charmaps/MACINTOSH.gz +#usr/share/i18n/charmaps/MIK.gz #usr/share/i18n/charmaps/MSZ_7795.3.gz #usr/share/i18n/charmaps/NATS-DANO-ADD.gz #usr/share/i18n/charmaps/NATS-DANO.gz @@ -963,18 +1039,31 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ar_SY #usr/share/i18n/locales/ar_TN #usr/share/i18n/locales/ar_YE +#usr/share/i18n/locales/as_IN +#usr/share/i18n/locales/ast_ES #usr/share/i18n/locales/az_AZ #usr/share/i18n/locales/be_BY +#usr/share/i18n/locales/be_BY@latin +#usr/share/i18n/locales/ber_DZ +#usr/share/i18n/locales/ber_MA #usr/share/i18n/locales/bg_BG #usr/share/i18n/locales/bn_BD #usr/share/i18n/locales/bn_IN +#usr/share/i18n/locales/bo_CN +#usr/share/i18n/locales/bo_IN #usr/share/i18n/locales/br_FR #usr/share/i18n/locales/br_FR@euro #usr/share/i18n/locales/bs_BA #usr/share/i18n/locales/byn_ER +#usr/share/i18n/locales/ca_AD #usr/share/i18n/locales/ca_ES #usr/share/i18n/locales/ca_ES@euro +#usr/share/i18n/locales/ca_FR +#usr/share/i18n/locales/ca_IT +#usr/share/i18n/locales/crh_UA #usr/share/i18n/locales/cs_CZ +#usr/share/i18n/locales/csb_PL +#usr/share/i18n/locales/cv_RU #usr/share/i18n/locales/cy_GB #usr/share/i18n/locales/da_DK #usr/share/i18n/locales/de_AT @@ -986,8 +1075,12 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/de_DE@euro #usr/share/i18n/locales/de_LU #usr/share/i18n/locales/de_LU@euro +#usr/share/i18n/locales/dv_MV +#usr/share/i18n/locales/dz_BT +#usr/share/i18n/locales/el_CY #usr/share/i18n/locales/el_GR #usr/share/i18n/locales/el_GR@euro +#usr/share/i18n/locales/en_AG #usr/share/i18n/locales/en_AU #usr/share/i18n/locales/en_BW #usr/share/i18n/locales/en_CA @@ -997,6 +1090,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/en_IE #usr/share/i18n/locales/en_IE@euro #usr/share/i18n/locales/en_IN +#usr/share/i18n/locales/en_NG #usr/share/i18n/locales/en_NZ #usr/share/i18n/locales/en_PH #usr/share/i18n/locales/en_SG @@ -1030,6 +1124,7 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fa_IR #usr/share/i18n/locales/fi_FI #usr/share/i18n/locales/fi_FI@euro +#usr/share/i18n/locales/fil_PH #usr/share/i18n/locales/fo_FO #usr/share/i18n/locales/fr_BE #usr/share/i18n/locales/fr_BE@euro @@ -1039,6 +1134,9 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/fr_FR@euro #usr/share/i18n/locales/fr_LU #usr/share/i18n/locales/fr_LU@euro +#usr/share/i18n/locales/fur_IT +#usr/share/i18n/locales/fy_DE +#usr/share/i18n/locales/fy_NL #usr/share/i18n/locales/ga_IE #usr/share/i18n/locales/ga_IE@euro #usr/share/i18n/locales/gd_GB @@ -1050,30 +1148,49 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/gl_ES@euro #usr/share/i18n/locales/gu_IN #usr/share/i18n/locales/gv_GB +#usr/share/i18n/locales/ha_NG #usr/share/i18n/locales/he_IL #usr/share/i18n/locales/hi_IN +#usr/share/i18n/locales/hne_IN #usr/share/i18n/locales/hr_HR +#usr/share/i18n/locales/hsb_DE +#usr/share/i18n/locales/ht_HT #usr/share/i18n/locales/hu_HU #usr/share/i18n/locales/hy_AM #usr/share/i18n/locales/i18n #usr/share/i18n/locales/id_ID +#usr/share/i18n/locales/ig_NG +#usr/share/i18n/locales/ik_CA #usr/share/i18n/locales/is_IS #usr/share/i18n/locales/iso14651_t1 +#usr/share/i18n/locales/iso14651_t1_common +#usr/share/i18n/locales/iso14651_t1_pinyin #usr/share/i18n/locales/it_CH #usr/share/i18n/locales/it_IT #usr/share/i18n/locales/it_IT@euro +#usr/share/i18n/locales/iu_CA #usr/share/i18n/locales/iw_IL #usr/share/i18n/locales/ja_JP #usr/share/i18n/locales/ka_GE #usr/share/i18n/locales/kk_KZ #usr/share/i18n/locales/kl_GL +#usr/share/i18n/locales/km_KH #usr/share/i18n/locales/kn_IN #usr/share/i18n/locales/ko_KR +#usr/share/i18n/locales/kok_IN +#usr/share/i18n/locales/ks_IN +#usr/share/i18n/locales/ks_IN@devanagari +#usr/share/i18n/locales/ku_TR #usr/share/i18n/locales/kw_GB +#usr/share/i18n/locales/ky_KG #usr/share/i18n/locales/lg_UG +#usr/share/i18n/locales/li_BE +#usr/share/i18n/locales/li_NL #usr/share/i18n/locales/lo_LA #usr/share/i18n/locales/lt_LT #usr/share/i18n/locales/lv_LV +#usr/share/i18n/locales/mai_IN +#usr/share/i18n/locales/mg_MG #usr/share/i18n/locales/mi_NZ #usr/share/i18n/locales/mk_MK #usr/share/i18n/locales/ml_IN @@ -1081,25 +1198,44 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/mr_IN #usr/share/i18n/locales/ms_MY #usr/share/i18n/locales/mt_MT +#usr/share/i18n/locales/my_MM +#usr/share/i18n/locales/nan_TW@latin #usr/share/i18n/locales/nb_NO +#usr/share/i18n/locales/nds_DE +#usr/share/i18n/locales/nds_NL #usr/share/i18n/locales/ne_NP +#usr/share/i18n/locales/nl_AW #usr/share/i18n/locales/nl_BE #usr/share/i18n/locales/nl_BE@euro #usr/share/i18n/locales/nl_NL #usr/share/i18n/locales/nl_NL@euro #usr/share/i18n/locales/nn_NO +#usr/share/i18n/locales/no_NO +#usr/share/i18n/locales/nr_ZA +#usr/share/i18n/locales/nso_ZA #usr/share/i18n/locales/oc_FR #usr/share/i18n/locales/om_ET #usr/share/i18n/locales/om_KE +#usr/share/i18n/locales/or_IN #usr/share/i18n/locales/pa_IN +#usr/share/i18n/locales/pa_PK +#usr/share/i18n/locales/pap_AN #usr/share/i18n/locales/pl_PL +#usr/share/i18n/locales/ps_AF #usr/share/i18n/locales/pt_BR #usr/share/i18n/locales/pt_PT #usr/share/i18n/locales/pt_PT@euro #usr/share/i18n/locales/ro_RO #usr/share/i18n/locales/ru_RU #usr/share/i18n/locales/ru_UA +#usr/share/i18n/locales/rw_RW +#usr/share/i18n/locales/sa_IN +#usr/share/i18n/locales/sc_IT +#usr/share/i18n/locales/sd_IN +#usr/share/i18n/locales/sd_IN@devanagari #usr/share/i18n/locales/se_NO +#usr/share/i18n/locales/shs_CA +#usr/share/i18n/locales/si_LK #usr/share/i18n/locales/sid_ET #usr/share/i18n/locales/sk_SK #usr/share/i18n/locales/sl_SI @@ -1108,7 +1244,11 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/so_KE #usr/share/i18n/locales/so_SO #usr/share/i18n/locales/sq_AL -#usr/share/i18n/locales/sr_CS +#usr/share/i18n/locales/sq_MK +#usr/share/i18n/locales/sr_ME +#usr/share/i18n/locales/sr_RS +#usr/share/i18n/locales/sr_RS@latin +#usr/share/i18n/locales/ss_ZA #usr/share/i18n/locales/st_ZA #usr/share/i18n/locales/sv_FI #usr/share/i18n/locales/sv_FI@euro @@ -1120,7 +1260,10 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/ti_ER #usr/share/i18n/locales/ti_ET #usr/share/i18n/locales/tig_ER +#usr/share/i18n/locales/tk_TM #usr/share/i18n/locales/tl_PH +#usr/share/i18n/locales/tn_ZA +#usr/share/i18n/locales/tr_CY #usr/share/i18n/locales/tr_TR #usr/share/i18n/locales/translit_circle #usr/share/i18n/locales/translit_cjk_compat @@ -1134,25 +1277,48 @@ usr/lib/locale/locale-archive #usr/share/i18n/locales/translit_neutral #usr/share/i18n/locales/translit_small #usr/share/i18n/locales/translit_wide +#usr/share/i18n/locales/ts_ZA #usr/share/i18n/locales/tt_RU +#usr/share/i18n/locales/tt_RU@iqtelif +#usr/share/i18n/locales/ug_CN #usr/share/i18n/locales/uk_UA +#usr/share/i18n/locales/ur_IN #usr/share/i18n/locales/ur_PK #usr/share/i18n/locales/uz_UZ #usr/share/i18n/locales/uz_UZ@cyrillic +#usr/share/i18n/locales/ve_ZA #usr/share/i18n/locales/vi_VN #usr/share/i18n/locales/wa_BE #usr/share/i18n/locales/wa_BE@euro #usr/share/i18n/locales/wal_ET +#usr/share/i18n/locales/wo_SN #usr/share/i18n/locales/xh_ZA #usr/share/i18n/locales/yi_US +#usr/share/i18n/locales/yo_NG #usr/share/i18n/locales/zh_CN #usr/share/i18n/locales/zh_HK #usr/share/i18n/locales/zh_SG #usr/share/i18n/locales/zh_TW #usr/share/i18n/locales/zu_ZA +#usr/share/info/dir +#usr/share/info/libc.info +#usr/share/info/libc.info-1 +#usr/share/info/libc.info-10 +#usr/share/info/libc.info-11 +#usr/share/info/libc.info-2 +#usr/share/info/libc.info-3 +#usr/share/info/libc.info-4 +#usr/share/info/libc.info-5 +#usr/share/info/libc.info-6 +#usr/share/info/libc.info-7 +#usr/share/info/libc.info-8 +#usr/share/info/libc.info-9 #usr/share/locale/be #usr/share/locale/be/LC_MESSAGES #usr/share/locale/be/LC_MESSAGES/libc.mo +#usr/share/locale/bg +#usr/share/locale/bg/LC_MESSAGES +#usr/share/locale/bg/LC_MESSAGES/libc.mo #usr/share/locale/ca #usr/share/locale/ca/LC_MESSAGES #usr/share/locale/ca/LC_MESSAGES/libc.mo @@ -1189,6 +1355,9 @@ usr/lib/locale/locale-archive #usr/share/locale/hu #usr/share/locale/hu/LC_MESSAGES #usr/share/locale/hu/LC_MESSAGES/libc.mo +#usr/share/locale/id +#usr/share/locale/id/LC_MESSAGES +#usr/share/locale/id/LC_MESSAGES/libc.mo #usr/share/locale/it #usr/share/locale/it/LC_MESSAGES #usr/share/locale/it/LC_MESSAGES/libc.mo @@ -1199,6 +1368,9 @@ usr/lib/locale/locale-archive #usr/share/locale/ko/LC_MESSAGES #usr/share/locale/ko/LC_MESSAGES/libc.mo #usr/share/locale/locale.alias +#usr/share/locale/lt +#usr/share/locale/lt/LC_MESSAGES +#usr/share/locale/lt/LC_MESSAGES/libc.mo #usr/share/locale/nb #usr/share/locale/nb/LC_MESSAGES #usr/share/locale/nb/LC_MESSAGES/libc.mo @@ -1211,6 +1383,12 @@ usr/lib/locale/locale-archive #usr/share/locale/pt_BR #usr/share/locale/pt_BR/LC_MESSAGES #usr/share/locale/pt_BR/LC_MESSAGES/libc.mo +#usr/share/locale/ru +#usr/share/locale/ru/LC_MESSAGES +#usr/share/locale/ru/LC_MESSAGES/libc.mo +#usr/share/locale/rw +#usr/share/locale/rw/LC_MESSAGES +#usr/share/locale/rw/LC_MESSAGES/libc.mo #usr/share/locale/sk #usr/share/locale/sk/LC_MESSAGES #usr/share/locale/sk/LC_MESSAGES/libc.mo @@ -1220,1739 +1398,14 @@ usr/lib/locale/locale-archive #usr/share/locale/tr #usr/share/locale/tr/LC_MESSAGES #usr/share/locale/tr/LC_MESSAGES/libc.mo +#usr/share/locale/vi +#usr/share/locale/vi/LC_MESSAGES +#usr/share/locale/vi/LC_MESSAGES/libc.mo #usr/share/locale/zh_CN #usr/share/locale/zh_CN/LC_MESSAGES #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo #usr/share/locale/zh_TW #usr/share/locale/zh_TW/LC_MESSAGES #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo -#usr/share/zoneinfo/Africa -#usr/share/zoneinfo/Africa/Abidjan -#usr/share/zoneinfo/Africa/Accra -#usr/share/zoneinfo/Africa/Addis_Ababa -#usr/share/zoneinfo/Africa/Algiers -#usr/share/zoneinfo/Africa/Asmera -#usr/share/zoneinfo/Africa/Bamako -#usr/share/zoneinfo/Africa/Bangui -#usr/share/zoneinfo/Africa/Banjul -#usr/share/zoneinfo/Africa/Bissau -#usr/share/zoneinfo/Africa/Blantyre -#usr/share/zoneinfo/Africa/Brazzaville -#usr/share/zoneinfo/Africa/Bujumbura -#usr/share/zoneinfo/Africa/Cairo -#usr/share/zoneinfo/Africa/Casablanca -#usr/share/zoneinfo/Africa/Ceuta -#usr/share/zoneinfo/Africa/Conakry -#usr/share/zoneinfo/Africa/Dakar -#usr/share/zoneinfo/Africa/Dar_es_Salaam -#usr/share/zoneinfo/Africa/Djibouti -#usr/share/zoneinfo/Africa/Douala -#usr/share/zoneinfo/Africa/El_Aaiun -#usr/share/zoneinfo/Africa/Freetown -#usr/share/zoneinfo/Africa/Gaborone -#usr/share/zoneinfo/Africa/Harare -#usr/share/zoneinfo/Africa/Johannesburg -#usr/share/zoneinfo/Africa/Kampala -#usr/share/zoneinfo/Africa/Khartoum -#usr/share/zoneinfo/Africa/Kigali -#usr/share/zoneinfo/Africa/Kinshasa -#usr/share/zoneinfo/Africa/Lagos -#usr/share/zoneinfo/Africa/Libreville -#usr/share/zoneinfo/Africa/Lome -#usr/share/zoneinfo/Africa/Luanda -#usr/share/zoneinfo/Africa/Lubumbashi -#usr/share/zoneinfo/Africa/Lusaka -#usr/share/zoneinfo/Africa/Malabo -#usr/share/zoneinfo/Africa/Maputo -#usr/share/zoneinfo/Africa/Maseru -#usr/share/zoneinfo/Africa/Mbabane -#usr/share/zoneinfo/Africa/Mogadishu -#usr/share/zoneinfo/Africa/Monrovia -#usr/share/zoneinfo/Africa/Nairobi -#usr/share/zoneinfo/Africa/Ndjamena -#usr/share/zoneinfo/Africa/Niamey -#usr/share/zoneinfo/Africa/Nouakchott -#usr/share/zoneinfo/Africa/Ouagadougou -#usr/share/zoneinfo/Africa/Porto-Novo -#usr/share/zoneinfo/Africa/Sao_Tome -#usr/share/zoneinfo/Africa/Timbuktu -#usr/share/zoneinfo/Africa/Tripoli -#usr/share/zoneinfo/Africa/Tunis -#usr/share/zoneinfo/Africa/Windhoek -#usr/share/zoneinfo/America -#usr/share/zoneinfo/America/Adak -#usr/share/zoneinfo/America/Anchorage -#usr/share/zoneinfo/America/Anguilla -#usr/share/zoneinfo/America/Antigua -#usr/share/zoneinfo/America/Araguaina -#usr/share/zoneinfo/America/Argentina -#usr/share/zoneinfo/America/Argentina/Buenos_Aires -#usr/share/zoneinfo/America/Argentina/Catamarca -#usr/share/zoneinfo/America/Argentina/ComodRivadavia -#usr/share/zoneinfo/America/Argentina/Cordoba -#usr/share/zoneinfo/America/Argentina/Jujuy -#usr/share/zoneinfo/America/Argentina/La_Rioja -#usr/share/zoneinfo/America/Argentina/Mendoza -#usr/share/zoneinfo/America/Argentina/Rio_Gallegos -#usr/share/zoneinfo/America/Argentina/San_Juan -#usr/share/zoneinfo/America/Argentina/Tucuman -#usr/share/zoneinfo/America/Argentina/Ushuaia -#usr/share/zoneinfo/America/Aruba -#usr/share/zoneinfo/America/Asuncion -#usr/share/zoneinfo/America/Atka -#usr/share/zoneinfo/America/Bahia -#usr/share/zoneinfo/America/Barbados -#usr/share/zoneinfo/America/Belem -#usr/share/zoneinfo/America/Belize -#usr/share/zoneinfo/America/Boa_Vista -#usr/share/zoneinfo/America/Bogota -#usr/share/zoneinfo/America/Boise -#usr/share/zoneinfo/America/Buenos_Aires -#usr/share/zoneinfo/America/Cambridge_Bay -#usr/share/zoneinfo/America/Campo_Grande -#usr/share/zoneinfo/America/Cancun -#usr/share/zoneinfo/America/Caracas -#usr/share/zoneinfo/America/Catamarca -#usr/share/zoneinfo/America/Cayenne -#usr/share/zoneinfo/America/Cayman -#usr/share/zoneinfo/America/Chicago -#usr/share/zoneinfo/America/Chihuahua -#usr/share/zoneinfo/America/Coral_Harbour -#usr/share/zoneinfo/America/Cordoba -#usr/share/zoneinfo/America/Costa_Rica -#usr/share/zoneinfo/America/Cuiaba -#usr/share/zoneinfo/America/Curacao -#usr/share/zoneinfo/America/Danmarkshavn -#usr/share/zoneinfo/America/Dawson -#usr/share/zoneinfo/America/Dawson_Creek -#usr/share/zoneinfo/America/Denver -#usr/share/zoneinfo/America/Detroit -#usr/share/zoneinfo/America/Dominica -#usr/share/zoneinfo/America/Edmonton -#usr/share/zoneinfo/America/Eirunepe -#usr/share/zoneinfo/America/El_Salvador -#usr/share/zoneinfo/America/Ensenada -#usr/share/zoneinfo/America/Fort_Wayne -#usr/share/zoneinfo/America/Fortaleza -#usr/share/zoneinfo/America/Glace_Bay -#usr/share/zoneinfo/America/Godthab -#usr/share/zoneinfo/America/Goose_Bay -#usr/share/zoneinfo/America/Grand_Turk -#usr/share/zoneinfo/America/Grenada -#usr/share/zoneinfo/America/Guadeloupe -#usr/share/zoneinfo/America/Guatemala -#usr/share/zoneinfo/America/Guayaquil -#usr/share/zoneinfo/America/Guyana -#usr/share/zoneinfo/America/Halifax -#usr/share/zoneinfo/America/Havana -#usr/share/zoneinfo/America/Hermosillo -#usr/share/zoneinfo/America/Indiana -#usr/share/zoneinfo/America/Indiana/Indianapolis -#usr/share/zoneinfo/America/Indiana/Knox -#usr/share/zoneinfo/America/Indiana/Marengo -#usr/share/zoneinfo/America/Indiana/Vevay -#usr/share/zoneinfo/America/Indianapolis -#usr/share/zoneinfo/America/Inuvik -#usr/share/zoneinfo/America/Iqaluit -#usr/share/zoneinfo/America/Jamaica -#usr/share/zoneinfo/America/Jujuy -#usr/share/zoneinfo/America/Juneau -#usr/share/zoneinfo/America/Kentucky -#usr/share/zoneinfo/America/Kentucky/Louisville -#usr/share/zoneinfo/America/Kentucky/Monticello -#usr/share/zoneinfo/America/Knox_IN -#usr/share/zoneinfo/America/La_Paz -#usr/share/zoneinfo/America/Lima -#usr/share/zoneinfo/America/Los_Angeles -#usr/share/zoneinfo/America/Louisville -#usr/share/zoneinfo/America/Maceio -#usr/share/zoneinfo/America/Managua -#usr/share/zoneinfo/America/Manaus -#usr/share/zoneinfo/America/Martinique -#usr/share/zoneinfo/America/Mazatlan -#usr/share/zoneinfo/America/Mendoza -#usr/share/zoneinfo/America/Menominee -#usr/share/zoneinfo/America/Merida -#usr/share/zoneinfo/America/Mexico_City -#usr/share/zoneinfo/America/Miquelon -#usr/share/zoneinfo/America/Monterrey -#usr/share/zoneinfo/America/Montevideo -#usr/share/zoneinfo/America/Montreal -#usr/share/zoneinfo/America/Montserrat -#usr/share/zoneinfo/America/Nassau -#usr/share/zoneinfo/America/New_York -#usr/share/zoneinfo/America/Nipigon -#usr/share/zoneinfo/America/Nome -#usr/share/zoneinfo/America/Noronha -#usr/share/zoneinfo/America/North_Dakota -#usr/share/zoneinfo/America/North_Dakota/Center -#usr/share/zoneinfo/America/Panama -#usr/share/zoneinfo/America/Pangnirtung -#usr/share/zoneinfo/America/Paramaribo -#usr/share/zoneinfo/America/Phoenix -#usr/share/zoneinfo/America/Port-au-Prince -#usr/share/zoneinfo/America/Port_of_Spain -#usr/share/zoneinfo/America/Porto_Acre -#usr/share/zoneinfo/America/Porto_Velho -#usr/share/zoneinfo/America/Puerto_Rico -#usr/share/zoneinfo/America/Rainy_River -#usr/share/zoneinfo/America/Rankin_Inlet -#usr/share/zoneinfo/America/Recife -#usr/share/zoneinfo/America/Regina -#usr/share/zoneinfo/America/Rio_Branco -#usr/share/zoneinfo/America/Rosario -#usr/share/zoneinfo/America/Santiago -#usr/share/zoneinfo/America/Santo_Domingo -#usr/share/zoneinfo/America/Sao_Paulo -#usr/share/zoneinfo/America/Scoresbysund -#usr/share/zoneinfo/America/Shiprock -#usr/share/zoneinfo/America/St_Johns -#usr/share/zoneinfo/America/St_Kitts -#usr/share/zoneinfo/America/St_Lucia -#usr/share/zoneinfo/America/St_Thomas -#usr/share/zoneinfo/America/St_Vincent -#usr/share/zoneinfo/America/Swift_Current -#usr/share/zoneinfo/America/Tegucigalpa -#usr/share/zoneinfo/America/Thule -#usr/share/zoneinfo/America/Thunder_Bay -#usr/share/zoneinfo/America/Tijuana -#usr/share/zoneinfo/America/Toronto -#usr/share/zoneinfo/America/Tortola -#usr/share/zoneinfo/America/Vancouver -#usr/share/zoneinfo/America/Virgin -#usr/share/zoneinfo/America/Whitehorse -#usr/share/zoneinfo/America/Winnipeg -#usr/share/zoneinfo/America/Yakutat -#usr/share/zoneinfo/America/Yellowknife -#usr/share/zoneinfo/Antarctica -#usr/share/zoneinfo/Antarctica/Casey -#usr/share/zoneinfo/Antarctica/Davis -#usr/share/zoneinfo/Antarctica/DumontDUrville -#usr/share/zoneinfo/Antarctica/Mawson -#usr/share/zoneinfo/Antarctica/McMurdo -#usr/share/zoneinfo/Antarctica/Palmer -#usr/share/zoneinfo/Antarctica/Rothera -#usr/share/zoneinfo/Antarctica/South_Pole -#usr/share/zoneinfo/Antarctica/Syowa -#usr/share/zoneinfo/Antarctica/Vostok -#usr/share/zoneinfo/Arctic -#usr/share/zoneinfo/Arctic/Longyearbyen -#usr/share/zoneinfo/Asia -#usr/share/zoneinfo/Asia/Aden -#usr/share/zoneinfo/Asia/Almaty -#usr/share/zoneinfo/Asia/Amman -#usr/share/zoneinfo/Asia/Anadyr -#usr/share/zoneinfo/Asia/Aqtau -#usr/share/zoneinfo/Asia/Aqtobe -#usr/share/zoneinfo/Asia/Ashgabat -#usr/share/zoneinfo/Asia/Ashkhabad -#usr/share/zoneinfo/Asia/Baghdad -#usr/share/zoneinfo/Asia/Bahrain -#usr/share/zoneinfo/Asia/Baku -#usr/share/zoneinfo/Asia/Bangkok -#usr/share/zoneinfo/Asia/Beirut -#usr/share/zoneinfo/Asia/Bishkek -#usr/share/zoneinfo/Asia/Brunei -#usr/share/zoneinfo/Asia/Calcutta -#usr/share/zoneinfo/Asia/Choibalsan -#usr/share/zoneinfo/Asia/Chongqing -#usr/share/zoneinfo/Asia/Chungking -#usr/share/zoneinfo/Asia/Colombo -#usr/share/zoneinfo/Asia/Dacca -#usr/share/zoneinfo/Asia/Damascus -#usr/share/zoneinfo/Asia/Dhaka -#usr/share/zoneinfo/Asia/Dili -#usr/share/zoneinfo/Asia/Dubai -#usr/share/zoneinfo/Asia/Dushanbe -#usr/share/zoneinfo/Asia/Gaza -#usr/share/zoneinfo/Asia/Harbin -#usr/share/zoneinfo/Asia/Hong_Kong -#usr/share/zoneinfo/Asia/Hovd -#usr/share/zoneinfo/Asia/Irkutsk -#usr/share/zoneinfo/Asia/Istanbul -#usr/share/zoneinfo/Asia/Jakarta -#usr/share/zoneinfo/Asia/Jayapura -#usr/share/zoneinfo/Asia/Jerusalem -#usr/share/zoneinfo/Asia/Kabul -#usr/share/zoneinfo/Asia/Kamchatka -#usr/share/zoneinfo/Asia/Karachi -#usr/share/zoneinfo/Asia/Kashgar -#usr/share/zoneinfo/Asia/Katmandu -#usr/share/zoneinfo/Asia/Krasnoyarsk -#usr/share/zoneinfo/Asia/Kuala_Lumpur -#usr/share/zoneinfo/Asia/Kuching -#usr/share/zoneinfo/Asia/Kuwait -#usr/share/zoneinfo/Asia/Macao -#usr/share/zoneinfo/Asia/Macau -#usr/share/zoneinfo/Asia/Magadan -#usr/share/zoneinfo/Asia/Makassar -#usr/share/zoneinfo/Asia/Manila -#usr/share/zoneinfo/Asia/Muscat -#usr/share/zoneinfo/Asia/Nicosia -#usr/share/zoneinfo/Asia/Novosibirsk -#usr/share/zoneinfo/Asia/Omsk -#usr/share/zoneinfo/Asia/Oral -#usr/share/zoneinfo/Asia/Phnom_Penh -#usr/share/zoneinfo/Asia/Pontianak -#usr/share/zoneinfo/Asia/Pyongyang -#usr/share/zoneinfo/Asia/Qatar -#usr/share/zoneinfo/Asia/Qyzylorda -#usr/share/zoneinfo/Asia/Rangoon -#usr/share/zoneinfo/Asia/Riyadh -#usr/share/zoneinfo/Asia/Riyadh87 -#usr/share/zoneinfo/Asia/Riyadh88 -#usr/share/zoneinfo/Asia/Riyadh89 -#usr/share/zoneinfo/Asia/Saigon -#usr/share/zoneinfo/Asia/Sakhalin -#usr/share/zoneinfo/Asia/Samarkand -#usr/share/zoneinfo/Asia/Seoul -#usr/share/zoneinfo/Asia/Shanghai -#usr/share/zoneinfo/Asia/Singapore -#usr/share/zoneinfo/Asia/Taipei -#usr/share/zoneinfo/Asia/Tashkent -#usr/share/zoneinfo/Asia/Tbilisi -#usr/share/zoneinfo/Asia/Tehran -#usr/share/zoneinfo/Asia/Tel_Aviv -#usr/share/zoneinfo/Asia/Thimbu -#usr/share/zoneinfo/Asia/Thimphu -#usr/share/zoneinfo/Asia/Tokyo -#usr/share/zoneinfo/Asia/Ujung_Pandang -#usr/share/zoneinfo/Asia/Ulaanbaatar -#usr/share/zoneinfo/Asia/Ulan_Bator -#usr/share/zoneinfo/Asia/Urumqi -#usr/share/zoneinfo/Asia/Vientiane -#usr/share/zoneinfo/Asia/Vladivostok -#usr/share/zoneinfo/Asia/Yakutsk -#usr/share/zoneinfo/Asia/Yekaterinburg -#usr/share/zoneinfo/Asia/Yerevan -#usr/share/zoneinfo/Atlantic -#usr/share/zoneinfo/Atlantic/Azores -#usr/share/zoneinfo/Atlantic/Bermuda -#usr/share/zoneinfo/Atlantic/Canary -#usr/share/zoneinfo/Atlantic/Cape_Verde -#usr/share/zoneinfo/Atlantic/Faeroe -#usr/share/zoneinfo/Atlantic/Jan_Mayen -#usr/share/zoneinfo/Atlantic/Madeira -#usr/share/zoneinfo/Atlantic/Reykjavik -#usr/share/zoneinfo/Atlantic/South_Georgia -#usr/share/zoneinfo/Atlantic/St_Helena -#usr/share/zoneinfo/Atlantic/Stanley -#usr/share/zoneinfo/Australia -#usr/share/zoneinfo/Australia/ACT -#usr/share/zoneinfo/Australia/Adelaide -#usr/share/zoneinfo/Australia/Brisbane -#usr/share/zoneinfo/Australia/Broken_Hill -#usr/share/zoneinfo/Australia/Canberra -#usr/share/zoneinfo/Australia/Currie -#usr/share/zoneinfo/Australia/Darwin -#usr/share/zoneinfo/Australia/Hobart -#usr/share/zoneinfo/Australia/LHI -#usr/share/zoneinfo/Australia/Lindeman -#usr/share/zoneinfo/Australia/Lord_Howe -#usr/share/zoneinfo/Australia/Melbourne -#usr/share/zoneinfo/Australia/NSW -#usr/share/zoneinfo/Australia/North -#usr/share/zoneinfo/Australia/Perth -#usr/share/zoneinfo/Australia/Queensland -#usr/share/zoneinfo/Australia/South -#usr/share/zoneinfo/Australia/Sydney -#usr/share/zoneinfo/Australia/Tasmania -#usr/share/zoneinfo/Australia/Victoria -#usr/share/zoneinfo/Australia/West -#usr/share/zoneinfo/Australia/Yancowinna -#usr/share/zoneinfo/Brazil -#usr/share/zoneinfo/Brazil/Acre -#usr/share/zoneinfo/Brazil/DeNoronha -#usr/share/zoneinfo/Brazil/East -#usr/share/zoneinfo/Brazil/West -#usr/share/zoneinfo/CET -#usr/share/zoneinfo/CST6CDT -#usr/share/zoneinfo/Canada -#usr/share/zoneinfo/Canada/Atlantic -#usr/share/zoneinfo/Canada/Central -#usr/share/zoneinfo/Canada/East-Saskatchewan -#usr/share/zoneinfo/Canada/Eastern -#usr/share/zoneinfo/Canada/Mountain -#usr/share/zoneinfo/Canada/Newfoundland -#usr/share/zoneinfo/Canada/Pacific -#usr/share/zoneinfo/Canada/Saskatchewan -#usr/share/zoneinfo/Canada/Yukon -#usr/share/zoneinfo/Chile -#usr/share/zoneinfo/Chile/Continental -#usr/share/zoneinfo/Chile/EasterIsland -#usr/share/zoneinfo/Cuba -#usr/share/zoneinfo/EET -#usr/share/zoneinfo/EST -#usr/share/zoneinfo/EST5EDT -#usr/share/zoneinfo/Egypt -#usr/share/zoneinfo/Eire -#usr/share/zoneinfo/Etc -#usr/share/zoneinfo/Etc/GMT -#usr/share/zoneinfo/Etc/GMT+0 -#usr/share/zoneinfo/Etc/GMT+1 -#usr/share/zoneinfo/Etc/GMT+10 -#usr/share/zoneinfo/Etc/GMT+11 -#usr/share/zoneinfo/Etc/GMT+12 -#usr/share/zoneinfo/Etc/GMT+2 -#usr/share/zoneinfo/Etc/GMT+3 -#usr/share/zoneinfo/Etc/GMT+4 -#usr/share/zoneinfo/Etc/GMT+5 -#usr/share/zoneinfo/Etc/GMT+6 -#usr/share/zoneinfo/Etc/GMT+7 -#usr/share/zoneinfo/Etc/GMT+8 -#usr/share/zoneinfo/Etc/GMT+9 -#usr/share/zoneinfo/Etc/GMT-0 -#usr/share/zoneinfo/Etc/GMT-1 -#usr/share/zoneinfo/Etc/GMT-10 -#usr/share/zoneinfo/Etc/GMT-11 -#usr/share/zoneinfo/Etc/GMT-12 -#usr/share/zoneinfo/Etc/GMT-13 -#usr/share/zoneinfo/Etc/GMT-14 -#usr/share/zoneinfo/Etc/GMT-2 -#usr/share/zoneinfo/Etc/GMT-3 -#usr/share/zoneinfo/Etc/GMT-4 -#usr/share/zoneinfo/Etc/GMT-5 -#usr/share/zoneinfo/Etc/GMT-6 -#usr/share/zoneinfo/Etc/GMT-7 -#usr/share/zoneinfo/Etc/GMT-8 -#usr/share/zoneinfo/Etc/GMT-9 -#usr/share/zoneinfo/Etc/GMT0 -#usr/share/zoneinfo/Etc/Greenwich -#usr/share/zoneinfo/Etc/UCT -#usr/share/zoneinfo/Etc/UTC -#usr/share/zoneinfo/Etc/Universal -#usr/share/zoneinfo/Etc/Zulu -#usr/share/zoneinfo/Europe -#usr/share/zoneinfo/Europe/Amsterdam -#usr/share/zoneinfo/Europe/Andorra -#usr/share/zoneinfo/Europe/Athens -#usr/share/zoneinfo/Europe/Belfast -#usr/share/zoneinfo/Europe/Belgrade -#usr/share/zoneinfo/Europe/Berlin -#usr/share/zoneinfo/Europe/Bratislava -#usr/share/zoneinfo/Europe/Brussels -#usr/share/zoneinfo/Europe/Bucharest -#usr/share/zoneinfo/Europe/Budapest -#usr/share/zoneinfo/Europe/Chisinau -#usr/share/zoneinfo/Europe/Copenhagen -#usr/share/zoneinfo/Europe/Dublin -#usr/share/zoneinfo/Europe/Gibraltar -#usr/share/zoneinfo/Europe/Helsinki -#usr/share/zoneinfo/Europe/Istanbul -#usr/share/zoneinfo/Europe/Kaliningrad -#usr/share/zoneinfo/Europe/Kiev -#usr/share/zoneinfo/Europe/Lisbon -#usr/share/zoneinfo/Europe/Ljubljana -#usr/share/zoneinfo/Europe/London -#usr/share/zoneinfo/Europe/Luxembourg -#usr/share/zoneinfo/Europe/Madrid -#usr/share/zoneinfo/Europe/Malta -#usr/share/zoneinfo/Europe/Mariehamn -#usr/share/zoneinfo/Europe/Minsk -#usr/share/zoneinfo/Europe/Monaco -#usr/share/zoneinfo/Europe/Moscow -#usr/share/zoneinfo/Europe/Nicosia -#usr/share/zoneinfo/Europe/Oslo -#usr/share/zoneinfo/Europe/Paris -#usr/share/zoneinfo/Europe/Prague -#usr/share/zoneinfo/Europe/Riga -#usr/share/zoneinfo/Europe/Rome -#usr/share/zoneinfo/Europe/Samara -#usr/share/zoneinfo/Europe/San_Marino -#usr/share/zoneinfo/Europe/Sarajevo -#usr/share/zoneinfo/Europe/Simferopol -#usr/share/zoneinfo/Europe/Skopje -#usr/share/zoneinfo/Europe/Sofia -#usr/share/zoneinfo/Europe/Stockholm -#usr/share/zoneinfo/Europe/Tallinn -#usr/share/zoneinfo/Europe/Tirane -#usr/share/zoneinfo/Europe/Tiraspol -#usr/share/zoneinfo/Europe/Uzhgorod -#usr/share/zoneinfo/Europe/Vaduz -#usr/share/zoneinfo/Europe/Vatican -#usr/share/zoneinfo/Europe/Vienna -#usr/share/zoneinfo/Europe/Vilnius -#usr/share/zoneinfo/Europe/Warsaw -#usr/share/zoneinfo/Europe/Zagreb -#usr/share/zoneinfo/Europe/Zaporozhye -#usr/share/zoneinfo/Europe/Zurich -#usr/share/zoneinfo/Factory -#usr/share/zoneinfo/GB -#usr/share/zoneinfo/GB-Eire -#usr/share/zoneinfo/GMT -#usr/share/zoneinfo/GMT+0 -#usr/share/zoneinfo/GMT-0 -#usr/share/zoneinfo/GMT0 -#usr/share/zoneinfo/Greenwich -#usr/share/zoneinfo/HST -#usr/share/zoneinfo/Hongkong -#usr/share/zoneinfo/Iceland -#usr/share/zoneinfo/Indian -#usr/share/zoneinfo/Indian/Antananarivo -#usr/share/zoneinfo/Indian/Chagos -#usr/share/zoneinfo/Indian/Christmas -#usr/share/zoneinfo/Indian/Cocos -#usr/share/zoneinfo/Indian/Comoro -#usr/share/zoneinfo/Indian/Kerguelen -#usr/share/zoneinfo/Indian/Mahe -#usr/share/zoneinfo/Indian/Maldives -#usr/share/zoneinfo/Indian/Mauritius -#usr/share/zoneinfo/Indian/Mayotte -#usr/share/zoneinfo/Indian/Reunion -#usr/share/zoneinfo/Iran -#usr/share/zoneinfo/Israel -#usr/share/zoneinfo/Jamaica -#usr/share/zoneinfo/Japan -#usr/share/zoneinfo/Kwajalein -#usr/share/zoneinfo/Libya -#usr/share/zoneinfo/MET -#usr/share/zoneinfo/MST -#usr/share/zoneinfo/MST7MDT -#usr/share/zoneinfo/Mexico -#usr/share/zoneinfo/Mexico/BajaNorte -#usr/share/zoneinfo/Mexico/BajaSur -#usr/share/zoneinfo/Mexico/General -#usr/share/zoneinfo/Mideast -#usr/share/zoneinfo/Mideast/Riyadh87 -#usr/share/zoneinfo/Mideast/Riyadh88 -#usr/share/zoneinfo/Mideast/Riyadh89 -#usr/share/zoneinfo/NZ -#usr/share/zoneinfo/NZ-CHAT -#usr/share/zoneinfo/Navajo -#usr/share/zoneinfo/PRC -#usr/share/zoneinfo/PST8PDT -#usr/share/zoneinfo/Pacific -#usr/share/zoneinfo/Pacific/Apia -#usr/share/zoneinfo/Pacific/Auckland -#usr/share/zoneinfo/Pacific/Chatham -#usr/share/zoneinfo/Pacific/Easter -#usr/share/zoneinfo/Pacific/Efate -#usr/share/zoneinfo/Pacific/Enderbury -#usr/share/zoneinfo/Pacific/Fakaofo -#usr/share/zoneinfo/Pacific/Fiji -#usr/share/zoneinfo/Pacific/Funafuti -#usr/share/zoneinfo/Pacific/Galapagos -#usr/share/zoneinfo/Pacific/Gambier -#usr/share/zoneinfo/Pacific/Guadalcanal -#usr/share/zoneinfo/Pacific/Guam -#usr/share/zoneinfo/Pacific/Honolulu -#usr/share/zoneinfo/Pacific/Johnston -#usr/share/zoneinfo/Pacific/Kiritimati -#usr/share/zoneinfo/Pacific/Kosrae -#usr/share/zoneinfo/Pacific/Kwajalein -#usr/share/zoneinfo/Pacific/Majuro -#usr/share/zoneinfo/Pacific/Marquesas -#usr/share/zoneinfo/Pacific/Midway -#usr/share/zoneinfo/Pacific/Nauru -#usr/share/zoneinfo/Pacific/Niue -#usr/share/zoneinfo/Pacific/Norfolk -#usr/share/zoneinfo/Pacific/Noumea -#usr/share/zoneinfo/Pacific/Pago_Pago -#usr/share/zoneinfo/Pacific/Palau -#usr/share/zoneinfo/Pacific/Pitcairn -#usr/share/zoneinfo/Pacific/Ponape -#usr/share/zoneinfo/Pacific/Port_Moresby -#usr/share/zoneinfo/Pacific/Rarotonga -#usr/share/zoneinfo/Pacific/Saipan -#usr/share/zoneinfo/Pacific/Samoa -#usr/share/zoneinfo/Pacific/Tahiti -#usr/share/zoneinfo/Pacific/Tarawa -#usr/share/zoneinfo/Pacific/Tongatapu -#usr/share/zoneinfo/Pacific/Truk -#usr/share/zoneinfo/Pacific/Wake -#usr/share/zoneinfo/Pacific/Wallis -#usr/share/zoneinfo/Pacific/Yap -#usr/share/zoneinfo/Poland -#usr/share/zoneinfo/Portugal -#usr/share/zoneinfo/ROC -#usr/share/zoneinfo/ROK -#usr/share/zoneinfo/Singapore -#usr/share/zoneinfo/SystemV -#usr/share/zoneinfo/SystemV/AST4 -#usr/share/zoneinfo/SystemV/AST4ADT -#usr/share/zoneinfo/SystemV/CST6 -#usr/share/zoneinfo/SystemV/CST6CDT -#usr/share/zoneinfo/SystemV/EST5 -#usr/share/zoneinfo/SystemV/EST5EDT -#usr/share/zoneinfo/SystemV/HST10 -#usr/share/zoneinfo/SystemV/MST7 -#usr/share/zoneinfo/SystemV/MST7MDT -#usr/share/zoneinfo/SystemV/PST8 -#usr/share/zoneinfo/SystemV/PST8PDT -#usr/share/zoneinfo/SystemV/YST9 -#usr/share/zoneinfo/SystemV/YST9YDT -#usr/share/zoneinfo/Turkey -#usr/share/zoneinfo/UCT -#usr/share/zoneinfo/US -#usr/share/zoneinfo/US/Alaska -#usr/share/zoneinfo/US/Aleutian -#usr/share/zoneinfo/US/Arizona -#usr/share/zoneinfo/US/Central -#usr/share/zoneinfo/US/East-Indiana -#usr/share/zoneinfo/US/Eastern -#usr/share/zoneinfo/US/Hawaii -#usr/share/zoneinfo/US/Indiana-Starke -#usr/share/zoneinfo/US/Michigan -#usr/share/zoneinfo/US/Mountain -#usr/share/zoneinfo/US/Pacific -#usr/share/zoneinfo/US/Samoa -#usr/share/zoneinfo/UTC -#usr/share/zoneinfo/Universal -#usr/share/zoneinfo/W-SU -#usr/share/zoneinfo/WET -#usr/share/zoneinfo/Zulu -#usr/share/zoneinfo/iso3166.tab -usr/share/zoneinfo/posix -#usr/share/zoneinfo/posix/Africa -#usr/share/zoneinfo/posix/Africa/Abidjan -#usr/share/zoneinfo/posix/Africa/Accra -#usr/share/zoneinfo/posix/Africa/Addis_Ababa -#usr/share/zoneinfo/posix/Africa/Algiers -#usr/share/zoneinfo/posix/Africa/Asmera -#usr/share/zoneinfo/posix/Africa/Bamako -#usr/share/zoneinfo/posix/Africa/Bangui -#usr/share/zoneinfo/posix/Africa/Banjul -#usr/share/zoneinfo/posix/Africa/Bissau -#usr/share/zoneinfo/posix/Africa/Blantyre -#usr/share/zoneinfo/posix/Africa/Brazzaville -#usr/share/zoneinfo/posix/Africa/Bujumbura -#usr/share/zoneinfo/posix/Africa/Cairo -#usr/share/zoneinfo/posix/Africa/Casablanca -#usr/share/zoneinfo/posix/Africa/Ceuta -#usr/share/zoneinfo/posix/Africa/Conakry -#usr/share/zoneinfo/posix/Africa/Dakar -#usr/share/zoneinfo/posix/Africa/Dar_es_Salaam -#usr/share/zoneinfo/posix/Africa/Djibouti -#usr/share/zoneinfo/posix/Africa/Douala -#usr/share/zoneinfo/posix/Africa/El_Aaiun -#usr/share/zoneinfo/posix/Africa/Freetown -#usr/share/zoneinfo/posix/Africa/Gaborone -#usr/share/zoneinfo/posix/Africa/Harare -#usr/share/zoneinfo/posix/Africa/Johannesburg -#usr/share/zoneinfo/posix/Africa/Kampala -#usr/share/zoneinfo/posix/Africa/Khartoum -#usr/share/zoneinfo/posix/Africa/Kigali -#usr/share/zoneinfo/posix/Africa/Kinshasa -#usr/share/zoneinfo/posix/Africa/Lagos -#usr/share/zoneinfo/posix/Africa/Libreville -#usr/share/zoneinfo/posix/Africa/Lome -#usr/share/zoneinfo/posix/Africa/Luanda -#usr/share/zoneinfo/posix/Africa/Lubumbashi -#usr/share/zoneinfo/posix/Africa/Lusaka -#usr/share/zoneinfo/posix/Africa/Malabo -#usr/share/zoneinfo/posix/Africa/Maputo -#usr/share/zoneinfo/posix/Africa/Maseru -#usr/share/zoneinfo/posix/Africa/Mbabane -#usr/share/zoneinfo/posix/Africa/Mogadishu -#usr/share/zoneinfo/posix/Africa/Monrovia -#usr/share/zoneinfo/posix/Africa/Nairobi -#usr/share/zoneinfo/posix/Africa/Ndjamena -#usr/share/zoneinfo/posix/Africa/Niamey -#usr/share/zoneinfo/posix/Africa/Nouakchott -#usr/share/zoneinfo/posix/Africa/Ouagadougou -#usr/share/zoneinfo/posix/Africa/Porto-Novo -#usr/share/zoneinfo/posix/Africa/Sao_Tome -#usr/share/zoneinfo/posix/Africa/Timbuktu -#usr/share/zoneinfo/posix/Africa/Tripoli -#usr/share/zoneinfo/posix/Africa/Tunis -#usr/share/zoneinfo/posix/Africa/Windhoek -#usr/share/zoneinfo/posix/America -#usr/share/zoneinfo/posix/America/Adak -#usr/share/zoneinfo/posix/America/Anchorage -#usr/share/zoneinfo/posix/America/Anguilla -#usr/share/zoneinfo/posix/America/Antigua -#usr/share/zoneinfo/posix/America/Araguaina -#usr/share/zoneinfo/posix/America/Argentina -#usr/share/zoneinfo/posix/America/Argentina/Buenos_Aires -#usr/share/zoneinfo/posix/America/Argentina/Catamarca -#usr/share/zoneinfo/posix/America/Argentina/ComodRivadavia -#usr/share/zoneinfo/posix/America/Argentina/Cordoba -#usr/share/zoneinfo/posix/America/Argentina/Jujuy -#usr/share/zoneinfo/posix/America/Argentina/La_Rioja -#usr/share/zoneinfo/posix/America/Argentina/Mendoza -#usr/share/zoneinfo/posix/America/Argentina/Rio_Gallegos -#usr/share/zoneinfo/posix/America/Argentina/San_Juan -#usr/share/zoneinfo/posix/America/Argentina/Tucuman -#usr/share/zoneinfo/posix/America/Argentina/Ushuaia -#usr/share/zoneinfo/posix/America/Aruba -#usr/share/zoneinfo/posix/America/Asuncion -#usr/share/zoneinfo/posix/America/Atka -#usr/share/zoneinfo/posix/America/Bahia -#usr/share/zoneinfo/posix/America/Barbados -#usr/share/zoneinfo/posix/America/Belem -#usr/share/zoneinfo/posix/America/Belize -#usr/share/zoneinfo/posix/America/Boa_Vista -#usr/share/zoneinfo/posix/America/Bogota -#usr/share/zoneinfo/posix/America/Boise -#usr/share/zoneinfo/posix/America/Buenos_Aires -#usr/share/zoneinfo/posix/America/Cambridge_Bay -#usr/share/zoneinfo/posix/America/Campo_Grande -#usr/share/zoneinfo/posix/America/Cancun -#usr/share/zoneinfo/posix/America/Caracas -#usr/share/zoneinfo/posix/America/Catamarca -#usr/share/zoneinfo/posix/America/Cayenne -#usr/share/zoneinfo/posix/America/Cayman -#usr/share/zoneinfo/posix/America/Chicago -#usr/share/zoneinfo/posix/America/Chihuahua -#usr/share/zoneinfo/posix/America/Coral_Harbour -#usr/share/zoneinfo/posix/America/Cordoba -#usr/share/zoneinfo/posix/America/Costa_Rica -#usr/share/zoneinfo/posix/America/Cuiaba -#usr/share/zoneinfo/posix/America/Curacao -#usr/share/zoneinfo/posix/America/Danmarkshavn -#usr/share/zoneinfo/posix/America/Dawson -#usr/share/zoneinfo/posix/America/Dawson_Creek -#usr/share/zoneinfo/posix/America/Denver -#usr/share/zoneinfo/posix/America/Detroit -#usr/share/zoneinfo/posix/America/Dominica -#usr/share/zoneinfo/posix/America/Edmonton -#usr/share/zoneinfo/posix/America/Eirunepe -#usr/share/zoneinfo/posix/America/El_Salvador -#usr/share/zoneinfo/posix/America/Ensenada -#usr/share/zoneinfo/posix/America/Fort_Wayne -#usr/share/zoneinfo/posix/America/Fortaleza -#usr/share/zoneinfo/posix/America/Glace_Bay -#usr/share/zoneinfo/posix/America/Godthab -#usr/share/zoneinfo/posix/America/Goose_Bay -#usr/share/zoneinfo/posix/America/Grand_Turk -#usr/share/zoneinfo/posix/America/Grenada -#usr/share/zoneinfo/posix/America/Guadeloupe -#usr/share/zoneinfo/posix/America/Guatemala -#usr/share/zoneinfo/posix/America/Guayaquil -#usr/share/zoneinfo/posix/America/Guyana -#usr/share/zoneinfo/posix/America/Halifax -#usr/share/zoneinfo/posix/America/Havana -#usr/share/zoneinfo/posix/America/Hermosillo -#usr/share/zoneinfo/posix/America/Indiana -#usr/share/zoneinfo/posix/America/Indiana/Indianapolis -#usr/share/zoneinfo/posix/America/Indiana/Knox -#usr/share/zoneinfo/posix/America/Indiana/Marengo -#usr/share/zoneinfo/posix/America/Indiana/Vevay -#usr/share/zoneinfo/posix/America/Indianapolis -#usr/share/zoneinfo/posix/America/Inuvik -#usr/share/zoneinfo/posix/America/Iqaluit -#usr/share/zoneinfo/posix/America/Jamaica -#usr/share/zoneinfo/posix/America/Jujuy -#usr/share/zoneinfo/posix/America/Juneau -#usr/share/zoneinfo/posix/America/Kentucky -#usr/share/zoneinfo/posix/America/Kentucky/Louisville -#usr/share/zoneinfo/posix/America/Kentucky/Monticello -#usr/share/zoneinfo/posix/America/Knox_IN -#usr/share/zoneinfo/posix/America/La_Paz -#usr/share/zoneinfo/posix/America/Lima -#usr/share/zoneinfo/posix/America/Los_Angeles -#usr/share/zoneinfo/posix/America/Louisville -#usr/share/zoneinfo/posix/America/Maceio -#usr/share/zoneinfo/posix/America/Managua -#usr/share/zoneinfo/posix/America/Manaus -#usr/share/zoneinfo/posix/America/Martinique -#usr/share/zoneinfo/posix/America/Mazatlan -#usr/share/zoneinfo/posix/America/Mendoza -#usr/share/zoneinfo/posix/America/Menominee -#usr/share/zoneinfo/posix/America/Merida -#usr/share/zoneinfo/posix/America/Mexico_City -#usr/share/zoneinfo/posix/America/Miquelon -#usr/share/zoneinfo/posix/America/Monterrey -#usr/share/zoneinfo/posix/America/Montevideo -#usr/share/zoneinfo/posix/America/Montreal -#usr/share/zoneinfo/posix/America/Montserrat -#usr/share/zoneinfo/posix/America/Nassau -#usr/share/zoneinfo/posix/America/New_York -#usr/share/zoneinfo/posix/America/Nipigon -#usr/share/zoneinfo/posix/America/Nome -#usr/share/zoneinfo/posix/America/Noronha -#usr/share/zoneinfo/posix/America/North_Dakota -#usr/share/zoneinfo/posix/America/North_Dakota/Center -#usr/share/zoneinfo/posix/America/Panama -#usr/share/zoneinfo/posix/America/Pangnirtung -#usr/share/zoneinfo/posix/America/Paramaribo -#usr/share/zoneinfo/posix/America/Phoenix -#usr/share/zoneinfo/posix/America/Port-au-Prince -#usr/share/zoneinfo/posix/America/Port_of_Spain -#usr/share/zoneinfo/posix/America/Porto_Acre -#usr/share/zoneinfo/posix/America/Porto_Velho -#usr/share/zoneinfo/posix/America/Puerto_Rico -#usr/share/zoneinfo/posix/America/Rainy_River -#usr/share/zoneinfo/posix/America/Rankin_Inlet -#usr/share/zoneinfo/posix/America/Recife -#usr/share/zoneinfo/posix/America/Regina -#usr/share/zoneinfo/posix/America/Rio_Branco -#usr/share/zoneinfo/posix/America/Rosario -#usr/share/zoneinfo/posix/America/Santiago -#usr/share/zoneinfo/posix/America/Santo_Domingo -#usr/share/zoneinfo/posix/America/Sao_Paulo -#usr/share/zoneinfo/posix/America/Scoresbysund -#usr/share/zoneinfo/posix/America/Shiprock -#usr/share/zoneinfo/posix/America/St_Johns -#usr/share/zoneinfo/posix/America/St_Kitts -#usr/share/zoneinfo/posix/America/St_Lucia -#usr/share/zoneinfo/posix/America/St_Thomas -#usr/share/zoneinfo/posix/America/St_Vincent -#usr/share/zoneinfo/posix/America/Swift_Current -#usr/share/zoneinfo/posix/America/Tegucigalpa -#usr/share/zoneinfo/posix/America/Thule -#usr/share/zoneinfo/posix/America/Thunder_Bay -#usr/share/zoneinfo/posix/America/Tijuana -#usr/share/zoneinfo/posix/America/Toronto -#usr/share/zoneinfo/posix/America/Tortola -#usr/share/zoneinfo/posix/America/Vancouver -#usr/share/zoneinfo/posix/America/Virgin -#usr/share/zoneinfo/posix/America/Whitehorse -#usr/share/zoneinfo/posix/America/Winnipeg -#usr/share/zoneinfo/posix/America/Yakutat -#usr/share/zoneinfo/posix/America/Yellowknife -#usr/share/zoneinfo/posix/Antarctica -#usr/share/zoneinfo/posix/Antarctica/Casey -#usr/share/zoneinfo/posix/Antarctica/Davis -#usr/share/zoneinfo/posix/Antarctica/DumontDUrville -#usr/share/zoneinfo/posix/Antarctica/Mawson -#usr/share/zoneinfo/posix/Antarctica/McMurdo -#usr/share/zoneinfo/posix/Antarctica/Palmer -#usr/share/zoneinfo/posix/Antarctica/Rothera -#usr/share/zoneinfo/posix/Antarctica/South_Pole -#usr/share/zoneinfo/posix/Antarctica/Syowa -#usr/share/zoneinfo/posix/Antarctica/Vostok -#usr/share/zoneinfo/posix/Arctic -#usr/share/zoneinfo/posix/Arctic/Longyearbyen -#usr/share/zoneinfo/posix/Asia -#usr/share/zoneinfo/posix/Asia/Aden -#usr/share/zoneinfo/posix/Asia/Almaty -#usr/share/zoneinfo/posix/Asia/Amman -#usr/share/zoneinfo/posix/Asia/Anadyr -#usr/share/zoneinfo/posix/Asia/Aqtau -#usr/share/zoneinfo/posix/Asia/Aqtobe -#usr/share/zoneinfo/posix/Asia/Ashgabat -#usr/share/zoneinfo/posix/Asia/Ashkhabad -#usr/share/zoneinfo/posix/Asia/Baghdad -#usr/share/zoneinfo/posix/Asia/Bahrain -#usr/share/zoneinfo/posix/Asia/Baku -#usr/share/zoneinfo/posix/Asia/Bangkok -#usr/share/zoneinfo/posix/Asia/Beirut -#usr/share/zoneinfo/posix/Asia/Bishkek -#usr/share/zoneinfo/posix/Asia/Brunei -#usr/share/zoneinfo/posix/Asia/Calcutta -#usr/share/zoneinfo/posix/Asia/Choibalsan -#usr/share/zoneinfo/posix/Asia/Chongqing -#usr/share/zoneinfo/posix/Asia/Chungking -#usr/share/zoneinfo/posix/Asia/Colombo -#usr/share/zoneinfo/posix/Asia/Dacca -#usr/share/zoneinfo/posix/Asia/Damascus -#usr/share/zoneinfo/posix/Asia/Dhaka -#usr/share/zoneinfo/posix/Asia/Dili -#usr/share/zoneinfo/posix/Asia/Dubai -#usr/share/zoneinfo/posix/Asia/Dushanbe -#usr/share/zoneinfo/posix/Asia/Gaza -#usr/share/zoneinfo/posix/Asia/Harbin -#usr/share/zoneinfo/posix/Asia/Hong_Kong -#usr/share/zoneinfo/posix/Asia/Hovd -#usr/share/zoneinfo/posix/Asia/Irkutsk -#usr/share/zoneinfo/posix/Asia/Istanbul -#usr/share/zoneinfo/posix/Asia/Jakarta -#usr/share/zoneinfo/posix/Asia/Jayapura -#usr/share/zoneinfo/posix/Asia/Jerusalem -#usr/share/zoneinfo/posix/Asia/Kabul -#usr/share/zoneinfo/posix/Asia/Kamchatka -#usr/share/zoneinfo/posix/Asia/Karachi -#usr/share/zoneinfo/posix/Asia/Kashgar -#usr/share/zoneinfo/posix/Asia/Katmandu -#usr/share/zoneinfo/posix/Asia/Krasnoyarsk -#usr/share/zoneinfo/posix/Asia/Kuala_Lumpur -#usr/share/zoneinfo/posix/Asia/Kuching -#usr/share/zoneinfo/posix/Asia/Kuwait -#usr/share/zoneinfo/posix/Asia/Macao -#usr/share/zoneinfo/posix/Asia/Macau -#usr/share/zoneinfo/posix/Asia/Magadan -#usr/share/zoneinfo/posix/Asia/Makassar -#usr/share/zoneinfo/posix/Asia/Manila -#usr/share/zoneinfo/posix/Asia/Muscat -#usr/share/zoneinfo/posix/Asia/Nicosia -#usr/share/zoneinfo/posix/Asia/Novosibirsk -#usr/share/zoneinfo/posix/Asia/Omsk -#usr/share/zoneinfo/posix/Asia/Oral -#usr/share/zoneinfo/posix/Asia/Phnom_Penh -#usr/share/zoneinfo/posix/Asia/Pontianak -#usr/share/zoneinfo/posix/Asia/Pyongyang -#usr/share/zoneinfo/posix/Asia/Qatar -#usr/share/zoneinfo/posix/Asia/Qyzylorda -#usr/share/zoneinfo/posix/Asia/Rangoon -#usr/share/zoneinfo/posix/Asia/Riyadh -#usr/share/zoneinfo/posix/Asia/Riyadh87 -#usr/share/zoneinfo/posix/Asia/Riyadh88 -#usr/share/zoneinfo/posix/Asia/Riyadh89 -#usr/share/zoneinfo/posix/Asia/Saigon -#usr/share/zoneinfo/posix/Asia/Sakhalin -#usr/share/zoneinfo/posix/Asia/Samarkand -#usr/share/zoneinfo/posix/Asia/Seoul -#usr/share/zoneinfo/posix/Asia/Shanghai -#usr/share/zoneinfo/posix/Asia/Singapore -#usr/share/zoneinfo/posix/Asia/Taipei -#usr/share/zoneinfo/posix/Asia/Tashkent -#usr/share/zoneinfo/posix/Asia/Tbilisi -#usr/share/zoneinfo/posix/Asia/Tehran -#usr/share/zoneinfo/posix/Asia/Tel_Aviv -#usr/share/zoneinfo/posix/Asia/Thimbu -#usr/share/zoneinfo/posix/Asia/Thimphu -#usr/share/zoneinfo/posix/Asia/Tokyo -#usr/share/zoneinfo/posix/Asia/Ujung_Pandang -#usr/share/zoneinfo/posix/Asia/Ulaanbaatar -#usr/share/zoneinfo/posix/Asia/Ulan_Bator -#usr/share/zoneinfo/posix/Asia/Urumqi -#usr/share/zoneinfo/posix/Asia/Vientiane -#usr/share/zoneinfo/posix/Asia/Vladivostok -#usr/share/zoneinfo/posix/Asia/Yakutsk -#usr/share/zoneinfo/posix/Asia/Yekaterinburg -#usr/share/zoneinfo/posix/Asia/Yerevan -#usr/share/zoneinfo/posix/Atlantic -#usr/share/zoneinfo/posix/Atlantic/Azores -#usr/share/zoneinfo/posix/Atlantic/Bermuda -#usr/share/zoneinfo/posix/Atlantic/Canary -#usr/share/zoneinfo/posix/Atlantic/Cape_Verde -#usr/share/zoneinfo/posix/Atlantic/Faeroe -#usr/share/zoneinfo/posix/Atlantic/Jan_Mayen -#usr/share/zoneinfo/posix/Atlantic/Madeira -#usr/share/zoneinfo/posix/Atlantic/Reykjavik -#usr/share/zoneinfo/posix/Atlantic/South_Georgia -#usr/share/zoneinfo/posix/Atlantic/St_Helena -#usr/share/zoneinfo/posix/Atlantic/Stanley -#usr/share/zoneinfo/posix/Australia -#usr/share/zoneinfo/posix/Australia/ACT -#usr/share/zoneinfo/posix/Australia/Adelaide -#usr/share/zoneinfo/posix/Australia/Brisbane -#usr/share/zoneinfo/posix/Australia/Broken_Hill -#usr/share/zoneinfo/posix/Australia/Canberra -#usr/share/zoneinfo/posix/Australia/Currie -#usr/share/zoneinfo/posix/Australia/Darwin -#usr/share/zoneinfo/posix/Australia/Hobart -#usr/share/zoneinfo/posix/Australia/LHI -#usr/share/zoneinfo/posix/Australia/Lindeman -#usr/share/zoneinfo/posix/Australia/Lord_Howe -#usr/share/zoneinfo/posix/Australia/Melbourne -#usr/share/zoneinfo/posix/Australia/NSW -#usr/share/zoneinfo/posix/Australia/North -#usr/share/zoneinfo/posix/Australia/Perth -#usr/share/zoneinfo/posix/Australia/Queensland -#usr/share/zoneinfo/posix/Australia/South -#usr/share/zoneinfo/posix/Australia/Sydney -#usr/share/zoneinfo/posix/Australia/Tasmania -#usr/share/zoneinfo/posix/Australia/Victoria -#usr/share/zoneinfo/posix/Australia/West -#usr/share/zoneinfo/posix/Australia/Yancowinna -#usr/share/zoneinfo/posix/Brazil -#usr/share/zoneinfo/posix/Brazil/Acre -#usr/share/zoneinfo/posix/Brazil/DeNoronha -#usr/share/zoneinfo/posix/Brazil/East -#usr/share/zoneinfo/posix/Brazil/West -#usr/share/zoneinfo/posix/CET -#usr/share/zoneinfo/posix/CST6CDT -#usr/share/zoneinfo/posix/Canada -#usr/share/zoneinfo/posix/Canada/Atlantic -#usr/share/zoneinfo/posix/Canada/Central -#usr/share/zoneinfo/posix/Canada/East-Saskatchewan -#usr/share/zoneinfo/posix/Canada/Eastern -#usr/share/zoneinfo/posix/Canada/Mountain -#usr/share/zoneinfo/posix/Canada/Newfoundland -#usr/share/zoneinfo/posix/Canada/Pacific -#usr/share/zoneinfo/posix/Canada/Saskatchewan -#usr/share/zoneinfo/posix/Canada/Yukon -#usr/share/zoneinfo/posix/Chile -#usr/share/zoneinfo/posix/Chile/Continental -#usr/share/zoneinfo/posix/Chile/EasterIsland -#usr/share/zoneinfo/posix/Cuba -#usr/share/zoneinfo/posix/EET -#usr/share/zoneinfo/posix/EST -#usr/share/zoneinfo/posix/EST5EDT -#usr/share/zoneinfo/posix/Egypt -#usr/share/zoneinfo/posix/Eire -#usr/share/zoneinfo/posix/Etc -#usr/share/zoneinfo/posix/Etc/GMT -#usr/share/zoneinfo/posix/Etc/GMT+0 -#usr/share/zoneinfo/posix/Etc/GMT+1 -#usr/share/zoneinfo/posix/Etc/GMT+10 -#usr/share/zoneinfo/posix/Etc/GMT+11 -#usr/share/zoneinfo/posix/Etc/GMT+12 -#usr/share/zoneinfo/posix/Etc/GMT+2 -#usr/share/zoneinfo/posix/Etc/GMT+3 -#usr/share/zoneinfo/posix/Etc/GMT+4 -#usr/share/zoneinfo/posix/Etc/GMT+5 -#usr/share/zoneinfo/posix/Etc/GMT+6 -#usr/share/zoneinfo/posix/Etc/GMT+7 -#usr/share/zoneinfo/posix/Etc/GMT+8 -#usr/share/zoneinfo/posix/Etc/GMT+9 -#usr/share/zoneinfo/posix/Etc/GMT-0 -#usr/share/zoneinfo/posix/Etc/GMT-1 -#usr/share/zoneinfo/posix/Etc/GMT-10 -#usr/share/zoneinfo/posix/Etc/GMT-11 -#usr/share/zoneinfo/posix/Etc/GMT-12 -#usr/share/zoneinfo/posix/Etc/GMT-13 -#usr/share/zoneinfo/posix/Etc/GMT-14 -#usr/share/zoneinfo/posix/Etc/GMT-2 -#usr/share/zoneinfo/posix/Etc/GMT-3 -#usr/share/zoneinfo/posix/Etc/GMT-4 -#usr/share/zoneinfo/posix/Etc/GMT-5 -#usr/share/zoneinfo/posix/Etc/GMT-6 -#usr/share/zoneinfo/posix/Etc/GMT-7 -#usr/share/zoneinfo/posix/Etc/GMT-8 -#usr/share/zoneinfo/posix/Etc/GMT-9 -#usr/share/zoneinfo/posix/Etc/GMT0 -#usr/share/zoneinfo/posix/Etc/Greenwich -#usr/share/zoneinfo/posix/Etc/UCT -#usr/share/zoneinfo/posix/Etc/UTC -#usr/share/zoneinfo/posix/Etc/Universal -#usr/share/zoneinfo/posix/Etc/Zulu -#usr/share/zoneinfo/posix/Europe -#usr/share/zoneinfo/posix/Europe/Amsterdam -#usr/share/zoneinfo/posix/Europe/Andorra -#usr/share/zoneinfo/posix/Europe/Athens -#usr/share/zoneinfo/posix/Europe/Belfast -#usr/share/zoneinfo/posix/Europe/Belgrade -#usr/share/zoneinfo/posix/Europe/Berlin -#usr/share/zoneinfo/posix/Europe/Bratislava -#usr/share/zoneinfo/posix/Europe/Brussels -#usr/share/zoneinfo/posix/Europe/Bucharest -#usr/share/zoneinfo/posix/Europe/Budapest -#usr/share/zoneinfo/posix/Europe/Chisinau -#usr/share/zoneinfo/posix/Europe/Copenhagen -#usr/share/zoneinfo/posix/Europe/Dublin -#usr/share/zoneinfo/posix/Europe/Gibraltar -#usr/share/zoneinfo/posix/Europe/Helsinki -#usr/share/zoneinfo/posix/Europe/Istanbul -#usr/share/zoneinfo/posix/Europe/Kaliningrad -#usr/share/zoneinfo/posix/Europe/Kiev -#usr/share/zoneinfo/posix/Europe/Lisbon -#usr/share/zoneinfo/posix/Europe/Ljubljana -#usr/share/zoneinfo/posix/Europe/London -#usr/share/zoneinfo/posix/Europe/Luxembourg -#usr/share/zoneinfo/posix/Europe/Madrid -#usr/share/zoneinfo/posix/Europe/Malta -#usr/share/zoneinfo/posix/Europe/Mariehamn -#usr/share/zoneinfo/posix/Europe/Minsk -#usr/share/zoneinfo/posix/Europe/Monaco -#usr/share/zoneinfo/posix/Europe/Moscow -#usr/share/zoneinfo/posix/Europe/Nicosia -#usr/share/zoneinfo/posix/Europe/Oslo -#usr/share/zoneinfo/posix/Europe/Paris -#usr/share/zoneinfo/posix/Europe/Prague -#usr/share/zoneinfo/posix/Europe/Riga -#usr/share/zoneinfo/posix/Europe/Rome -#usr/share/zoneinfo/posix/Europe/Samara -#usr/share/zoneinfo/posix/Europe/San_Marino -#usr/share/zoneinfo/posix/Europe/Sarajevo -#usr/share/zoneinfo/posix/Europe/Simferopol -#usr/share/zoneinfo/posix/Europe/Skopje -#usr/share/zoneinfo/posix/Europe/Sofia -#usr/share/zoneinfo/posix/Europe/Stockholm -#usr/share/zoneinfo/posix/Europe/Tallinn -#usr/share/zoneinfo/posix/Europe/Tirane -#usr/share/zoneinfo/posix/Europe/Tiraspol -#usr/share/zoneinfo/posix/Europe/Uzhgorod -#usr/share/zoneinfo/posix/Europe/Vaduz -#usr/share/zoneinfo/posix/Europe/Vatican -#usr/share/zoneinfo/posix/Europe/Vienna -#usr/share/zoneinfo/posix/Europe/Vilnius -#usr/share/zoneinfo/posix/Europe/Warsaw -#usr/share/zoneinfo/posix/Europe/Zagreb -#usr/share/zoneinfo/posix/Europe/Zaporozhye -#usr/share/zoneinfo/posix/Europe/Zurich -#usr/share/zoneinfo/posix/Factory -#usr/share/zoneinfo/posix/GB -#usr/share/zoneinfo/posix/GB-Eire -#usr/share/zoneinfo/posix/GMT -#usr/share/zoneinfo/posix/GMT+0 -#usr/share/zoneinfo/posix/GMT-0 -#usr/share/zoneinfo/posix/GMT0 -#usr/share/zoneinfo/posix/Greenwich -#usr/share/zoneinfo/posix/HST -#usr/share/zoneinfo/posix/Hongkong -#usr/share/zoneinfo/posix/Iceland -#usr/share/zoneinfo/posix/Indian -#usr/share/zoneinfo/posix/Indian/Antananarivo -#usr/share/zoneinfo/posix/Indian/Chagos -#usr/share/zoneinfo/posix/Indian/Christmas -#usr/share/zoneinfo/posix/Indian/Cocos -#usr/share/zoneinfo/posix/Indian/Comoro -#usr/share/zoneinfo/posix/Indian/Kerguelen -#usr/share/zoneinfo/posix/Indian/Mahe -#usr/share/zoneinfo/posix/Indian/Maldives -#usr/share/zoneinfo/posix/Indian/Mauritius -#usr/share/zoneinfo/posix/Indian/Mayotte -#usr/share/zoneinfo/posix/Indian/Reunion -#usr/share/zoneinfo/posix/Iran -#usr/share/zoneinfo/posix/Israel -#usr/share/zoneinfo/posix/Jamaica -#usr/share/zoneinfo/posix/Japan -#usr/share/zoneinfo/posix/Kwajalein -#usr/share/zoneinfo/posix/Libya -#usr/share/zoneinfo/posix/MET -#usr/share/zoneinfo/posix/MST -#usr/share/zoneinfo/posix/MST7MDT -#usr/share/zoneinfo/posix/Mexico -#usr/share/zoneinfo/posix/Mexico/BajaNorte -#usr/share/zoneinfo/posix/Mexico/BajaSur -#usr/share/zoneinfo/posix/Mexico/General -#usr/share/zoneinfo/posix/Mideast -#usr/share/zoneinfo/posix/Mideast/Riyadh87 -#usr/share/zoneinfo/posix/Mideast/Riyadh88 -#usr/share/zoneinfo/posix/Mideast/Riyadh89 -#usr/share/zoneinfo/posix/NZ -#usr/share/zoneinfo/posix/NZ-CHAT -#usr/share/zoneinfo/posix/Navajo -#usr/share/zoneinfo/posix/PRC -#usr/share/zoneinfo/posix/PST8PDT -#usr/share/zoneinfo/posix/Pacific -#usr/share/zoneinfo/posix/Pacific/Apia -#usr/share/zoneinfo/posix/Pacific/Auckland -#usr/share/zoneinfo/posix/Pacific/Chatham -#usr/share/zoneinfo/posix/Pacific/Easter -#usr/share/zoneinfo/posix/Pacific/Efate -#usr/share/zoneinfo/posix/Pacific/Enderbury -#usr/share/zoneinfo/posix/Pacific/Fakaofo -#usr/share/zoneinfo/posix/Pacific/Fiji -#usr/share/zoneinfo/posix/Pacific/Funafuti -#usr/share/zoneinfo/posix/Pacific/Galapagos -#usr/share/zoneinfo/posix/Pacific/Gambier -#usr/share/zoneinfo/posix/Pacific/Guadalcanal -#usr/share/zoneinfo/posix/Pacific/Guam -#usr/share/zoneinfo/posix/Pacific/Honolulu -#usr/share/zoneinfo/posix/Pacific/Johnston -#usr/share/zoneinfo/posix/Pacific/Kiritimati -#usr/share/zoneinfo/posix/Pacific/Kosrae -#usr/share/zoneinfo/posix/Pacific/Kwajalein -#usr/share/zoneinfo/posix/Pacific/Majuro -#usr/share/zoneinfo/posix/Pacific/Marquesas -#usr/share/zoneinfo/posix/Pacific/Midway -#usr/share/zoneinfo/posix/Pacific/Nauru -#usr/share/zoneinfo/posix/Pacific/Niue -#usr/share/zoneinfo/posix/Pacific/Norfolk -#usr/share/zoneinfo/posix/Pacific/Noumea -#usr/share/zoneinfo/posix/Pacific/Pago_Pago -#usr/share/zoneinfo/posix/Pacific/Palau -#usr/share/zoneinfo/posix/Pacific/Pitcairn -#usr/share/zoneinfo/posix/Pacific/Ponape -#usr/share/zoneinfo/posix/Pacific/Port_Moresby -#usr/share/zoneinfo/posix/Pacific/Rarotonga -#usr/share/zoneinfo/posix/Pacific/Saipan -#usr/share/zoneinfo/posix/Pacific/Samoa -#usr/share/zoneinfo/posix/Pacific/Tahiti -#usr/share/zoneinfo/posix/Pacific/Tarawa -#usr/share/zoneinfo/posix/Pacific/Tongatapu -#usr/share/zoneinfo/posix/Pacific/Truk -#usr/share/zoneinfo/posix/Pacific/Wake -#usr/share/zoneinfo/posix/Pacific/Wallis -#usr/share/zoneinfo/posix/Pacific/Yap -#usr/share/zoneinfo/posix/Poland -#usr/share/zoneinfo/posix/Portugal -#usr/share/zoneinfo/posix/ROC -#usr/share/zoneinfo/posix/ROK -#usr/share/zoneinfo/posix/Singapore -#usr/share/zoneinfo/posix/SystemV -#usr/share/zoneinfo/posix/SystemV/AST4 -#usr/share/zoneinfo/posix/SystemV/AST4ADT -#usr/share/zoneinfo/posix/SystemV/CST6 -#usr/share/zoneinfo/posix/SystemV/CST6CDT -#usr/share/zoneinfo/posix/SystemV/EST5 -#usr/share/zoneinfo/posix/SystemV/EST5EDT -#usr/share/zoneinfo/posix/SystemV/HST10 -#usr/share/zoneinfo/posix/SystemV/MST7 -#usr/share/zoneinfo/posix/SystemV/MST7MDT -#usr/share/zoneinfo/posix/SystemV/PST8 -#usr/share/zoneinfo/posix/SystemV/PST8PDT -#usr/share/zoneinfo/posix/SystemV/YST9 -#usr/share/zoneinfo/posix/SystemV/YST9YDT -#usr/share/zoneinfo/posix/Turkey -#usr/share/zoneinfo/posix/UCT -#usr/share/zoneinfo/posix/US -#usr/share/zoneinfo/posix/US/Alaska -#usr/share/zoneinfo/posix/US/Aleutian -#usr/share/zoneinfo/posix/US/Arizona -#usr/share/zoneinfo/posix/US/Central -#usr/share/zoneinfo/posix/US/East-Indiana -#usr/share/zoneinfo/posix/US/Eastern -#usr/share/zoneinfo/posix/US/Hawaii -#usr/share/zoneinfo/posix/US/Indiana-Starke -#usr/share/zoneinfo/posix/US/Michigan -#usr/share/zoneinfo/posix/US/Mountain -#usr/share/zoneinfo/posix/US/Pacific -#usr/share/zoneinfo/posix/US/Samoa -#usr/share/zoneinfo/posix/UTC -#usr/share/zoneinfo/posix/Universal -#usr/share/zoneinfo/posix/W-SU -#usr/share/zoneinfo/posix/WET -#usr/share/zoneinfo/posix/Zulu -#usr/share/zoneinfo/posixrules -#usr/share/zoneinfo/right -#usr/share/zoneinfo/right/Africa -#usr/share/zoneinfo/right/Africa/Abidjan -#usr/share/zoneinfo/right/Africa/Accra -#usr/share/zoneinfo/right/Africa/Addis_Ababa -#usr/share/zoneinfo/right/Africa/Algiers -#usr/share/zoneinfo/right/Africa/Asmera -#usr/share/zoneinfo/right/Africa/Bamako -#usr/share/zoneinfo/right/Africa/Bangui -#usr/share/zoneinfo/right/Africa/Banjul -#usr/share/zoneinfo/right/Africa/Bissau -#usr/share/zoneinfo/right/Africa/Blantyre -#usr/share/zoneinfo/right/Africa/Brazzaville -#usr/share/zoneinfo/right/Africa/Bujumbura -#usr/share/zoneinfo/right/Africa/Cairo -#usr/share/zoneinfo/right/Africa/Casablanca -#usr/share/zoneinfo/right/Africa/Ceuta -#usr/share/zoneinfo/right/Africa/Conakry -#usr/share/zoneinfo/right/Africa/Dakar -#usr/share/zoneinfo/right/Africa/Dar_es_Salaam -#usr/share/zoneinfo/right/Africa/Djibouti -#usr/share/zoneinfo/right/Africa/Douala -#usr/share/zoneinfo/right/Africa/El_Aaiun -#usr/share/zoneinfo/right/Africa/Freetown -#usr/share/zoneinfo/right/Africa/Gaborone -#usr/share/zoneinfo/right/Africa/Harare -#usr/share/zoneinfo/right/Africa/Johannesburg -#usr/share/zoneinfo/right/Africa/Kampala -#usr/share/zoneinfo/right/Africa/Khartoum -#usr/share/zoneinfo/right/Africa/Kigali -#usr/share/zoneinfo/right/Africa/Kinshasa -#usr/share/zoneinfo/right/Africa/Lagos -#usr/share/zoneinfo/right/Africa/Libreville -#usr/share/zoneinfo/right/Africa/Lome -#usr/share/zoneinfo/right/Africa/Luanda -#usr/share/zoneinfo/right/Africa/Lubumbashi -#usr/share/zoneinfo/right/Africa/Lusaka -#usr/share/zoneinfo/right/Africa/Malabo -#usr/share/zoneinfo/right/Africa/Maputo -#usr/share/zoneinfo/right/Africa/Maseru -#usr/share/zoneinfo/right/Africa/Mbabane -#usr/share/zoneinfo/right/Africa/Mogadishu -#usr/share/zoneinfo/right/Africa/Monrovia -#usr/share/zoneinfo/right/Africa/Nairobi -#usr/share/zoneinfo/right/Africa/Ndjamena -#usr/share/zoneinfo/right/Africa/Niamey -#usr/share/zoneinfo/right/Africa/Nouakchott -#usr/share/zoneinfo/right/Africa/Ouagadougou -#usr/share/zoneinfo/right/Africa/Porto-Novo -#usr/share/zoneinfo/right/Africa/Sao_Tome -#usr/share/zoneinfo/right/Africa/Timbuktu -#usr/share/zoneinfo/right/Africa/Tripoli -#usr/share/zoneinfo/right/Africa/Tunis -#usr/share/zoneinfo/right/Africa/Windhoek -#usr/share/zoneinfo/right/America -#usr/share/zoneinfo/right/America/Adak -#usr/share/zoneinfo/right/America/Anchorage -#usr/share/zoneinfo/right/America/Anguilla -#usr/share/zoneinfo/right/America/Antigua -#usr/share/zoneinfo/right/America/Araguaina -#usr/share/zoneinfo/right/America/Argentina -#usr/share/zoneinfo/right/America/Argentina/Buenos_Aires -#usr/share/zoneinfo/right/America/Argentina/Catamarca -#usr/share/zoneinfo/right/America/Argentina/ComodRivadavia -#usr/share/zoneinfo/right/America/Argentina/Cordoba -#usr/share/zoneinfo/right/America/Argentina/Jujuy -#usr/share/zoneinfo/right/America/Argentina/La_Rioja -#usr/share/zoneinfo/right/America/Argentina/Mendoza -#usr/share/zoneinfo/right/America/Argentina/Rio_Gallegos -#usr/share/zoneinfo/right/America/Argentina/San_Juan -#usr/share/zoneinfo/right/America/Argentina/Tucuman -#usr/share/zoneinfo/right/America/Argentina/Ushuaia -#usr/share/zoneinfo/right/America/Aruba -#usr/share/zoneinfo/right/America/Asuncion -#usr/share/zoneinfo/right/America/Atka -#usr/share/zoneinfo/right/America/Bahia -#usr/share/zoneinfo/right/America/Barbados -#usr/share/zoneinfo/right/America/Belem -#usr/share/zoneinfo/right/America/Belize -#usr/share/zoneinfo/right/America/Boa_Vista -#usr/share/zoneinfo/right/America/Bogota -#usr/share/zoneinfo/right/America/Boise -#usr/share/zoneinfo/right/America/Buenos_Aires -#usr/share/zoneinfo/right/America/Cambridge_Bay -#usr/share/zoneinfo/right/America/Campo_Grande -#usr/share/zoneinfo/right/America/Cancun -#usr/share/zoneinfo/right/America/Caracas -#usr/share/zoneinfo/right/America/Catamarca -#usr/share/zoneinfo/right/America/Cayenne -#usr/share/zoneinfo/right/America/Cayman -#usr/share/zoneinfo/right/America/Chicago -#usr/share/zoneinfo/right/America/Chihuahua -#usr/share/zoneinfo/right/America/Coral_Harbour -#usr/share/zoneinfo/right/America/Cordoba -#usr/share/zoneinfo/right/America/Costa_Rica -#usr/share/zoneinfo/right/America/Cuiaba -#usr/share/zoneinfo/right/America/Curacao -#usr/share/zoneinfo/right/America/Danmarkshavn -#usr/share/zoneinfo/right/America/Dawson -#usr/share/zoneinfo/right/America/Dawson_Creek -#usr/share/zoneinfo/right/America/Denver -#usr/share/zoneinfo/right/America/Detroit -#usr/share/zoneinfo/right/America/Dominica -#usr/share/zoneinfo/right/America/Edmonton -#usr/share/zoneinfo/right/America/Eirunepe -#usr/share/zoneinfo/right/America/El_Salvador -#usr/share/zoneinfo/right/America/Ensenada -#usr/share/zoneinfo/right/America/Fort_Wayne -#usr/share/zoneinfo/right/America/Fortaleza -#usr/share/zoneinfo/right/America/Glace_Bay -#usr/share/zoneinfo/right/America/Godthab -#usr/share/zoneinfo/right/America/Goose_Bay -#usr/share/zoneinfo/right/America/Grand_Turk -#usr/share/zoneinfo/right/America/Grenada -#usr/share/zoneinfo/right/America/Guadeloupe -#usr/share/zoneinfo/right/America/Guatemala -#usr/share/zoneinfo/right/America/Guayaquil -#usr/share/zoneinfo/right/America/Guyana -#usr/share/zoneinfo/right/America/Halifax -#usr/share/zoneinfo/right/America/Havana -#usr/share/zoneinfo/right/America/Hermosillo -#usr/share/zoneinfo/right/America/Indiana -#usr/share/zoneinfo/right/America/Indiana/Indianapolis -#usr/share/zoneinfo/right/America/Indiana/Knox -#usr/share/zoneinfo/right/America/Indiana/Marengo -#usr/share/zoneinfo/right/America/Indiana/Vevay -#usr/share/zoneinfo/right/America/Indianapolis -#usr/share/zoneinfo/right/America/Inuvik -#usr/share/zoneinfo/right/America/Iqaluit -#usr/share/zoneinfo/right/America/Jamaica -#usr/share/zoneinfo/right/America/Jujuy -#usr/share/zoneinfo/right/America/Juneau -#usr/share/zoneinfo/right/America/Kentucky -#usr/share/zoneinfo/right/America/Kentucky/Louisville -#usr/share/zoneinfo/right/America/Kentucky/Monticello -#usr/share/zoneinfo/right/America/Knox_IN -#usr/share/zoneinfo/right/America/La_Paz -#usr/share/zoneinfo/right/America/Lima -#usr/share/zoneinfo/right/America/Los_Angeles -#usr/share/zoneinfo/right/America/Louisville -#usr/share/zoneinfo/right/America/Maceio -#usr/share/zoneinfo/right/America/Managua -#usr/share/zoneinfo/right/America/Manaus -#usr/share/zoneinfo/right/America/Martinique -#usr/share/zoneinfo/right/America/Mazatlan -#usr/share/zoneinfo/right/America/Mendoza -#usr/share/zoneinfo/right/America/Menominee -#usr/share/zoneinfo/right/America/Merida -#usr/share/zoneinfo/right/America/Mexico_City -#usr/share/zoneinfo/right/America/Miquelon -#usr/share/zoneinfo/right/America/Monterrey -#usr/share/zoneinfo/right/America/Montevideo -#usr/share/zoneinfo/right/America/Montreal -#usr/share/zoneinfo/right/America/Montserrat -#usr/share/zoneinfo/right/America/Nassau -#usr/share/zoneinfo/right/America/New_York -#usr/share/zoneinfo/right/America/Nipigon -#usr/share/zoneinfo/right/America/Nome -#usr/share/zoneinfo/right/America/Noronha -#usr/share/zoneinfo/right/America/North_Dakota -#usr/share/zoneinfo/right/America/North_Dakota/Center -#usr/share/zoneinfo/right/America/Panama -#usr/share/zoneinfo/right/America/Pangnirtung -#usr/share/zoneinfo/right/America/Paramaribo -#usr/share/zoneinfo/right/America/Phoenix -#usr/share/zoneinfo/right/America/Port-au-Prince -#usr/share/zoneinfo/right/America/Port_of_Spain -#usr/share/zoneinfo/right/America/Porto_Acre -#usr/share/zoneinfo/right/America/Porto_Velho -#usr/share/zoneinfo/right/America/Puerto_Rico -#usr/share/zoneinfo/right/America/Rainy_River -#usr/share/zoneinfo/right/America/Rankin_Inlet -#usr/share/zoneinfo/right/America/Recife -#usr/share/zoneinfo/right/America/Regina -#usr/share/zoneinfo/right/America/Rio_Branco -#usr/share/zoneinfo/right/America/Rosario -#usr/share/zoneinfo/right/America/Santiago -#usr/share/zoneinfo/right/America/Santo_Domingo -#usr/share/zoneinfo/right/America/Sao_Paulo -#usr/share/zoneinfo/right/America/Scoresbysund -#usr/share/zoneinfo/right/America/Shiprock -#usr/share/zoneinfo/right/America/St_Johns -#usr/share/zoneinfo/right/America/St_Kitts -#usr/share/zoneinfo/right/America/St_Lucia -#usr/share/zoneinfo/right/America/St_Thomas -#usr/share/zoneinfo/right/America/St_Vincent -#usr/share/zoneinfo/right/America/Swift_Current -#usr/share/zoneinfo/right/America/Tegucigalpa -#usr/share/zoneinfo/right/America/Thule -#usr/share/zoneinfo/right/America/Thunder_Bay -#usr/share/zoneinfo/right/America/Tijuana -#usr/share/zoneinfo/right/America/Toronto -#usr/share/zoneinfo/right/America/Tortola -#usr/share/zoneinfo/right/America/Vancouver -#usr/share/zoneinfo/right/America/Virgin -#usr/share/zoneinfo/right/America/Whitehorse -#usr/share/zoneinfo/right/America/Winnipeg -#usr/share/zoneinfo/right/America/Yakutat -#usr/share/zoneinfo/right/America/Yellowknife -#usr/share/zoneinfo/right/Antarctica -#usr/share/zoneinfo/right/Antarctica/Casey -#usr/share/zoneinfo/right/Antarctica/Davis -#usr/share/zoneinfo/right/Antarctica/DumontDUrville -#usr/share/zoneinfo/right/Antarctica/Mawson -#usr/share/zoneinfo/right/Antarctica/McMurdo -#usr/share/zoneinfo/right/Antarctica/Palmer -#usr/share/zoneinfo/right/Antarctica/Rothera -#usr/share/zoneinfo/right/Antarctica/South_Pole -#usr/share/zoneinfo/right/Antarctica/Syowa -#usr/share/zoneinfo/right/Antarctica/Vostok -#usr/share/zoneinfo/right/Arctic -#usr/share/zoneinfo/right/Arctic/Longyearbyen -#usr/share/zoneinfo/right/Asia -#usr/share/zoneinfo/right/Asia/Aden -#usr/share/zoneinfo/right/Asia/Almaty -#usr/share/zoneinfo/right/Asia/Amman -#usr/share/zoneinfo/right/Asia/Anadyr -#usr/share/zoneinfo/right/Asia/Aqtau -#usr/share/zoneinfo/right/Asia/Aqtobe -#usr/share/zoneinfo/right/Asia/Ashgabat -#usr/share/zoneinfo/right/Asia/Ashkhabad -#usr/share/zoneinfo/right/Asia/Baghdad -#usr/share/zoneinfo/right/Asia/Bahrain -#usr/share/zoneinfo/right/Asia/Baku -#usr/share/zoneinfo/right/Asia/Bangkok -#usr/share/zoneinfo/right/Asia/Beirut -#usr/share/zoneinfo/right/Asia/Bishkek -#usr/share/zoneinfo/right/Asia/Brunei -#usr/share/zoneinfo/right/Asia/Calcutta -#usr/share/zoneinfo/right/Asia/Choibalsan -#usr/share/zoneinfo/right/Asia/Chongqing -#usr/share/zoneinfo/right/Asia/Chungking -#usr/share/zoneinfo/right/Asia/Colombo -#usr/share/zoneinfo/right/Asia/Dacca -#usr/share/zoneinfo/right/Asia/Damascus -#usr/share/zoneinfo/right/Asia/Dhaka -#usr/share/zoneinfo/right/Asia/Dili -#usr/share/zoneinfo/right/Asia/Dubai -#usr/share/zoneinfo/right/Asia/Dushanbe -#usr/share/zoneinfo/right/Asia/Gaza -#usr/share/zoneinfo/right/Asia/Harbin -#usr/share/zoneinfo/right/Asia/Hong_Kong -#usr/share/zoneinfo/right/Asia/Hovd -#usr/share/zoneinfo/right/Asia/Irkutsk -#usr/share/zoneinfo/right/Asia/Istanbul -#usr/share/zoneinfo/right/Asia/Jakarta -#usr/share/zoneinfo/right/Asia/Jayapura -#usr/share/zoneinfo/right/Asia/Jerusalem -#usr/share/zoneinfo/right/Asia/Kabul -#usr/share/zoneinfo/right/Asia/Kamchatka -#usr/share/zoneinfo/right/Asia/Karachi -#usr/share/zoneinfo/right/Asia/Kashgar -#usr/share/zoneinfo/right/Asia/Katmandu -#usr/share/zoneinfo/right/Asia/Krasnoyarsk -#usr/share/zoneinfo/right/Asia/Kuala_Lumpur -#usr/share/zoneinfo/right/Asia/Kuching -#usr/share/zoneinfo/right/Asia/Kuwait -#usr/share/zoneinfo/right/Asia/Macao -#usr/share/zoneinfo/right/Asia/Macau -#usr/share/zoneinfo/right/Asia/Magadan -#usr/share/zoneinfo/right/Asia/Makassar -#usr/share/zoneinfo/right/Asia/Manila -#usr/share/zoneinfo/right/Asia/Muscat -#usr/share/zoneinfo/right/Asia/Nicosia -#usr/share/zoneinfo/right/Asia/Novosibirsk -#usr/share/zoneinfo/right/Asia/Omsk -#usr/share/zoneinfo/right/Asia/Oral -#usr/share/zoneinfo/right/Asia/Phnom_Penh -#usr/share/zoneinfo/right/Asia/Pontianak -#usr/share/zoneinfo/right/Asia/Pyongyang -#usr/share/zoneinfo/right/Asia/Qatar -#usr/share/zoneinfo/right/Asia/Qyzylorda -#usr/share/zoneinfo/right/Asia/Rangoon -#usr/share/zoneinfo/right/Asia/Riyadh -#usr/share/zoneinfo/right/Asia/Riyadh87 -#usr/share/zoneinfo/right/Asia/Riyadh88 -#usr/share/zoneinfo/right/Asia/Riyadh89 -#usr/share/zoneinfo/right/Asia/Saigon -#usr/share/zoneinfo/right/Asia/Sakhalin -#usr/share/zoneinfo/right/Asia/Samarkand -#usr/share/zoneinfo/right/Asia/Seoul -#usr/share/zoneinfo/right/Asia/Shanghai -#usr/share/zoneinfo/right/Asia/Singapore -#usr/share/zoneinfo/right/Asia/Taipei -#usr/share/zoneinfo/right/Asia/Tashkent -#usr/share/zoneinfo/right/Asia/Tbilisi -#usr/share/zoneinfo/right/Asia/Tehran -#usr/share/zoneinfo/right/Asia/Tel_Aviv -#usr/share/zoneinfo/right/Asia/Thimbu -#usr/share/zoneinfo/right/Asia/Thimphu -#usr/share/zoneinfo/right/Asia/Tokyo -#usr/share/zoneinfo/right/Asia/Ujung_Pandang -#usr/share/zoneinfo/right/Asia/Ulaanbaatar -#usr/share/zoneinfo/right/Asia/Ulan_Bator -#usr/share/zoneinfo/right/Asia/Urumqi -#usr/share/zoneinfo/right/Asia/Vientiane -#usr/share/zoneinfo/right/Asia/Vladivostok -#usr/share/zoneinfo/right/Asia/Yakutsk -#usr/share/zoneinfo/right/Asia/Yekaterinburg -#usr/share/zoneinfo/right/Asia/Yerevan -#usr/share/zoneinfo/right/Atlantic -#usr/share/zoneinfo/right/Atlantic/Azores -#usr/share/zoneinfo/right/Atlantic/Bermuda -#usr/share/zoneinfo/right/Atlantic/Canary -#usr/share/zoneinfo/right/Atlantic/Cape_Verde -#usr/share/zoneinfo/right/Atlantic/Faeroe -#usr/share/zoneinfo/right/Atlantic/Jan_Mayen -#usr/share/zoneinfo/right/Atlantic/Madeira -#usr/share/zoneinfo/right/Atlantic/Reykjavik -#usr/share/zoneinfo/right/Atlantic/South_Georgia -#usr/share/zoneinfo/right/Atlantic/St_Helena -#usr/share/zoneinfo/right/Atlantic/Stanley -#usr/share/zoneinfo/right/Australia -#usr/share/zoneinfo/right/Australia/ACT -#usr/share/zoneinfo/right/Australia/Adelaide -#usr/share/zoneinfo/right/Australia/Brisbane -#usr/share/zoneinfo/right/Australia/Broken_Hill -#usr/share/zoneinfo/right/Australia/Canberra -#usr/share/zoneinfo/right/Australia/Currie -#usr/share/zoneinfo/right/Australia/Darwin -#usr/share/zoneinfo/right/Australia/Hobart -#usr/share/zoneinfo/right/Australia/LHI -#usr/share/zoneinfo/right/Australia/Lindeman -#usr/share/zoneinfo/right/Australia/Lord_Howe -#usr/share/zoneinfo/right/Australia/Melbourne -#usr/share/zoneinfo/right/Australia/NSW -#usr/share/zoneinfo/right/Australia/North -#usr/share/zoneinfo/right/Australia/Perth -#usr/share/zoneinfo/right/Australia/Queensland -#usr/share/zoneinfo/right/Australia/South -#usr/share/zoneinfo/right/Australia/Sydney -#usr/share/zoneinfo/right/Australia/Tasmania -#usr/share/zoneinfo/right/Australia/Victoria -#usr/share/zoneinfo/right/Australia/West -#usr/share/zoneinfo/right/Australia/Yancowinna -#usr/share/zoneinfo/right/Brazil -#usr/share/zoneinfo/right/Brazil/Acre -#usr/share/zoneinfo/right/Brazil/DeNoronha -#usr/share/zoneinfo/right/Brazil/East -#usr/share/zoneinfo/right/Brazil/West -#usr/share/zoneinfo/right/CET -#usr/share/zoneinfo/right/CST6CDT -#usr/share/zoneinfo/right/Canada -#usr/share/zoneinfo/right/Canada/Atlantic -#usr/share/zoneinfo/right/Canada/Central -#usr/share/zoneinfo/right/Canada/East-Saskatchewan -#usr/share/zoneinfo/right/Canada/Eastern -#usr/share/zoneinfo/right/Canada/Mountain -#usr/share/zoneinfo/right/Canada/Newfoundland -#usr/share/zoneinfo/right/Canada/Pacific -#usr/share/zoneinfo/right/Canada/Saskatchewan -#usr/share/zoneinfo/right/Canada/Yukon -#usr/share/zoneinfo/right/Chile -#usr/share/zoneinfo/right/Chile/Continental -#usr/share/zoneinfo/right/Chile/EasterIsland -#usr/share/zoneinfo/right/Cuba -#usr/share/zoneinfo/right/EET -#usr/share/zoneinfo/right/EST -#usr/share/zoneinfo/right/EST5EDT -#usr/share/zoneinfo/right/Egypt -#usr/share/zoneinfo/right/Eire -#usr/share/zoneinfo/right/Etc -#usr/share/zoneinfo/right/Etc/GMT -#usr/share/zoneinfo/right/Etc/GMT+0 -#usr/share/zoneinfo/right/Etc/GMT+1 -#usr/share/zoneinfo/right/Etc/GMT+10 -#usr/share/zoneinfo/right/Etc/GMT+11 -#usr/share/zoneinfo/right/Etc/GMT+12 -#usr/share/zoneinfo/right/Etc/GMT+2 -#usr/share/zoneinfo/right/Etc/GMT+3 -#usr/share/zoneinfo/right/Etc/GMT+4 -#usr/share/zoneinfo/right/Etc/GMT+5 -#usr/share/zoneinfo/right/Etc/GMT+6 -#usr/share/zoneinfo/right/Etc/GMT+7 -#usr/share/zoneinfo/right/Etc/GMT+8 -#usr/share/zoneinfo/right/Etc/GMT+9 -#usr/share/zoneinfo/right/Etc/GMT-0 -#usr/share/zoneinfo/right/Etc/GMT-1 -#usr/share/zoneinfo/right/Etc/GMT-10 -#usr/share/zoneinfo/right/Etc/GMT-11 -#usr/share/zoneinfo/right/Etc/GMT-12 -#usr/share/zoneinfo/right/Etc/GMT-13 -#usr/share/zoneinfo/right/Etc/GMT-14 -#usr/share/zoneinfo/right/Etc/GMT-2 -#usr/share/zoneinfo/right/Etc/GMT-3 -#usr/share/zoneinfo/right/Etc/GMT-4 -#usr/share/zoneinfo/right/Etc/GMT-5 -#usr/share/zoneinfo/right/Etc/GMT-6 -#usr/share/zoneinfo/right/Etc/GMT-7 -#usr/share/zoneinfo/right/Etc/GMT-8 -#usr/share/zoneinfo/right/Etc/GMT-9 -#usr/share/zoneinfo/right/Etc/GMT0 -#usr/share/zoneinfo/right/Etc/Greenwich -#usr/share/zoneinfo/right/Etc/UCT -#usr/share/zoneinfo/right/Etc/UTC -#usr/share/zoneinfo/right/Etc/Universal -#usr/share/zoneinfo/right/Etc/Zulu -#usr/share/zoneinfo/right/Europe -#usr/share/zoneinfo/right/Europe/Amsterdam -#usr/share/zoneinfo/right/Europe/Andorra -#usr/share/zoneinfo/right/Europe/Athens -#usr/share/zoneinfo/right/Europe/Belfast -#usr/share/zoneinfo/right/Europe/Belgrade -#usr/share/zoneinfo/right/Europe/Berlin -#usr/share/zoneinfo/right/Europe/Bratislava -#usr/share/zoneinfo/right/Europe/Brussels -#usr/share/zoneinfo/right/Europe/Bucharest -#usr/share/zoneinfo/right/Europe/Budapest -#usr/share/zoneinfo/right/Europe/Chisinau -#usr/share/zoneinfo/right/Europe/Copenhagen -#usr/share/zoneinfo/right/Europe/Dublin -#usr/share/zoneinfo/right/Europe/Gibraltar -#usr/share/zoneinfo/right/Europe/Helsinki -#usr/share/zoneinfo/right/Europe/Istanbul -#usr/share/zoneinfo/right/Europe/Kaliningrad -#usr/share/zoneinfo/right/Europe/Kiev -#usr/share/zoneinfo/right/Europe/Lisbon -#usr/share/zoneinfo/right/Europe/Ljubljana -#usr/share/zoneinfo/right/Europe/London -#usr/share/zoneinfo/right/Europe/Luxembourg -#usr/share/zoneinfo/right/Europe/Madrid -#usr/share/zoneinfo/right/Europe/Malta -#usr/share/zoneinfo/right/Europe/Mariehamn -#usr/share/zoneinfo/right/Europe/Minsk -#usr/share/zoneinfo/right/Europe/Monaco -#usr/share/zoneinfo/right/Europe/Moscow -#usr/share/zoneinfo/right/Europe/Nicosia -#usr/share/zoneinfo/right/Europe/Oslo -#usr/share/zoneinfo/right/Europe/Paris -#usr/share/zoneinfo/right/Europe/Prague -#usr/share/zoneinfo/right/Europe/Riga -#usr/share/zoneinfo/right/Europe/Rome -#usr/share/zoneinfo/right/Europe/Samara -#usr/share/zoneinfo/right/Europe/San_Marino -#usr/share/zoneinfo/right/Europe/Sarajevo -#usr/share/zoneinfo/right/Europe/Simferopol -#usr/share/zoneinfo/right/Europe/Skopje -#usr/share/zoneinfo/right/Europe/Sofia -#usr/share/zoneinfo/right/Europe/Stockholm -#usr/share/zoneinfo/right/Europe/Tallinn -#usr/share/zoneinfo/right/Europe/Tirane -#usr/share/zoneinfo/right/Europe/Tiraspol -#usr/share/zoneinfo/right/Europe/Uzhgorod -#usr/share/zoneinfo/right/Europe/Vaduz -#usr/share/zoneinfo/right/Europe/Vatican -#usr/share/zoneinfo/right/Europe/Vienna -#usr/share/zoneinfo/right/Europe/Vilnius -#usr/share/zoneinfo/right/Europe/Warsaw -#usr/share/zoneinfo/right/Europe/Zagreb -#usr/share/zoneinfo/right/Europe/Zaporozhye -#usr/share/zoneinfo/right/Europe/Zurich -#usr/share/zoneinfo/right/Factory -#usr/share/zoneinfo/right/GB -#usr/share/zoneinfo/right/GB-Eire -#usr/share/zoneinfo/right/GMT -#usr/share/zoneinfo/right/GMT+0 -#usr/share/zoneinfo/right/GMT-0 -#usr/share/zoneinfo/right/GMT0 -#usr/share/zoneinfo/right/Greenwich -#usr/share/zoneinfo/right/HST -#usr/share/zoneinfo/right/Hongkong -#usr/share/zoneinfo/right/Iceland -#usr/share/zoneinfo/right/Indian -#usr/share/zoneinfo/right/Indian/Antananarivo -#usr/share/zoneinfo/right/Indian/Chagos -#usr/share/zoneinfo/right/Indian/Christmas -#usr/share/zoneinfo/right/Indian/Cocos -#usr/share/zoneinfo/right/Indian/Comoro -#usr/share/zoneinfo/right/Indian/Kerguelen -#usr/share/zoneinfo/right/Indian/Mahe -#usr/share/zoneinfo/right/Indian/Maldives -#usr/share/zoneinfo/right/Indian/Mauritius -#usr/share/zoneinfo/right/Indian/Mayotte -#usr/share/zoneinfo/right/Indian/Reunion -#usr/share/zoneinfo/right/Iran -#usr/share/zoneinfo/right/Israel -#usr/share/zoneinfo/right/Jamaica -#usr/share/zoneinfo/right/Japan -#usr/share/zoneinfo/right/Kwajalein -#usr/share/zoneinfo/right/Libya -#usr/share/zoneinfo/right/MET -#usr/share/zoneinfo/right/MST -#usr/share/zoneinfo/right/MST7MDT -#usr/share/zoneinfo/right/Mexico -#usr/share/zoneinfo/right/Mexico/BajaNorte -#usr/share/zoneinfo/right/Mexico/BajaSur -#usr/share/zoneinfo/right/Mexico/General -#usr/share/zoneinfo/right/Mideast -#usr/share/zoneinfo/right/Mideast/Riyadh87 -#usr/share/zoneinfo/right/Mideast/Riyadh88 -#usr/share/zoneinfo/right/Mideast/Riyadh89 -#usr/share/zoneinfo/right/NZ -#usr/share/zoneinfo/right/NZ-CHAT -#usr/share/zoneinfo/right/Navajo -#usr/share/zoneinfo/right/PRC -#usr/share/zoneinfo/right/PST8PDT -#usr/share/zoneinfo/right/Pacific -#usr/share/zoneinfo/right/Pacific/Apia -#usr/share/zoneinfo/right/Pacific/Auckland -#usr/share/zoneinfo/right/Pacific/Chatham -#usr/share/zoneinfo/right/Pacific/Easter -#usr/share/zoneinfo/right/Pacific/Efate -#usr/share/zoneinfo/right/Pacific/Enderbury -#usr/share/zoneinfo/right/Pacific/Fakaofo -#usr/share/zoneinfo/right/Pacific/Fiji -#usr/share/zoneinfo/right/Pacific/Funafuti -#usr/share/zoneinfo/right/Pacific/Galapagos -#usr/share/zoneinfo/right/Pacific/Gambier -#usr/share/zoneinfo/right/Pacific/Guadalcanal -#usr/share/zoneinfo/right/Pacific/Guam -#usr/share/zoneinfo/right/Pacific/Honolulu -#usr/share/zoneinfo/right/Pacific/Johnston -#usr/share/zoneinfo/right/Pacific/Kiritimati -#usr/share/zoneinfo/right/Pacific/Kosrae -#usr/share/zoneinfo/right/Pacific/Kwajalein -#usr/share/zoneinfo/right/Pacific/Majuro -#usr/share/zoneinfo/right/Pacific/Marquesas -#usr/share/zoneinfo/right/Pacific/Midway -#usr/share/zoneinfo/right/Pacific/Nauru -#usr/share/zoneinfo/right/Pacific/Niue -#usr/share/zoneinfo/right/Pacific/Norfolk -#usr/share/zoneinfo/right/Pacific/Noumea -#usr/share/zoneinfo/right/Pacific/Pago_Pago -#usr/share/zoneinfo/right/Pacific/Palau -#usr/share/zoneinfo/right/Pacific/Pitcairn -#usr/share/zoneinfo/right/Pacific/Ponape -#usr/share/zoneinfo/right/Pacific/Port_Moresby -#usr/share/zoneinfo/right/Pacific/Rarotonga -#usr/share/zoneinfo/right/Pacific/Saipan -#usr/share/zoneinfo/right/Pacific/Samoa -#usr/share/zoneinfo/right/Pacific/Tahiti -#usr/share/zoneinfo/right/Pacific/Tarawa -#usr/share/zoneinfo/right/Pacific/Tongatapu -#usr/share/zoneinfo/right/Pacific/Truk -#usr/share/zoneinfo/right/Pacific/Wake -#usr/share/zoneinfo/right/Pacific/Wallis -#usr/share/zoneinfo/right/Pacific/Yap -#usr/share/zoneinfo/right/Poland -#usr/share/zoneinfo/right/Portugal -#usr/share/zoneinfo/right/ROC -#usr/share/zoneinfo/right/ROK -#usr/share/zoneinfo/right/Singapore -#usr/share/zoneinfo/right/SystemV -#usr/share/zoneinfo/right/SystemV/AST4 -#usr/share/zoneinfo/right/SystemV/AST4ADT -#usr/share/zoneinfo/right/SystemV/CST6 -#usr/share/zoneinfo/right/SystemV/CST6CDT -#usr/share/zoneinfo/right/SystemV/EST5 -#usr/share/zoneinfo/right/SystemV/EST5EDT -#usr/share/zoneinfo/right/SystemV/HST10 -#usr/share/zoneinfo/right/SystemV/MST7 -#usr/share/zoneinfo/right/SystemV/MST7MDT -#usr/share/zoneinfo/right/SystemV/PST8 -#usr/share/zoneinfo/right/SystemV/PST8PDT -#usr/share/zoneinfo/right/SystemV/YST9 -#usr/share/zoneinfo/right/SystemV/YST9YDT -#usr/share/zoneinfo/right/Turkey -#usr/share/zoneinfo/right/UCT -#usr/share/zoneinfo/right/US -#usr/share/zoneinfo/right/US/Alaska -#usr/share/zoneinfo/right/US/Aleutian -#usr/share/zoneinfo/right/US/Arizona -#usr/share/zoneinfo/right/US/Central -#usr/share/zoneinfo/right/US/East-Indiana -#usr/share/zoneinfo/right/US/Eastern -#usr/share/zoneinfo/right/US/Hawaii -#usr/share/zoneinfo/right/US/Indiana-Starke -#usr/share/zoneinfo/right/US/Michigan -#usr/share/zoneinfo/right/US/Mountain -#usr/share/zoneinfo/right/US/Pacific -#usr/share/zoneinfo/right/US/Samoa -#usr/share/zoneinfo/right/UTC -#usr/share/zoneinfo/right/Universal -#usr/share/zoneinfo/right/W-SU -#usr/share/zoneinfo/right/WET -#usr/share/zoneinfo/right/Zulu -#usr/share/zoneinfo/zone.tab +#var/cache/ldconfig +#var/cache/ldconfig/aux-cache diff --git a/config/rootfiles/common/i586/grub b/config/rootfiles/common/i586/grub index e466ff0f57..de6a53b5cf 100644 --- a/config/rootfiles/common/i586/grub +++ b/config/rootfiles/common/i586/grub @@ -1,32 +1,34 @@ #boot/grub +boot/grub/default boot/grub/grub.conf boot/grub/ipfire.xpm.gz boot/grub/stage1 boot/grub/stage2 #usr/bin/mbchk -#usr/info/grub.info -#usr/info/multiboot.info -#usr/man/man1/mbchk.1 -#usr/man/man8/grub-install.8 -#usr/man/man8/grub-md5-crypt.8 -#usr/man/man8/grub-terminfo.8 -#usr/man/man8/grub.8 +usr/lib/grub +#usr/lib/grub/i386-pc +#usr/lib/grub/i386-pc/e2fs_stage1_5 +#usr/lib/grub/i386-pc/fat_stage1_5 +#usr/lib/grub/i386-pc/ffs_stage1_5 +#usr/lib/grub/i386-pc/iso9660_stage1_5 +#usr/lib/grub/i386-pc/jfs_stage1_5 +#usr/lib/grub/i386-pc/minix_stage1_5 +#usr/lib/grub/i386-pc/reiserfs_stage1_5 +#usr/lib/grub/i386-pc/stage1 +#usr/lib/grub/i386-pc/stage2 +#usr/lib/grub/i386-pc/stage2_eltorito +#usr/lib/grub/i386-pc/ufs2_stage1_5 +#usr/lib/grub/i386-pc/vstafs_stage1_5 +#usr/lib/grub/i386-pc/xfs_stage1_5 usr/sbin/grub usr/sbin/grub-install usr/sbin/grub-md5-crypt +usr/sbin/grub-set-default usr/sbin/grub-terminfo -usr/share/grub -#usr/share/grub/i386-pc -#usr/share/grub/i386-pc/e2fs_stage1_5 -#usr/share/grub/i386-pc/fat_stage1_5 -#usr/share/grub/i386-pc/ffs_stage1_5 -#usr/share/grub/i386-pc/iso9660_stage1_5 -#usr/share/grub/i386-pc/jfs_stage1_5 -#usr/share/grub/i386-pc/minix_stage1_5 -#usr/share/grub/i386-pc/reiserfs_stage1_5 -#usr/share/grub/i386-pc/stage1 -#usr/share/grub/i386-pc/stage2 -#usr/share/grub/i386-pc/stage2_eltorito -#usr/share/grub/i386-pc/ufs2_stage1_5 -#usr/share/grub/i386-pc/vstafs_stage1_5 -#usr/share/grub/i386-pc/xfs_stage1_5 +#usr/share/info/grub.info +#usr/share/info/multiboot.info +#usr/share/man/man1/mbchk.1 +#usr/share/man/man8/grub-install.8 +#usr/share/man/man8/grub-md5-crypt.8 +#usr/share/man/man8/grub-terminfo.8 +#usr/share/man/man8/grub.8 diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 653060f722..f26e2446dc 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -3,6 +3,7 @@ etc/rc.d/helper/getdnsfromdhcpc.pl etc/rc.d/helper/writeipac.pl #etc/rc.d/init.d +etc/rc.d/init.d/acpid #etc/rc.d/init.d/alsa #etc/rc.d/init.d/amavisd etc/rc.d/init.d/apache @@ -37,7 +38,6 @@ etc/rc.d/init.d/halt #etc/rc.d/init.d/hostapd #etc/rc.d/init.d/icecream #etc/rc.d/init.d/imspector -#etc/rc.d/init.d/ipfireseeder etc/rc.d/init.d/ipsec #etc/rc.d/init.d/lcd4linux #etc/rc.d/init.d/lcr @@ -75,6 +75,7 @@ etc/rc.d/init.d/networking/red.down/10-ovpn etc/rc.d/init.d/networking/red.down/20-RL-firewall etc/rc.d/init.d/networking/red.down/99-D-dialctrl.pl #etc/rc.d/init.d/networking/red.up +etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup etc/rc.d/init.d/networking/red.up/05-RS-dnsmasq etc/rc.d/init.d/networking/red.up/10-miniupnpd etc/rc.d/init.d/networking/red.up/10-multicast @@ -89,6 +90,7 @@ etc/rc.d/init.d/networking/red.up/30-ddns etc/rc.d/init.d/networking/red.up/40-ipac etc/rc.d/init.d/networking/red.up/50-ipsec etc/rc.d/init.d/networking/red.up/50-ovpn +etc/rc.d/init.d/networking/red.up/98-leds etc/rc.d/init.d/networking/red.up/99-U-dialctrl.pl etc/rc.d/init.d/networking/red.up/99-fireinfo etc/rc.d/init.d/networking/red.up/99-pakfire-update @@ -143,6 +145,7 @@ etc/rc.d/rc0.d/K28apache etc/rc.d/rc0.d/K30sshd #etc/rc.d/rc0.d/K34client175 etc/rc.d/rc0.d/K45random +etc/rc.d/rc0.d/K47setclock etc/rc.d/rc0.d/K49cyrus-sasl etc/rc.d/rc0.d/K78snort etc/rc.d/rc0.d/K79leds @@ -150,6 +153,7 @@ etc/rc.d/rc0.d/K80network #etc/rc.d/rc0.d/K84bluetooth #etc/rc.d/rc0.d/K85messagebus etc/rc.d/rc0.d/K85tmpfs +etc/rc.d/rc0.d/K87acpid etc/rc.d/rc0.d/K90sysklogd etc/rc.d/rc0.d/S60sendsignals etc/rc.d/rc0.d/S70localnet @@ -159,6 +163,7 @@ etc/rc.d/rc0.d/S99halt #etc/rc.d/rc3.d etc/rc.d/rc3.d/S01tmpfs etc/rc.d/rc3.d/S10sysklogd +etc/rc.d/rc3.d/S12acpid #etc/rc.d/rc3.d/S15messagebus #etc/rc.d/rc3.d/S16bluetooth #etc/rc.d/rc3.d/S18cpufreq @@ -188,6 +193,7 @@ etc/rc.d/rc6.d/K28apache etc/rc.d/rc6.d/K30sshd #etc/rc.d/rc6.d/K34client175 etc/rc.d/rc6.d/K45random +etc/rc.d/rc6.d/K47setclock etc/rc.d/rc6.d/K49cyrus-sasl etc/rc.d/rc6.d/K78snort etc/rc.d/rc6.d/K79leds @@ -195,6 +201,7 @@ etc/rc.d/rc6.d/K80network #etc/rc.d/rc6.d/K84bluetooth #etc/rc.d/rc6.d/K85messagebus etc/rc.d/rc6.d/K85tmpfs +etc/rc.d/rc6.d/K87acpid etc/rc.d/rc6.d/K90sysklogd etc/rc.d/rc6.d/S60sendsignals etc/rc.d/rc6.d/S70mountfs diff --git a/config/rootfiles/common/i586/kqemu b/config/rootfiles/common/i586/kqemu deleted file mode 100644 index 88244ee258..0000000000 --- a/config/rootfiles/common/i586/kqemu +++ /dev/null @@ -1,2 +0,0 @@ -#lib/modules/KVER-ipfire/misc -lib/modules/KVER-ipfire/misc/kqemu.ko diff --git a/config/rootfiles/common/i586/linux b/config/rootfiles/common/i586/linux index 7b9fce4d38..750b61e377 100644 --- a/config/rootfiles/common/i586/linux +++ b/config/rootfiles/common/i586/linux @@ -1,4 +1,3 @@ -boot/ipfirerd-KVER.img boot/System.map-KVER-ipfire boot/System.map-ipfire boot/config-KVER-ipfire @@ -13,39 +12,30 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/arch #lib/modules/KVER-ipfire/kernel/arch/x86 #lib/modules/KVER-ipfire/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-MACHINE.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aes-i586.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/aesni-intel.ko #lib/modules/KVER-ipfire/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-MACHINE.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-MACHINE.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/apm.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/longrun.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/microcode.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kernel/msr.ko -#lib/modules/KVER-ipfire/kernel/arch/x86/kernel/scx200.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire/kernel/arch/x86/kvm/kvm.ko +#lib/modules/KVER-ipfire/kernel/arch/x86/platform +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200 +#lib/modules/KVER-ipfire/kernel/arch/x86/platform/scx200/scx200.ko #lib/modules/KVER-ipfire/kernel/crypto #lib/modules/KVER-ipfire/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire/kernel/crypto/arc4.ko @@ -57,7 +47,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/async_tx/async_xor.ko #lib/modules/KVER-ipfire/kernel/crypto/async_tx/raid6test.ko #lib/modules/KVER-ipfire/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire/kernel/crypto/blowfish.ko +#lib/modules/KVER-ipfire/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire/kernel/crypto/blowfish_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/camellia.ko #lib/modules/KVER-ipfire/kernel/crypto/cast5.ko #lib/modules/KVER-ipfire/kernel/crypto/cast6.ko @@ -65,6 +57,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/ccm.ko #lib/modules/KVER-ipfire/kernel/crypto/crc32c.ko #lib/modules/KVER-ipfire/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire/kernel/crypto/crypto_user.ko #lib/modules/KVER-ipfire/kernel/crypto/ctr.ko #lib/modules/KVER-ipfire/kernel/crypto/cts.ko #lib/modules/KVER-ipfire/kernel/crypto/des_generic.ko @@ -76,9 +69,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/khazad.ko #lib/modules/KVER-ipfire/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire/kernel/crypto/md4.ko #lib/modules/KVER-ipfire/kernel/crypto/md5.ko #lib/modules/KVER-ipfire/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire/kernel/crypto/pcrypt.ko #lib/modules/KVER-ipfire/kernel/crypto/rmd128.ko #lib/modules/KVER-ipfire/kernel/crypto/rmd160.ko #lib/modules/KVER-ipfire/kernel/crypto/rmd256.ko @@ -92,8 +87,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/crypto/sha512_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/tea.ko #lib/modules/KVER-ipfire/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire/kernel/crypto/twofish.ko #lib/modules/KVER-ipfire/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire/kernel/crypto/twofish_generic.ko #lib/modules/KVER-ipfire/kernel/crypto/vmac.ko #lib/modules/KVER-ipfire/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire/kernel/crypto/xcbc.ko @@ -103,26 +98,31 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers #lib/modules/KVER-ipfire/kernel/drivers/acpi #lib/modules/KVER-ipfire/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/acpi_pad.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/battery.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/button.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire/kernel/drivers/acpi/ec_sys.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/fan.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire/kernel/drivers/acpi/power_meter.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/sbshc.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire/kernel/drivers/ata +#lib/modules/KVER-ipfire/kernel/drivers/ata/acard-ahci.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ahci.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_generic.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/ata_piix.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/libahci.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_amd.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_arasan_cf.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_artop.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_atiixp.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_atp867x.ko @@ -155,7 +155,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pcmcia.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_qdi.ko +#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_piccolo.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_rz1000.ko @@ -167,7 +167,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_sl82c105.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pata_via.ko -#lib/modules/KVER-ipfire/kernel/drivers/ata/pata_winbond.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/pdc_adma.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire/kernel/drivers/ata/sata_mv.ko @@ -199,6 +198,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/atm/suni.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/uPD98402.ko #lib/modules/KVER-ipfire/kernel/drivers/atm/zatm.ko +#lib/modules/KVER-ipfire/kernel/drivers/base +#lib/modules/KVER-ipfire/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/bcma +#lib/modules/KVER-ipfire/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire/kernel/drivers/block #lib/modules/KVER-ipfire/kernel/drivers/block/DAC960.ko #lib/modules/KVER-ipfire/kernel/drivers/block/aoe @@ -209,9 +213,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/block/floppy.ko #lib/modules/KVER-ipfire/kernel/drivers/block/nbd.ko #lib/modules/KVER-ipfire/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire/kernel/drivers/block/rbd.ko #lib/modules/KVER-ipfire/kernel/drivers/block/sx8.ko #lib/modules/KVER-ipfire/kernel/drivers/block/virtio_blk.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/ath3k.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bcm203x.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/bluecard_cs.ko @@ -222,6 +228,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/bluetooth/btwilink.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire/kernel/drivers/bluetooth/hci_vhci.ko @@ -236,11 +243,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/char/agp/ati-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/efficeon-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-agp.ko +#lib/modules/KVER-ipfire/kernel/drivers/char/agp/intel-gtt.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/nvidia-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/sis-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/sworks-agp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/agp/via-agp.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/cs5535_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire/kernel/drivers/char/hw_random/amd-rng.ko @@ -260,26 +267,40 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/char/lp.ko #lib/modules/KVER-ipfire/kernel/drivers/char/mwave #lib/modules/KVER-ipfire/kernel/drivers/char/mwave/mwave.ko -#lib/modules/KVER-ipfire/kernel/drivers/char/nozomi.ko #lib/modules/KVER-ipfire/kernel/drivers/char/nsc_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pc8736x_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko #lib/modules/KVER-ipfire/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/char/ppdev.ko #lib/modules/KVER-ipfire/kernel/drivers/char/scx200_gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource +#lib/modules/KVER-ipfire/kernel/drivers/clocksource/cs5535-clockevt.ko #lib/modules/KVER-ipfire/kernel/drivers/clocksource/scx200_hrt.ko #lib/modules/KVER-ipfire/kernel/drivers/connector #lib/modules/KVER-ipfire/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/acpi-cpufreq.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_powersave.ko #lib/modules/KVER-ipfire/kernel/drivers/cpufreq/cpufreq_userspace.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/e_powersaver.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/gx-suspmod.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longhaul.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/longrun.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/mperf.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/p4-clockmod.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/pcc-cpufreq.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k6.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k7.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/powernow-k8.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-centrino.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-ich.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-lib.ko +#lib/modules/KVER-ipfire/kernel/drivers/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire/kernel/drivers/crypto #lib/modules/KVER-ipfire/kernel/drivers/crypto/geode-aes.ko.off #lib/modules/KVER-ipfire/kernel/drivers/crypto/hifn_795x.ko @@ -289,27 +310,49 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire/kernel/drivers/dma #lib/modules/KVER-ipfire/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/intel_mid_dma.ko #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire/kernel/drivers/dma/ioat/ioatdma.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/pch_dma.ko +#lib/modules/KVER-ipfire/kernel/drivers/dma/timb_dma.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-core.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware +#lib/modules/KVER-ipfire/kernel/drivers/firmware/dmi-sysfs.ko #lib/modules/KVER-ipfire/kernel/drivers/firmware/iscsi_ibft.ko +#lib/modules/KVER-ipfire/kernel/drivers/firmware/sigma.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-cs5535.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-janz-ttl.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-ml-ioh.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-pch.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-sch.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpio/gpio-vx855.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/drm_kms_helper.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i830 -#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i830/i830.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/nouveau/nouveau.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/radeon @@ -324,39 +367,72 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/ttm/ttm.ko #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx +#lib/modules/KVER-ipfire/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko +#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub +#lib/modules/KVER-ipfire/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire/kernel/drivers/hid #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-a4tech.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-axff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-belkin.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cherry.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-chicony.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-drff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-elecom.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ezkey.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gaff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-holtekff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-keytouch.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech-dj.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-magicmouse.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-microsoft.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-multitouch.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-picolcd.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-roccat.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-samsung.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sjoy.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-sunplus.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-tmff.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-uclogic.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-wiimote.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire/kernel/drivers/hid/hid-zydacron.ko #lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid #lib/modules/KVER-ipfire/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire/kernel/drivers/hv +#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_utils.ko +#lib/modules/KVER-ipfire/kernel/drivers/hv/hv_vmbus.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/abituguru3.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/acpi_power_meter.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ad7414.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ad7418.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1021.ko @@ -365,36 +441,46 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1029.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm1031.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7473.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asb100.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/asc7621.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/asus_atk0110.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/atxp1.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/coretemp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/dme1737.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f71882fg.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/fam15h_power.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/fschmd.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hdaps.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/hp_accel.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/gpio-fan.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon-vid.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ibmpex.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/k8temp.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lis3lv02d.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lineage-pem.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm73.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm75.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm77.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm78.ko @@ -406,20 +492,48 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm93.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4151.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4215.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pc87427.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/sis5595.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/smsc47m192.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp102.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp401.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/via-cputemp.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/via686a.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/vt1211.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/vt8231.ko @@ -429,10 +543,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83791d.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83792d.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83795.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83l785ts.ko #lib/modules/KVER-ipfire/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/KVER-ipfire/kernel/drivers/hwmon/wm8350-hwmon.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c #lib/modules/KVER-ipfire/kernel/drivers/i2c/algos #lib/modules/KVER-ipfire/kernel/drivers/i2c/algos/i2c-algo-bit.ko @@ -444,7 +557,13 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-eg20t.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-isch.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-nforce2.ko @@ -460,16 +579,20 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-sis96x.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-voodoo3.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/i2c-xiic.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips -#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/KVER-ipfire/kernel/drivers/i2c/chips/tsl2550.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire/kernel/drivers/i2c/muxes/pca954x.ko #lib/modules/KVER-ipfire/kernel/drivers/ieee802154 #lib/modules/KVER-ipfire/kernel/drivers/ieee802154/fakehard.ko #lib/modules/KVER-ipfire/kernel/drivers/input @@ -477,33 +600,47 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/gpio_keys_polled.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lkkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/matrix_keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/mpr121_touchkey.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/newtonkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/qt2160.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/stowaway.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/tca6416-keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/keyboard/xtkbd.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/apanel.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/bma150.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/keyspan_remote.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/KVER-ipfire/kernel/drivers/input/misc/wm831x-on.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/misc/rotary_encoder.ko #lib/modules/KVER-ipfire/kernel/drivers/input/misc/yealink.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn #lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000 #lib/modules/KVER-ipfire/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/capifs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/capi/kernelcapi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/divert #lib/modules/KVER-ipfire/kernel/drivers/isdn/divert/dss1_divert.ko @@ -529,6 +666,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divacapi.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divadidd.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/netjet.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/speedfax.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/avma1_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/hisax/elsa_cs.ko @@ -548,56 +696,73 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/isdn/i4l/isdnhdlc.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/icn #lib/modules/KVER-ipfire/kernel/drivers/isdn/icn/icn.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/isdn/mISDN/mISDN_dsp.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit #lib/modules/KVER-ipfire/kernel/drivers/isdn/pcbit/pcbit.ko #lib/modules/KVER-ipfire/kernel/drivers/isdn/sc #lib/modules/KVER-ipfire/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire/kernel/drivers/leds -#lib/modules/KVER-ipfire/kernel/drivers/leds/led-class.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-alix2.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/dell-led.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-bd2802.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-clevo-mail.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lm3530.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-lt3593.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net48xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-net5501.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca9532.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wm8350.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/leds-ss4200.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/leds-wrap.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-backlight.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-heartbeat.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-netdev.ko #lib/modules/KVER-ipfire/kernel/drivers/leds/ledtrig-timer.ko #lib/modules/KVER-ipfire/kernel/drivers/lguest #lib/modules/KVER-ipfire/kernel/drivers/lguest/lg.ko #lib/modules/KVER-ipfire/kernel/drivers/md +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-bufio.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-crypt.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log-userspace.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-log.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-mirror.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-raid.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-service-time.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/dm-thin-pool.ko #lib/modules/KVER-ipfire/kernel/drivers/md/dm-zero.ko #lib/modules/KVER-ipfire/kernel/drivers/md/linear.ko #lib/modules/KVER-ipfire/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire/kernel/drivers/md/persistent-data/dm-persistent-data.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid0.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid1.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid10.ko #lib/modules/KVER-ipfire/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire/kernel/drivers/md/raid6_pq.ko #lib/modules/KVER-ipfire/kernel/drivers/media #lib/modules/KVER-ipfire/kernel/drivers/media/common #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mc44s803.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda827x.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda8290.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tda9887.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tea5761.ko @@ -605,12 +770,110 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-simple.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-types.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc4000.ko #lib/modules/KVER-ipfire/kernel/drivers/media/common/tuners/xc5000.ko #lib/modules/KVER-ipfire/kernel/drivers/media/dvb #lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core #lib/modules/KVER-ipfire/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/rc/rc-core.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video -#lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l1-compat.ko +#lib/modules/KVER-ipfire/kernel/drivers/media/video/ir-kbd-i2c.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-common.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video/v4l2-int-device.ko #lib/modules/KVER-ipfire/kernel/drivers/media/video/videodev.ko @@ -620,6 +883,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/memstick/core/mspro_block.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/KVER-ipfire/kernel/drivers/memstick/host/r592.ko #lib/modules/KVER-ipfire/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire/kernel/drivers/message #lib/modules/KVER-ipfire/kernel/drivers/message/fusion @@ -630,35 +894,61 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire/kernel/drivers/message/fusion/mptspi.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd -#lib/modules/KVER-ipfire/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/ab3100-otp.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/cs5535-mfd.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/mfd-core.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-core.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/rdc321x-southbridge.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm831x.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8350.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/timberdale.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/vx855.ko +#lib/modules/KVER-ipfire/kernel/drivers/mfd/wl1273-core.ko #lib/modules/KVER-ipfire/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire/kernel/drivers/misc +#lib/modules/KVER-ipfire/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/bmp085.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/c2port-duramar2150.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/c2port/core.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/cs5535-mfgpt.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/ds1682.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/eeprom_93cx6.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/hpilo.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/ics932s401.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/pch_phub.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire/kernel/drivers/misc/tifm_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire/kernel/drivers/misc/vmw_balloon.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc #lib/modules/KVER-ipfire/kernel/drivers/mmc/card #lib/modules/KVER-ipfire/kernel/drivers/mmc/card/mmc_block.ko @@ -668,13 +958,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ricoh_mmc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci-pltfm.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdhci.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire/kernel/drivers/mmc/host/wbsd.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd #lib/modules/KVER-ipfire/kernel/drivers/mtd/ar7part.ko @@ -689,8 +980,11 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtd_blkdevs.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdblock.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire/kernel/drivers/mtd/mtdconcat.ko +#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire/kernel/drivers/mtd/sm_ftl.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_nandecctest.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_oobtest.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_pagetest.ko #lib/modules/KVER-ipfire/kernel/drivers/mtd/tests/mtd_readtest.ko @@ -701,83 +995,217 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi #lib/modules/KVER-ipfire/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire/kernel/drivers/net -#lib/modules/KVER-ipfire/kernel/drivers/net/3c501.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c503.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c505.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c507.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c509.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c515.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c523.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c527.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/3c59x.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8139cp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8139too.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/82596.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8390.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/8390p.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ac3200.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/acenic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/amd8111e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/at1700.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1c -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1e -#lib/modules/KVER-ipfire/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atlx -#lib/modules/KVER-ipfire/kernel/drivers/net/atlx/atl1.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atlx/atl2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/atp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/b44.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/benet -#lib/modules/KVER-ipfire/kernel/drivers/net/benet/be2net.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/bnx2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/bnx2x.ko #lib/modules/KVER-ipfire/kernel/drivers/net/bonding #lib/modules/KVER-ipfire/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/bsd_comp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cassini.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/chelsio -#lib/modules/KVER-ipfire/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cnic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cs89x0.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/cxgb3 -#lib/modules/KVER-ipfire/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/de600.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/de620.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/depca.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/dl2k.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/dnet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000 -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000/e1000.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000e -#lib/modules/KVER-ipfire/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/e2100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eepro.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eexpress.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/enic -#lib/modules/KVER-ipfire/kernel/drivers/net/enic/enic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/epic100.ko #lib/modules/KVER-ipfire/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/es3210.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/eth16i.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ethoc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ewrk3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/fealnx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/forcedeth.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hamachi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hp-plus.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/hp100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ibmlana.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c501.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c509.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c515.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c574_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c589_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/3c59x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/3c503.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/8390p.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ac3200.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/axnet_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/e2100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/es3210.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp-plus.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/hp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/lne390.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/ne3210.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/pcnet_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-mca.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/smc-ultra32.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/8390/wd.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/depca.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/lance.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/ni65.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/nmclan_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cirrus/cs89x0.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/ewrk3.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/at1700.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/eth16i.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c505.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c507.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c523.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/3c527.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/82596.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eepro.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/eexpress.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/lp486e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/ni52.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/i825xx/znet.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ibmlana.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/hamachi.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/packetengines/yellowfin.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/atp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smc9194.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/sungem.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom +#lib/modules/KVER-ipfire/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/igb -#lib/modules/KVER-ipfire/kernel/drivers/net/igb/igb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/igbvf -#lib/modules/KVER-ipfire/kernel/drivers/net/igbvf/igbvf.ko #lib/modules/KVER-ipfire/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ipg.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda #lib/modules/KVER-ipfire/kernel/drivers/net/irda/ali-ircc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda/donauboe.ko @@ -794,137 +1222,74 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/irda/via-ircc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda/vlsi_ir.ko #lib/modules/KVER-ipfire/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgb -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgbe -#lib/modules/KVER-ipfire/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/jme.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ks8842.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ks8851_mll.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/lance.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/lne390.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/lp486e.ko #lib/modules/KVER-ipfire/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4 -#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/myri10ge -#lib/modules/KVER-ipfire/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/natsemi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne2k-pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ne3210.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/netxen -#lib/modules/KVER-ipfire/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ni52.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ni65.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/niu.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ns83820.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pcnet32.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy #lib/modules/KVER-ipfire/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/qsemi.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/realtek.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/smsc.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/ste10Xp.ko #lib/modules/KVER-ipfire/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_async.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_deflate.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_generic.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_mppe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/ppp_synctty.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pppoe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pppol2tp.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/pppox.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/qla3xxx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/qlge -#lib/modules/KVER-ipfire/kernel/drivers/net/qlge/qlge.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/r6040.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/r8169.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/s2io.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/ppp/pptp.ko #lib/modules/KVER-ipfire/kernel/drivers/net/sb1000.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sc92031.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/seeq8005.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sfc -#lib/modules/KVER-ipfire/kernel/drivers/net/sfc/sfc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sis190.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sis900.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/skge.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sky2.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/slhc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/slip.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc-mca.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc-ultra.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc-ultra32.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smc9194.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/smsc9420.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/starfire.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sundance.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sungem.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/slip +#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire/kernel/drivers/net/sungem_phy.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/sunhme.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tehuti.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tg3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tlan.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/tulip.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/tulip/xircom_cb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/typhoon.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb #lib/modules/KVER-ipfire/kernel/drivers/net/usb/asix.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc-phonet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/cx82310_eth.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/dm9601.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/lg-vl600.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/mcs7830.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/plusb.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire/kernel/drivers/net/usb/smsc75xx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/smsc95xx.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/usbnet.ko #lib/modules/KVER-ipfire/kernel/drivers/net/usb/zaurus.ko #lib/modules/KVER-ipfire/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/via-rhine.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/via-velocity.ko #lib/modules/KVER-ipfire/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/vxge -#lib/modules/KVER-ipfire/kernel/drivers/net/vxge/vxge.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan #lib/modules/KVER-ipfire/kernel/drivers/net/wan/c101.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan/cosa.ko @@ -948,94 +1313,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/net/wan/sealevel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan/wanxl.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wan/z85230.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wd.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wimax/i2400m/i2400m.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/b43legacy/b43legacy.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/prism54 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/prism54/prism54.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/ray_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00 -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw -#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/yellowfin.ko -#lib/modules/KVER-ipfire/kernel/drivers/net/znet.ko #lib/modules/KVER-ipfire/kernel/drivers/parport #lib/modules/KVER-ipfire/kernel/drivers/parport/parport.ko #lib/modules/KVER-ipfire/kernel/drivers/parport/parport_ax88796.ko @@ -1049,42 +1342,53 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/i82365.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pcmcia_rsrc.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/KVER-ipfire/kernel/drivers/pcmcia/rsrc_nonstatic.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/tcic.ko #lib/modules/KVER-ipfire/kernel/drivers/pcmcia/yenta_socket.ko #lib/modules/KVER-ipfire/kernel/drivers/platform #lib/modules/KVER-ipfire/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acer-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/acerhdf.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/dell-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/fujitsu-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/hp_accel.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ibm_rtl.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/ideapad-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_ips.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_menlow.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/msi-wmi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-laptop.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/sony-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/tc1100-wmi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/thinkpad_acpi.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/topstar-laptop.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_acpi.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire/kernel/drivers/power -#lib/modules/KVER-ipfire/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/ds2782_battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/max17040_battery.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/wm831x_power.ko -#lib/modules/KVER-ipfire/kernel/drivers/power/wm8350_power.ko +#lib/modules/KVER-ipfire/kernel/drivers/platform/x86/xo15-ebook.ko #lib/modules/KVER-ipfire/kernel/drivers/pps #lib/modules/KVER-ipfire/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire/kernel/drivers/ptp +#lib/modules/KVER-ipfire/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire/kernel/drivers/regulator +#lib/modules/KVER-ipfire/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire/kernel/drivers/regulator/gpio-regulator.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ab3100.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-core.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1286.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1307.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1374.ko @@ -1092,29 +1396,32 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-lib.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t59.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-msm6242.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf50633.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rp5c01.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-rx8581.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-test.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-wm8350.ko #lib/modules/KVER-ipfire/kernel/drivers/rtc/rtc-x1205.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi #lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/3w-xxxx.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/BusLogic.ko @@ -1140,11 +1447,17 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/be2iscsi/be2iscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/bfa #lib/modules/KVER-ipfire/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2fc/bnx2fc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgb3i -#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler #lib/modules/KVER-ipfire/kernel/drivers/scsi/device_handler/scsi_dh.ko @@ -1166,6 +1479,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/g_NCR5380.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/g_NCR5380_mmio.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/gdth.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/hptiop.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ibmmca.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/imm.ko @@ -1173,6 +1487,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/initio.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ipr.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/isci +#lib/modules/KVER-ipfire/kernel/drivers/scsi/isci/isci.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/iscsi_boot_sysfs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/iscsi_tcp.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/libfc #lib/modules/KVER-ipfire/kernel/drivers/scsi/libfc/libfc.ko @@ -1191,6 +1508,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/mpt2sas/mpt2sas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/mvumi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/nsp32.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire/kernel/drivers/scsi/osd/libosd.ko @@ -1202,6 +1520,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/nsp_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire/kernel/drivers/scsi/pm8001/pm8001.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla1280.ko @@ -1211,6 +1531,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/qla4xxx/qla4xxx.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/raid_class.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_mod.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/scsi_transport_iscsi.ko @@ -1231,37 +1552,55 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/u14-34f.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire/kernel/drivers/scsi/wd7000.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_accent.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_boca.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_fourport.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/8250_hub6.ko -#lib/modules/KVER-ipfire/kernel/drivers/serial/serial_cs.ko #lib/modules/KVER-ipfire/kernel/drivers/ssb #lib/modules/KVER-ipfire/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire/kernel/drivers/staging #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire/kernel/drivers/staging/et131x/et131x.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_blkvsc.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_mouse.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_netvsc.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire/kernel/drivers/staging/hv/hv_vmbus.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/mei +#lib/modules/KVER-ipfire/kernel/drivers/staging/mei/mei.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/phison #lib/modules/KVER-ipfire/kernel/drivers/staging/phison/phison.ko #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire/kernel/drivers/staging/slicoss/slicoss.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty +#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless +#lib/modules/KVER-ipfire/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_accent.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_boca.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_exar_st16c554.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_fourport.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/8250_hub6.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/mfd.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/pch_uart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/serial_cs.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/uartlite.ko +#lib/modules/KVER-ipfire/kernel/drivers/tty/serial/xilinx_uartps.ko #lib/modules/KVER-ipfire/kernel/drivers/uio #lib/modules/KVER-ipfire/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_aec.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_cif.ko +#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pci_generic.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/KVER-ipfire/kernel/drivers/uio/uio_smx.ko #lib/modules/KVER-ipfire/kernel/drivers/usb #lib/modules/KVER-ipfire/kernel/drivers/usb/atm #lib/modules/KVER-ipfire/kernel/drivers/usb/atm/cxacru.ko @@ -1274,24 +1613,22 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/core -#lib/modules/KVER-ipfire/kernel/drivers/usb/core/usbcore.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ehci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/hwa-hc.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/ohci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/oxu210hp-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/sl811-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/uhci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/host/xhci-hcd.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/berry_charge.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cypress_cy7c63.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/cytherm.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/emi26.ko @@ -1305,8 +1642,9 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/vstusb.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/misc/yurex.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire/kernel/drivers/usb/otg/gpio_vbus.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/otg/nop-usb-xceiv.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/aircable.ko @@ -1318,10 +1656,14 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/digi_acceleport.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/empeg.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/funsoft.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/garmin_gps.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipaq.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/keyspan_pda.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/mct_u232.ko @@ -1332,23 +1674,33 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/qcserial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/safe_serial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ssu100.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/symbolserial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/serial/zio.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-eneub6250.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-freecom.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-isd200.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-jumpshot.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-karma.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-realtek.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire/kernel/drivers/usb/storage/ums-usbat.ko @@ -1363,14 +1715,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/dfu #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/KVER-ipfire/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/umc.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/uwb.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/whc-rc.ko #lib/modules/KVER-ipfire/kernel/drivers/uwb/whci.ko -#lib/modules/KVER-ipfire/kernel/drivers/uwb/wlp -#lib/modules/KVER-ipfire/kernel/drivers/uwb/wlp/wlp.ko +#lib/modules/KVER-ipfire/kernel/drivers/vhost +#lib/modules/KVER-ipfire/kernel/drivers/vhost/vhost_net.ko #lib/modules/KVER-ipfire/kernel/drivers/video #lib/modules/KVER-ipfire/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty @@ -1378,14 +1728,16 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/aty/atyfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/apple_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/cr_bllcd.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/generic_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/mbp_nvidia_bl.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/platform_lcd.ko #lib/modules/KVER-ipfire/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire/kernel/drivers/video/backlight/wm831x_bl.ko #lib/modules/KVER-ipfire/kernel/drivers/video/cirrusfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/cyber2000fb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/display @@ -1427,6 +1779,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/sis #lib/modules/KVER-ipfire/kernel/drivers/video/sis/sisfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire/kernel/drivers/video/syscopyarea.ko @@ -1445,17 +1798,23 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/video/vt8623fb.ko #lib/modules/KVER-ipfire/kernel/drivers/virtio #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_balloon.ko +#lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_mmio.ko #lib/modules/KVER-ipfire/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/w1 #lib/modules/KVER-ipfire/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/ds2490.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_ds2780.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire/kernel/drivers/w1/wire.ko @@ -1466,6 +1825,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim7101_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/cpu5wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/eurotechwdt.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/f71808e_wdt.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/hpwdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/i6300esb.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/iTCO_wdt.ko @@ -1474,6 +1835,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/machzwd.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/nv_tco.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_usb.ko @@ -1488,6 +1850,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/scx200_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sp5100_tco.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697ug_wdt.ko @@ -1495,11 +1858,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83977f_wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wm8350_wdt.ko #lib/modules/KVER-ipfire/kernel/fs -#lib/modules/KVER-ipfire/kernel/fs/autofs -#lib/modules/KVER-ipfire/kernel/fs/autofs/autofs.ko #lib/modules/KVER-ipfire/kernel/fs/autofs4 #lib/modules/KVER-ipfire/kernel/fs/autofs4/autofs4.ko #lib/modules/KVER-ipfire/kernel/fs/cachefiles @@ -1510,12 +1869,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/fs/ecryptfs/ecryptfs.ko #lib/modules/KVER-ipfire/kernel/fs/exportfs #lib/modules/KVER-ipfire/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire/kernel/fs/ext2 -#lib/modules/KVER-ipfire/kernel/fs/ext2/ext2.ko -#lib/modules/KVER-ipfire/kernel/fs/ext3 -#lib/modules/KVER-ipfire/kernel/fs/ext3/ext3.ko -#lib/modules/KVER-ipfire/kernel/fs/ext4 -#lib/modules/KVER-ipfire/kernel/fs/ext4/ext4.ko #lib/modules/KVER-ipfire/kernel/fs/fat #lib/modules/KVER-ipfire/kernel/fs/fat/fat.ko #lib/modules/KVER-ipfire/kernel/fs/fat/vfat.ko @@ -1526,17 +1879,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/fs/fuse/fuse.ko #lib/modules/KVER-ipfire/kernel/fs/isofs #lib/modules/KVER-ipfire/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire/kernel/fs/jbd -#lib/modules/KVER-ipfire/kernel/fs/jbd/jbd.ko -#lib/modules/KVER-ipfire/kernel/fs/jbd2 -#lib/modules/KVER-ipfire/kernel/fs/jbd2/jbd2.ko #lib/modules/KVER-ipfire/kernel/fs/jffs2 #lib/modules/KVER-ipfire/kernel/fs/jffs2/jffs2.ko #lib/modules/KVER-ipfire/kernel/fs/jfs #lib/modules/KVER-ipfire/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire/kernel/fs/lockd #lib/modules/KVER-ipfire/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire/kernel/fs/mbcache.ko #lib/modules/KVER-ipfire/kernel/fs/nfs #lib/modules/KVER-ipfire/kernel/fs/nfs/nfs.ko #lib/modules/KVER-ipfire/kernel/fs/nfs_common @@ -1547,26 +1895,24 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/fs/quota/quota_tree.ko #lib/modules/KVER-ipfire/kernel/fs/quota/quota_v1.ko #lib/modules/KVER-ipfire/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire/kernel/fs/reiser4 -#lib/modules/KVER-ipfire/kernel/fs/reiser4/reiser4.ko #lib/modules/KVER-ipfire/kernel/fs/reiserfs #lib/modules/KVER-ipfire/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire/kernel/fs/smbfs -#lib/modules/KVER-ipfire/kernel/fs/smbfs/smbfs.ko #lib/modules/KVER-ipfire/kernel/fs/udf #lib/modules/KVER-ipfire/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire/kernel/fs/ufs +#lib/modules/KVER-ipfire/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire/kernel/fs/xfs #lib/modules/KVER-ipfire/kernel/fs/xfs/xfs.ko #lib/modules/KVER-ipfire/kernel/lib +#lib/modules/KVER-ipfire/kernel/lib/cordic.ko #lib/modules/KVER-ipfire/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire/kernel/lib/crc-itu-t.ko #lib/modules/KVER-ipfire/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire/kernel/lib/crc16.ko #lib/modules/KVER-ipfire/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire/kernel/lib/crc8.ko #lib/modules/KVER-ipfire/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire/kernel/lib/lzo -#lib/modules/KVER-ipfire/kernel/lib/lzo/lzo_compress.ko -#lib/modules/KVER-ipfire/kernel/lib/lzo/lzo_decompress.ko +#lib/modules/KVER-ipfire/kernel/lib/raid6 +#lib/modules/KVER-ipfire/kernel/lib/raid6/raid6_pq.ko #lib/modules/KVER-ipfire/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire/kernel/lib/ts_kmp.ko @@ -1583,6 +1929,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/atm/br2684.ko #lib/modules/KVER-ipfire/kernel/net/atm/clip.ko #lib/modules/KVER-ipfire/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire/kernel/net/batman-adv +#lib/modules/KVER-ipfire/kernel/net/batman-adv/batman-adv.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth #lib/modules/KVER-ipfire/kernel/net/bluetooth/bluetooth.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth/bnep @@ -1591,10 +1939,8 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bluetooth/cmtp/cmtp.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth/hidp #lib/modules/KVER-ipfire/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire/kernel/net/bluetooth/l2cap.ko #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire/kernel/net/bluetooth/sco.ko #lib/modules/KVER-ipfire/kernel/net/bridge #lib/modules/KVER-ipfire/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter @@ -1620,13 +1966,16 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire/kernel/net/ceph +#lib/modules/KVER-ipfire/kernel/net/ceph/libceph.ko #lib/modules/KVER-ipfire/kernel/net/ieee802154 +#lib/modules/KVER-ipfire/kernel/net/ieee802154/6lowpan.ko #lib/modules/KVER-ipfire/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/nl802154.ko -#lib/modules/KVER-ipfire/kernel/net/ieee802154/wpan-class.ko +#lib/modules/KVER-ipfire/kernel/net/ieee802154/ieee802154.ko #lib/modules/KVER-ipfire/kernel/net/ipv4 #lib/modules/KVER-ipfire/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ip_gre.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/ipcomp.ko @@ -1645,7 +1994,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_REJECT.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_addrtype.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ah.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire/kernel/net/ipv4/netfilter/ipt_ipp2p.ko @@ -1688,7 +2036,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/esp6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire/kernel/net/ipv6/ipv6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6_queue.ko @@ -1706,6 +2053,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_mangle.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/ip6table_raw.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -1724,6 +2072,12 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire/kernel/net/key #lib/modules/KVER-ipfire/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire/kernel/net/l2tp/l2tp_ppp.ko #lib/modules/KVER-ipfire/kernel/net/llc #lib/modules/KVER-ipfire/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire/kernel/net/mac80211 @@ -1733,6 +2087,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_ftp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_h323.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_irc.ko @@ -1745,40 +2100,48 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_proto_udplite.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sane.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_conntrack_tftp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/nfnetlink_queue.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CONNMARK.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_MARK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NFQUEUE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_RATEEST.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_addrtype.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connbytes.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_cpu.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_dscp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_limit.ko @@ -1803,24 +2166,21 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire/kernel/net/phonet -#lib/modules/KVER-ipfire/kernel/net/phonet/phonet.ko -#lib/modules/KVER-ipfire/kernel/net/phonet/pn_pep.ko -#lib/modules/KVER-ipfire/kernel/net/rds -#lib/modules/KVER-ipfire/kernel/net/rds/rds.ko -#lib/modules/KVER-ipfire/kernel/net/rds/rds_tcp.ko #lib/modules/KVER-ipfire/kernel/net/rfkill +#lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill-regulator.ko #lib/modules/KVER-ipfire/kernel/net/rfkill/rfkill.ko #lib/modules/KVER-ipfire/kernel/net/rxrpc #lib/modules/KVER-ipfire/kernel/net/rxrpc/af-rxrpc.ko #lib/modules/KVER-ipfire/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire/kernel/net/sched +#lib/modules/KVER-ipfire/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_gact.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_ipt.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_mirred.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_nat.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_pedit.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_basic.ko #lib/modules/KVER-ipfire/kernel/net/sched/cls_flow.ko @@ -1837,16 +2197,20 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sched/em_u32.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_choke.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_dsmark.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_htb.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_netem.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire/kernel/net/sched/sch_sfb.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire/kernel/net/sched/sch_teql.ko @@ -1855,8 +2219,6 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire/kernel/net/wimax -#lib/modules/KVER-ipfire/kernel/net/wimax/wimax.ko #lib/modules/KVER-ipfire/kernel/net/wireless #lib/modules/KVER-ipfire/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire/kernel/net/wireless/lib80211.ko @@ -1867,6 +2229,7 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_ipcomp.ko #lib/modules/KVER-ipfire/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire/kernel/sound +#lib/modules/KVER-ipfire/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire/kernel/sound/core #lib/modules/KVER-ipfire/kernel/sound/core/oss #lib/modules/KVER-ipfire/kernel/sound/core/oss/snd-mixer-oss.ko @@ -1876,17 +2239,239 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/kernel/sound/core/seq/oss/snd-seq-oss.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-device.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi-emul.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq-virmidi.ko #lib/modules/KVER-ipfire/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire/kernel/sound/core/snd-hwdep.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd-page-alloc.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire/kernel/sound/core/snd-rawmidi.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd-timer.ko #lib/modules/KVER-ipfire/kernel/sound/core/snd.ko #lib/modules/KVER-ipfire/kernel/sound/drivers +#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4 +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/firewire +#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-firewire-speakers.ko +#lib/modules/KVER-ipfire/kernel/sound/firewire/snd-isight.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c +#lib/modules/KVER-ipfire/kernel/sound/i2c/other +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire/kernel/sound/i2c/snd-tea6330t.ko +#lib/modules/KVER-ipfire/kernel/sound/isa +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1816a +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1816a/snd-ad1816a.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1848 +#lib/modules/KVER-ipfire/kernel/sound/isa/ad1848/snd-ad1848.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x +#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x/snd-cs4231.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/cs423x/snd-cs4236.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/es1688 +#lib/modules/KVER-ipfire/kernel/sound/isa/es1688/snd-es1688-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/es1688/snd-es1688.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy +#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy/snd-azt1605.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/galaxy/snd-azt2316.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gus-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusclassic.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusextreme.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-gusmax.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-interwave-stb.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/gus/snd-interwave.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-classic.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/msnd/snd-msnd-pinnacle.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-miro.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti92x-ad1848.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti92x-cs4231.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/opti9xx/snd-opti93x.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-emu8000-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-jazz16.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb-common.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16-csp.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16-dsp.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb16.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb8-dsp.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sb8.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/sb/snd-sbawe.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-adlib.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-als100.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-cmi8330.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-es18xx.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-opl3sa2.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-sc6000.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/snd-sscape.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/wavefront +#lib/modules/KVER-ipfire/kernel/sound/isa/wavefront/snd-wavefront.ko +#lib/modules/KVER-ipfire/kernel/sound/isa/wss +#lib/modules/KVER-ipfire/kernel/sound/isa/wss/snd-wss-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/pci +#lib/modules/KVER-ipfire/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ali5451 +#lib/modules/KVER-ipfire/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/asihpi +#lib/modules/KVER-ipfire/kernel/sound/pci/asihpi/snd-asihpi.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/lola +#lib/modules/KVER-ipfire/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/lx6464es +#lib/modules/KVER-ipfire/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-als4000.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-cs5530.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sis7019.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/trident +#lib/modules/KVER-ipfire/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire/kernel/sound/pcmcia +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx +#lib/modules/KVER-ipfire/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire/kernel/sound/synth +#lib/modules/KVER-ipfire/kernel/sound/synth/emux +#lib/modules/KVER-ipfire/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire/kernel/sound/usb +#lib/modules/KVER-ipfire/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/misc +#lib/modules/KVER-ipfire/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y +#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y/snd-usb-us122l.ko +#lib/modules/KVER-ipfire/kernel/sound/usb/usx2y/snd-usb-usx2y.ko #lib/modules/KVER-ipfire/modules.alias #lib/modules/KVER-ipfire/modules.alias.bin +#lib/modules/KVER-ipfire/modules.builtin #lib/modules/KVER-ipfire/modules.ccwmap #lib/modules/KVER-ipfire/modules.dep #lib/modules/KVER-ipfire/modules.dep.bin @@ -1902,3 +2487,4 @@ lib/modules/KVER-ipfire #lib/modules/KVER-ipfire/modules.usbmap #lib/modules/KVER-ipfire/source sbin/gen_init_cpio +boot/ipfirerd-KVER.img diff --git a/config/rootfiles/common/i586/linux-headers b/config/rootfiles/common/i586/linux-headers new file mode 100644 index 0000000000..e518ab3df5 --- /dev/null +++ b/config/rootfiles/common/i586/linux-headers @@ -0,0 +1,704 @@ +#usr/include/asm +#usr/include/asm-generic +#usr/include/asm-generic/auxvec.h +#usr/include/asm-generic/bitsperlong.h +#usr/include/asm-generic/errno-base.h +#usr/include/asm-generic/errno.h +#usr/include/asm-generic/fcntl.h +#usr/include/asm-generic/int-l64.h +#usr/include/asm-generic/int-ll64.h +#usr/include/asm-generic/ioctl.h +#usr/include/asm-generic/ioctls.h +#usr/include/asm-generic/ipcbuf.h +#usr/include/asm-generic/mman-common.h +#usr/include/asm-generic/mman.h +#usr/include/asm-generic/msgbuf.h +#usr/include/asm-generic/param.h +#usr/include/asm-generic/poll.h +#usr/include/asm-generic/posix_types.h +#usr/include/asm-generic/resource.h +#usr/include/asm-generic/sembuf.h +#usr/include/asm-generic/setup.h +#usr/include/asm-generic/shmbuf.h +#usr/include/asm-generic/shmparam.h +#usr/include/asm-generic/siginfo.h +#usr/include/asm-generic/signal-defs.h +#usr/include/asm-generic/signal.h +#usr/include/asm-generic/socket.h +#usr/include/asm-generic/sockios.h +#usr/include/asm-generic/stat.h +#usr/include/asm-generic/statfs.h +#usr/include/asm-generic/swab.h +#usr/include/asm-generic/termbits.h +#usr/include/asm-generic/termios.h +#usr/include/asm-generic/types.h +#usr/include/asm-generic/ucontext.h +#usr/include/asm-generic/unistd.h +#usr/include/asm/a.out.h +#usr/include/asm/auxvec.h +#usr/include/asm/bitsperlong.h +#usr/include/asm/boot.h +#usr/include/asm/bootparam.h +#usr/include/asm/byteorder.h +#usr/include/asm/debugreg.h +#usr/include/asm/e820.h +#usr/include/asm/errno.h +#usr/include/asm/fcntl.h +#usr/include/asm/hw_breakpoint.h +#usr/include/asm/hyperv.h +#usr/include/asm/ioctl.h +#usr/include/asm/ioctls.h +#usr/include/asm/ipcbuf.h +#usr/include/asm/ist.h +#usr/include/asm/kvm.h +#usr/include/asm/kvm_para.h +#usr/include/asm/ldt.h +#usr/include/asm/mce.h +#usr/include/asm/mman.h +#usr/include/asm/msgbuf.h +#usr/include/asm/msr-index.h +#usr/include/asm/msr.h +#usr/include/asm/mtrr.h +#usr/include/asm/param.h +#usr/include/asm/poll.h +#usr/include/asm/posix_types.h +#usr/include/asm/posix_types_32.h +#usr/include/asm/posix_types_64.h +#usr/include/asm/prctl.h +#usr/include/asm/processor-flags.h +#usr/include/asm/ptrace-abi.h +#usr/include/asm/ptrace.h +#usr/include/asm/resource.h +#usr/include/asm/sembuf.h +#usr/include/asm/setup.h +#usr/include/asm/shmbuf.h +#usr/include/asm/sigcontext.h +#usr/include/asm/sigcontext32.h +#usr/include/asm/siginfo.h +#usr/include/asm/signal.h +#usr/include/asm/socket.h +#usr/include/asm/sockios.h +#usr/include/asm/stat.h +#usr/include/asm/statfs.h +#usr/include/asm/swab.h +#usr/include/asm/termbits.h +#usr/include/asm/termios.h +#usr/include/asm/types.h +#usr/include/asm/ucontext.h +#usr/include/asm/unistd.h +#usr/include/asm/unistd_32.h +#usr/include/asm/unistd_64.h +#usr/include/asm/vm86.h +#usr/include/asm/vsyscall.h +#usr/include/drm +#usr/include/drm/drm.h +#usr/include/drm/drm_mode.h +#usr/include/drm/drm_sarea.h +#usr/include/drm/i810_drm.h +#usr/include/drm/i915_drm.h +#usr/include/drm/mga_drm.h +#usr/include/drm/nouveau_drm.h +#usr/include/drm/r128_drm.h +#usr/include/drm/radeon_drm.h +#usr/include/drm/savage_drm.h +#usr/include/drm/sis_drm.h +#usr/include/drm/via_drm.h +#usr/include/drm/vmwgfx_drm.h +#usr/include/linux +#usr/include/linux/a.out.h +#usr/include/linux/acct.h +#usr/include/linux/adb.h +#usr/include/linux/adfs_fs.h +#usr/include/linux/affs_hardblocks.h +#usr/include/linux/agpgart.h +#usr/include/linux/aio_abi.h +#usr/include/linux/apm_bios.h +#usr/include/linux/arcfb.h +#usr/include/linux/atalk.h +#usr/include/linux/atm.h +#usr/include/linux/atm_eni.h +#usr/include/linux/atm_he.h +#usr/include/linux/atm_idt77105.h +#usr/include/linux/atm_nicstar.h +#usr/include/linux/atm_tcp.h +#usr/include/linux/atm_zatm.h +#usr/include/linux/atmapi.h +#usr/include/linux/atmarp.h +#usr/include/linux/atmbr2684.h +#usr/include/linux/atmclip.h +#usr/include/linux/atmdev.h +#usr/include/linux/atmioc.h +#usr/include/linux/atmlec.h +#usr/include/linux/atmmpc.h +#usr/include/linux/atmppp.h +#usr/include/linux/atmsap.h +#usr/include/linux/atmsvc.h +#usr/include/linux/audit.h +#usr/include/linux/auto_fs.h +#usr/include/linux/auto_fs4.h +#usr/include/linux/auxvec.h +#usr/include/linux/ax25.h +#usr/include/linux/b1lli.h +#usr/include/linux/baycom.h +#usr/include/linux/bfs_fs.h +#usr/include/linux/binfmts.h +#usr/include/linux/blk_types.h +#usr/include/linux/blkpg.h +#usr/include/linux/blktrace_api.h +#usr/include/linux/bpqether.h +#usr/include/linux/bsg.h +#usr/include/linux/byteorder +#usr/include/linux/byteorder/big_endian.h +#usr/include/linux/byteorder/little_endian.h +#usr/include/linux/caif +#usr/include/linux/caif/caif_socket.h +#usr/include/linux/caif/if_caif.h +#usr/include/linux/can +#usr/include/linux/can.h +#usr/include/linux/can/bcm.h +#usr/include/linux/can/error.h +#usr/include/linux/can/gw.h +#usr/include/linux/can/netlink.h +#usr/include/linux/can/raw.h +#usr/include/linux/capability.h +#usr/include/linux/capi.h +#usr/include/linux/cciss_defs.h +#usr/include/linux/cciss_ioctl.h +#usr/include/linux/cdk.h +#usr/include/linux/cdrom.h +#usr/include/linux/cgroupstats.h +#usr/include/linux/chio.h +#usr/include/linux/cm4000_cs.h +#usr/include/linux/cn_proc.h +#usr/include/linux/coda.h +#usr/include/linux/coda_psdev.h +#usr/include/linux/coff.h +#usr/include/linux/comstats.h +#usr/include/linux/connector.h +#usr/include/linux/const.h +#usr/include/linux/cramfs_fs.h +#usr/include/linux/cuda.h +#usr/include/linux/cyclades.h +#usr/include/linux/cycx_cfm.h +#usr/include/linux/dcbnl.h +#usr/include/linux/dccp.h +#usr/include/linux/dlm.h +#usr/include/linux/dlm_device.h +#usr/include/linux/dlm_netlink.h +#usr/include/linux/dlm_plock.h +#usr/include/linux/dlmconstants.h +#usr/include/linux/dm-ioctl.h +#usr/include/linux/dm-log-userspace.h +#usr/include/linux/dn.h +#usr/include/linux/dqblk_xfs.h +#usr/include/linux/dvb +#usr/include/linux/dvb/audio.h +#usr/include/linux/dvb/ca.h +#usr/include/linux/dvb/dmx.h +#usr/include/linux/dvb/frontend.h +#usr/include/linux/dvb/net.h +#usr/include/linux/dvb/osd.h +#usr/include/linux/dvb/version.h +#usr/include/linux/dvb/video.h +#usr/include/linux/edd.h +#usr/include/linux/efs_fs_sb.h +#usr/include/linux/elf-em.h +#usr/include/linux/elf-fdpic.h +#usr/include/linux/elf.h +#usr/include/linux/elfcore.h +#usr/include/linux/errno.h +#usr/include/linux/errqueue.h +#usr/include/linux/ethtool.h +#usr/include/linux/eventpoll.h +#usr/include/linux/ext2_fs.h +#usr/include/linux/fadvise.h +#usr/include/linux/falloc.h +#usr/include/linux/fanotify.h +#usr/include/linux/fb.h +#usr/include/linux/fcntl.h +#usr/include/linux/fd.h +#usr/include/linux/fdreg.h +#usr/include/linux/fib_rules.h +#usr/include/linux/fiemap.h +#usr/include/linux/filter.h +#usr/include/linux/firewire-cdev.h +#usr/include/linux/firewire-constants.h +#usr/include/linux/flat.h +#usr/include/linux/fs.h +#usr/include/linux/fsl_hypervisor.h +#usr/include/linux/fuse.h +#usr/include/linux/futex.h +#usr/include/linux/gameport.h +#usr/include/linux/gen_stats.h +#usr/include/linux/generic_serial.h +#usr/include/linux/genetlink.h +#usr/include/linux/gfs2_ondisk.h +#usr/include/linux/gigaset_dev.h +#usr/include/linux/hdlc +#usr/include/linux/hdlc.h +#usr/include/linux/hdlc/ioctl.h +#usr/include/linux/hdlcdrv.h +#usr/include/linux/hdreg.h +#usr/include/linux/hid.h +#usr/include/linux/hiddev.h +#usr/include/linux/hidraw.h +#usr/include/linux/hpet.h +#usr/include/linux/hysdn_if.h +#usr/include/linux/i2c-dev.h +#usr/include/linux/i2c.h +#usr/include/linux/i2o-dev.h +#usr/include/linux/i8k.h +#usr/include/linux/icmp.h +#usr/include/linux/icmpv6.h +#usr/include/linux/if.h +#usr/include/linux/if_addr.h +#usr/include/linux/if_addrlabel.h +#usr/include/linux/if_alg.h +#usr/include/linux/if_arcnet.h +#usr/include/linux/if_arp.h +#usr/include/linux/if_bonding.h +#usr/include/linux/if_bridge.h +#usr/include/linux/if_cablemodem.h +#usr/include/linux/if_ec.h +#usr/include/linux/if_eql.h +#usr/include/linux/if_ether.h +#usr/include/linux/if_fc.h +#usr/include/linux/if_fddi.h +#usr/include/linux/if_frad.h +#usr/include/linux/if_hippi.h +#usr/include/linux/if_infiniband.h +#usr/include/linux/if_link.h +#usr/include/linux/if_ltalk.h +#usr/include/linux/if_packet.h +#usr/include/linux/if_phonet.h +#usr/include/linux/if_plip.h +#usr/include/linux/if_ppp.h +#usr/include/linux/if_pppol2tp.h +#usr/include/linux/if_pppox.h +#usr/include/linux/if_slip.h +#usr/include/linux/if_strip.h +#usr/include/linux/if_tr.h +#usr/include/linux/if_tun.h +#usr/include/linux/if_tunnel.h +#usr/include/linux/if_vlan.h +#usr/include/linux/if_x25.h +#usr/include/linux/igmp.h +#usr/include/linux/in.h +#usr/include/linux/in6.h +#usr/include/linux/in_route.h +#usr/include/linux/inet_diag.h +#usr/include/linux/inotify.h +#usr/include/linux/input.h +#usr/include/linux/ioctl.h +#usr/include/linux/ip.h +#usr/include/linux/ip6_tunnel.h +#usr/include/linux/ip_vs.h +#usr/include/linux/ipc.h +#usr/include/linux/ipmi.h +#usr/include/linux/ipmi_msgdefs.h +#usr/include/linux/ipsec.h +#usr/include/linux/ipv6.h +#usr/include/linux/ipv6_route.h +#usr/include/linux/ipx.h +#usr/include/linux/irda.h +#usr/include/linux/irqnr.h +#usr/include/linux/isdn +#usr/include/linux/isdn.h +#usr/include/linux/isdn/capicmd.h +#usr/include/linux/isdn_divertif.h +#usr/include/linux/isdn_ppp.h +#usr/include/linux/isdnif.h +#usr/include/linux/iso_fs.h +#usr/include/linux/ivtv.h +#usr/include/linux/ivtvfb.h +#usr/include/linux/ixjuser.h +#usr/include/linux/jffs2.h +#usr/include/linux/joystick.h +#usr/include/linux/kd.h +#usr/include/linux/kdev_t.h +#usr/include/linux/kernel-page-flags.h +#usr/include/linux/kernel.h +#usr/include/linux/kernelcapi.h +#usr/include/linux/keyboard.h +#usr/include/linux/keyctl.h +#usr/include/linux/kvm.h +#usr/include/linux/kvm_para.h +#usr/include/linux/l2tp.h +#usr/include/linux/limits.h +#usr/include/linux/llc.h +#usr/include/linux/loop.h +#usr/include/linux/lp.h +#usr/include/linux/magic.h +#usr/include/linux/major.h +#usr/include/linux/map_to_7segment.h +#usr/include/linux/matroxfb.h +#usr/include/linux/media.h +#usr/include/linux/mempolicy.h +#usr/include/linux/meye.h +#usr/include/linux/mii.h +#usr/include/linux/minix_fs.h +#usr/include/linux/mman.h +#usr/include/linux/mmc +#usr/include/linux/mmc/ioctl.h +#usr/include/linux/mmtimer.h +#usr/include/linux/mqueue.h +#usr/include/linux/mroute.h +#usr/include/linux/mroute6.h +#usr/include/linux/msdos_fs.h +#usr/include/linux/msg.h +#usr/include/linux/mtio.h +#usr/include/linux/n_r3964.h +#usr/include/linux/nbd.h +#usr/include/linux/ncp.h +#usr/include/linux/ncp_fs.h +#usr/include/linux/ncp_mount.h +#usr/include/linux/ncp_no.h +#usr/include/linux/neighbour.h +#usr/include/linux/net.h +#usr/include/linux/net_dropmon.h +#usr/include/linux/net_tstamp.h +#usr/include/linux/netdevice.h +#usr/include/linux/netfilter +#usr/include/linux/netfilter.h +#usr/include/linux/netfilter/ipset +#usr/include/linux/netfilter/ipset/ip_set.h +#usr/include/linux/netfilter/ipset/ip_set_bitmap.h +#usr/include/linux/netfilter/ipset/ip_set_hash.h +#usr/include/linux/netfilter/ipset/ip_set_list.h +#usr/include/linux/netfilter/nf_conntrack_common.h +#usr/include/linux/netfilter/nf_conntrack_ftp.h +#usr/include/linux/netfilter/nf_conntrack_sctp.h +#usr/include/linux/netfilter/nf_conntrack_tcp.h +#usr/include/linux/netfilter/nf_conntrack_tuple_common.h +#usr/include/linux/netfilter/nfnetlink.h +#usr/include/linux/netfilter/nfnetlink_compat.h +#usr/include/linux/netfilter/nfnetlink_conntrack.h +#usr/include/linux/netfilter/nfnetlink_log.h +#usr/include/linux/netfilter/nfnetlink_queue.h +#usr/include/linux/netfilter/x_tables.h +#usr/include/linux/netfilter/xt_AUDIT.h +#usr/include/linux/netfilter/xt_CHECKSUM.h +#usr/include/linux/netfilter/xt_CLASSIFY.h +#usr/include/linux/netfilter/xt_CONNMARK.h +#usr/include/linux/netfilter/xt_CONNSECMARK.h +#usr/include/linux/netfilter/xt_CT.h +#usr/include/linux/netfilter/xt_DSCP.h +#usr/include/linux/netfilter/xt_IDLETIMER.h +#usr/include/linux/netfilter/xt_LED.h +#usr/include/linux/netfilter/xt_MARK.h +#usr/include/linux/netfilter/xt_NFLOG.h +#usr/include/linux/netfilter/xt_NFQUEUE.h +#usr/include/linux/netfilter/xt_RATEEST.h +#usr/include/linux/netfilter/xt_SECMARK.h +#usr/include/linux/netfilter/xt_TCPMSS.h +#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h +#usr/include/linux/netfilter/xt_TEE.h +#usr/include/linux/netfilter/xt_TPROXY.h +#usr/include/linux/netfilter/xt_addrtype.h +#usr/include/linux/netfilter/xt_cluster.h +#usr/include/linux/netfilter/xt_comment.h +#usr/include/linux/netfilter/xt_connbytes.h +#usr/include/linux/netfilter/xt_connlimit.h +#usr/include/linux/netfilter/xt_connmark.h +#usr/include/linux/netfilter/xt_conntrack.h +#usr/include/linux/netfilter/xt_cpu.h +#usr/include/linux/netfilter/xt_dccp.h +#usr/include/linux/netfilter/xt_devgroup.h +#usr/include/linux/netfilter/xt_dscp.h +#usr/include/linux/netfilter/xt_esp.h +#usr/include/linux/netfilter/xt_hashlimit.h +#usr/include/linux/netfilter/xt_helper.h +#usr/include/linux/netfilter/xt_iprange.h +#usr/include/linux/netfilter/xt_ipvs.h +#usr/include/linux/netfilter/xt_length.h +#usr/include/linux/netfilter/xt_limit.h +#usr/include/linux/netfilter/xt_mac.h +#usr/include/linux/netfilter/xt_mark.h +#usr/include/linux/netfilter/xt_multiport.h +#usr/include/linux/netfilter/xt_osf.h +#usr/include/linux/netfilter/xt_owner.h +#usr/include/linux/netfilter/xt_physdev.h +#usr/include/linux/netfilter/xt_pkttype.h +#usr/include/linux/netfilter/xt_policy.h +#usr/include/linux/netfilter/xt_quota.h +#usr/include/linux/netfilter/xt_rateest.h +#usr/include/linux/netfilter/xt_realm.h +#usr/include/linux/netfilter/xt_recent.h +#usr/include/linux/netfilter/xt_sctp.h +#usr/include/linux/netfilter/xt_set.h +#usr/include/linux/netfilter/xt_socket.h +#usr/include/linux/netfilter/xt_state.h +#usr/include/linux/netfilter/xt_statistic.h +#usr/include/linux/netfilter/xt_string.h +#usr/include/linux/netfilter/xt_tcpmss.h +#usr/include/linux/netfilter/xt_tcpudp.h +#usr/include/linux/netfilter/xt_time.h +#usr/include/linux/netfilter/xt_u32.h +#usr/include/linux/netfilter_arp +#usr/include/linux/netfilter_arp.h +#usr/include/linux/netfilter_arp/arp_tables.h +#usr/include/linux/netfilter_arp/arpt_mangle.h +#usr/include/linux/netfilter_bridge +#usr/include/linux/netfilter_bridge.h +#usr/include/linux/netfilter_bridge/ebt_802_3.h +#usr/include/linux/netfilter_bridge/ebt_among.h +#usr/include/linux/netfilter_bridge/ebt_arp.h +#usr/include/linux/netfilter_bridge/ebt_arpreply.h +#usr/include/linux/netfilter_bridge/ebt_ip.h +#usr/include/linux/netfilter_bridge/ebt_ip6.h +#usr/include/linux/netfilter_bridge/ebt_limit.h +#usr/include/linux/netfilter_bridge/ebt_log.h +#usr/include/linux/netfilter_bridge/ebt_mark_m.h +#usr/include/linux/netfilter_bridge/ebt_mark_t.h +#usr/include/linux/netfilter_bridge/ebt_nat.h +#usr/include/linux/netfilter_bridge/ebt_nflog.h +#usr/include/linux/netfilter_bridge/ebt_pkttype.h +#usr/include/linux/netfilter_bridge/ebt_redirect.h +#usr/include/linux/netfilter_bridge/ebt_stp.h +#usr/include/linux/netfilter_bridge/ebt_ulog.h +#usr/include/linux/netfilter_bridge/ebt_vlan.h +#usr/include/linux/netfilter_bridge/ebtables.h +#usr/include/linux/netfilter_decnet.h +#usr/include/linux/netfilter_ipv4 +#usr/include/linux/netfilter_ipv4.h +#usr/include/linux/netfilter_ipv4/ip_queue.h +#usr/include/linux/netfilter_ipv4/ip_tables.h +#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h +#usr/include/linux/netfilter_ipv4/ipt_ECN.h +#usr/include/linux/netfilter_ipv4/ipt_LOG.h +#usr/include/linux/netfilter_ipv4/ipt_REJECT.h +#usr/include/linux/netfilter_ipv4/ipt_SAME.h +#usr/include/linux/netfilter_ipv4/ipt_TTL.h +#usr/include/linux/netfilter_ipv4/ipt_ULOG.h +#usr/include/linux/netfilter_ipv4/ipt_addrtype.h +#usr/include/linux/netfilter_ipv4/ipt_ah.h +#usr/include/linux/netfilter_ipv4/ipt_ecn.h +#usr/include/linux/netfilter_ipv4/ipt_realm.h +#usr/include/linux/netfilter_ipv4/ipt_ttl.h +#usr/include/linux/netfilter_ipv4/nf_nat.h +#usr/include/linux/netfilter_ipv6 +#usr/include/linux/netfilter_ipv6.h +#usr/include/linux/netfilter_ipv6/ip6_tables.h +#usr/include/linux/netfilter_ipv6/ip6t_HL.h +#usr/include/linux/netfilter_ipv6/ip6t_LOG.h +#usr/include/linux/netfilter_ipv6/ip6t_REJECT.h +#usr/include/linux/netfilter_ipv6/ip6t_ah.h +#usr/include/linux/netfilter_ipv6/ip6t_frag.h +#usr/include/linux/netfilter_ipv6/ip6t_hl.h +#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h +#usr/include/linux/netfilter_ipv6/ip6t_mh.h +#usr/include/linux/netfilter_ipv6/ip6t_opts.h +#usr/include/linux/netfilter_ipv6/ip6t_rt.h +#usr/include/linux/netlink.h +#usr/include/linux/netrom.h +#usr/include/linux/nfc.h +#usr/include/linux/nfs.h +#usr/include/linux/nfs2.h +#usr/include/linux/nfs3.h +#usr/include/linux/nfs4.h +#usr/include/linux/nfs4_mount.h +#usr/include/linux/nfs_fs.h +#usr/include/linux/nfs_idmap.h +#usr/include/linux/nfs_mount.h +#usr/include/linux/nfsacl.h +#usr/include/linux/nfsd +#usr/include/linux/nfsd/debug.h +#usr/include/linux/nfsd/export.h +#usr/include/linux/nfsd/nfsfh.h +#usr/include/linux/nfsd/stats.h +#usr/include/linux/nl80211.h +#usr/include/linux/nubus.h +#usr/include/linux/nvram.h +#usr/include/linux/omap3isp.h +#usr/include/linux/omapfb.h +#usr/include/linux/oom.h +#usr/include/linux/param.h +#usr/include/linux/parport.h +#usr/include/linux/patchkey.h +#usr/include/linux/pci.h +#usr/include/linux/pci_regs.h +#usr/include/linux/perf_event.h +#usr/include/linux/personality.h +#usr/include/linux/pfkeyv2.h +#usr/include/linux/pg.h +#usr/include/linux/phantom.h +#usr/include/linux/phonet.h +#usr/include/linux/pkt_cls.h +#usr/include/linux/pkt_sched.h +#usr/include/linux/pktcdvd.h +#usr/include/linux/pmu.h +#usr/include/linux/poll.h +#usr/include/linux/posix_types.h +#usr/include/linux/ppdev.h +#usr/include/linux/ppp-comp.h +#usr/include/linux/ppp_defs.h +#usr/include/linux/pps.h +#usr/include/linux/prctl.h +#usr/include/linux/ptp_clock.h +#usr/include/linux/ptrace.h +#usr/include/linux/qnx4_fs.h +#usr/include/linux/qnxtypes.h +#usr/include/linux/quota.h +#usr/include/linux/radeonfb.h +#usr/include/linux/raid +#usr/include/linux/raid/md_p.h +#usr/include/linux/raid/md_u.h +#usr/include/linux/random.h +#usr/include/linux/raw.h +#usr/include/linux/rds.h +#usr/include/linux/reboot.h +#usr/include/linux/reiserfs_fs.h +#usr/include/linux/reiserfs_xattr.h +#usr/include/linux/resource.h +#usr/include/linux/rfkill.h +#usr/include/linux/romfs_fs.h +#usr/include/linux/rose.h +#usr/include/linux/route.h +#usr/include/linux/rtc.h +#usr/include/linux/rtnetlink.h +#usr/include/linux/scc.h +#usr/include/linux/sched.h +#usr/include/linux/screen_info.h +#usr/include/linux/sdla.h +#usr/include/linux/securebits.h +#usr/include/linux/selinux_netlink.h +#usr/include/linux/sem.h +#usr/include/linux/serial.h +#usr/include/linux/serial_core.h +#usr/include/linux/serial_reg.h +#usr/include/linux/serio.h +#usr/include/linux/shm.h +#usr/include/linux/signal.h +#usr/include/linux/signalfd.h +#usr/include/linux/snmp.h +#usr/include/linux/socket.h +#usr/include/linux/sockios.h +#usr/include/linux/som.h +#usr/include/linux/sonet.h +#usr/include/linux/sonypi.h +#usr/include/linux/sound.h +#usr/include/linux/soundcard.h +#usr/include/linux/spi +#usr/include/linux/spi/spidev.h +#usr/include/linux/stat.h +#usr/include/linux/stddef.h +#usr/include/linux/string.h +#usr/include/linux/sunrpc +#usr/include/linux/sunrpc/debug.h +#usr/include/linux/suspend_ioctls.h +#usr/include/linux/swab.h +#usr/include/linux/synclink.h +#usr/include/linux/sysctl.h +#usr/include/linux/taskstats.h +#usr/include/linux/tc_act +#usr/include/linux/tc_act/tc_csum.h +#usr/include/linux/tc_act/tc_gact.h +#usr/include/linux/tc_act/tc_ipt.h +#usr/include/linux/tc_act/tc_mirred.h +#usr/include/linux/tc_act/tc_nat.h +#usr/include/linux/tc_act/tc_pedit.h +#usr/include/linux/tc_act/tc_skbedit.h +#usr/include/linux/tc_ematch +#usr/include/linux/tc_ematch/tc_em_cmp.h +#usr/include/linux/tc_ematch/tc_em_meta.h +#usr/include/linux/tc_ematch/tc_em_nbyte.h +#usr/include/linux/tc_ematch/tc_em_text.h +#usr/include/linux/tcp.h +#usr/include/linux/telephony.h +#usr/include/linux/termios.h +#usr/include/linux/time.h +#usr/include/linux/times.h +#usr/include/linux/timex.h +#usr/include/linux/tiocl.h +#usr/include/linux/tipc.h +#usr/include/linux/tipc_config.h +#usr/include/linux/toshiba.h +#usr/include/linux/tty.h +#usr/include/linux/types.h +#usr/include/linux/udf_fs_i.h +#usr/include/linux/udp.h +#usr/include/linux/uinput.h +#usr/include/linux/uio.h +#usr/include/linux/ultrasound.h +#usr/include/linux/un.h +#usr/include/linux/unistd.h +#usr/include/linux/usb +#usr/include/linux/usb/audio.h +#usr/include/linux/usb/cdc.h +#usr/include/linux/usb/ch11.h +#usr/include/linux/usb/ch9.h +#usr/include/linux/usb/functionfs.h +#usr/include/linux/usb/g_printer.h +#usr/include/linux/usb/gadgetfs.h +#usr/include/linux/usb/midi.h +#usr/include/linux/usb/tmc.h +#usr/include/linux/usb/video.h +#usr/include/linux/usbdevice_fs.h +#usr/include/linux/utime.h +#usr/include/linux/utsname.h +#usr/include/linux/uvcvideo.h +#usr/include/linux/v4l2-mediabus.h +#usr/include/linux/v4l2-subdev.h +#usr/include/linux/version.h +#usr/include/linux/veth.h +#usr/include/linux/vhost.h +#usr/include/linux/videodev2.h +#usr/include/linux/virtio_9p.h +#usr/include/linux/virtio_balloon.h +#usr/include/linux/virtio_blk.h +#usr/include/linux/virtio_config.h +#usr/include/linux/virtio_console.h +#usr/include/linux/virtio_ids.h +#usr/include/linux/virtio_net.h +#usr/include/linux/virtio_pci.h +#usr/include/linux/virtio_ring.h +#usr/include/linux/virtio_rng.h +#usr/include/linux/vt.h +#usr/include/linux/wait.h +#usr/include/linux/wanrouter.h +#usr/include/linux/watchdog.h +#usr/include/linux/wimax +#usr/include/linux/wimax.h +#usr/include/linux/wimax/i2400m.h +#usr/include/linux/wireless.h +#usr/include/linux/x25.h +#usr/include/linux/xattr.h +#usr/include/linux/xfrm.h +#usr/include/mtd +#usr/include/mtd/inftl-user.h +#usr/include/mtd/mtd-abi.h +#usr/include/mtd/mtd-user.h +#usr/include/mtd/nftl-user.h +#usr/include/mtd/ubi-user.h +#usr/include/rdma +#usr/include/rdma/ib_user_cm.h +#usr/include/rdma/ib_user_mad.h +#usr/include/rdma/ib_user_sa.h +#usr/include/rdma/ib_user_verbs.h +#usr/include/rdma/rdma_netlink.h +#usr/include/rdma/rdma_user_cm.h +#usr/include/scsi +#usr/include/scsi/fc +#usr/include/scsi/fc/fc_els.h +#usr/include/scsi/fc/fc_fs.h +#usr/include/scsi/fc/fc_gs.h +#usr/include/scsi/fc/fc_ns.h +#usr/include/scsi/scsi_bsg_fc.h +#usr/include/scsi/scsi_netlink.h +#usr/include/scsi/scsi_netlink_fc.h +#usr/include/sound +#usr/include/sound/asequencer.h +#usr/include/sound/asound.h +#usr/include/sound/asound_fm.h +#usr/include/sound/emu10k1.h +#usr/include/sound/hdsp.h +#usr/include/sound/hdspm.h +#usr/include/sound/sb16_csp.h +#usr/include/sound/sfnt_info.h +#usr/include/video +#usr/include/video/edid.h +#usr/include/video/sisfb.h +#usr/include/video/uvesafb.h +#usr/include/xen +#usr/include/xen/evtchn.h +#usr/include/xen/privcmd.h diff --git a/config/rootfiles/common/i586/madwifi b/config/rootfiles/common/i586/madwifi deleted file mode 100644 index e3282522d5..0000000000 --- a/config/rootfiles/common/i586/madwifi +++ /dev/null @@ -1,22 +0,0 @@ -#etc/madwifi.conf -etc/modprobe.d/madwifi -usr/bin/80211debug -usr/bin/80211stats -usr/bin/ath_info -usr/bin/athchans -usr/bin/athctrl -usr/bin/athdebug -usr/bin/athkey -usr/bin/athstats -usr/bin/madwifi-unload -usr/bin/wlanconfig -usr/bin/wpakey -#usr/man/man8 -#usr/man/man8/80211debug.8 -#usr/man/man8/80211stats.8 -#usr/man/man8/athchans.8 -#usr/man/man8/athctrl.8 -#usr/man/man8/athdebug.8 -#usr/man/man8/athkey.8 -#usr/man/man8/athstats.8 -#usr/man/man8/wlanconfig.8 diff --git a/config/rootfiles/common/i586/strongswan-padlock b/config/rootfiles/common/i586/strongswan-padlock new file mode 100644 index 0000000000..02aa457d31 --- /dev/null +++ b/config/rootfiles/common/i586/strongswan-padlock @@ -0,0 +1 @@ +usr/lib/ipsec/plugins/libstrongswan-padlock.so diff --git a/config/rootfiles/common/i586/syslinux b/config/rootfiles/common/i586/syslinux index a4a8254a97..0c43b88be0 100644 --- a/config/rootfiles/common/i586/syslinux +++ b/config/rootfiles/common/i586/syslinux @@ -36,12 +36,14 @@ #usr/share/syslinux/com32/include/bitsize/stdint.h #usr/share/syslinux/com32/include/bitsize/stdintconst.h #usr/share/syslinux/com32/include/bitsize/stdintlimits.h +#usr/share/syslinux/com32/include/bufprintf.h #usr/share/syslinux/com32/include/colortbl.h #usr/share/syslinux/com32/include/com32.h #usr/share/syslinux/com32/include/console.h #usr/share/syslinux/com32/include/cpufeature.h #usr/share/syslinux/com32/include/ctype.h #usr/share/syslinux/com32/include/dev.h +#usr/share/syslinux/com32/include/dhcp.h #usr/share/syslinux/com32/include/dirent.h #usr/share/syslinux/com32/include/dprintf.h #usr/share/syslinux/com32/include/elf.h @@ -51,6 +53,24 @@ #usr/share/syslinux/com32/include/getopt.h #usr/share/syslinux/com32/include/gplinclude #usr/share/syslinux/com32/include/gplinclude/README +#usr/share/syslinux/com32/include/gplinclude/acpi +#usr/share/syslinux/com32/include/gplinclude/acpi/acpi.h +#usr/share/syslinux/com32/include/gplinclude/acpi/boot.h +#usr/share/syslinux/com32/include/gplinclude/acpi/dsdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/ecdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/facs.h +#usr/share/syslinux/com32/include/gplinclude/acpi/fadt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/hpet.h +#usr/share/syslinux/com32/include/gplinclude/acpi/madt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/mcfg.h +#usr/share/syslinux/com32/include/gplinclude/acpi/rsdp.h +#usr/share/syslinux/com32/include/gplinclude/acpi/rsdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/sbst.h +#usr/share/syslinux/com32/include/gplinclude/acpi/slic.h +#usr/share/syslinux/com32/include/gplinclude/acpi/ssdt.h +#usr/share/syslinux/com32/include/gplinclude/acpi/structs.h +#usr/share/syslinux/com32/include/gplinclude/acpi/tcpa.h +#usr/share/syslinux/com32/include/gplinclude/acpi/xsdt.h #usr/share/syslinux/com32/include/gplinclude/cpuid.h #usr/share/syslinux/com32/include/gplinclude/disk #usr/share/syslinux/com32/include/gplinclude/disk/bootloaders.h @@ -79,6 +99,8 @@ #usr/share/syslinux/com32/include/gplinclude/memory.h #usr/share/syslinux/com32/include/gplinclude/vpd #usr/share/syslinux/com32/include/gplinclude/vpd/vpd.h +#usr/share/syslinux/com32/include/gplinclude/zzjson +#usr/share/syslinux/com32/include/gplinclude/zzjson/zzjson.h #usr/share/syslinux/com32/include/ilog2.h #usr/share/syslinux/com32/include/inttypes.h #usr/share/syslinux/com32/include/klibc @@ -104,7 +126,9 @@ #usr/share/syslinux/com32/include/stdio.h #usr/share/syslinux/com32/include/stdlib.h #usr/share/syslinux/com32/include/string.h +#usr/share/syslinux/com32/include/suffix_number.h #usr/share/syslinux/com32/include/sys +#usr/share/syslinux/com32/include/sys/bitops.h #usr/share/syslinux/com32/include/sys/cpu.h #usr/share/syslinux/com32/include/sys/dirent.h #usr/share/syslinux/com32/include/sys/elf32.h @@ -126,6 +150,7 @@ #usr/share/syslinux/com32/include/syslinux/bootpm.h #usr/share/syslinux/com32/include/syslinux/bootrm.h #usr/share/syslinux/com32/include/syslinux/config.h +#usr/share/syslinux/com32/include/syslinux/disk.h #usr/share/syslinux/com32/include/syslinux/features.h #usr/share/syslinux/com32/include/syslinux/idle.h #usr/share/syslinux/com32/include/syslinux/io.h @@ -149,11 +174,16 @@ #usr/share/syslinux/com32/include/zlib.h #usr/share/syslinux/com32/libcom32.a #usr/share/syslinux/com32/libcom32gpl.a +#usr/share/syslinux/com32/libcom32upload.a #usr/share/syslinux/com32/libutil_com.a #usr/share/syslinux/com32/libutil_lnx.a #usr/share/syslinux/config.c32 #usr/share/syslinux/cpuid.c32 #usr/share/syslinux/cpuidtest.c32 +#usr/share/syslinux/diag +#usr/share/syslinux/diag/geodsp1s.img.xz +#usr/share/syslinux/diag/geodspms.img.xz +#usr/share/syslinux/diag/handoff.bin #usr/share/syslinux/disk.c32 #usr/share/syslinux/dmitest.c32 #usr/share/syslinux/dosutil @@ -168,10 +198,12 @@ #usr/share/syslinux/gptmbr_f.bin #usr/share/syslinux/gpxecmd.c32 #usr/share/syslinux/gpxelinux.0 +#usr/share/syslinux/gpxelinuxk.0 #usr/share/syslinux/hdt.c32 #usr/share/syslinux/host.c32 #usr/share/syslinux/ifcpu.c32 #usr/share/syslinux/ifcpu64.c32 +#usr/share/syslinux/ifmemdsk.c32 #usr/share/syslinux/ifplop.c32 #usr/share/syslinux/int18.com #usr/share/syslinux/isohdpfx.bin @@ -183,6 +215,7 @@ #usr/share/syslinux/isolinux-debug.bin #usr/share/syslinux/isolinux.bin #usr/share/syslinux/kbdmap.c32 +#usr/share/syslinux/kontron_wdt.c32 #usr/share/syslinux/linux.c32 #usr/share/syslinux/ls.c32 #usr/share/syslinux/lua.c32 @@ -197,8 +230,10 @@ #usr/share/syslinux/pcitest.c32 #usr/share/syslinux/pmload.c32 #usr/share/syslinux/poweroff.com +#usr/share/syslinux/prdhcp.c32 #usr/share/syslinux/pwd.c32 #usr/share/syslinux/pxechain.com +#usr/share/syslinux/pxechn.c32 #usr/share/syslinux/pxelinux.0 #usr/share/syslinux/reboot.c32 #usr/share/syslinux/rosh.c32 @@ -208,7 +243,9 @@ #usr/share/syslinux/syslinux.com #usr/share/syslinux/syslinux.exe #usr/share/syslinux/syslinux64.exe +#usr/share/syslinux/ver.com #usr/share/syslinux/vesainfo.c32 #usr/share/syslinux/vesamenu.c32 #usr/share/syslinux/vpdtest.c32 #usr/share/syslinux/whichsys.c32 +#usr/share/syslinux/zzjson.c32 diff --git a/config/rootfiles/common/iproute2 b/config/rootfiles/common/iproute2 index 8f179d7f54..bb4c05b486 100644 --- a/config/rootfiles/common/iproute2 +++ b/config/rootfiles/common/iproute2 @@ -1,11 +1,14 @@ #etc/iproute2 etc/iproute2/ematch_map +etc/iproute2/group etc/iproute2/rt_dsfield etc/iproute2/rt_protos etc/iproute2/rt_realms etc/iproute2/rt_scopes etc/iproute2/rt_tables +sbin/bridge sbin/ctstat +sbin/genl sbin/ifcfg sbin/ifstat sbin/ip @@ -24,7 +27,6 @@ sbin/tc #usr/lib/tc/normal.dist #usr/lib/tc/pareto.dist #usr/lib/tc/paretonormal.dist -#usr/lib/tc/q_netem.so usr/sbin/arpd #usr/share/doc/iproute2 #usr/share/doc/iproute2/SNAPSHOT.tex @@ -50,6 +52,7 @@ usr/sbin/arpd #usr/share/doc/iproute2/examples/diffserv/ef-prio #usr/share/doc/iproute2/examples/diffserv/efcbq #usr/share/doc/iproute2/examples/diffserv/regression-testing +#usr/share/doc/iproute2/examples/gaiconf #usr/share/doc/iproute2/ip-cref.tex #usr/share/doc/iproute2/ip-tunnels.tex #usr/share/doc/iproute2/nstat.sgml @@ -57,16 +60,48 @@ usr/sbin/arpd #usr/share/doc/iproute2/rtstat.sgml #usr/share/doc/iproute2/ss.sgml #usr/share/man/man3/libnetlink.3 +#usr/share/man/man8/arpd.8 +#usr/share/man/man8/bridge.8 +#usr/share/man/man8/ctstat.8 +#usr/share/man/man8/ip-address.8 +#usr/share/man/man8/ip-addrlabel.8 +#usr/share/man/man8/ip-link.8 +#usr/share/man/man8/ip-maddress.8 +#usr/share/man/man8/ip-monitor.8 +#usr/share/man/man8/ip-mroute.8 +#usr/share/man/man8/ip-neighbour.8 +#usr/share/man/man8/ip-netns.8 +#usr/share/man/man8/ip-ntable.8 +#usr/share/man/man8/ip-route.8 +#usr/share/man/man8/ip-rule.8 +#usr/share/man/man8/ip-tunnel.8 +#usr/share/man/man8/ip-xfrm.8 #usr/share/man/man8/ip.8 +#usr/share/man/man8/lnstat.8 +#usr/share/man/man8/nstat.8 +#usr/share/man/man8/routef.8 +#usr/share/man/man8/routel.8 +#usr/share/man/man8/rtacct.8 +#usr/share/man/man8/rtmon.8 +#usr/share/man/man8/rtstat.8 +#usr/share/man/man8/ss.8 #usr/share/man/man8/tc-bfifo.8 #usr/share/man/man8/tc-cbq-details.8 #usr/share/man/man8/tc-cbq.8 +#usr/share/man/man8/tc-choke.8 +#usr/share/man/man8/tc-codel.8 +#usr/share/man/man8/tc-drr.8 +#usr/share/man/man8/tc-fq_codel.8 +#usr/share/man/man8/tc-hfsc.8 #usr/share/man/man8/tc-htb.8 -#usr/share/man/man8/tc-pbfifo.8 +#usr/share/man/man8/tc-netem.8 #usr/share/man/man8/tc-pfifo.8 #usr/share/man/man8/tc-pfifo_fast.8 #usr/share/man/man8/tc-prio.8 #usr/share/man/man8/tc-red.8 +#usr/share/man/man8/tc-sfb.8 #usr/share/man/man8/tc-sfq.8 +#usr/share/man/man8/tc-stab.8 #usr/share/man/man8/tc-tbf.8 #usr/share/man/man8/tc.8 +var/lib/arpd diff --git a/config/rootfiles/common/iptables b/config/rootfiles/common/iptables index 8e1a6e46fb..39225a43ba 100644 --- a/config/rootfiles/common/iptables +++ b/config/rootfiles/common/iptables @@ -1,23 +1,23 @@ #lib/libip4tc.la lib/libip4tc.so lib/libip4tc.so.0 -lib/libip4tc.so.0.0.0 +lib/libip4tc.so.0.1.0 #lib/libip6tc.la lib/libip6tc.so lib/libip6tc.so.0 -lib/libip6tc.so.0.0.0 -#lib/libipq.a +lib/libip6tc.so.0.1.0 +#lib/libipq.la +lib/libipq.so +lib/libipq.so.0 +lib/libipq.so.0.0.0 #lib/libiptc.la lib/libiptc.so lib/libiptc.so.0 lib/libiptc.so.0.0.0 #lib/libxtables.la lib/libxtables.so -lib/libxtables.so.4 -lib/libxtables.so.4.0.0 -#lib/pkgconfig -#lib/pkgconfig/libiptc.pc -#lib/pkgconfig/xtables.pc +lib/libxtables.so.7 +lib/libxtables.so.7.0.0 lib/xtables #lib/xtables/libip6t_HL.so #lib/xtables/libip6t_LOG.so @@ -42,52 +42,62 @@ lib/xtables #lib/xtables/libipt_REDIRECT.so #lib/xtables/libipt_REJECT.so #lib/xtables/libipt_SAME.so -#lib/xtables/libipt_SET.so #lib/xtables/libipt_SNAT.so #lib/xtables/libipt_TTL.so #lib/xtables/libipt_ULOG.so -#lib/xtables/libipt_addrtype.so #lib/xtables/libipt_ah.so -#lib/xtables/libipt_ecn.so #lib/xtables/libipt_icmp.so #lib/xtables/libipt_ipp2p.so #lib/xtables/libipt_realm.so -#lib/xtables/libipt_set.so #lib/xtables/libipt_ttl.so #lib/xtables/libipt_unclean.so +#lib/xtables/libxt_AUDIT.so +#lib/xtables/libxt_CHECKSUM.so #lib/xtables/libxt_CLASSIFY.so #lib/xtables/libxt_CONNMARK.so #lib/xtables/libxt_CONNSECMARK.so +#lib/xtables/libxt_CT.so #lib/xtables/libxt_DSCP.so +#lib/xtables/libxt_IDLETIMER.so #lib/xtables/libxt_IMQ.so +#lib/xtables/libxt_LED.so #lib/xtables/libxt_MARK.so #lib/xtables/libxt_NFLOG.so #lib/xtables/libxt_NFQUEUE.so #lib/xtables/libxt_NOTRACK.so #lib/xtables/libxt_RATEEST.so #lib/xtables/libxt_SECMARK.so +#lib/xtables/libxt_SET.so #lib/xtables/libxt_TCPMSS.so #lib/xtables/libxt_TCPOPTSTRIP.so +#lib/xtables/libxt_TEE.so #lib/xtables/libxt_TOS.so #lib/xtables/libxt_TPROXY.so #lib/xtables/libxt_TRACE.so +#lib/xtables/libxt_addrtype.so #lib/xtables/libxt_cluster.so #lib/xtables/libxt_comment.so #lib/xtables/libxt_connbytes.so #lib/xtables/libxt_connlimit.so #lib/xtables/libxt_connmark.so #lib/xtables/libxt_conntrack.so +#lib/xtables/libxt_cpu.so +#lib/xtables/libxt_dccp.so +#lib/xtables/libxt_devgroup.so #lib/xtables/libxt_dscp.so +#lib/xtables/libxt_ecn.so #lib/xtables/libxt_esp.so #lib/xtables/libxt_hashlimit.so #lib/xtables/libxt_helper.so #lib/xtables/libxt_iprange.so +#lib/xtables/libxt_ipvs.so #lib/xtables/libxt_layer7.so #lib/xtables/libxt_length.so #lib/xtables/libxt_limit.so #lib/xtables/libxt_mac.so #lib/xtables/libxt_mark.so #lib/xtables/libxt_multiport.so +#lib/xtables/libxt_nfacct.so #lib/xtables/libxt_osf.so #lib/xtables/libxt_owner.so #lib/xtables/libxt_physdev.so @@ -96,7 +106,9 @@ lib/xtables #lib/xtables/libxt_quota.so #lib/xtables/libxt_rateest.so #lib/xtables/libxt_recent.so +#lib/xtables/libxt_rpfilter.so #lib/xtables/libxt_sctp.so +#lib/xtables/libxt_set.so #lib/xtables/libxt_socket.so #lib/xtables/libxt_standard.so #lib/xtables/libxt_state.so @@ -108,18 +120,14 @@ lib/xtables #lib/xtables/libxt_tos.so #lib/xtables/libxt_u32.so #lib/xtables/libxt_udp.so -#sbin/ip6tables -#sbin/ip6tables-multi -#sbin/ip6tables-restore -#sbin/ip6tables-save +sbin/ip6tables +sbin/ip6tables-restore +sbin/ip6tables-save sbin/iptables -sbin/iptables-multi -#sbin/iptables-restore -#sbin/iptables-save -#sbin/iptables-xml -#usr/include/asm-generic -#usr/include/asm-generic/errno-base.h -#usr/include/asm-generic/errno.h +sbin/iptables-restore +sbin/iptables-save +sbin/iptables-xml +sbin/xtables-multi #usr/include/iptables #usr/include/iptables.h #usr/include/iptables/internal.h @@ -129,8 +137,21 @@ sbin/iptables-multi #usr/include/libiptc/libip6tc.h #usr/include/libiptc/libiptc.h #usr/include/libiptc/libxtc.h +#usr/include/libiptc/xtcshared.h #usr/include/libipulog #usr/include/libipulog/libipulog.h +#usr/include/libnetfilter_conntrack +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_dccp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_icmp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_ipv4.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_ipv6.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_sctp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_tcp.h +#usr/include/libnetfilter_conntrack/libnetfilter_conntrack_udp.h +#usr/include/libnetfilter_conntrack/linux_nfnetlink_conntrack.h +#usr/include/libnetfilter_cttimeout +#usr/include/libnetfilter_cttimeout/libnetfilter_cttimeout.h #usr/include/libnetfilter_queue #usr/include/libnetfilter_queue/libipq.h #usr/include/libnetfilter_queue/libnetfilter_queue.h @@ -139,12 +160,14 @@ sbin/iptables-multi #usr/include/libnfnetlink/libnfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink.h #usr/include/libnfnetlink/linux_nfnetlink_compat.h -#usr/include/linux/netfilter #usr/include/linux/netfilter/Kbuild +#usr/include/linux/netfilter/ipset/Kbuild +#usr/include/linux/netfilter/ipset/ip_set_ahash.h +#usr/include/linux/netfilter/ipset/ip_set_getport.h +#usr/include/linux/netfilter/ipset/ip_set_timeout.h +#usr/include/linux/netfilter/ipset/pfxlen.h #usr/include/linux/netfilter/nf_conntrack_amanda.h -#usr/include/linux/netfilter/nf_conntrack_common.h #usr/include/linux/netfilter/nf_conntrack_dccp.h -#usr/include/linux/netfilter/nf_conntrack_ftp.h #usr/include/linux/netfilter/nf_conntrack_h323.h #usr/include/linux/netfilter/nf_conntrack_h323_asn1.h #usr/include/linux/netfilter/nf_conntrack_h323_types.h @@ -152,71 +175,23 @@ sbin/iptables-multi #usr/include/linux/netfilter/nf_conntrack_pptp.h #usr/include/linux/netfilter/nf_conntrack_proto_gre.h #usr/include/linux/netfilter/nf_conntrack_sane.h -#usr/include/linux/netfilter/nf_conntrack_sctp.h #usr/include/linux/netfilter/nf_conntrack_sip.h -#usr/include/linux/netfilter/nf_conntrack_tcp.h +#usr/include/linux/netfilter/nf_conntrack_snmp.h #usr/include/linux/netfilter/nf_conntrack_tftp.h -#usr/include/linux/netfilter/nf_conntrack_tuple_common.h -#usr/include/linux/netfilter/nfnetlink.h -#usr/include/linux/netfilter/nfnetlink_compat.h -#usr/include/linux/netfilter/nfnetlink_conntrack.h -#usr/include/linux/netfilter/nfnetlink_log.h -#usr/include/linux/netfilter/nfnetlink_queue.h -#usr/include/linux/netfilter/x_tables.h -#usr/include/linux/netfilter/xt_CLASSIFY.h -#usr/include/linux/netfilter/xt_CONNMARK.h -#usr/include/linux/netfilter/xt_CONNSECMARK.h -#usr/include/linux/netfilter/xt_DSCP.h #usr/include/linux/netfilter/xt_IMQ.h -#usr/include/linux/netfilter/xt_LED.h -#usr/include/linux/netfilter/xt_MARK.h -#usr/include/linux/netfilter/xt_NFLOG.h -#usr/include/linux/netfilter/xt_NFQUEUE.h -#usr/include/linux/netfilter/xt_RATEEST.h -#usr/include/linux/netfilter/xt_SECMARK.h -#usr/include/linux/netfilter/xt_TCPMSS.h -#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h -#usr/include/linux/netfilter/xt_TPROXY.h -#usr/include/linux/netfilter/xt_cluster.h -#usr/include/linux/netfilter/xt_comment.h -#usr/include/linux/netfilter/xt_connbytes.h -#usr/include/linux/netfilter/xt_connlimit.h -#usr/include/linux/netfilter/xt_connmark.h -#usr/include/linux/netfilter/xt_conntrack.h -#usr/include/linux/netfilter/xt_dccp.h -#usr/include/linux/netfilter/xt_dscp.h -#usr/include/linux/netfilter/xt_esp.h -#usr/include/linux/netfilter/xt_hashlimit.h -#usr/include/linux/netfilter/xt_helper.h -#usr/include/linux/netfilter/xt_iprange.h #usr/include/linux/netfilter/xt_layer7.h -#usr/include/linux/netfilter/xt_length.h -#usr/include/linux/netfilter/xt_limit.h -#usr/include/linux/netfilter/xt_mac.h -#usr/include/linux/netfilter/xt_mark.h -#usr/include/linux/netfilter/xt_multiport.h -#usr/include/linux/netfilter/xt_osf.h -#usr/include/linux/netfilter/xt_owner.h -#usr/include/linux/netfilter/xt_physdev.h -#usr/include/linux/netfilter/xt_pkttype.h -#usr/include/linux/netfilter/xt_policy.h -#usr/include/linux/netfilter/xt_quota.h -#usr/include/linux/netfilter/xt_rateest.h -#usr/include/linux/netfilter/xt_realm.h -#usr/include/linux/netfilter/xt_recent.h -#usr/include/linux/netfilter/xt_sctp.h -#usr/include/linux/netfilter/xt_socket.h -#usr/include/linux/netfilter/xt_state.h -#usr/include/linux/netfilter/xt_statistic.h -#usr/include/linux/netfilter/xt_string.h -#usr/include/linux/netfilter/xt_tcpmss.h -#usr/include/linux/netfilter/xt_tcpudp.h -#usr/include/linux/netfilter/xt_time.h -#usr/include/linux/netfilter/xt_u32.h #usr/include/net/netfilter #usr/include/net/netfilter/nf_conntrack_tuple.h #usr/include/net/netfilter/nf_nat.h #usr/include/xtables.h +#usr/lib/libnetfilter_conntrack.la +usr/lib/libnetfilter_conntrack.so +usr/lib/libnetfilter_conntrack.so.3 +usr/lib/libnetfilter_conntrack.so.3.4.0 +#usr/lib/libnetfilter_cttimeout.la +usr/lib/libnetfilter_cttimeout.so +usr/lib/libnetfilter_cttimeout.so.1 +usr/lib/libnetfilter_cttimeout.so.1.0.0 #usr/lib/libnetfilter_queue.a #usr/lib/libnetfilter_queue.la usr/lib/libnetfilter_queue.so @@ -232,8 +207,16 @@ usr/lib/libnetfilter_queue_libipq.so.1.0.0 usr/lib/libnfnetlink.so usr/lib/libnfnetlink.so.0 usr/lib/libnfnetlink.so.0.2.0 +#usr/lib/pkgconfig/libip4tc.pc +#usr/lib/pkgconfig/libip6tc.pc +#usr/lib/pkgconfig/libipq.pc +#usr/lib/pkgconfig/libiptc.pc +#usr/lib/pkgconfig/libnetfilter_conntrack.pc +#usr/lib/pkgconfig/libnetfilter_cttimeout.pc #usr/lib/pkgconfig/libnetfilter_queue.pc #usr/lib/pkgconfig/libnfnetlink.pc +#usr/lib/pkgconfig/xtables.pc +#usr/share/man/man1/iptables-xml.1 #usr/share/man/man3/ipq_create_handle.3 #usr/share/man/man3/ipq_destroy_handle.3 #usr/share/man/man3/ipq_errstr.3 @@ -250,5 +233,4 @@ usr/lib/libnfnetlink.so.0.2.0 #usr/share/man/man8/ip6tables.8 #usr/share/man/man8/iptables-restore.8 #usr/share/man/man8/iptables-save.8 -#usr/share/man/man8/iptables-xml.8 #usr/share/man/man8/iptables.8 diff --git a/config/rootfiles/common/iptstate b/config/rootfiles/common/iptstate deleted file mode 100644 index 57b6d0f777..0000000000 --- a/config/rootfiles/common/iptstate +++ /dev/null @@ -1,2 +0,0 @@ -usr/sbin/iptstate -#usr/share/man/man8/iptstate.8 diff --git a/config/rootfiles/common/kudzu b/config/rootfiles/common/kudzu deleted file mode 100644 index 5776f0f570..0000000000 --- a/config/rootfiles/common/kudzu +++ /dev/null @@ -1,198 +0,0 @@ -#etc/rc.d/init.d/kudzu -#etc/sysconfig/kudzu -sbin/kudzu -#usr/include/kudzu -#usr/include/kudzu/adb.h -#usr/include/kudzu/alias.h -#usr/include/kudzu/ddc.h -#usr/include/kudzu/device.h -#usr/include/kudzu/firewire.h -#usr/include/kudzu/ide.h -#usr/include/kudzu/isapnp.h -#usr/include/kudzu/keyboard.h -#usr/include/kudzu/kudzu.h -#usr/include/kudzu/macio.h -#usr/include/kudzu/misc.h -#usr/include/kudzu/modules.h -#usr/include/kudzu/parallel.h -#usr/include/kudzu/pci.h -#usr/include/kudzu/pcmcia.h -#usr/include/kudzu/psaux.h -#usr/include/kudzu/sbus.h -#usr/include/kudzu/scsi.h -#usr/include/kudzu/serial.h -#usr/include/kudzu/usb.h -#usr/lib/libkudzu.a -#usr/lib/libkudzu_loader.a -#usr/lib/python2.7/lib2to3/tests/data/bom.pyc -#usr/lib/python2.7/lib2to3/tests/data/crlf.pyc -#usr/lib/python2.7/lib2to3/tests/data/different_encoding.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/bad_order.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.pyc -#usr/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.pyc -#usr/lib/python2.7/lib2to3/tests/data/infinite_recursion.pyc -#usr/lib/python2.7/lib2to3/tests/data/py2_test_grammar.pyc -#usr/lib/python2.7/site-packages/_kudzumodule.so -#usr/lib/python2.7/site-packages/drv_libxml2.pyc -#usr/lib/python2.7/site-packages/kudzu.py -#usr/lib/python2.7/site-packages/kudzu.pyc -#usr/lib/python2.7/site-packages/libxslt.pyc -#usr/lib/python2.7/site-packages/snack.pyc -usr/sbin/kudzu -#usr/share/locale/ar -#usr/share/locale/ar/LC_MESSAGES -#usr/share/locale/ar/LC_MESSAGES/kudzu.mo -#usr/share/locale/as -#usr/share/locale/as/LC_MESSAGES -#usr/share/locale/as/LC_MESSAGES/kudzu.mo -#usr/share/locale/be/LC_MESSAGES/kudzu.mo -#usr/share/locale/bg -#usr/share/locale/bg/LC_MESSAGES -#usr/share/locale/bg/LC_MESSAGES/kudzu.mo -#usr/share/locale/bn -#usr/share/locale/bn/LC_MESSAGES -#usr/share/locale/bn/LC_MESSAGES/kudzu.mo -#usr/share/locale/bn_IN -#usr/share/locale/bn_IN/LC_MESSAGES -#usr/share/locale/bn_IN/LC_MESSAGES/kudzu.mo -#usr/share/locale/bs -#usr/share/locale/bs/LC_MESSAGES -#usr/share/locale/bs/LC_MESSAGES/kudzu.mo -#usr/share/locale/ca/LC_MESSAGES/kudzu.mo -#usr/share/locale/cs/LC_MESSAGES/kudzu.mo -#usr/share/locale/cy -#usr/share/locale/cy/LC_MESSAGES -#usr/share/locale/cy/LC_MESSAGES/kudzu.mo -#usr/share/locale/da/LC_MESSAGES/kudzu.mo -#usr/share/locale/de/LC_MESSAGES/kudzu.mo -#usr/share/locale/el/LC_MESSAGES/kudzu.mo -#usr/share/locale/en_GB/LC_MESSAGES/kudzu.mo -#usr/share/locale/es/LC_MESSAGES/kudzu.mo -#usr/share/locale/et/LC_MESSAGES/kudzu.mo -#usr/share/locale/eu_ES -#usr/share/locale/eu_ES/LC_MESSAGES -#usr/share/locale/eu_ES/LC_MESSAGES/kudzu.mo -#usr/share/locale/fi/LC_MESSAGES/kudzu.mo -#usr/share/locale/fr/LC_MESSAGES/kudzu.mo -#usr/share/locale/gl/LC_MESSAGES/kudzu.mo -#usr/share/locale/gu -#usr/share/locale/gu/LC_MESSAGES -#usr/share/locale/gu/LC_MESSAGES/kudzu.mo -#usr/share/locale/he -#usr/share/locale/he/LC_MESSAGES -#usr/share/locale/he/LC_MESSAGES/kudzu.mo -#usr/share/locale/hi -#usr/share/locale/hi/LC_MESSAGES -#usr/share/locale/hi/LC_MESSAGES/kudzu.mo -#usr/share/locale/hr/LC_MESSAGES/kudzu.mo -#usr/share/locale/hu/LC_MESSAGES/kudzu.mo -#usr/share/locale/hy -#usr/share/locale/hy/LC_MESSAGES -#usr/share/locale/hy/LC_MESSAGES/kudzu.mo -#usr/share/locale/id -#usr/share/locale/id/LC_MESSAGES -#usr/share/locale/id/LC_MESSAGES/kudzu.mo -#usr/share/locale/ilo -#usr/share/locale/ilo/LC_MESSAGES -#usr/share/locale/ilo/LC_MESSAGES/kudzu.mo -#usr/share/locale/is -#usr/share/locale/is/LC_MESSAGES -#usr/share/locale/is/LC_MESSAGES/kudzu.mo -#usr/share/locale/it/LC_MESSAGES/kudzu.mo -#usr/share/locale/ja/LC_MESSAGES/kudzu.mo -#usr/share/locale/ka -#usr/share/locale/ka/LC_MESSAGES -#usr/share/locale/ka/LC_MESSAGES/kudzu.mo -#usr/share/locale/kn -#usr/share/locale/kn/LC_MESSAGES -#usr/share/locale/kn/LC_MESSAGES/kudzu.mo -#usr/share/locale/ko/LC_MESSAGES/kudzu.mo -#usr/share/locale/ku -#usr/share/locale/ku/LC_MESSAGES -#usr/share/locale/ku/LC_MESSAGES/kudzu.mo -#usr/share/locale/lo -#usr/share/locale/lo/LC_MESSAGES -#usr/share/locale/lo/LC_MESSAGES/kudzu.mo -#usr/share/locale/lt -#usr/share/locale/lt/LC_MESSAGES -#usr/share/locale/lt/LC_MESSAGES/kudzu.mo -#usr/share/locale/lv -#usr/share/locale/lv/LC_MESSAGES -#usr/share/locale/lv/LC_MESSAGES/kudzu.mo -#usr/share/locale/mk -#usr/share/locale/mk/LC_MESSAGES -#usr/share/locale/mk/LC_MESSAGES/kudzu.mo -#usr/share/locale/ml -#usr/share/locale/ml/LC_MESSAGES -#usr/share/locale/ml/LC_MESSAGES/kudzu.mo -#usr/share/locale/mr -#usr/share/locale/mr/LC_MESSAGES -#usr/share/locale/mr/LC_MESSAGES/kudzu.mo -#usr/share/locale/ms -#usr/share/locale/ms/LC_MESSAGES -#usr/share/locale/ms/LC_MESSAGES/kudzu.mo -#usr/share/locale/my -#usr/share/locale/my/LC_MESSAGES -#usr/share/locale/my/LC_MESSAGES/kudzu.mo -#usr/share/locale/nb/LC_MESSAGES/kudzu.mo -#usr/share/locale/nl/LC_MESSAGES/kudzu.mo -#usr/share/locale/nn -#usr/share/locale/nn/LC_MESSAGES -#usr/share/locale/nn/LC_MESSAGES/kudzu.mo -#usr/share/locale/no -#usr/share/locale/no/LC_MESSAGES -#usr/share/locale/no/LC_MESSAGES/kudzu.mo -#usr/share/locale/or -#usr/share/locale/or/LC_MESSAGES -#usr/share/locale/or/LC_MESSAGES/kudzu.mo -#usr/share/locale/pa -#usr/share/locale/pa/LC_MESSAGES -#usr/share/locale/pa/LC_MESSAGES/kudzu.mo -#usr/share/locale/pl/LC_MESSAGES/kudzu.mo -#usr/share/locale/pt -#usr/share/locale/pt/LC_MESSAGES -#usr/share/locale/pt/LC_MESSAGES/kudzu.mo -#usr/share/locale/pt_BR/LC_MESSAGES/kudzu.mo -#usr/share/locale/ro/LC_MESSAGES/kudzu.mo -#usr/share/locale/ru/LC_MESSAGES/kudzu.mo -#usr/share/locale/si -#usr/share/locale/si/LC_MESSAGES -#usr/share/locale/si/LC_MESSAGES/kudzu.mo -#usr/share/locale/sk/LC_MESSAGES/kudzu.mo -#usr/share/locale/sl/LC_MESSAGES/kudzu.mo -#usr/share/locale/sq -#usr/share/locale/sq/LC_MESSAGES -#usr/share/locale/sq/LC_MESSAGES/kudzu.mo -#usr/share/locale/sr -#usr/share/locale/sr/LC_MESSAGES -#usr/share/locale/sr/LC_MESSAGES/kudzu.mo -#usr/share/locale/sr@Latn -#usr/share/locale/sr@Latn/LC_MESSAGES -#usr/share/locale/sr@Latn/LC_MESSAGES/kudzu.mo -#usr/share/locale/sv/LC_MESSAGES/kudzu.mo -#usr/share/locale/ta -#usr/share/locale/ta/LC_MESSAGES -#usr/share/locale/ta/LC_MESSAGES/kudzu.mo -#usr/share/locale/te -#usr/share/locale/te/LC_MESSAGES -#usr/share/locale/te/LC_MESSAGES/kudzu.mo -#usr/share/locale/tr/LC_MESSAGES/kudzu.mo -#usr/share/locale/uk/LC_MESSAGES/kudzu.mo -#usr/share/locale/ur -#usr/share/locale/ur/LC_MESSAGES -#usr/share/locale/ur/LC_MESSAGES/kudzu.mo -#usr/share/locale/vi -#usr/share/locale/vi/LC_MESSAGES -#usr/share/locale/vi/LC_MESSAGES/kudzu.mo -#usr/share/locale/wa -#usr/share/locale/wa/LC_MESSAGES -#usr/share/locale/wa/LC_MESSAGES/kudzu.mo -#usr/share/locale/zh_CN/LC_MESSAGES/kudzu.mo -#usr/share/locale/zh_TW/LC_MESSAGES/kudzu.mo -#usr/share/man/man8/kudzu.8 diff --git a/config/rootfiles/common/less b/config/rootfiles/common/less index bd8faf544f..5b573c9ba1 100644 --- a/config/rootfiles/common/less +++ b/config/rootfiles/common/less @@ -1,6 +1,6 @@ usr/bin/less #usr/bin/lessecho #usr/bin/lesskey -#usr/man/man1/less.1 -#usr/man/man1/lessecho.1 -#usr/man/man1/lesskey.1 +#usr/share/man/man1/less.1 +#usr/share/man/man1/lessecho.1 +#usr/share/man/man1/lesskey.1 diff --git a/config/rootfiles/common/libaal b/config/rootfiles/common/libaal deleted file mode 100644 index de785ebc09..0000000000 --- a/config/rootfiles/common/libaal +++ /dev/null @@ -1,31 +0,0 @@ -#usr/include/aal -#usr/include/aal/bitops.h -#usr/include/aal/block.h -#usr/include/aal/debug.h -#usr/include/aal/device.h -#usr/include/aal/endian.h -#usr/include/aal/exception.h -#usr/include/aal/file.h -#usr/include/aal/gauge.h -#usr/include/aal/hash.h -#usr/include/aal/libaal.h -#usr/include/aal/list.h -#usr/include/aal/malloc.h -#usr/include/aal/math.h -#usr/include/aal/print.h -#usr/include/aal/stream.h -#usr/include/aal/string.h -#usr/include/aal/types.h -#usr/include/aal/ui.h -#usr/include/aal/unaligned.h -usr/lib/libaal-1.0.so.5 -usr/lib/libaal-1.0.so.5.0.0 -#usr/lib/libaal-minimal.a -#usr/lib/libaal-minimal.la -usr/lib/libaal-minimal.so -usr/lib/libaal-minimal.so.0 -usr/lib/libaal-minimal.so.0.0.0 -#usr/lib/libaal.a -#usr/lib/libaal.la -usr/lib/libaal.so -#usr/share/aclocal/libaal.m4 diff --git a/config/rootfiles/common/libffi b/config/rootfiles/common/libffi new file mode 100644 index 0000000000..2c887bdb31 --- /dev/null +++ b/config/rootfiles/common/libffi @@ -0,0 +1,15 @@ +#usr/lib/libffi-3.0.11 +#usr/lib/libffi-3.0.11/include +#usr/lib/libffi-3.0.11/include/ffi.h +#usr/lib/libffi-3.0.11/include/ffitarget.h +#usr/lib/libffi.a +#usr/lib/libffi.la +#usr/lib/libffi.so +usr/lib/libffi.so.6 +usr/lib/libffi.so.6.0.0 +#usr/lib/pkgconfig/libffi.pc +#usr/share/info/libffi.info +#usr/share/man/man3/ffi.3 +#usr/share/man/man3/ffi_call.3 +#usr/share/man/man3/ffi_prep_cif.3 +#usr/share/man/man3/ffi_prep_cif_var.3 diff --git a/config/rootfiles/common/libmnl b/config/rootfiles/common/libmnl new file mode 100644 index 0000000000..36732c4421 --- /dev/null +++ b/config/rootfiles/common/libmnl @@ -0,0 +1,7 @@ +#usr/include/libmnl +#usr/include/libmnl/libmnl.h +#usr/lib/libmnl.la +usr/lib/libmnl.so +usr/lib/libmnl.so.0 +usr/lib/libmnl.so.0.1.0 +#usr/lib/pkgconfig/libmnl.pc diff --git a/config/rootfiles/common/libsafe b/config/rootfiles/common/libsafe deleted file mode 100644 index 8275e4aa4a..0000000000 --- a/config/rootfiles/common/libsafe +++ /dev/null @@ -1,4 +0,0 @@ -etc/ld.so.preload -lib/libsafe.so.2 -lib/libsafe.so.2.0.16 -#usr/man/man8/libsafe.8 diff --git a/config/rootfiles/common/libsigc++ b/config/rootfiles/common/libsigc++ index 39029d3e9e..a05b64bed9 100644 --- a/config/rootfiles/common/libsigc++ +++ b/config/rootfiles/common/libsigc++ @@ -78,7 +78,7 @@ #usr/include/sigc++-2.0/sigc++/visit_each.h #usr/lib/libsigc-2.0.a #usr/lib/libsigc-2.0.la -usr/lib/libsigc-2.0.so +#usr/lib/libsigc-2.0.so usr/lib/libsigc-2.0.so.0 usr/lib/libsigc-2.0.so.0.0.0 #usr/lib/pkgconfig/sigc++-2.0.pc @@ -157,6 +157,7 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/classes.html #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core.html #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core__inherit__graph.png +#usr/share/doc/libsigc-2.0/docs/reference/html/classnil.html #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument-members.html #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument.html #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4-members.html @@ -460,15 +461,6 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/connection_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/deduce__result__type_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/deprecated.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F.html -#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F_dep.png -#usr/share/doc/libsigc-2.0/docs/reference/html/dirs.html #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.css #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.png #usr/share/doc/libsigc-2.0/docs/reference/html/exception__catch_8h.html @@ -515,15 +507,40 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x7e.html #usr/share/doc/libsigc-2.0/docs/reference/html/functions_rela.html #usr/share/doc/libsigc-2.0/docs/reference/html/functions_type.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x66.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x69.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6c.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x74.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x61.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x62.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x66.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x69.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6c.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x74.html +#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/functor__trait_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/functors_2slot_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/functors_8h.html #usr/share/doc/libsigc-2.0/docs/reference/html/globals.html #usr/share/doc/libsigc-2.0/docs/reference/html/globals_defs.html -#usr/share/doc/libsigc-2.0/docs/reference/html/globals_func.html -#usr/share/doc/libsigc-2.0/docs/reference/html/globals_type.html -#usr/share/doc/libsigc-2.0/docs/reference/html/globals_vars.html #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.dot #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.html #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.png @@ -740,6 +757,7 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__260.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__261.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__262.png +#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__263.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__27.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__28.png #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__29.png @@ -828,7 +846,33 @@ usr/lib/libsigc-2.0.so.0.0.0 #usr/share/doc/libsigc-2.0/docs/reference/html/modules.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespaceSigC.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x62.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x66.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x68.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6d.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x75.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x63.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x64.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x65.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x67.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x68.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6d.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6f.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x70.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x72.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x73.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x75.html +#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x76.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_type.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_vars.html #usr/share/doc/libsigc-2.0/docs/reference/html/namespaces.html diff --git a/config/rootfiles/common/libtool b/config/rootfiles/common/libtool new file mode 100644 index 0000000000..5646be25ab --- /dev/null +++ b/config/rootfiles/common/libtool @@ -0,0 +1,71 @@ +#usr/bin/libtool +#usr/bin/libtoolize +#usr/include/libltdl +#usr/include/libltdl/lt_dlloader.h +#usr/include/libltdl/lt_error.h +#usr/include/libltdl/lt_system.h +#usr/include/ltdl.h +#usr/lib/libltdl.a +#usr/lib/libltdl.la +usr/lib/libltdl.so +usr/lib/libltdl.so.7 +usr/lib/libltdl.so.7.3.0 +#usr/share/aclocal/argz.m4 +#usr/share/aclocal/libtool.m4 +#usr/share/aclocal/ltdl.m4 +#usr/share/aclocal/ltoptions.m4 +#usr/share/aclocal/ltsugar.m4 +#usr/share/aclocal/ltversion.m4 +#usr/share/aclocal/lt~obsolete.m4 +#usr/share/info/libtool.info +#usr/share/info/libtool.info-1 +#usr/share/info/libtool.info-2 +#usr/share/libtool +#usr/share/libtool/config +#usr/share/libtool/config/compile +#usr/share/libtool/config/config.guess +#usr/share/libtool/config/config.sub +#usr/share/libtool/config/depcomp +#usr/share/libtool/config/install-sh +#usr/share/libtool/config/ltmain.sh +#usr/share/libtool/config/missing +#usr/share/libtool/libltdl +#usr/share/libtool/libltdl/COPYING.LIB +#usr/share/libtool/libltdl/Makefile.am +#usr/share/libtool/libltdl/Makefile.in +#usr/share/libtool/libltdl/Makefile.inc +#usr/share/libtool/libltdl/README +#usr/share/libtool/libltdl/aclocal.m4 +#usr/share/libtool/libltdl/argz.c +#usr/share/libtool/libltdl/argz_.h +#usr/share/libtool/libltdl/config-h.in +#usr/share/libtool/libltdl/configure +#usr/share/libtool/libltdl/configure.ac +#usr/share/libtool/libltdl/libltdl +#usr/share/libtool/libltdl/libltdl/lt__alloc.h +#usr/share/libtool/libltdl/libltdl/lt__dirent.h +#usr/share/libtool/libltdl/libltdl/lt__glibc.h +#usr/share/libtool/libltdl/libltdl/lt__private.h +#usr/share/libtool/libltdl/libltdl/lt__strl.h +#usr/share/libtool/libltdl/libltdl/lt_dlloader.h +#usr/share/libtool/libltdl/libltdl/lt_error.h +#usr/share/libtool/libltdl/libltdl/lt_system.h +#usr/share/libtool/libltdl/libltdl/slist.h +#usr/share/libtool/libltdl/loaders +#usr/share/libtool/libltdl/loaders/dld_link.c +#usr/share/libtool/libltdl/loaders/dlopen.c +#usr/share/libtool/libltdl/loaders/dyld.c +#usr/share/libtool/libltdl/loaders/load_add_on.c +#usr/share/libtool/libltdl/loaders/loadlibrary.c +#usr/share/libtool/libltdl/loaders/preopen.c +#usr/share/libtool/libltdl/loaders/shl_load.c +#usr/share/libtool/libltdl/lt__alloc.c +#usr/share/libtool/libltdl/lt__dirent.c +#usr/share/libtool/libltdl/lt__strl.c +#usr/share/libtool/libltdl/lt_dlloader.c +#usr/share/libtool/libltdl/lt_error.c +#usr/share/libtool/libltdl/ltdl.c +#usr/share/libtool/libltdl/ltdl.h +#usr/share/libtool/libltdl/slist.c +#usr/share/man/man1/libtool.1 +#usr/share/man/man1/libtoolize.1 diff --git a/config/rootfiles/common/libupnp b/config/rootfiles/common/libupnp index 619567fa76..cec62c4639 100644 --- a/config/rootfiles/common/libupnp +++ b/config/rootfiles/common/libupnp @@ -3,26 +3,32 @@ #usr/include/upnp/LinkedList.h #usr/include/upnp/ThreadPool.h #usr/include/upnp/TimerThread.h -#usr/include/upnp/iasnprintf.h +#usr/include/upnp/UpnpGlobal.h +#usr/include/upnp/UpnpInet.h +#usr/include/upnp/UpnpIntTypes.h +#usr/include/upnp/UpnpStdInt.h +#usr/include/upnp/UpnpString.h +#usr/include/upnp/UpnpUniStd.h #usr/include/upnp/ithread.h #usr/include/upnp/ixml.h +#usr/include/upnp/ixmldebug.h #usr/include/upnp/upnp.h #usr/include/upnp/upnpconfig.h +#usr/include/upnp/upnpdebug.h #usr/include/upnp/upnptools.h #usr/lib/libixml.a #usr/lib/libixml.la usr/lib/libixml.so usr/lib/libixml.so.2 +usr/lib/libixml.so.2.0.8 #usr/lib/libthreadutil.a #usr/lib/libthreadutil.la usr/lib/libthreadutil.so -usr/lib/libthreadutil.so.2 +usr/lib/libthreadutil.so.6 +usr/lib/libthreadutil.so.6.0.3 #usr/lib/libupnp.a #usr/lib/libupnp.la -#usr/lib/pkgconfig/libupnp.pc -#usr/include/upnp/upnpdebug.h -usr/lib/libixml.so.2.0.4 -usr/lib/libthreadutil.so.2.2.3 usr/lib/libupnp.so -usr/lib/libupnp.so.3 -usr/lib/libupnp.so.3.0.5 +usr/lib/libupnp.so.6 +usr/lib/libupnp.so.6.3.2 +#usr/lib/pkgconfig/libupnp.pc diff --git a/config/rootfiles/common/linux-atm b/config/rootfiles/common/linux-atm index 1a0f6990ad..db5793a3b6 100644 --- a/config/rootfiles/common/linux-atm +++ b/config/rootfiles/common/linux-atm @@ -17,6 +17,7 @@ usr/lib/libatm.so usr/lib/libatm.so.1 usr/lib/libatm.so.1.0.0 +#usr/man/man4 #usr/man/man4/atmsigd.conf.4 #usr/man/man7/qos.7 #usr/man/man7/sap.7 diff --git a/config/rootfiles/common/linux-firmware b/config/rootfiles/common/linux-firmware index d4b9071065..78bcc64d39 100644 --- a/config/rootfiles/common/linux-firmware +++ b/config/rootfiles/common/linux-firmware @@ -3,10 +3,12 @@ lib/firmware/3com/3C359.bin lib/firmware/3com/typhoon.bin lib/firmware/GPL-3 lib/firmware/LICENCE.Marvell +lib/firmware/LICENCE.OLPC lib/firmware/LICENCE.agere lib/firmware/LICENCE.atheros_firmware lib/firmware/LICENCE.broadcom_bcm43xx lib/firmware/LICENCE.chelsio_firmware +lib/firmware/LICENCE.ene_firmware lib/firmware/LICENCE.i2400m lib/firmware/LICENCE.iwlwifi_firmware lib/firmware/LICENCE.mwl8335 @@ -21,7 +23,9 @@ lib/firmware/LICENCE.ueagle-atm4-firmware lib/firmware/LICENCE.via_vt6656 lib/firmware/LICENCE.xc5000 lib/firmware/LICENSE.dib0700 -lib/firmware/LICENSE.radeon_rlc +lib/firmware/LICENSE.radeon +#lib/firmware/Makefile +lib/firmware/README #lib/firmware/RTL8192E lib/firmware/RTL8192E/boot.img lib/firmware/RTL8192E/data.img @@ -47,6 +51,9 @@ lib/firmware/agere_sta_fw.bin lib/firmware/ar3k/1020200/PS_ASIC.pst lib/firmware/ar3k/1020200/RamPatch.txt lib/firmware/ar3k/1020200/ar3kbdaddr.pst +#lib/firmware/ar3k/1020201 +lib/firmware/ar3k/1020201/PS_ASIC.pst +lib/firmware/ar3k/1020201/RamPatch.txt #lib/firmware/ar3k/30000 lib/firmware/ar3k/30000/PS_ASIC.pst lib/firmware/ar3k/30000/RamPatch.txt @@ -55,11 +62,24 @@ lib/firmware/ar3k/30000/ar3kbdaddr.pst lib/firmware/ar3k/30101/PS_ASIC.pst lib/firmware/ar3k/30101/RamPatch.txt lib/firmware/ar3k/30101/ar3kbdaddr.pst +#lib/firmware/ar3k/30101coex +lib/firmware/ar3k/30101coex/PS_ASIC.pst +lib/firmware/ar3k/30101coex/PS_ASIC_aclHighPri.pst +lib/firmware/ar3k/30101coex/PS_ASIC_aclLowPri.pst +lib/firmware/ar3k/30101coex/RamPatch.txt +lib/firmware/ar3k/30101coex/ar3kbdaddr.pst lib/firmware/ar3k/AthrBT_0x01020001.dfu lib/firmware/ar3k/AthrBT_0x01020200.dfu +lib/firmware/ar3k/AthrBT_0x01020201.dfu +lib/firmware/ar3k/AthrBT_0x11020000.dfu +lib/firmware/ar3k/AthrBT_0x31010000.dfu lib/firmware/ar3k/ramps_0x01020001_26.dfu lib/firmware/ar3k/ramps_0x01020200_26.dfu lib/firmware/ar3k/ramps_0x01020200_40.dfu +lib/firmware/ar3k/ramps_0x01020201_26.dfu +lib/firmware/ar3k/ramps_0x01020201_40.dfu +lib/firmware/ar3k/ramps_0x11020000_40.dfu +lib/firmware/ar3k/ramps_0x31010000_40.dfu lib/firmware/ar7010.fw lib/firmware/ar7010_1_1.fw lib/firmware/ar9170-1.fw @@ -73,6 +93,15 @@ lib/firmware/ath6k/AR6002/data.patch.hw2_0.bin lib/firmware/ath6k/AR6002/eeprom.bin lib/firmware/ath6k/AR6002/eeprom.data #lib/firmware/ath6k/AR6003 +#lib/firmware/ath6k/AR6003.1 +#lib/firmware/ath6k/AR6003.1/hw2.1.1 +lib/firmware/ath6k/AR6003.1/hw2.1.1/athwlan.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.SD31.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.SD32.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/bdata.WB31.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/data.patch.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/endpointping.bin +lib/firmware/ath6k/AR6003.1/hw2.1.1/otp.bin #lib/firmware/ath6k/AR6003/hw1.0 lib/firmware/ath6k/AR6003/hw1.0/athwlan.bin.z77 lib/firmware/ath6k/AR6003/hw1.0/bdata.SD31.bin @@ -94,9 +123,20 @@ lib/firmware/ath6k/AR6003/hw2.1.1/bdata.SD32.bin lib/firmware/ath6k/AR6003/hw2.1.1/bdata.WB31.bin lib/firmware/ath6k/AR6003/hw2.1.1/data.patch.bin lib/firmware/ath6k/AR6003/hw2.1.1/endpointping.bin +lib/firmware/ath6k/AR6003/hw2.1.1/fw-2.bin +lib/firmware/ath6k/AR6003/hw2.1.1/fw-3.bin lib/firmware/ath6k/AR6003/hw2.1.1/otp.bin +#lib/firmware/ath6k/AR6004 +#lib/firmware/ath6k/AR6004/hw1.2 +lib/firmware/ath6k/AR6004/hw1.2/bdata.bin +lib/firmware/ath6k/AR6004/hw1.2/fw-2.bin +#lib/firmware/ath6k/AR6004/hw1.3 +lib/firmware/ath6k/AR6004/hw1.3/bdata.bin +lib/firmware/ath6k/AR6004/hw1.3/fw-3.bin lib/firmware/atmsar11.fw #lib/firmware/av7110 +#lib/firmware/av7110/Boot.S +#lib/firmware/av7110/Makefile lib/firmware/av7110/bootcode.bin #lib/firmware/bnx2 lib/firmware/bnx2/bnx2-mips-06-4.6.16.fw @@ -104,6 +144,7 @@ lib/firmware/bnx2/bnx2-mips-06-5.0.0.j3.fw lib/firmware/bnx2/bnx2-mips-06-5.0.0.j6.fw lib/firmware/bnx2/bnx2-mips-06-6.0.15.fw lib/firmware/bnx2/bnx2-mips-06-6.2.1.fw +lib/firmware/bnx2/bnx2-mips-06-6.2.3.fw lib/firmware/bnx2/bnx2-mips-09-4.6.17.fw lib/firmware/bnx2/bnx2-mips-09-5.0.0.j15.fw lib/firmware/bnx2/bnx2-mips-09-5.0.0.j3.fw @@ -111,6 +152,7 @@ lib/firmware/bnx2/bnx2-mips-09-5.0.0.j9.fw lib/firmware/bnx2/bnx2-mips-09-6.0.17.fw lib/firmware/bnx2/bnx2-mips-09-6.2.1.fw lib/firmware/bnx2/bnx2-mips-09-6.2.1a.fw +lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw lib/firmware/bnx2/bnx2-rv2p-06-4.6.16.fw lib/firmware/bnx2/bnx2-rv2p-06-5.0.0.j3.fw lib/firmware/bnx2/bnx2-rv2p-06-6.0.15.fw @@ -121,17 +163,48 @@ lib/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw lib/firmware/bnx2/bnx2-rv2p-09ax-5.0.0.j3.fw lib/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw +#lib/firmware/bnx2x lib/firmware/bnx2x-e1-4.8.53.0.fw lib/firmware/bnx2x-e1-5.2.13.0.fw lib/firmware/bnx2x-e1-5.2.7.0.fw lib/firmware/bnx2x-e1h-4.8.53.0.fw lib/firmware/bnx2x-e1h-5.2.13.0.fw lib/firmware/bnx2x-e1h-5.2.7.0.fw +lib/firmware/bnx2x/bnx2x-e1-6.0.34.0.fw +lib/firmware/bnx2x/bnx2x-e1-6.2.5.0.fw +lib/firmware/bnx2x/bnx2x-e1-6.2.9.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.0.20.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.0.23.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.0.29.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.2.16.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1-7.8.2.0.fw +lib/firmware/bnx2x/bnx2x-e1h-6.0.34.0.fw +lib/firmware/bnx2x/bnx2x-e1h-6.2.5.0.fw +lib/firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.0.20.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.0.23.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.0.29.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.2.16.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e1h-7.8.2.0.fw +lib/firmware/bnx2x/bnx2x-e2-6.0.34.0.fw +lib/firmware/bnx2x/bnx2x-e2-6.2.5.0.fw +lib/firmware/bnx2x/bnx2x-e2-6.2.9.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.0.20.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.0.23.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.0.29.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.2.16.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.2.51.0.fw +lib/firmware/bnx2x/bnx2x-e2-7.8.2.0.fw #lib/firmware/brcm lib/firmware/brcm/bcm4329-fullmac-4.bin -lib/firmware/brcm/bcm4329-fullmac-4.txt lib/firmware/brcm/bcm43xx-0.fw lib/firmware/brcm/bcm43xx_hdr-0.fw +lib/firmware/brcm/brcmfmac43236b.bin +lib/firmware/brcm/brcmfmac4329.bin +lib/firmware/brcm/brcmfmac4330.bin +lib/firmware/brcm/brcmfmac4334.bin #lib/firmware/cis lib/firmware/cis/3CCFEM556.cis lib/firmware/cis/3CXEM556.cis @@ -140,6 +213,7 @@ lib/firmware/cis/COMpad4.cis lib/firmware/cis/DP83903.cis lib/firmware/cis/LA-PCM.cis lib/firmware/cis/MT5634ZLX.cis +#lib/firmware/cis/Makefile lib/firmware/cis/NE2K.cis lib/firmware/cis/PCMLM28.cis lib/firmware/cis/PE-200.cis @@ -163,6 +237,7 @@ lib/firmware/cis/src/PE520.cis lib/firmware/cis/src/RS-COM-2P.cis lib/firmware/cis/src/tamarack.cis lib/firmware/cis/tamarack.cis +#lib/firmware/configure #lib/firmware/cpia2 lib/firmware/cpia2/stv0672_vp4.bin #lib/firmware/cxgb3 @@ -174,17 +249,22 @@ lib/firmware/cxgb3/t3c_psram-1.1.0.bin lib/firmware/cxgb3/t3fw-7.0.0.bin lib/firmware/cxgb3/t3fw-7.1.0.bin lib/firmware/cxgb3/t3fw-7.10.0.bin +lib/firmware/cxgb3/t3fw-7.12.0.bin lib/firmware/cxgb3/t3fw-7.4.0.bin #lib/firmware/cxgb4 +lib/firmware/cxgb4/t4fw-1.4.23.0.bin lib/firmware/cxgb4/t4fw.bin #lib/firmware/dabusb lib/firmware/dabusb/bitstream.bin lib/firmware/dabusb/firmware.fw #lib/firmware/dsp56k +#lib/firmware/dsp56k/Makefile #lib/firmware/dsp56k/bootstrap.asm lib/firmware/dsp56k/bootstrap.bin +#lib/firmware/dsp56k/concat-bootstrap.pl lib/firmware/dvb-fe-xc5000-1.6.114.fw lib/firmware/dvb-usb-dib0700-1.20.fw +lib/firmware/dvb-usb-terratec-h5-drxk.fw #lib/firmware/e100 lib/firmware/e100/d101m_ucode.bin lib/firmware/e100/d101s_ucode.bin @@ -204,6 +284,13 @@ lib/firmware/emi62/bitstream.fw lib/firmware/emi62/loader.fw lib/firmware/emi62/midi.fw lib/firmware/emi62/spdif.fw +#lib/firmware/ene-ub6250 +lib/firmware/ene-ub6250/ms_init.bin +lib/firmware/ene-ub6250/ms_rdwr.bin +lib/firmware/ene-ub6250/msp_rdwr.bin +lib/firmware/ene-ub6250/sd_init1.bin +lib/firmware/ene-ub6250/sd_init2.bin +lib/firmware/ene-ub6250/sd_rdwr.bin #lib/firmware/ess lib/firmware/ess/maestro3_assp_kernel.fw lib/firmware/ess/maestro3_assp_minisrc.fw @@ -214,8 +301,20 @@ lib/firmware/i2400m-fw-usb-1.4.sbcf lib/firmware/i2400m-fw-usb-1.5.sbcf lib/firmware/i6050-fw-usb-1.5.sbcf lib/firmware/intelliport2.bin +#lib/firmware/isci +#lib/firmware/isci/Makefile +lib/firmware/isci/README +#lib/firmware/isci/create_fw.c +#lib/firmware/isci/create_fw.h +lib/firmware/isci/isci_firmware.bin +#lib/firmware/isci/probe_roms.h lib/firmware/iwlwifi-100-5.ucode lib/firmware/iwlwifi-1000-3.ucode +lib/firmware/iwlwifi-1000-5.ucode +lib/firmware/iwlwifi-105-6.ucode +lib/firmware/iwlwifi-135-6.ucode +lib/firmware/iwlwifi-2000-6.ucode +lib/firmware/iwlwifi-2030-6.ucode lib/firmware/iwlwifi-3945-2.ucode lib/firmware/iwlwifi-4965-2.ucode lib/firmware/iwlwifi-5000-1.ucode @@ -224,7 +323,9 @@ lib/firmware/iwlwifi-5000-5.ucode lib/firmware/iwlwifi-5150-2.ucode lib/firmware/iwlwifi-6000-4.ucode lib/firmware/iwlwifi-6000g2a-5.ucode +lib/firmware/iwlwifi-6000g2a-6.ucode lib/firmware/iwlwifi-6000g2b-5.ucode +lib/firmware/iwlwifi-6000g2b-6.ucode lib/firmware/iwlwifi-6050-4.ucode lib/firmware/iwlwifi-6050-5.ucode #lib/firmware/kaweth @@ -246,14 +347,18 @@ lib/firmware/keyspan/usa28xb.fw lib/firmware/keyspan/usa49w.fw lib/firmware/keyspan/usa49wlc.fw #lib/firmware/keyspan_pda +#lib/firmware/keyspan_pda/Makefile #lib/firmware/keyspan_pda/keyspan_pda.S lib/firmware/keyspan_pda/keyspan_pda.fw #lib/firmware/keyspan_pda/xircom_pgs.S lib/firmware/keyspan_pda/xircom_pgs.fw #lib/firmware/korg lib/firmware/korg/k1212.dsp +lib/firmware/lbtf_usb.bin lib/firmware/lgs8g75.fw #lib/firmware/libertas +lib/firmware/libertas/cf8381.bin +lib/firmware/libertas/cf8381_helper.bin lib/firmware/libertas/cf8385.bin lib/firmware/libertas/cf8385_helper.bin lib/firmware/libertas/gspi8682.bin @@ -262,6 +367,7 @@ lib/firmware/libertas/gspi8686_v9.bin lib/firmware/libertas/gspi8686_v9_helper.bin lib/firmware/libertas/gspi8688.bin lib/firmware/libertas/gspi8688_helper.bin +lib/firmware/libertas/lbtf_sdio.bin lib/firmware/libertas/sd8385.bin lib/firmware/libertas/sd8385_helper.bin lib/firmware/libertas/sd8682.bin @@ -272,6 +378,7 @@ lib/firmware/libertas/sd8686_v9.bin lib/firmware/libertas/sd8686_v9_helper.bin lib/firmware/libertas/sd8688.bin lib/firmware/libertas/sd8688_helper.bin +lib/firmware/libertas/usb8388_olpc.bin lib/firmware/libertas/usb8388_v5.bin lib/firmware/libertas/usb8388_v9.bin lib/firmware/libertas/usb8682.bin @@ -285,7 +392,6 @@ lib/firmware/mts_edge.fw lib/firmware/mts_gsm.fw lib/firmware/mts_mt9234mu.fw lib/firmware/mts_mt9234zba.fw -lib/firmware/mwl8335_duplex.fw #lib/firmware/mwl8k lib/firmware/mwl8k/fmimage_8366.fw lib/firmware/mwl8k/fmimage_8366_ap-1.fw @@ -317,6 +423,9 @@ lib/firmware/qlogic/sd7220.fw #lib/firmware/r128 lib/firmware/r128/r128_cce.bin #lib/firmware/radeon +lib/firmware/radeon/ARUBA_me.bin +lib/firmware/radeon/ARUBA_pfp.bin +lib/firmware/radeon/ARUBA_rlc.bin lib/firmware/radeon/BARTS_mc.bin lib/firmware/radeon/BARTS_me.bin lib/firmware/radeon/BARTS_pfp.bin @@ -339,6 +448,11 @@ lib/firmware/radeon/JUNIPER_pfp.bin lib/firmware/radeon/JUNIPER_rlc.bin lib/firmware/radeon/PALM_me.bin lib/firmware/radeon/PALM_pfp.bin +lib/firmware/radeon/PITCAIRN_ce.bin +lib/firmware/radeon/PITCAIRN_mc.bin +lib/firmware/radeon/PITCAIRN_me.bin +lib/firmware/radeon/PITCAIRN_pfp.bin +lib/firmware/radeon/PITCAIRN_rlc.bin lib/firmware/radeon/R100_cp.bin lib/firmware/radeon/R200_cp.bin lib/firmware/radeon/R300_cp.bin @@ -371,10 +485,24 @@ lib/firmware/radeon/RV730_me.bin lib/firmware/radeon/RV730_pfp.bin lib/firmware/radeon/RV770_me.bin lib/firmware/radeon/RV770_pfp.bin +lib/firmware/radeon/SUMO2_me.bin +lib/firmware/radeon/SUMO2_pfp.bin +lib/firmware/radeon/SUMO_me.bin +lib/firmware/radeon/SUMO_pfp.bin lib/firmware/radeon/SUMO_rlc.bin +lib/firmware/radeon/TAHITI_ce.bin +lib/firmware/radeon/TAHITI_mc.bin +lib/firmware/radeon/TAHITI_me.bin +lib/firmware/radeon/TAHITI_pfp.bin +lib/firmware/radeon/TAHITI_rlc.bin lib/firmware/radeon/TURKS_mc.bin lib/firmware/radeon/TURKS_me.bin lib/firmware/radeon/TURKS_pfp.bin +lib/firmware/radeon/VERDE_ce.bin +lib/firmware/radeon/VERDE_mc.bin +lib/firmware/radeon/VERDE_me.bin +lib/firmware/radeon/VERDE_pfp.bin +lib/firmware/radeon/VERDE_rlc.bin lib/firmware/rt2561.bin lib/firmware/rt2561s.bin lib/firmware/rt2661.bin @@ -383,20 +511,31 @@ lib/firmware/rt2870.bin lib/firmware/rt3070.bin lib/firmware/rt3071.bin lib/firmware/rt3090.bin +lib/firmware/rt3290.bin lib/firmware/rt73.bin #lib/firmware/rtl_nic lib/firmware/rtl_nic/rtl8105e-1.fw +lib/firmware/rtl_nic/rtl8106e-1.fw lib/firmware/rtl_nic/rtl8168d-1.fw lib/firmware/rtl_nic/rtl8168d-2.fw lib/firmware/rtl_nic/rtl8168e-1.fw lib/firmware/rtl_nic/rtl8168e-2.fw lib/firmware/rtl_nic/rtl8168e-3.fw +lib/firmware/rtl_nic/rtl8168f-1.fw +lib/firmware/rtl_nic/rtl8168f-2.fw +lib/firmware/rtl_nic/rtl8168g-1.fw +lib/firmware/rtl_nic/rtl8402-1.fw +lib/firmware/rtl_nic/rtl8411-1.fw #lib/firmware/rtlwifi lib/firmware/rtlwifi/rtl8192cfw.bin +lib/firmware/rtlwifi/rtl8192cfwU.bin +lib/firmware/rtlwifi/rtl8192cfwU_B.bin lib/firmware/rtlwifi/rtl8192cufw.bin lib/firmware/rtlwifi/rtl8192defw.bin lib/firmware/rtlwifi/rtl8192sefw.bin lib/firmware/rtlwifi/rtl8712u.bin +lib/firmware/rtlwifi/rtl8723fw.bin +lib/firmware/rtlwifi/rtl8723fw_B.bin lib/firmware/s2250.fw lib/firmware/s2250_loader.fw #lib/firmware/sb16 @@ -423,10 +562,29 @@ lib/firmware/ti-connectivity/TIInit_7.2.31.bts lib/firmware/ti-connectivity/wl1271-fw-2.bin lib/firmware/ti-connectivity/wl1271-fw-ap.bin lib/firmware/ti-connectivity/wl1271-fw.bin -lib/firmware/ti-connectivity/wl1271-nvs-example-wl128x.bin lib/firmware/ti-connectivity/wl1271-nvs.bin +lib/firmware/ti-connectivity/wl127x-fw-3.bin +lib/firmware/ti-connectivity/wl127x-fw-4-mr.bin +lib/firmware/ti-connectivity/wl127x-fw-4-plt.bin +lib/firmware/ti-connectivity/wl127x-fw-4-sr.bin +lib/firmware/ti-connectivity/wl127x-fw-5-mr.bin +lib/firmware/ti-connectivity/wl127x-fw-5-plt.bin +lib/firmware/ti-connectivity/wl127x-fw-5-sr.bin +lib/firmware/ti-connectivity/wl127x-fw-plt-3.bin +lib/firmware/ti-connectivity/wl127x-nvs.bin +lib/firmware/ti-connectivity/wl128x-fw-3.bin +lib/firmware/ti-connectivity/wl128x-fw-4-mr.bin +lib/firmware/ti-connectivity/wl128x-fw-4-plt.bin +lib/firmware/ti-connectivity/wl128x-fw-4-sr.bin +lib/firmware/ti-connectivity/wl128x-fw-5-mr.bin +lib/firmware/ti-connectivity/wl128x-fw-5-plt.bin +lib/firmware/ti-connectivity/wl128x-fw-5-sr.bin lib/firmware/ti-connectivity/wl128x-fw-ap.bin +lib/firmware/ti-connectivity/wl128x-fw-plt-3.bin lib/firmware/ti-connectivity/wl128x-fw.bin +lib/firmware/ti-connectivity/wl128x-nvs.bin +lib/firmware/ti-connectivity/wl12xx-nvs.bin +lib/firmware/ti-connectivity/wl18xx-fw.bin lib/firmware/ti_3410.fw lib/firmware/ti_5052.fw #lib/firmware/tigon @@ -468,8 +626,10 @@ lib/firmware/ueagle-atm/eagleIV.fw #lib/firmware/usbdux/fx2-include.asm #lib/firmware/usbdux/usbdux_firmware.asm #lib/firmware/usbdux/usbduxfast_firmware.asm +#lib/firmware/usbdux/usbduxsigma_firmware.asm lib/firmware/usbdux_firmware.bin lib/firmware/usbduxfast_firmware.bin +lib/firmware/usbduxsigma_firmware.bin lib/firmware/v4l-cx231xx-avcore-01.fw lib/firmware/v4l-cx23418-apu.fw lib/firmware/v4l-cx23418-cpu.fw diff --git a/config/rootfiles/common/linux-libc-header b/config/rootfiles/common/linux-libc-header deleted file mode 100644 index 4fbe3e0f2a..0000000000 --- a/config/rootfiles/common/linux-libc-header +++ /dev/null @@ -1,1745 +0,0 @@ -#usr/include/asm -#usr/include/asm/8253pit.h -#usr/include/asm/a.out.h -#usr/include/asm/agp.h -#usr/include/asm/apic.h -#usr/include/asm/apicdef.h -#usr/include/asm/arch_hooks.h -#usr/include/asm/atomic.h -#usr/include/asm/bitops.h -#usr/include/asm/boot.h -#usr/include/asm/byteorder.h -#usr/include/asm/cache.h -#usr/include/asm/cacheflush.h -#usr/include/asm/checksum.h -#usr/include/asm/cpu.h -#usr/include/asm/cpufeature.h -#usr/include/asm/debugreg.h -#usr/include/asm/desc.h -#usr/include/asm/dma.h -#usr/include/asm/e820.h -#usr/include/asm/elf.h -#usr/include/asm/errno.h -#usr/include/asm/fcntl.h -#usr/include/asm/fixmap.h -#usr/include/asm/floppy.h -#usr/include/asm/genapic.h -#usr/include/asm/hardirq.h -#usr/include/asm/hdreg.h -#usr/include/asm/hw_irq.h -#usr/include/asm/i8259.h -#usr/include/asm/init.h -#usr/include/asm/io.h -#usr/include/asm/io_apic.h -#usr/include/asm/ioctl.h -#usr/include/asm/ioctls.h -#usr/include/asm/ipc.h -#usr/include/asm/ipcbuf.h -#usr/include/asm/irq.h -#usr/include/asm/kdebug.h -#usr/include/asm/kprobes.h -#usr/include/asm/ldt.h -#usr/include/asm/linkage.h -#usr/include/asm/mach-bigsmp -#usr/include/asm/mach-bigsmp/mach_apic.h -#usr/include/asm/mach-bigsmp/mach_apicdef.h -#usr/include/asm/mach-bigsmp/mach_ipi.h -#usr/include/asm/mach-bigsmp/mach_mpspec.h -#usr/include/asm/mach-default -#usr/include/asm/mach-default/apm.h -#usr/include/asm/mach-default/bios_ebda.h -#usr/include/asm/mach-default/do_timer.h -#usr/include/asm/mach-default/entry_arch.h -#usr/include/asm/mach-default/io_ports.h -#usr/include/asm/mach-default/irq_vectors.h -#usr/include/asm/mach-default/mach_apic.h -#usr/include/asm/mach-default/mach_apicdef.h -#usr/include/asm/mach-default/mach_ipi.h -#usr/include/asm/mach-default/mach_mpparse.h -#usr/include/asm/mach-default/mach_mpspec.h -#usr/include/asm/mach-default/mach_reboot.h -#usr/include/asm/mach-default/mach_time.h -#usr/include/asm/mach-default/mach_timer.h -#usr/include/asm/mach-default/mach_traps.h -#usr/include/asm/mach-default/mach_wakecpu.h -#usr/include/asm/mach-default/pci-functions.h -#usr/include/asm/mach-default/setup_arch_post.h -#usr/include/asm/mach-default/setup_arch_pre.h -#usr/include/asm/mach-default/smpboot_hooks.h -#usr/include/asm/mach-es7000 -#usr/include/asm/mach-es7000/mach_apic.h -#usr/include/asm/mach-es7000/mach_apicdef.h -#usr/include/asm/mach-es7000/mach_ipi.h -#usr/include/asm/mach-es7000/mach_mpparse.h -#usr/include/asm/mach-es7000/mach_mpspec.h -#usr/include/asm/mach-es7000/mach_wakecpu.h -#usr/include/asm/mach-generic -#usr/include/asm/mach-generic/mach_apic.h -#usr/include/asm/mach-generic/mach_apicdef.h -#usr/include/asm/mach-generic/mach_ipi.h -#usr/include/asm/mach-generic/mach_mpparse.h -#usr/include/asm/mach-generic/mach_mpspec.h -#usr/include/asm/mach-numaq -#usr/include/asm/mach-numaq/mach_apic.h -#usr/include/asm/mach-numaq/mach_apicdef.h -#usr/include/asm/mach-numaq/mach_ipi.h -#usr/include/asm/mach-numaq/mach_mpparse.h -#usr/include/asm/mach-numaq/mach_mpspec.h -#usr/include/asm/mach-numaq/mach_wakecpu.h -#usr/include/asm/mach-summit -#usr/include/asm/mach-summit/mach_apic.h -#usr/include/asm/mach-summit/mach_apicdef.h -#usr/include/asm/mach-summit/mach_ipi.h -#usr/include/asm/mach-summit/mach_mpparse.h -#usr/include/asm/mach-summit/mach_mpspec.h -#usr/include/asm/mach-visws -#usr/include/asm/mach-visws/cobalt.h -#usr/include/asm/mach-visws/do_timer.h -#usr/include/asm/mach-visws/entry_arch.h -#usr/include/asm/mach-visws/irq_vectors.h -#usr/include/asm/mach-visws/lithium.h -#usr/include/asm/mach-visws/mach_apic.h -#usr/include/asm/mach-visws/mach_apicdef.h -#usr/include/asm/mach-visws/piix4.h -#usr/include/asm/mach-visws/setup_arch_post.h -#usr/include/asm/mach-visws/setup_arch_pre.h -#usr/include/asm/mach-visws/smpboot_hooks.h -#usr/include/asm/mach-voyager -#usr/include/asm/mach-voyager/do_timer.h -#usr/include/asm/mach-voyager/entry_arch.h -#usr/include/asm/mach-voyager/irq_vectors.h -#usr/include/asm/mach-voyager/setup_arch_post.h -#usr/include/asm/mach-voyager/setup_arch_pre.h -#usr/include/asm/math_emu.h -#usr/include/asm/mca.h -#usr/include/asm/mca_dma.h -#usr/include/asm/mman.h -#usr/include/asm/mmu.h -#usr/include/asm/mmu_context.h -#usr/include/asm/mmx.h -#usr/include/asm/module.h -#usr/include/asm/mpspec.h -#usr/include/asm/mpspec_def.h -#usr/include/asm/msgbuf.h -#usr/include/asm/msr.h -#usr/include/asm/mtrr.h -#usr/include/asm/namei.h -#usr/include/asm/nmi.h -#usr/include/asm/node.h -#usr/include/asm/numaq.h -#usr/include/asm/numnodes.h -#usr/include/asm/page.h -#usr/include/asm/param.h -#usr/include/asm/parport.h -#usr/include/asm/pgalloc.h -#usr/include/asm/poll.h -#usr/include/asm/posix_types.h -#usr/include/asm/processor.h -#usr/include/asm/ptrace.h -#usr/include/asm/rwlock.h -#usr/include/asm/segment.h -#usr/include/asm/semaphore.h -#usr/include/asm/sembuf.h -#usr/include/asm/serial.h -#usr/include/asm/shmbuf.h -#usr/include/asm/shmparam.h -#usr/include/asm/sigcontext.h -#usr/include/asm/siginfo.h -#usr/include/asm/socket.h -#usr/include/asm/sockios.h -#usr/include/asm/spinlock.h -#usr/include/asm/srat.h -#usr/include/asm/stat.h -#usr/include/asm/suspend.h -#usr/include/asm/system.h -#usr/include/asm/termbits.h -#usr/include/asm/termios.h -#usr/include/asm/timer.h -#usr/include/asm/timex.h -#usr/include/asm/tlbflush.h -#usr/include/asm/types.h -#usr/include/asm/ucontext.h -#usr/include/asm/unaligned.h -#usr/include/asm/unistd.h -#usr/include/asm/user.h -#usr/include/asm/vga.h -#usr/include/asm/vic.h -#usr/include/asm/vm86.h -#usr/include/asm/voyager.h -#usr/include/linux -#usr/include/linux/8250_pci.h -#usr/include/linux/a.out.h -#usr/include/linux/acct.h -#usr/include/linux/acpi.h -#usr/include/linux/adb.h -#usr/include/linux/adfs_fs.h -#usr/include/linux/adfs_fs_sb.h -#usr/include/linux/affs_fs.h -#usr/include/linux/affs_hardblocks.h -#usr/include/linux/agpgart.h -#usr/include/linux/aio.h -#usr/include/linux/aio_abi.h -#usr/include/linux/amifd.h -#usr/include/linux/amifdreg.h -#usr/include/linux/amigaffs.h -#usr/include/linux/apm_bios.h -#usr/include/linux/ata.h -#usr/include/linux/atalk.h -#usr/include/linux/atm.h -#usr/include/linux/atm_eni.h -#usr/include/linux/atm_he.h -#usr/include/linux/atm_idt77105.h -#usr/include/linux/atm_nicstar.h -#usr/include/linux/atm_suni.h -#usr/include/linux/atm_tcp.h -#usr/include/linux/atm_zatm.h -#usr/include/linux/atmapi.h -#usr/include/linux/atmarp.h -#usr/include/linux/atmbr2684.h -#usr/include/linux/atmclip.h -#usr/include/linux/atmdev.h -#usr/include/linux/atmioc.h -#usr/include/linux/atmlec.h -#usr/include/linux/atmmpc.h -#usr/include/linux/atmppp.h -#usr/include/linux/atmsap.h -#usr/include/linux/atmsvc.h -#usr/include/linux/audit.h -#usr/include/linux/auto_fs.h -#usr/include/linux/auto_fs4.h -#usr/include/linux/autoconf.h -#usr/include/linux/awe_voice.h -#usr/include/linux/ax25.h -#usr/include/linux/b1lli.h -#usr/include/linux/backing-dev.h -#usr/include/linux/backlight.h -#usr/include/linux/baycom.h -#usr/include/linux/bcd.h -#usr/include/linux/bfs_fs.h -#usr/include/linux/binfmts.h -#usr/include/linux/bitmap.h -#usr/include/linux/bitops.h -#usr/include/linux/blkpg.h -#usr/include/linux/blockgroup_lock.h -#usr/include/linux/bootmem.h -#usr/include/linux/bpqether.h -#usr/include/linux/byteorder -#usr/include/linux/byteorder/big_endian.h -#usr/include/linux/byteorder/generic.h -#usr/include/linux/byteorder/little_endian.h -#usr/include/linux/byteorder/pdp_endian.h -#usr/include/linux/byteorder/swab.h -#usr/include/linux/byteorder/swabb.h -#usr/include/linux/cache.h -#usr/include/linux/capability.h -#usr/include/linux/capi.h -#usr/include/linux/cciss_ioctl.h -#usr/include/linux/cd1400.h -#usr/include/linux/cdk.h -#usr/include/linux/cdrom.h -#usr/include/linux/circ_buf.h -#usr/include/linux/cobalt-nvram.h -#usr/include/linux/coda.h -#usr/include/linux/coda_proc.h -#usr/include/linux/coda_psdev.h -#usr/include/linux/coff.h -#usr/include/linux/com20020.h -#usr/include/linux/compat.h -#usr/include/linux/compat_ioctl.h -#usr/include/linux/compiler.h -#usr/include/linux/comstats.h -#usr/include/linux/config.h -#usr/include/linux/console.h -#usr/include/linux/console_struct.h -#usr/include/linux/consolemap.h -#usr/include/linux/cpu.h -#usr/include/linux/cpufreq.h -#usr/include/linux/cramfs_fs.h -#usr/include/linux/cramfs_fs_sb.h -#usr/include/linux/crc32.h -#usr/include/linux/crypto.h -#usr/include/linux/ctype.h -#usr/include/linux/cuda.h -#usr/include/linux/cyclades.h -#usr/include/linux/cycx_cfm.h -#usr/include/linux/cycx_drv.h -#usr/include/linux/cycx_x25.h -#usr/include/linux/devfs_fs.h -#usr/include/linux/devfs_fs_kernel.h -#usr/include/linux/device-mapper.h -#usr/include/linux/device.h -#usr/include/linux/devpts_fs.h -#usr/include/linux/dirent.h -#usr/include/linux/divert.h -#usr/include/linux/dm-ioctl.h -#usr/include/linux/dn.h -#usr/include/linux/dnotify.h -#usr/include/linux/dqblk_v1.h -#usr/include/linux/dqblk_v2.h -#usr/include/linux/dqblk_xfs.h -#usr/include/linux/dtlk.h -#usr/include/linux/dvb -#usr/include/linux/dvb/audio.h -#usr/include/linux/dvb/ca.h -#usr/include/linux/dvb/dmx.h -#usr/include/linux/dvb/frontend.h -#usr/include/linux/dvb/net.h -#usr/include/linux/dvb/osd.h -#usr/include/linux/dvb/version.h -#usr/include/linux/dvb/video.h -#usr/include/linux/eeprom.h -#usr/include/linux/efi.h -#usr/include/linux/efs_dir.h -#usr/include/linux/efs_fs.h -#usr/include/linux/efs_fs_i.h -#usr/include/linux/efs_fs_sb.h -#usr/include/linux/efs_vh.h -#usr/include/linux/eisa.h -#usr/include/linux/elevator.h -#usr/include/linux/elf-fdpic.h -#usr/include/linux/elf.h -#usr/include/linux/elfcore.h -#usr/include/linux/err.h -#usr/include/linux/err_kernel_only.h -#usr/include/linux/errno.h -#usr/include/linux/errqueue.h -#usr/include/linux/ethtool.h -#usr/include/linux/eventpoll.h -#usr/include/linux/ext2_fs.h -#usr/include/linux/ext3_fs.h -#usr/include/linux/ext3_jbd.h -#usr/include/linux/fadvise.h -#usr/include/linux/fb.h -#usr/include/linux/fcntl.h -#usr/include/linux/fd.h -#usr/include/linux/fd1772.h -#usr/include/linux/fdreg.h -#usr/include/linux/file.h -#usr/include/linux/filter.h -#usr/include/linux/firmware.h -#usr/include/linux/flat.h -#usr/include/linux/font.h -#usr/include/linux/fs.h -#usr/include/linux/fs_struct.h -#usr/include/linux/ftape-header-segment.h -#usr/include/linux/ftape-vendors.h -#usr/include/linux/ftape.h -#usr/include/linux/futex.h -#usr/include/linux/gameport.h -#usr/include/linux/gen_stats.h -#usr/include/linux/generic_serial.h -#usr/include/linux/genhd.h -#usr/include/linux/gfp.h -#usr/include/linux/hash.h -#usr/include/linux/hayesesp.h -#usr/include/linux/hdlc -#usr/include/linux/hdlc.h -#usr/include/linux/hdlc/ioctl.h -#usr/include/linux/hdlcdrv.h -#usr/include/linux/hdreg.h -#usr/include/linux/hdsmart.h -#usr/include/linux/hiddev.h -#usr/include/linux/highuid.h -#usr/include/linux/hpfs_fs.h -#usr/include/linux/hysdn_if.h -#usr/include/linux/i2c-algo-bit.h -#usr/include/linux/i2c-algo-ite.h -#usr/include/linux/i2c-algo-pcf.h -#usr/include/linux/i2c-algo-sgi.h -#usr/include/linux/i2c-algo-sibyte.h -#usr/include/linux/i2c-dev.h -#usr/include/linux/i2c-id.h -#usr/include/linux/i2c-sensor.h -#usr/include/linux/i2c-vid.h -#usr/include/linux/i2c.h -#usr/include/linux/i2o-dev.h -#usr/include/linux/i8k.h -#usr/include/linux/ibmtr.h -#usr/include/linux/icmp.h -#usr/include/linux/icmpv6.h -#usr/include/linux/ide.h -#usr/include/linux/idr.h -#usr/include/linux/if.h -#usr/include/linux/if_arcnet.h -#usr/include/linux/if_arp.h -#usr/include/linux/if_bonding.h -#usr/include/linux/if_bridge.h -#usr/include/linux/if_cablemodem.h -#usr/include/linux/if_ec.h -#usr/include/linux/if_eql.h -#usr/include/linux/if_ether.h -#usr/include/linux/if_fc.h -#usr/include/linux/if_fddi.h -#usr/include/linux/if_frad.h -#usr/include/linux/if_hippi.h -#usr/include/linux/if_infiniband.h -#usr/include/linux/if_ltalk.h -#usr/include/linux/if_packet.h -#usr/include/linux/if_plip.h -#usr/include/linux/if_ppp.h -#usr/include/linux/if_pppox.h -#usr/include/linux/if_shaper.h -#usr/include/linux/if_slip.h -#usr/include/linux/if_strip.h -#usr/include/linux/if_tr.h -#usr/include/linux/if_tun.h -#usr/include/linux/if_tunnel.h -#usr/include/linux/if_vlan.h -#usr/include/linux/if_wanpipe.h -#usr/include/linux/if_wanpipe_common.h -#usr/include/linux/igmp.h -#usr/include/linux/in.h -#usr/include/linux/in6.h -#usr/include/linux/in_route.h -#usr/include/linux/inetdevice.h -#usr/include/linux/init.h -#usr/include/linux/init_task.h -#usr/include/linux/initrd.h -#usr/include/linux/inotify.h -#usr/include/linux/input.h -#usr/include/linux/interrupt.h -#usr/include/linux/ioctl.h -#usr/include/linux/ioctl32.h -#usr/include/linux/ioport.h -#usr/include/linux/ip.h -#usr/include/linux/ip6_tunnel.h -#usr/include/linux/ip_mp_alg.h -#usr/include/linux/ipc.h -#usr/include/linux/ipmi.h -#usr/include/linux/ipmi_msgdefs.h -#usr/include/linux/ipmi_smi.h -#usr/include/linux/ipsec.h -#usr/include/linux/ipv6.h -#usr/include/linux/ipv6_route.h -#usr/include/linux/ipx.h -#usr/include/linux/irda.h -#usr/include/linux/irq.h -#usr/include/linux/irq_cpustat.h -#usr/include/linux/isapnp.h -#usr/include/linux/isdn -#usr/include/linux/isdn.h -#usr/include/linux/isdn/capicmd.h -#usr/include/linux/isdn/capilli.h -#usr/include/linux/isdn/capiutil.h -#usr/include/linux/isdn/tpam.h -#usr/include/linux/isdn_divertif.h -#usr/include/linux/isdn_ppp.h -#usr/include/linux/isdnif.h -#usr/include/linux/isicom.h -#usr/include/linux/iso_fs.h -#usr/include/linux/istallion.h -#usr/include/linux/ite_gpio.h -#usr/include/linux/ixjuser.h -#usr/include/linux/jbd.h -#usr/include/linux/jffs.h -#usr/include/linux/jffs2.h -#usr/include/linux/jffs2_fs_sb.h -#usr/include/linux/jhash.h -#usr/include/linux/jiffies.h -#usr/include/linux/journal-head.h -#usr/include/linux/joystick.h -#usr/include/linux/kallsyms.h -#usr/include/linux/kbd_diacr.h -#usr/include/linux/kbd_kern.h -#usr/include/linux/kd.h -#usr/include/linux/kdev_t.h -#usr/include/linux/kernel.h -#usr/include/linux/kernel_stat.h -#usr/include/linux/kernelcapi.h -#usr/include/linux/keyboard.h -#usr/include/linux/keyctl.h -#usr/include/linux/kmalloc_sizes.h -#usr/include/linux/kmod.h -#usr/include/linux/kprobes.h -#usr/include/linux/lapb.h -#usr/include/linux/lcd.h -#usr/include/linux/libata.h -#usr/include/linux/libps2.h -#usr/include/linux/limits.h -#usr/include/linux/linkage.h -#usr/include/linux/linux_logo.h -#usr/include/linux/list.h -#usr/include/linux/llc.h -#usr/include/linux/lockd -#usr/include/linux/lockd/bind.h -#usr/include/linux/lockd/debug.h -#usr/include/linux/lockd/nlm.h -#usr/include/linux/lockd/share.h -#usr/include/linux/lockd/sm_inter.h -#usr/include/linux/lockd/xdr.h -#usr/include/linux/lockd/xdr4.h -#usr/include/linux/loop.h -#usr/include/linux/lp.h -#usr/include/linux/major.h -#usr/include/linux/matroxfb.h -#usr/include/linux/mbcache.h -#usr/include/linux/mc6821.h -#usr/include/linux/mca-legacy.h -#usr/include/linux/mca.h -#usr/include/linux/mempool.h -#usr/include/linux/meye.h -#usr/include/linux/mii.h -#usr/include/linux/minix_fs.h -#usr/include/linux/miscdevice.h -#usr/include/linux/mm.h -#usr/include/linux/mm_inline.h -#usr/include/linux/mman.h -#usr/include/linux/mod_devicetable.h -#usr/include/linux/module.h -#usr/include/linux/moduleloader.h -#usr/include/linux/moduleparam.h -#usr/include/linux/mount.h -#usr/include/linux/mroute.h -#usr/include/linux/msdos_fs.h -#usr/include/linux/msg.h -#usr/include/linux/mtd -#usr/include/linux/mtd/blktrans.h -#usr/include/linux/mtd/cfi.h -#usr/include/linux/mtd/cfi_endian.h -#usr/include/linux/mtd/compatmac.h -#usr/include/linux/mtd/concat.h -#usr/include/linux/mtd/doc2000.h -#usr/include/linux/mtd/flashchip.h -#usr/include/linux/mtd/ftl.h -#usr/include/linux/mtd/gen_probe.h -#usr/include/linux/mtd/iflash.h -#usr/include/linux/mtd/jedec.h -#usr/include/linux/mtd/map.h -#usr/include/linux/mtd/nand.h -#usr/include/linux/mtd/nand_ecc.h -#usr/include/linux/mtd/nftl.h -#usr/include/linux/mtd/partitions.h -#usr/include/linux/mtd/pmc551.h -#usr/include/linux/mtio.h -#usr/include/linux/n_r3964.h -#usr/include/linux/namei.h -#usr/include/linux/nbd.h -#usr/include/linux/ncp.h -#usr/include/linux/ncp_fs.h -#usr/include/linux/ncp_mount.h -#usr/include/linux/ncp_no.h -#usr/include/linux/net.h -#usr/include/linux/netdevice.h -#usr/include/linux/netfilter.h -#usr/include/linux/netfilter_arp -#usr/include/linux/netfilter_arp.h -#usr/include/linux/netfilter_arp/arp_tables.h -#usr/include/linux/netfilter_arp/arpt_mangle.h -#usr/include/linux/netfilter_bridge -#usr/include/linux/netfilter_bridge.h -#usr/include/linux/netfilter_bridge/ebt_802_3.h -#usr/include/linux/netfilter_bridge/ebt_among.h -#usr/include/linux/netfilter_bridge/ebt_arp.h -#usr/include/linux/netfilter_bridge/ebt_arpreply.h -#usr/include/linux/netfilter_bridge/ebt_ip.h -#usr/include/linux/netfilter_bridge/ebt_limit.h -#usr/include/linux/netfilter_bridge/ebt_log.h -#usr/include/linux/netfilter_bridge/ebt_mark_m.h -#usr/include/linux/netfilter_bridge/ebt_mark_t.h -#usr/include/linux/netfilter_bridge/ebt_nat.h -#usr/include/linux/netfilter_bridge/ebt_pkttype.h -#usr/include/linux/netfilter_bridge/ebt_redirect.h -#usr/include/linux/netfilter_bridge/ebt_stp.h -#usr/include/linux/netfilter_bridge/ebt_ulog.h -#usr/include/linux/netfilter_bridge/ebt_vlan.h -#usr/include/linux/netfilter_bridge/ebtables.h -#usr/include/linux/netfilter_decnet.h -#usr/include/linux/netfilter_ipv4 -#usr/include/linux/netfilter_ipv4.h -#usr/include/linux/netfilter_ipv4/ip_conntrack.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_core.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h -#usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h -#usr/include/linux/netfilter_ipv4/ip_nat.h -#usr/include/linux/netfilter_ipv4/ip_nat_core.h -#usr/include/linux/netfilter_ipv4/ip_nat_helper.h -#usr/include/linux/netfilter_ipv4/ip_nat_protocol.h -#usr/include/linux/netfilter_ipv4/ip_nat_rule.h -#usr/include/linux/netfilter_ipv4/ip_queue.h -#usr/include/linux/netfilter_ipv4/ip_tables.h -#usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h -#usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h -#usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h -#usr/include/linux/netfilter_ipv4/ipt_DSCP.h -#usr/include/linux/netfilter_ipv4/ipt_ECN.h -#usr/include/linux/netfilter_ipv4/ipt_LOG.h -#usr/include/linux/netfilter_ipv4/ipt_MARK.h -#usr/include/linux/netfilter_ipv4/ipt_REJECT.h -#usr/include/linux/netfilter_ipv4/ipt_SAME.h -#usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h -#usr/include/linux/netfilter_ipv4/ipt_TOS.h -#usr/include/linux/netfilter_ipv4/ipt_ULOG.h -#usr/include/linux/netfilter_ipv4/ipt_addrtype.h -#usr/include/linux/netfilter_ipv4/ipt_ah.h -#usr/include/linux/netfilter_ipv4/ipt_comment.h -#usr/include/linux/netfilter_ipv4/ipt_connmark.h -#usr/include/linux/netfilter_ipv4/ipt_conntrack.h -#usr/include/linux/netfilter_ipv4/ipt_dscp.h -#usr/include/linux/netfilter_ipv4/ipt_ecn.h -#usr/include/linux/netfilter_ipv4/ipt_esp.h -#usr/include/linux/netfilter_ipv4/ipt_hashlimit.h -#usr/include/linux/netfilter_ipv4/ipt_helper.h -#usr/include/linux/netfilter_ipv4/ipt_iprange.h -#usr/include/linux/netfilter_ipv4/ipt_length.h -#usr/include/linux/netfilter_ipv4/ipt_limit.h -#usr/include/linux/netfilter_ipv4/ipt_mac.h -#usr/include/linux/netfilter_ipv4/ipt_mark.h -#usr/include/linux/netfilter_ipv4/ipt_multiport.h -#usr/include/linux/netfilter_ipv4/ipt_owner.h -#usr/include/linux/netfilter_ipv4/ipt_physdev.h -#usr/include/linux/netfilter_ipv4/ipt_pkttype.h -#usr/include/linux/netfilter_ipv4/ipt_realm.h -#usr/include/linux/netfilter_ipv4/ipt_recent.h -#usr/include/linux/netfilter_ipv4/ipt_sctp.h -#usr/include/linux/netfilter_ipv4/ipt_state.h -#usr/include/linux/netfilter_ipv4/ipt_tcpmss.h -#usr/include/linux/netfilter_ipv4/ipt_tos.h -#usr/include/linux/netfilter_ipv4/ipt_ttl.h -#usr/include/linux/netfilter_ipv4/listhelp.h -#usr/include/linux/netfilter_ipv4/lockhelp.h -#usr/include/linux/netfilter_ipv6 -#usr/include/linux/netfilter_ipv6.h -#usr/include/linux/netfilter_ipv6/ip6_tables.h -#usr/include/linux/netfilter_ipv6/ip6t_LOG.h -#usr/include/linux/netfilter_ipv6/ip6t_MARK.h -#usr/include/linux/netfilter_ipv6/ip6t_ah.h -#usr/include/linux/netfilter_ipv6/ip6t_esp.h -#usr/include/linux/netfilter_ipv6/ip6t_frag.h -#usr/include/linux/netfilter_ipv6/ip6t_hl.h -#usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h -#usr/include/linux/netfilter_ipv6/ip6t_length.h -#usr/include/linux/netfilter_ipv6/ip6t_limit.h -#usr/include/linux/netfilter_ipv6/ip6t_mac.h -#usr/include/linux/netfilter_ipv6/ip6t_mark.h -#usr/include/linux/netfilter_ipv6/ip6t_multiport.h -#usr/include/linux/netfilter_ipv6/ip6t_opts.h -#usr/include/linux/netfilter_ipv6/ip6t_owner.h -#usr/include/linux/netfilter_ipv6/ip6t_physdev.h -#usr/include/linux/netfilter_ipv6/ip6t_rt.h -#usr/include/linux/netlink.h -#usr/include/linux/netrom.h -#usr/include/linux/nfs.h -#usr/include/linux/nfs2.h -#usr/include/linux/nfs3.h -#usr/include/linux/nfs4.h -#usr/include/linux/nfs4_mount.h -#usr/include/linux/nfs_fs.h -#usr/include/linux/nfs_fs_i.h -#usr/include/linux/nfs_fs_sb.h -#usr/include/linux/nfs_idmap.h -#usr/include/linux/nfs_mount.h -#usr/include/linux/nfs_xdr.h -#usr/include/linux/nfsd -#usr/include/linux/nfsd/const.h -#usr/include/linux/nfsd/debug.h -#usr/include/linux/nfsd/export.h -#usr/include/linux/nfsd/interface.h -#usr/include/linux/nfsd/nfsd.h -#usr/include/linux/nfsd/nfsfh.h -#usr/include/linux/nfsd/state.h -#usr/include/linux/nfsd/stats.h -#usr/include/linux/nfsd/syscall.h -#usr/include/linux/nfsd/xdr.h -#usr/include/linux/nfsd/xdr3.h -#usr/include/linux/nfsd/xdr4.h -#usr/include/linux/nls.h -#usr/include/linux/nmi.h -#usr/include/linux/node.h -#usr/include/linux/notifier.h -#usr/include/linux/nubus.h -#usr/include/linux/numa.h -#usr/include/linux/nvram.h -#usr/include/linux/openprom_fs.h -#usr/include/linux/oprofile.h -#usr/include/linux/pagemap.h -#usr/include/linux/pagevec.h -#usr/include/linux/param.h -#usr/include/linux/parport.h -#usr/include/linux/parport_pc.h -#usr/include/linux/parser.h -#usr/include/linux/patchkey.h -#usr/include/linux/pci-dynids.h -#usr/include/linux/pci.h -#usr/include/linux/pci_ids.h -#usr/include/linux/pcieport_if.h -#usr/include/linux/percpu.h -#usr/include/linux/percpu_counter.h -#usr/include/linux/personality.h -#usr/include/linux/pfkeyv2.h -#usr/include/linux/pg.h -#usr/include/linux/pipe_fs_i.h -#usr/include/linux/pkt_cls.h -#usr/include/linux/pkt_sched.h -#usr/include/linux/pktcdvd.h -#usr/include/linux/pmu.h -#usr/include/linux/poll.h -#usr/include/linux/posix-timers.h -#usr/include/linux/posix_acl.h -#usr/include/linux/posix_acl_xattr.h -#usr/include/linux/posix_types.h -#usr/include/linux/ppdev.h -#usr/include/linux/ppp-comp.h -#usr/include/linux/ppp_channel.h -#usr/include/linux/ppp_defs.h -#usr/include/linux/prctl.h -#usr/include/linux/preempt.h -#usr/include/linux/prefetch.h -#usr/include/linux/proc_fs.h -#usr/include/linux/ps2esdi.h -#usr/include/linux/ptrace.h -#usr/include/linux/qic117.h -#usr/include/linux/qnx4_fs.h -#usr/include/linux/qnxtypes.h -#usr/include/linux/quota.h -#usr/include/linux/quotaio_v1.h -#usr/include/linux/quotaio_v2.h -#usr/include/linux/radeonfb.h -#usr/include/linux/raid -#usr/include/linux/raid/linear.h -#usr/include/linux/raid/md.h -#usr/include/linux/raid/md_p.h -#usr/include/linux/raid/md_u.h -#usr/include/linux/raid/multipath.h -#usr/include/linux/raid/raid0.h -#usr/include/linux/raid/raid1.h -#usr/include/linux/raid/raid5.h -#usr/include/linux/raid/xor.h -#usr/include/linux/random.h -#usr/include/linux/raw.h -#usr/include/linux/rbtree.h -#usr/include/linux/reboot.h -#usr/include/linux/reiserfs_acl.h -#usr/include/linux/reiserfs_fs.h -#usr/include/linux/reiserfs_xattr.h -#usr/include/linux/resource.h -#usr/include/linux/romfs_fs.h -#usr/include/linux/root_dev.h -#usr/include/linux/rose.h -#usr/include/linux/route.h -#usr/include/linux/rtc.h -#usr/include/linux/rtnetlink.h -#usr/include/linux/sc26198.h -#usr/include/linux/scc.h -#usr/include/linux/sched.h -#usr/include/linux/sctp.h -#usr/include/linux/scx200.h -#usr/include/linux/scx200_gpio.h -#usr/include/linux/sdla.h -#usr/include/linux/sdla_asy.h -#usr/include/linux/sdla_chdlc.h -#usr/include/linux/sdla_fr.h -#usr/include/linux/sdla_ppp.h -#usr/include/linux/sdla_x25.h -#usr/include/linux/sdladrv.h -#usr/include/linux/sdlapci.h -#usr/include/linux/sdlasfm.h -#usr/include/linux/securebits.h -#usr/include/linux/security.h -#usr/include/linux/selection.h -#usr/include/linux/selinux_netlink.h -#usr/include/linux/sem.h -#usr/include/linux/seqlock.h -#usr/include/linux/serial.h -#usr/include/linux/serial167.h -#usr/include/linux/serialP.h -#usr/include/linux/serial_8250.h -#usr/include/linux/serial_core.h -#usr/include/linux/serial_reg.h -#usr/include/linux/serio.h -#usr/include/linux/shm.h -#usr/include/linux/siginfo.h -#usr/include/linux/signal.h -#usr/include/linux/skbuff.h -#usr/include/linux/smb.h -#usr/include/linux/smb_fs.h -#usr/include/linux/smb_mount.h -#usr/include/linux/smbno.h -#usr/include/linux/smp_lock.h -#usr/include/linux/snmp.h -#usr/include/linux/socket.h -#usr/include/linux/sockios.h -#usr/include/linux/som.h -#usr/include/linux/sonet.h -#usr/include/linux/sonypi.h -#usr/include/linux/sound.h -#usr/include/linux/soundcard.h -#usr/include/linux/spinlock.h -#usr/include/linux/stallion.h -#usr/include/linux/stddef.h -#usr/include/linux/stringify.h -#usr/include/linux/sunrpc -#usr/include/linux/sunrpc/cache.h -#usr/include/linux/sunrpc/clnt.h -#usr/include/linux/sunrpc/debug.h -#usr/include/linux/sunrpc/gss_asn1.h -#usr/include/linux/sunrpc/gss_krb5.h -#usr/include/linux/sunrpc/gss_spkm3.h -#usr/include/linux/sunrpc/sched.h -#usr/include/linux/sunrpc/stats.h -#usr/include/linux/sunrpc/svc.h -#usr/include/linux/sunrpc/svcsock.h -#usr/include/linux/sunrpc/timer.h -#usr/include/linux/sunrpc/types.h -#usr/include/linux/sunrpc/xprt.h -#usr/include/linux/superhyway.h -#usr/include/linux/suspend.h -#usr/include/linux/swap.h -#usr/include/linux/swapops.h -#usr/include/linux/synclink.h -#usr/include/linux/sys.h -#usr/include/linux/syscalls.h -#usr/include/linux/sysctl.h -#usr/include/linux/sysdev.h -#usr/include/linux/sysfs.h -#usr/include/linux/sysrq.h -#usr/include/linux/sysv_fs.h -#usr/include/linux/tc_act -#usr/include/linux/tc_act/tc_defact.h -#usr/include/linux/tc_act/tc_gact.h -#usr/include/linux/tc_act/tc_ipt.h -#usr/include/linux/tc_act/tc_mirred.h -#usr/include/linux/tc_act/tc_pedit.h -#usr/include/linux/tc_ematch -#usr/include/linux/tc_ematch/tc_em_cmp.h -#usr/include/linux/tc_ematch/tc_em_meta.h -#usr/include/linux/tc_ematch/tc_em_nbyte.h -#usr/include/linux/tcp.h -#usr/include/linux/tcp_diag.h -#usr/include/linux/telephony.h -#usr/include/linux/termios.h -#usr/include/linux/threads.h -#usr/include/linux/ticable.h -#usr/include/linux/time.h -#usr/include/linux/times.h -#usr/include/linux/timex.h -#usr/include/linux/tiocl.h -#usr/include/linux/toshiba.h -#usr/include/linux/tty.h -#usr/include/linux/types.h -#usr/include/linux/udf_fs.h -#usr/include/linux/udf_fs_i.h -#usr/include/linux/udf_fs_sb.h -#usr/include/linux/udp.h -#usr/include/linux/ufs_fs.h -#usr/include/linux/uinput.h -#usr/include/linux/uio.h -#usr/include/linux/ultrasound.h -#usr/include/linux/umem.h -#usr/include/linux/un.h -#usr/include/linux/unistd.h -#usr/include/linux/usb.h -#usr/include/linux/usb_cdc.h -#usr/include/linux/usb_ch9.h -#usr/include/linux/usb_gadgetfs.h -#usr/include/linux/usbdevice_fs.h -#usr/include/linux/user.h -#usr/include/linux/utime.h -#usr/include/linux/uts.h -#usr/include/linux/utsname.h -#usr/include/linux/version.h -#usr/include/linux/video_decoder.h -#usr/include/linux/video_encoder.h -#usr/include/linux/videodev.h -#usr/include/linux/videodev2.h -#usr/include/linux/videotext.h -#usr/include/linux/vmalloc.h -#usr/include/linux/vt.h -#usr/include/linux/vt_buffer.h -#usr/include/linux/vt_kern.h -#usr/include/linux/wait.h -#usr/include/linux/wanpipe.h -#usr/include/linux/wanrouter.h -#usr/include/linux/watchdog.h -#usr/include/linux/wavefront.h -#usr/include/linux/wireless.h -#usr/include/linux/workqueue.h -#usr/include/linux/x25.h -#usr/include/linux/xattr.h -#usr/include/linux/xattr_acl.h -#usr/include/linux/xfrm.h -#usr/include/linux/yam.h -#usr/include/linux/zftape.h -#usr/include/linux/zorro.h -#usr/include/linux/zorro_ids.h -#opt/MACHINE-uClibc -#opt/MACHINE-uClibc/usr -#opt/MACHINE-uClibc/usr/include -#opt/MACHINE-uClibc/usr/include/asm -#opt/MACHINE-uClibc/usr/include/asm/8253pit.h -#opt/MACHINE-uClibc/usr/include/asm/a.out.h -#opt/MACHINE-uClibc/usr/include/asm/agp.h -#opt/MACHINE-uClibc/usr/include/asm/apic.h -#opt/MACHINE-uClibc/usr/include/asm/apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/arch_hooks.h -#opt/MACHINE-uClibc/usr/include/asm/atomic.h -#opt/MACHINE-uClibc/usr/include/asm/bitops.h -#opt/MACHINE-uClibc/usr/include/asm/boot.h -#opt/MACHINE-uClibc/usr/include/asm/byteorder.h -#opt/MACHINE-uClibc/usr/include/asm/cache.h -#opt/MACHINE-uClibc/usr/include/asm/cacheflush.h -#opt/MACHINE-uClibc/usr/include/asm/checksum.h -#opt/MACHINE-uClibc/usr/include/asm/cpu.h -#opt/MACHINE-uClibc/usr/include/asm/cpufeature.h -#opt/MACHINE-uClibc/usr/include/asm/debugreg.h -#opt/MACHINE-uClibc/usr/include/asm/desc.h -#opt/MACHINE-uClibc/usr/include/asm/dma.h -#opt/MACHINE-uClibc/usr/include/asm/e820.h -#opt/MACHINE-uClibc/usr/include/asm/elf.h -#opt/MACHINE-uClibc/usr/include/asm/errno.h -#opt/MACHINE-uClibc/usr/include/asm/fcntl.h -#opt/MACHINE-uClibc/usr/include/asm/fixmap.h -#opt/MACHINE-uClibc/usr/include/asm/floppy.h -#opt/MACHINE-uClibc/usr/include/asm/genapic.h -#opt/MACHINE-uClibc/usr/include/asm/hardirq.h -#opt/MACHINE-uClibc/usr/include/asm/hdreg.h -#opt/MACHINE-uClibc/usr/include/asm/hw_irq.h -#opt/MACHINE-uClibc/usr/include/asm/i8259.h -#opt/MACHINE-uClibc/usr/include/asm/init.h -#opt/MACHINE-uClibc/usr/include/asm/io.h -#opt/MACHINE-uClibc/usr/include/asm/io_apic.h -#opt/MACHINE-uClibc/usr/include/asm/ioctl.h -#opt/MACHINE-uClibc/usr/include/asm/ioctls.h -#opt/MACHINE-uClibc/usr/include/asm/ipc.h -#opt/MACHINE-uClibc/usr/include/asm/ipcbuf.h -#opt/MACHINE-uClibc/usr/include/asm/irq.h -#opt/MACHINE-uClibc/usr/include/asm/kdebug.h -#opt/MACHINE-uClibc/usr/include/asm/kprobes.h -#opt/MACHINE-uClibc/usr/include/asm/ldt.h -#opt/MACHINE-uClibc/usr/include/asm/linkage.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default -#opt/MACHINE-uClibc/usr/include/asm/mach-default/apm.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/bios_ebda.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/do_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/entry_arch.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/io_ports.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/irq_vectors.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_reboot.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_time.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_traps.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_wakecpu.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/pci-functions.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_post.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_pre.h -#opt/MACHINE-uClibc/usr/include/asm/mach-default/smpboot_hooks.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000 -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_wakecpu.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_wakecpu.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_ipi.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpparse.h -#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/cobalt.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/do_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/entry_arch.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/irq_vectors.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/lithium.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apic.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apicdef.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/piix4.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_post.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_pre.h -#opt/MACHINE-uClibc/usr/include/asm/mach-visws/smpboot_hooks.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/do_timer.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/entry_arch.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/irq_vectors.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_post.h -#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_pre.h -#opt/MACHINE-uClibc/usr/include/asm/math_emu.h -#opt/MACHINE-uClibc/usr/include/asm/mca.h -#opt/MACHINE-uClibc/usr/include/asm/mca_dma.h -#opt/MACHINE-uClibc/usr/include/asm/mman.h -#opt/MACHINE-uClibc/usr/include/asm/mmu.h -#opt/MACHINE-uClibc/usr/include/asm/mmu_context.h -#opt/MACHINE-uClibc/usr/include/asm/mmx.h -#opt/MACHINE-uClibc/usr/include/asm/module.h -#opt/MACHINE-uClibc/usr/include/asm/mpspec.h -#opt/MACHINE-uClibc/usr/include/asm/mpspec_def.h -#opt/MACHINE-uClibc/usr/include/asm/msgbuf.h -#opt/MACHINE-uClibc/usr/include/asm/msr.h -#opt/MACHINE-uClibc/usr/include/asm/mtrr.h -#opt/MACHINE-uClibc/usr/include/asm/namei.h -#opt/MACHINE-uClibc/usr/include/asm/nmi.h -#opt/MACHINE-uClibc/usr/include/asm/node.h -#opt/MACHINE-uClibc/usr/include/asm/numaq.h -#opt/MACHINE-uClibc/usr/include/asm/numnodes.h -#opt/MACHINE-uClibc/usr/include/asm/page.h -#opt/MACHINE-uClibc/usr/include/asm/param.h -#opt/MACHINE-uClibc/usr/include/asm/parport.h -#opt/MACHINE-uClibc/usr/include/asm/pgalloc.h -#opt/MACHINE-uClibc/usr/include/asm/poll.h -#opt/MACHINE-uClibc/usr/include/asm/posix_types.h -#opt/MACHINE-uClibc/usr/include/asm/processor.h -#opt/MACHINE-uClibc/usr/include/asm/ptrace.h -#opt/MACHINE-uClibc/usr/include/asm/rwlock.h -#opt/MACHINE-uClibc/usr/include/asm/segment.h -#opt/MACHINE-uClibc/usr/include/asm/semaphore.h -#opt/MACHINE-uClibc/usr/include/asm/sembuf.h -#opt/MACHINE-uClibc/usr/include/asm/serial.h -#opt/MACHINE-uClibc/usr/include/asm/shmbuf.h -#opt/MACHINE-uClibc/usr/include/asm/shmparam.h -#opt/MACHINE-uClibc/usr/include/asm/sigcontext.h -#opt/MACHINE-uClibc/usr/include/asm/siginfo.h -#opt/MACHINE-uClibc/usr/include/asm/socket.h -#opt/MACHINE-uClibc/usr/include/asm/sockios.h -#opt/MACHINE-uClibc/usr/include/asm/spinlock.h -#opt/MACHINE-uClibc/usr/include/asm/srat.h -#opt/MACHINE-uClibc/usr/include/asm/stat.h -#opt/MACHINE-uClibc/usr/include/asm/suspend.h -#opt/MACHINE-uClibc/usr/include/asm/system.h -#opt/MACHINE-uClibc/usr/include/asm/termbits.h -#opt/MACHINE-uClibc/usr/include/asm/termios.h -#opt/MACHINE-uClibc/usr/include/asm/timer.h -#opt/MACHINE-uClibc/usr/include/asm/timex.h -#opt/MACHINE-uClibc/usr/include/asm/tlbflush.h -#opt/MACHINE-uClibc/usr/include/asm/types.h -#opt/MACHINE-uClibc/usr/include/asm/ucontext.h -#opt/MACHINE-uClibc/usr/include/asm/unaligned.h -#opt/MACHINE-uClibc/usr/include/asm/unistd.h -#opt/MACHINE-uClibc/usr/include/asm/user.h -#opt/MACHINE-uClibc/usr/include/asm/vga.h -#opt/MACHINE-uClibc/usr/include/asm/vic.h -#opt/MACHINE-uClibc/usr/include/asm/vm86.h -#opt/MACHINE-uClibc/usr/include/asm/voyager.h -#opt/MACHINE-uClibc/usr/include/linux -#opt/MACHINE-uClibc/usr/include/linux/8250_pci.h -#opt/MACHINE-uClibc/usr/include/linux/a.out.h -#opt/MACHINE-uClibc/usr/include/linux/acct.h -#opt/MACHINE-uClibc/usr/include/linux/acpi.h -#opt/MACHINE-uClibc/usr/include/linux/adb.h -#opt/MACHINE-uClibc/usr/include/linux/adfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/adfs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/affs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/affs_hardblocks.h -#opt/MACHINE-uClibc/usr/include/linux/agpgart.h -#opt/MACHINE-uClibc/usr/include/linux/aio.h -#opt/MACHINE-uClibc/usr/include/linux/aio_abi.h -#opt/MACHINE-uClibc/usr/include/linux/amifd.h -#opt/MACHINE-uClibc/usr/include/linux/amifdreg.h -#opt/MACHINE-uClibc/usr/include/linux/amigaffs.h -#opt/MACHINE-uClibc/usr/include/linux/apm_bios.h -#opt/MACHINE-uClibc/usr/include/linux/ata.h -#opt/MACHINE-uClibc/usr/include/linux/atalk.h -#opt/MACHINE-uClibc/usr/include/linux/atm.h -#opt/MACHINE-uClibc/usr/include/linux/atm_eni.h -#opt/MACHINE-uClibc/usr/include/linux/atm_he.h -#opt/MACHINE-uClibc/usr/include/linux/atm_idt77105.h -#opt/MACHINE-uClibc/usr/include/linux/atm_nicstar.h -#opt/MACHINE-uClibc/usr/include/linux/atm_suni.h -#opt/MACHINE-uClibc/usr/include/linux/atm_tcp.h -#opt/MACHINE-uClibc/usr/include/linux/atm_zatm.h -#opt/MACHINE-uClibc/usr/include/linux/atmapi.h -#opt/MACHINE-uClibc/usr/include/linux/atmarp.h -#opt/MACHINE-uClibc/usr/include/linux/atmbr2684.h -#opt/MACHINE-uClibc/usr/include/linux/atmclip.h -#opt/MACHINE-uClibc/usr/include/linux/atmdev.h -#opt/MACHINE-uClibc/usr/include/linux/atmioc.h -#opt/MACHINE-uClibc/usr/include/linux/atmlec.h -#opt/MACHINE-uClibc/usr/include/linux/atmmpc.h -#opt/MACHINE-uClibc/usr/include/linux/atmppp.h -#opt/MACHINE-uClibc/usr/include/linux/atmsap.h -#opt/MACHINE-uClibc/usr/include/linux/atmsvc.h -#opt/MACHINE-uClibc/usr/include/linux/audit.h -#opt/MACHINE-uClibc/usr/include/linux/auto_fs.h -#opt/MACHINE-uClibc/usr/include/linux/auto_fs4.h -#opt/MACHINE-uClibc/usr/include/linux/autoconf.h -#opt/MACHINE-uClibc/usr/include/linux/awe_voice.h -#opt/MACHINE-uClibc/usr/include/linux/ax25.h -#opt/MACHINE-uClibc/usr/include/linux/b1lli.h -#opt/MACHINE-uClibc/usr/include/linux/backing-dev.h -#opt/MACHINE-uClibc/usr/include/linux/backlight.h -#opt/MACHINE-uClibc/usr/include/linux/baycom.h -#opt/MACHINE-uClibc/usr/include/linux/bcd.h -#opt/MACHINE-uClibc/usr/include/linux/bfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/binfmts.h -#opt/MACHINE-uClibc/usr/include/linux/bitmap.h -#opt/MACHINE-uClibc/usr/include/linux/bitops.h -#opt/MACHINE-uClibc/usr/include/linux/blkpg.h -#opt/MACHINE-uClibc/usr/include/linux/blockgroup_lock.h -#opt/MACHINE-uClibc/usr/include/linux/bootmem.h -#opt/MACHINE-uClibc/usr/include/linux/bpqether.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder -#opt/MACHINE-uClibc/usr/include/linux/byteorder/big_endian.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/generic.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/little_endian.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/pdp_endian.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/swab.h -#opt/MACHINE-uClibc/usr/include/linux/byteorder/swabb.h -#opt/MACHINE-uClibc/usr/include/linux/cache.h -#opt/MACHINE-uClibc/usr/include/linux/capability.h -#opt/MACHINE-uClibc/usr/include/linux/capi.h -#opt/MACHINE-uClibc/usr/include/linux/cciss_ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/cd1400.h -#opt/MACHINE-uClibc/usr/include/linux/cdk.h -#opt/MACHINE-uClibc/usr/include/linux/cdrom.h -#opt/MACHINE-uClibc/usr/include/linux/circ_buf.h -#opt/MACHINE-uClibc/usr/include/linux/cobalt-nvram.h -#opt/MACHINE-uClibc/usr/include/linux/coda.h -#opt/MACHINE-uClibc/usr/include/linux/coda_proc.h -#opt/MACHINE-uClibc/usr/include/linux/coda_psdev.h -#opt/MACHINE-uClibc/usr/include/linux/coff.h -#opt/MACHINE-uClibc/usr/include/linux/com20020.h -#opt/MACHINE-uClibc/usr/include/linux/compat.h -#opt/MACHINE-uClibc/usr/include/linux/compat_ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/compiler.h -#opt/MACHINE-uClibc/usr/include/linux/comstats.h -#opt/MACHINE-uClibc/usr/include/linux/config.h -#opt/MACHINE-uClibc/usr/include/linux/console.h -#opt/MACHINE-uClibc/usr/include/linux/console_struct.h -#opt/MACHINE-uClibc/usr/include/linux/consolemap.h -#opt/MACHINE-uClibc/usr/include/linux/cpu.h -#opt/MACHINE-uClibc/usr/include/linux/cpufreq.h -#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/crc32.h -#opt/MACHINE-uClibc/usr/include/linux/crypto.h -#opt/MACHINE-uClibc/usr/include/linux/ctype.h -#opt/MACHINE-uClibc/usr/include/linux/cuda.h -#opt/MACHINE-uClibc/usr/include/linux/cyclades.h -#opt/MACHINE-uClibc/usr/include/linux/cycx_cfm.h -#opt/MACHINE-uClibc/usr/include/linux/cycx_drv.h -#opt/MACHINE-uClibc/usr/include/linux/cycx_x25.h -#opt/MACHINE-uClibc/usr/include/linux/devfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/devfs_fs_kernel.h -#opt/MACHINE-uClibc/usr/include/linux/device-mapper.h -#opt/MACHINE-uClibc/usr/include/linux/device.h -#opt/MACHINE-uClibc/usr/include/linux/devpts_fs.h -#opt/MACHINE-uClibc/usr/include/linux/dirent.h -#opt/MACHINE-uClibc/usr/include/linux/divert.h -#opt/MACHINE-uClibc/usr/include/linux/dm-ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/dn.h -#opt/MACHINE-uClibc/usr/include/linux/dnotify.h -#opt/MACHINE-uClibc/usr/include/linux/dqblk_v1.h -#opt/MACHINE-uClibc/usr/include/linux/dqblk_v2.h -#opt/MACHINE-uClibc/usr/include/linux/dqblk_xfs.h -#opt/MACHINE-uClibc/usr/include/linux/dtlk.h -#opt/MACHINE-uClibc/usr/include/linux/dvb -#opt/MACHINE-uClibc/usr/include/linux/dvb/audio.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/ca.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/dmx.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/frontend.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/net.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/osd.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/version.h -#opt/MACHINE-uClibc/usr/include/linux/dvb/video.h -#opt/MACHINE-uClibc/usr/include/linux/eeprom.h -#opt/MACHINE-uClibc/usr/include/linux/efi.h -#opt/MACHINE-uClibc/usr/include/linux/efs_dir.h -#opt/MACHINE-uClibc/usr/include/linux/efs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/efs_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/efs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/efs_vh.h -#opt/MACHINE-uClibc/usr/include/linux/eisa.h -#opt/MACHINE-uClibc/usr/include/linux/elevator.h -#opt/MACHINE-uClibc/usr/include/linux/elf-fdpic.h -#opt/MACHINE-uClibc/usr/include/linux/elf.h -#opt/MACHINE-uClibc/usr/include/linux/elfcore.h -#opt/MACHINE-uClibc/usr/include/linux/err.h -#opt/MACHINE-uClibc/usr/include/linux/err_kernel_only.h -#opt/MACHINE-uClibc/usr/include/linux/errno.h -#opt/MACHINE-uClibc/usr/include/linux/errqueue.h -#opt/MACHINE-uClibc/usr/include/linux/ethtool.h -#opt/MACHINE-uClibc/usr/include/linux/eventpoll.h -#opt/MACHINE-uClibc/usr/include/linux/ext2_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ext3_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ext3_jbd.h -#opt/MACHINE-uClibc/usr/include/linux/fadvise.h -#opt/MACHINE-uClibc/usr/include/linux/fb.h -#opt/MACHINE-uClibc/usr/include/linux/fcntl.h -#opt/MACHINE-uClibc/usr/include/linux/fd.h -#opt/MACHINE-uClibc/usr/include/linux/fd1772.h -#opt/MACHINE-uClibc/usr/include/linux/fdreg.h -#opt/MACHINE-uClibc/usr/include/linux/file.h -#opt/MACHINE-uClibc/usr/include/linux/filter.h -#opt/MACHINE-uClibc/usr/include/linux/firmware.h -#opt/MACHINE-uClibc/usr/include/linux/flat.h -#opt/MACHINE-uClibc/usr/include/linux/font.h -#opt/MACHINE-uClibc/usr/include/linux/fs.h -#opt/MACHINE-uClibc/usr/include/linux/fs_struct.h -#opt/MACHINE-uClibc/usr/include/linux/ftape-header-segment.h -#opt/MACHINE-uClibc/usr/include/linux/ftape-vendors.h -#opt/MACHINE-uClibc/usr/include/linux/ftape.h -#opt/MACHINE-uClibc/usr/include/linux/futex.h -#opt/MACHINE-uClibc/usr/include/linux/gameport.h -#opt/MACHINE-uClibc/usr/include/linux/gen_stats.h -#opt/MACHINE-uClibc/usr/include/linux/generic_serial.h -#opt/MACHINE-uClibc/usr/include/linux/genhd.h -#opt/MACHINE-uClibc/usr/include/linux/gfp.h -#opt/MACHINE-uClibc/usr/include/linux/hash.h -#opt/MACHINE-uClibc/usr/include/linux/hayesesp.h -#opt/MACHINE-uClibc/usr/include/linux/hdlc -#opt/MACHINE-uClibc/usr/include/linux/hdlc.h -#opt/MACHINE-uClibc/usr/include/linux/hdlc/ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/hdlcdrv.h -#opt/MACHINE-uClibc/usr/include/linux/hdreg.h -#opt/MACHINE-uClibc/usr/include/linux/hdsmart.h -#opt/MACHINE-uClibc/usr/include/linux/hiddev.h -#opt/MACHINE-uClibc/usr/include/linux/highuid.h -#opt/MACHINE-uClibc/usr/include/linux/hpfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/hysdn_if.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-bit.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-ite.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-pcf.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sgi.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sibyte.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-dev.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-id.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-sensor.h -#opt/MACHINE-uClibc/usr/include/linux/i2c-vid.h -#opt/MACHINE-uClibc/usr/include/linux/i2c.h -#opt/MACHINE-uClibc/usr/include/linux/i2o-dev.h -#opt/MACHINE-uClibc/usr/include/linux/i8k.h -#opt/MACHINE-uClibc/usr/include/linux/ibmtr.h -#opt/MACHINE-uClibc/usr/include/linux/icmp.h -#opt/MACHINE-uClibc/usr/include/linux/icmpv6.h -#opt/MACHINE-uClibc/usr/include/linux/ide.h -#opt/MACHINE-uClibc/usr/include/linux/idr.h -#opt/MACHINE-uClibc/usr/include/linux/if.h -#opt/MACHINE-uClibc/usr/include/linux/if_arcnet.h -#opt/MACHINE-uClibc/usr/include/linux/if_arp.h -#opt/MACHINE-uClibc/usr/include/linux/if_bonding.h -#opt/MACHINE-uClibc/usr/include/linux/if_bridge.h -#opt/MACHINE-uClibc/usr/include/linux/if_cablemodem.h -#opt/MACHINE-uClibc/usr/include/linux/if_ec.h -#opt/MACHINE-uClibc/usr/include/linux/if_eql.h -#opt/MACHINE-uClibc/usr/include/linux/if_ether.h -#opt/MACHINE-uClibc/usr/include/linux/if_fc.h -#opt/MACHINE-uClibc/usr/include/linux/if_fddi.h -#opt/MACHINE-uClibc/usr/include/linux/if_frad.h -#opt/MACHINE-uClibc/usr/include/linux/if_hippi.h -#opt/MACHINE-uClibc/usr/include/linux/if_infiniband.h -#opt/MACHINE-uClibc/usr/include/linux/if_ltalk.h -#opt/MACHINE-uClibc/usr/include/linux/if_packet.h -#opt/MACHINE-uClibc/usr/include/linux/if_plip.h -#opt/MACHINE-uClibc/usr/include/linux/if_ppp.h -#opt/MACHINE-uClibc/usr/include/linux/if_pppox.h -#opt/MACHINE-uClibc/usr/include/linux/if_shaper.h -#opt/MACHINE-uClibc/usr/include/linux/if_slip.h -#opt/MACHINE-uClibc/usr/include/linux/if_strip.h -#opt/MACHINE-uClibc/usr/include/linux/if_tr.h -#opt/MACHINE-uClibc/usr/include/linux/if_tun.h -#opt/MACHINE-uClibc/usr/include/linux/if_tunnel.h -#opt/MACHINE-uClibc/usr/include/linux/if_vlan.h -#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe.h -#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe_common.h -#opt/MACHINE-uClibc/usr/include/linux/igmp.h -#opt/MACHINE-uClibc/usr/include/linux/in.h -#opt/MACHINE-uClibc/usr/include/linux/in6.h -#opt/MACHINE-uClibc/usr/include/linux/in_route.h -#opt/MACHINE-uClibc/usr/include/linux/inetdevice.h -#opt/MACHINE-uClibc/usr/include/linux/init.h -#opt/MACHINE-uClibc/usr/include/linux/init_task.h -#opt/MACHINE-uClibc/usr/include/linux/initrd.h -#opt/MACHINE-uClibc/usr/include/linux/inotify.h -#opt/MACHINE-uClibc/usr/include/linux/input.h -#opt/MACHINE-uClibc/usr/include/linux/interrupt.h -#opt/MACHINE-uClibc/usr/include/linux/ioctl.h -#opt/MACHINE-uClibc/usr/include/linux/ioctl32.h -#opt/MACHINE-uClibc/usr/include/linux/ioport.h -#opt/MACHINE-uClibc/usr/include/linux/ip.h -#opt/MACHINE-uClibc/usr/include/linux/ip6_tunnel.h -#opt/MACHINE-uClibc/usr/include/linux/ip_mp_alg.h -#opt/MACHINE-uClibc/usr/include/linux/ipc.h -#opt/MACHINE-uClibc/usr/include/linux/ipmi.h -#opt/MACHINE-uClibc/usr/include/linux/ipmi_msgdefs.h -#opt/MACHINE-uClibc/usr/include/linux/ipmi_smi.h -#opt/MACHINE-uClibc/usr/include/linux/ipsec.h -#opt/MACHINE-uClibc/usr/include/linux/ipv6.h -#opt/MACHINE-uClibc/usr/include/linux/ipv6_route.h -#opt/MACHINE-uClibc/usr/include/linux/ipx.h -#opt/MACHINE-uClibc/usr/include/linux/irda.h -#opt/MACHINE-uClibc/usr/include/linux/irq.h -#opt/MACHINE-uClibc/usr/include/linux/irq_cpustat.h -#opt/MACHINE-uClibc/usr/include/linux/isapnp.h -#opt/MACHINE-uClibc/usr/include/linux/isdn -#opt/MACHINE-uClibc/usr/include/linux/isdn.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/capicmd.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/capilli.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/capiutil.h -#opt/MACHINE-uClibc/usr/include/linux/isdn/tpam.h -#opt/MACHINE-uClibc/usr/include/linux/isdn_divertif.h -#opt/MACHINE-uClibc/usr/include/linux/isdn_ppp.h -#opt/MACHINE-uClibc/usr/include/linux/isdnif.h -#opt/MACHINE-uClibc/usr/include/linux/isicom.h -#opt/MACHINE-uClibc/usr/include/linux/iso_fs.h -#opt/MACHINE-uClibc/usr/include/linux/istallion.h -#opt/MACHINE-uClibc/usr/include/linux/ite_gpio.h -#opt/MACHINE-uClibc/usr/include/linux/ixjuser.h -#opt/MACHINE-uClibc/usr/include/linux/jbd.h -#opt/MACHINE-uClibc/usr/include/linux/jffs.h -#opt/MACHINE-uClibc/usr/include/linux/jffs2.h -#opt/MACHINE-uClibc/usr/include/linux/jffs2_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/jhash.h -#opt/MACHINE-uClibc/usr/include/linux/jiffies.h -#opt/MACHINE-uClibc/usr/include/linux/journal-head.h -#opt/MACHINE-uClibc/usr/include/linux/joystick.h -#opt/MACHINE-uClibc/usr/include/linux/kallsyms.h -#opt/MACHINE-uClibc/usr/include/linux/kbd_diacr.h -#opt/MACHINE-uClibc/usr/include/linux/kbd_kern.h -#opt/MACHINE-uClibc/usr/include/linux/kd.h -#opt/MACHINE-uClibc/usr/include/linux/kdev_t.h -#opt/MACHINE-uClibc/usr/include/linux/kernel.h -#opt/MACHINE-uClibc/usr/include/linux/kernel_stat.h -#opt/MACHINE-uClibc/usr/include/linux/kernelcapi.h -#opt/MACHINE-uClibc/usr/include/linux/keyboard.h -#opt/MACHINE-uClibc/usr/include/linux/keyctl.h -#opt/MACHINE-uClibc/usr/include/linux/kmalloc_sizes.h -#opt/MACHINE-uClibc/usr/include/linux/kmod.h -#opt/MACHINE-uClibc/usr/include/linux/kprobes.h -#opt/MACHINE-uClibc/usr/include/linux/lapb.h -#opt/MACHINE-uClibc/usr/include/linux/lcd.h -#opt/MACHINE-uClibc/usr/include/linux/libata.h -#opt/MACHINE-uClibc/usr/include/linux/libps2.h -#opt/MACHINE-uClibc/usr/include/linux/limits.h -#opt/MACHINE-uClibc/usr/include/linux/linkage.h -#opt/MACHINE-uClibc/usr/include/linux/linux_logo.h -#opt/MACHINE-uClibc/usr/include/linux/list.h -#opt/MACHINE-uClibc/usr/include/linux/llc.h -#opt/MACHINE-uClibc/usr/include/linux/lockd -#opt/MACHINE-uClibc/usr/include/linux/lockd/bind.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/debug.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/nlm.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/share.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/sm_inter.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr.h -#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr4.h -#opt/MACHINE-uClibc/usr/include/linux/loop.h -#opt/MACHINE-uClibc/usr/include/linux/lp.h -#opt/MACHINE-uClibc/usr/include/linux/major.h -#opt/MACHINE-uClibc/usr/include/linux/matroxfb.h -#opt/MACHINE-uClibc/usr/include/linux/mbcache.h -#opt/MACHINE-uClibc/usr/include/linux/mc6821.h -#opt/MACHINE-uClibc/usr/include/linux/mca-legacy.h -#opt/MACHINE-uClibc/usr/include/linux/mca.h -#opt/MACHINE-uClibc/usr/include/linux/mempool.h -#opt/MACHINE-uClibc/usr/include/linux/meye.h -#opt/MACHINE-uClibc/usr/include/linux/mii.h -#opt/MACHINE-uClibc/usr/include/linux/minix_fs.h -#opt/MACHINE-uClibc/usr/include/linux/miscdevice.h -#opt/MACHINE-uClibc/usr/include/linux/mm.h -#opt/MACHINE-uClibc/usr/include/linux/mm_inline.h -#opt/MACHINE-uClibc/usr/include/linux/mman.h -#opt/MACHINE-uClibc/usr/include/linux/mod_devicetable.h -#opt/MACHINE-uClibc/usr/include/linux/module.h -#opt/MACHINE-uClibc/usr/include/linux/moduleloader.h -#opt/MACHINE-uClibc/usr/include/linux/moduleparam.h -#opt/MACHINE-uClibc/usr/include/linux/mount.h -#opt/MACHINE-uClibc/usr/include/linux/mroute.h -#opt/MACHINE-uClibc/usr/include/linux/msdos_fs.h -#opt/MACHINE-uClibc/usr/include/linux/msg.h -#opt/MACHINE-uClibc/usr/include/linux/mtd -#opt/MACHINE-uClibc/usr/include/linux/mtd/blktrans.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi_endian.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/compatmac.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/concat.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/doc2000.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/flashchip.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/ftl.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/gen_probe.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/iflash.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/jedec.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/map.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/nand.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/nand_ecc.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/nftl.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/partitions.h -#opt/MACHINE-uClibc/usr/include/linux/mtd/pmc551.h -#opt/MACHINE-uClibc/usr/include/linux/mtio.h -#opt/MACHINE-uClibc/usr/include/linux/n_r3964.h -#opt/MACHINE-uClibc/usr/include/linux/namei.h -#opt/MACHINE-uClibc/usr/include/linux/nbd.h -#opt/MACHINE-uClibc/usr/include/linux/ncp.h -#opt/MACHINE-uClibc/usr/include/linux/ncp_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ncp_mount.h -#opt/MACHINE-uClibc/usr/include/linux/ncp_no.h -#opt/MACHINE-uClibc/usr/include/linux/net.h -#opt/MACHINE-uClibc/usr/include/linux/netdevice.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arp_tables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arpt_mangle.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_802_3.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_among.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arpreply.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ip.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_limit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_log.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_m.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_t.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_nat.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_pkttype.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_redirect.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_stp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ulog.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_vlan.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebtables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_decnet.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4 -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_core.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_core.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_helper.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_protocol.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_rule.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_queue.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_tables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_DSCP.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ECN.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_LOG.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_MARK.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_REJECT.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_SAME.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TOS.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ULOG.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_addrtype.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ah.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_comment.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_connmark.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_conntrack.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_dscp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ecn.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_esp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_hashlimit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_helper.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_iprange.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_length.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_limit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mac.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mark.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_multiport.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_owner.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_physdev.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_pkttype.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_realm.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_recent.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_sctp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_state.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tcpmss.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tos.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ttl.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/listhelp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/lockhelp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6 -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6_tables.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_LOG.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_MARK.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ah.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_esp.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_frag.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_hl.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_length.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_limit.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mac.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mark.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_multiport.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_opts.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_owner.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_physdev.h -#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_rt.h -#opt/MACHINE-uClibc/usr/include/linux/netlink.h -#opt/MACHINE-uClibc/usr/include/linux/netrom.h -#opt/MACHINE-uClibc/usr/include/linux/nfs.h -#opt/MACHINE-uClibc/usr/include/linux/nfs2.h -#opt/MACHINE-uClibc/usr/include/linux/nfs3.h -#opt/MACHINE-uClibc/usr/include/linux/nfs4.h -#opt/MACHINE-uClibc/usr/include/linux/nfs4_mount.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_idmap.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_mount.h -#opt/MACHINE-uClibc/usr/include/linux/nfs_xdr.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd -#opt/MACHINE-uClibc/usr/include/linux/nfsd/const.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/debug.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/export.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/interface.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsd.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsfh.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/state.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/stats.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/syscall.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr3.h -#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr4.h -#opt/MACHINE-uClibc/usr/include/linux/nls.h -#opt/MACHINE-uClibc/usr/include/linux/nmi.h -#opt/MACHINE-uClibc/usr/include/linux/node.h -#opt/MACHINE-uClibc/usr/include/linux/notifier.h -#opt/MACHINE-uClibc/usr/include/linux/nubus.h -#opt/MACHINE-uClibc/usr/include/linux/numa.h -#opt/MACHINE-uClibc/usr/include/linux/nvram.h -#opt/MACHINE-uClibc/usr/include/linux/openprom_fs.h -#opt/MACHINE-uClibc/usr/include/linux/oprofile.h -#opt/MACHINE-uClibc/usr/include/linux/pagemap.h -#opt/MACHINE-uClibc/usr/include/linux/pagevec.h -#opt/MACHINE-uClibc/usr/include/linux/param.h -#opt/MACHINE-uClibc/usr/include/linux/parport.h -#opt/MACHINE-uClibc/usr/include/linux/parport_pc.h -#opt/MACHINE-uClibc/usr/include/linux/parser.h -#opt/MACHINE-uClibc/usr/include/linux/patchkey.h -#opt/MACHINE-uClibc/usr/include/linux/pci-dynids.h -#opt/MACHINE-uClibc/usr/include/linux/pci.h -#opt/MACHINE-uClibc/usr/include/linux/pci_ids.h -#opt/MACHINE-uClibc/usr/include/linux/pcieport_if.h -#opt/MACHINE-uClibc/usr/include/linux/percpu.h -#opt/MACHINE-uClibc/usr/include/linux/percpu_counter.h -#opt/MACHINE-uClibc/usr/include/linux/personality.h -#opt/MACHINE-uClibc/usr/include/linux/pfkeyv2.h -#opt/MACHINE-uClibc/usr/include/linux/pg.h -#opt/MACHINE-uClibc/usr/include/linux/pipe_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/pkt_cls.h -#opt/MACHINE-uClibc/usr/include/linux/pkt_sched.h -#opt/MACHINE-uClibc/usr/include/linux/pktcdvd.h -#opt/MACHINE-uClibc/usr/include/linux/pmu.h -#opt/MACHINE-uClibc/usr/include/linux/poll.h -#opt/MACHINE-uClibc/usr/include/linux/posix-timers.h -#opt/MACHINE-uClibc/usr/include/linux/posix_acl.h -#opt/MACHINE-uClibc/usr/include/linux/posix_acl_xattr.h -#opt/MACHINE-uClibc/usr/include/linux/posix_types.h -#opt/MACHINE-uClibc/usr/include/linux/ppdev.h -#opt/MACHINE-uClibc/usr/include/linux/ppp-comp.h -#opt/MACHINE-uClibc/usr/include/linux/ppp_channel.h -#opt/MACHINE-uClibc/usr/include/linux/ppp_defs.h -#opt/MACHINE-uClibc/usr/include/linux/prctl.h -#opt/MACHINE-uClibc/usr/include/linux/preempt.h -#opt/MACHINE-uClibc/usr/include/linux/prefetch.h -#opt/MACHINE-uClibc/usr/include/linux/proc_fs.h -#opt/MACHINE-uClibc/usr/include/linux/ps2esdi.h -#opt/MACHINE-uClibc/usr/include/linux/ptrace.h -#opt/MACHINE-uClibc/usr/include/linux/qic117.h -#opt/MACHINE-uClibc/usr/include/linux/qnx4_fs.h -#opt/MACHINE-uClibc/usr/include/linux/qnxtypes.h -#opt/MACHINE-uClibc/usr/include/linux/quota.h -#opt/MACHINE-uClibc/usr/include/linux/quotaio_v1.h -#opt/MACHINE-uClibc/usr/include/linux/quotaio_v2.h -#opt/MACHINE-uClibc/usr/include/linux/radeonfb.h -#opt/MACHINE-uClibc/usr/include/linux/raid -#opt/MACHINE-uClibc/usr/include/linux/raid/linear.h -#opt/MACHINE-uClibc/usr/include/linux/raid/md.h -#opt/MACHINE-uClibc/usr/include/linux/raid/md_p.h -#opt/MACHINE-uClibc/usr/include/linux/raid/md_u.h -#opt/MACHINE-uClibc/usr/include/linux/raid/multipath.h -#opt/MACHINE-uClibc/usr/include/linux/raid/raid0.h -#opt/MACHINE-uClibc/usr/include/linux/raid/raid1.h -#opt/MACHINE-uClibc/usr/include/linux/raid/raid5.h -#opt/MACHINE-uClibc/usr/include/linux/raid/xor.h -#opt/MACHINE-uClibc/usr/include/linux/random.h -#opt/MACHINE-uClibc/usr/include/linux/raw.h -#opt/MACHINE-uClibc/usr/include/linux/rbtree.h -#opt/MACHINE-uClibc/usr/include/linux/reboot.h -#opt/MACHINE-uClibc/usr/include/linux/reiserfs_acl.h -#opt/MACHINE-uClibc/usr/include/linux/reiserfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/reiserfs_xattr.h -#opt/MACHINE-uClibc/usr/include/linux/resource.h -#opt/MACHINE-uClibc/usr/include/linux/romfs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/root_dev.h -#opt/MACHINE-uClibc/usr/include/linux/rose.h -#opt/MACHINE-uClibc/usr/include/linux/route.h -#opt/MACHINE-uClibc/usr/include/linux/rtc.h -#opt/MACHINE-uClibc/usr/include/linux/rtnetlink.h -#opt/MACHINE-uClibc/usr/include/linux/sc26198.h -#opt/MACHINE-uClibc/usr/include/linux/scc.h -#opt/MACHINE-uClibc/usr/include/linux/sched.h -#opt/MACHINE-uClibc/usr/include/linux/sctp.h -#opt/MACHINE-uClibc/usr/include/linux/scx200.h -#opt/MACHINE-uClibc/usr/include/linux/scx200_gpio.h -#opt/MACHINE-uClibc/usr/include/linux/sdla.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_asy.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_chdlc.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_fr.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_ppp.h -#opt/MACHINE-uClibc/usr/include/linux/sdla_x25.h -#opt/MACHINE-uClibc/usr/include/linux/sdladrv.h -#opt/MACHINE-uClibc/usr/include/linux/sdlapci.h -#opt/MACHINE-uClibc/usr/include/linux/sdlasfm.h -#opt/MACHINE-uClibc/usr/include/linux/securebits.h -#opt/MACHINE-uClibc/usr/include/linux/security.h -#opt/MACHINE-uClibc/usr/include/linux/selection.h -#opt/MACHINE-uClibc/usr/include/linux/selinux_netlink.h -#opt/MACHINE-uClibc/usr/include/linux/sem.h -#opt/MACHINE-uClibc/usr/include/linux/seqlock.h -#opt/MACHINE-uClibc/usr/include/linux/serial.h -#opt/MACHINE-uClibc/usr/include/linux/serial167.h -#opt/MACHINE-uClibc/usr/include/linux/serialP.h -#opt/MACHINE-uClibc/usr/include/linux/serial_8250.h -#opt/MACHINE-uClibc/usr/include/linux/serial_core.h -#opt/MACHINE-uClibc/usr/include/linux/serial_reg.h -#opt/MACHINE-uClibc/usr/include/linux/serio.h -#opt/MACHINE-uClibc/usr/include/linux/shm.h -#opt/MACHINE-uClibc/usr/include/linux/siginfo.h -#opt/MACHINE-uClibc/usr/include/linux/signal.h -#opt/MACHINE-uClibc/usr/include/linux/skbuff.h -#opt/MACHINE-uClibc/usr/include/linux/smb.h -#opt/MACHINE-uClibc/usr/include/linux/smb_fs.h -#opt/MACHINE-uClibc/usr/include/linux/smb_mount.h -#opt/MACHINE-uClibc/usr/include/linux/smbno.h -#opt/MACHINE-uClibc/usr/include/linux/smp_lock.h -#opt/MACHINE-uClibc/usr/include/linux/snmp.h -#opt/MACHINE-uClibc/usr/include/linux/socket.h -#opt/MACHINE-uClibc/usr/include/linux/sockios.h -#opt/MACHINE-uClibc/usr/include/linux/som.h -#opt/MACHINE-uClibc/usr/include/linux/sonet.h -#opt/MACHINE-uClibc/usr/include/linux/sonypi.h -#opt/MACHINE-uClibc/usr/include/linux/sound.h -#opt/MACHINE-uClibc/usr/include/linux/soundcard.h -#opt/MACHINE-uClibc/usr/include/linux/spinlock.h -#opt/MACHINE-uClibc/usr/include/linux/stallion.h -#opt/MACHINE-uClibc/usr/include/linux/stddef.h -#opt/MACHINE-uClibc/usr/include/linux/stringify.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/cache.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/clnt.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/debug.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_asn1.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_krb5.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_spkm3.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/sched.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/stats.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svc.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svcsock.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/timer.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/types.h -#opt/MACHINE-uClibc/usr/include/linux/sunrpc/xprt.h -#opt/MACHINE-uClibc/usr/include/linux/superhyway.h -#opt/MACHINE-uClibc/usr/include/linux/suspend.h -#opt/MACHINE-uClibc/usr/include/linux/swap.h -#opt/MACHINE-uClibc/usr/include/linux/swapops.h -#opt/MACHINE-uClibc/usr/include/linux/synclink.h -#opt/MACHINE-uClibc/usr/include/linux/sys.h -#opt/MACHINE-uClibc/usr/include/linux/syscalls.h -#opt/MACHINE-uClibc/usr/include/linux/sysctl.h -#opt/MACHINE-uClibc/usr/include/linux/sysdev.h -#opt/MACHINE-uClibc/usr/include/linux/sysfs.h -#opt/MACHINE-uClibc/usr/include/linux/sysrq.h -#opt/MACHINE-uClibc/usr/include/linux/sysv_fs.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_defact.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_gact.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_ipt.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_mirred.h -#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_pedit.h -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_cmp.h -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_meta.h -#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_nbyte.h -#opt/MACHINE-uClibc/usr/include/linux/tcp.h -#opt/MACHINE-uClibc/usr/include/linux/tcp_diag.h -#opt/MACHINE-uClibc/usr/include/linux/telephony.h -#opt/MACHINE-uClibc/usr/include/linux/termios.h -#opt/MACHINE-uClibc/usr/include/linux/threads.h -#opt/MACHINE-uClibc/usr/include/linux/ticable.h -#opt/MACHINE-uClibc/usr/include/linux/time.h -#opt/MACHINE-uClibc/usr/include/linux/times.h -#opt/MACHINE-uClibc/usr/include/linux/timex.h -#opt/MACHINE-uClibc/usr/include/linux/tiocl.h -#opt/MACHINE-uClibc/usr/include/linux/toshiba.h -#opt/MACHINE-uClibc/usr/include/linux/tty.h -#opt/MACHINE-uClibc/usr/include/linux/types.h -#opt/MACHINE-uClibc/usr/include/linux/udf_fs.h -#opt/MACHINE-uClibc/usr/include/linux/udf_fs_i.h -#opt/MACHINE-uClibc/usr/include/linux/udf_fs_sb.h -#opt/MACHINE-uClibc/usr/include/linux/udp.h -#opt/MACHINE-uClibc/usr/include/linux/ufs_fs.h -#opt/MACHINE-uClibc/usr/include/linux/uinput.h -#opt/MACHINE-uClibc/usr/include/linux/uio.h -#opt/MACHINE-uClibc/usr/include/linux/ultrasound.h -#opt/MACHINE-uClibc/usr/include/linux/umem.h -#opt/MACHINE-uClibc/usr/include/linux/un.h -#opt/MACHINE-uClibc/usr/include/linux/unistd.h -#opt/MACHINE-uClibc/usr/include/linux/usb.h -#opt/MACHINE-uClibc/usr/include/linux/usb_cdc.h -#opt/MACHINE-uClibc/usr/include/linux/usb_ch9.h -#opt/MACHINE-uClibc/usr/include/linux/usb_gadgetfs.h -#opt/MACHINE-uClibc/usr/include/linux/usbdevice_fs.h -#opt/MACHINE-uClibc/usr/include/linux/user.h -#opt/MACHINE-uClibc/usr/include/linux/utime.h -#opt/MACHINE-uClibc/usr/include/linux/uts.h -#opt/MACHINE-uClibc/usr/include/linux/utsname.h -#opt/MACHINE-uClibc/usr/include/linux/version.h -#opt/MACHINE-uClibc/usr/include/linux/video_decoder.h -#opt/MACHINE-uClibc/usr/include/linux/video_encoder.h -#opt/MACHINE-uClibc/usr/include/linux/videodev.h -#opt/MACHINE-uClibc/usr/include/linux/videodev2.h -#opt/MACHINE-uClibc/usr/include/linux/videotext.h -#opt/MACHINE-uClibc/usr/include/linux/vmalloc.h -#opt/MACHINE-uClibc/usr/include/linux/vt.h -#opt/MACHINE-uClibc/usr/include/linux/vt_buffer.h -#opt/MACHINE-uClibc/usr/include/linux/vt_kern.h -#opt/MACHINE-uClibc/usr/include/linux/wait.h -#opt/MACHINE-uClibc/usr/include/linux/wanpipe.h -#opt/MACHINE-uClibc/usr/include/linux/wanrouter.h -#opt/MACHINE-uClibc/usr/include/linux/watchdog.h -#opt/MACHINE-uClibc/usr/include/linux/wavefront.h -#opt/MACHINE-uClibc/usr/include/linux/wireless.h -#opt/MACHINE-uClibc/usr/include/linux/workqueue.h -#opt/MACHINE-uClibc/usr/include/linux/x25.h -#opt/MACHINE-uClibc/usr/include/linux/xattr.h -#opt/MACHINE-uClibc/usr/include/linux/xattr_acl.h -#opt/MACHINE-uClibc/usr/include/linux/xfrm.h -#opt/MACHINE-uClibc/usr/include/linux/yam.h -#opt/MACHINE-uClibc/usr/include/linux/zftape.h -#opt/MACHINE-uClibc/usr/include/linux/zorro.h -#opt/MACHINE-uClibc/usr/include/linux/zorro_ids.h diff --git a/config/rootfiles/common/mISDNuser b/config/rootfiles/common/mISDNuser index d75a666073..9c424c4a53 100644 --- a/config/rootfiles/common/mISDNuser +++ b/config/rootfiles/common/mISDNuser @@ -1,7 +1,13 @@ +usr/bin/isdn_text2wireshark usr/bin/l1oipctrl +usr/bin/misdn_E1test usr/bin/misdn_bridge usr/bin/misdn_info usr/bin/misdn_log +#usr/etc +#usr/etc/udev +#usr/etc/udev/rules.d +#usr/etc/udev/rules.d/45-misdn.rules #usr/include/mISDN #usr/include/mISDN/l3dss1.h #usr/include/mISDN/mISDNcompat.h @@ -13,13 +19,8 @@ usr/bin/misdn_log #usr/lib/libmisdn.a #usr/lib/libmisdn.la usr/lib/libmisdn.so -usr/lib/libmisdn.so.0 -usr/lib/libmisdn.so.0.2.1 -#usr/lib/libsuppserv.a -#usr/lib/libsuppserv.la -usr/lib/libsuppserv.so -usr/lib/libsuppserv.so.0 -usr/lib/libsuppserv.so.0.1.1 +usr/lib/libmisdn.so.1 +usr/lib/libmisdn.so.1.0.0 usr/sbin/misdn_cleanl2 usr/sbin/misdn_rename etc/rc.d/init.d/mISDN diff --git a/config/rootfiles/common/mbr b/config/rootfiles/common/mbr index 29544b6eeb..231e27da8b 100644 --- a/config/rootfiles/common/mbr +++ b/config/rootfiles/common/mbr @@ -1,3 +1,2 @@ -#usr/local/man/man8 -#usr/local/man/man8/install-mbr.8 -#usr/local/sbin/install-mbr +#usr/sbin/install-mbr +#usr/share/man/man8/install-mbr.8 diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 3c0b398d3a..d2cf7102c1 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -7,7 +7,6 @@ usr/local/bin/extrahdctrl usr/local/bin/fireinfoctrl usr/local/bin/getconntracktable usr/local/bin/getipstat -usr/local/bin/getiptstate #usr/local/bin/iowrap usr/local/bin/ipfirereboot usr/local/bin/ipsecctrl @@ -34,7 +33,6 @@ usr/local/bin/syslogdctrl usr/local/bin/timectrl #usr/local/bin/tripwirectrl usr/local/bin/updxlratorctrl -usr/local/bin/updxsetperms usr/local/bin/upnpctrl usr/local/bin/urlfilterctrl usr/local/bin/wirelessctrl diff --git a/config/rootfiles/common/mpfr b/config/rootfiles/common/mpfr new file mode 100644 index 0000000000..e4f33374bf --- /dev/null +++ b/config/rootfiles/common/mpfr @@ -0,0 +1,21 @@ +#usr/include/mpf2mpfr.h +#usr/include/mpfr.h +#usr/lib/libmpfr.a +#usr/lib/libmpfr.la +#usr/lib/libmpfr.so +usr/lib/libmpfr.so.1 +usr/lib/libmpfr.so.1.2.2 +#usr/share/doc/mpfr +#usr/share/doc/mpfr/AUTHORS +#usr/share/doc/mpfr/BUGS +#usr/share/doc/mpfr/COPYING +#usr/share/doc/mpfr/COPYING.LIB +#usr/share/doc/mpfr/FAQ.html +#usr/share/doc/mpfr/NEWS +#usr/share/doc/mpfr/TODO +#usr/share/doc/mpfr/examples +#usr/share/doc/mpfr/examples/ReadMe +#usr/share/doc/mpfr/examples/divworst.c +#usr/share/doc/mpfr/examples/rndo-add.c +#usr/share/doc/mpfr/examples/sample.c +#usr/share/info/mpfr.info diff --git a/config/rootfiles/common/ncurses b/config/rootfiles/common/ncurses index ed892d6d00..46b3bd9c96 100644 --- a/config/rootfiles/common/ncurses +++ b/config/rootfiles/common/ncurses @@ -1,15 +1,15 @@ -lib/libncursesw.so.5 -lib/libncursesw.so.5.5 #usr/bin/captoinfo usr/bin/clear #usr/bin/infocmp #usr/bin/infotocap -#usr/bin/reset -#usr/bin/tack +#usr/bin/ncurses5-config +#usr/bin/ncursesw5-config +usr/bin/reset +#usr/bin/tabs #usr/bin/tic #usr/bin/toe usr/bin/tput -#usr/bin/tset +usr/bin/tset #usr/include/curses.h #usr/include/cursesapp.h #usr/include/cursesf.h @@ -21,64 +21,107 @@ usr/bin/tput #usr/include/etip.h #usr/include/form.h #usr/include/menu.h +#usr/include/nc_tparm.h #usr/include/ncurses.h #usr/include/ncurses_dll.h #usr/include/panel.h #usr/include/term.h +#usr/include/term_entry.h #usr/include/termcap.h +#usr/include/tic.h #usr/include/unctrl.h #usr/lib/libcurses.a #usr/lib/libcurses.so -#usr/lib/libcursesw.a #usr/lib/libcursesw.so #usr/lib/libform.a -usr/lib/libform.so +#usr/lib/libform.so +usr/lib/libform.so.5 +usr/lib/libform.so.5.9 #usr/lib/libformw.a -usr/lib/libformw.so +#usr/lib/libformw.so usr/lib/libformw.so.5 -usr/lib/libformw.so.5.5 +usr/lib/libformw.so.5.9 #usr/lib/libmenu.a #usr/lib/libmenu.so +usr/lib/libmenu.so.5 +usr/lib/libmenu.so.5.9 #usr/lib/libmenuw.a -usr/lib/libmenuw.so +#usr/lib/libmenuw.so usr/lib/libmenuw.so.5 -usr/lib/libmenuw.so.5.5 -#usr/lib/libncurses++.a4 +usr/lib/libmenuw.so.5.9 +#usr/lib/libncurses++.a #usr/lib/libncurses++w.a #usr/lib/libncurses.a -usr/lib/libncurses.so +#usr/lib/libncurses.so +usr/lib/libncurses.so.5 +usr/lib/libncurses.so.5.9 #usr/lib/libncursesw.a #usr/lib/libncursesw.so -#usr/lib/libncursesw.so.5.5 +usr/lib/libncursesw.so.5 +usr/lib/libncursesw.so.5.9 #usr/lib/libpanel.a -usr/lib/libpanel.so +#usr/lib/libpanel.so +usr/lib/libpanel.so.5 +usr/lib/libpanel.so.5.9 #usr/lib/libpanelw.a -usr/lib/libpanelw.so +#usr/lib/libpanelw.so usr/lib/libpanelw.so.5 -usr/lib/libpanelw.so.5.5 +usr/lib/libpanelw.so.5.9 +#usr/lib/libtermcap.so +#usr/lib/libtic.a +#usr/lib/libtic.so +usr/lib/libtic.so.5 +usr/lib/libtic.so.5.9 +#usr/lib/libtinfo.a +#usr/lib/libtinfo.so +usr/lib/libtinfo.so.5 +usr/lib/libtinfo.so.5.9 #usr/lib/terminfo #usr/man/man1/captoinfo.1m #usr/man/man1/clear.1 #usr/man/man1/infocmp.1m #usr/man/man1/infotocap.1m +#usr/man/man1/ncursesw5-config.1 #usr/man/man1/reset.1 -#usr/man/man1/tack.1 +#usr/man/man1/tabs.1 #usr/man/man1/tic.1m #usr/man/man1/toe.1m #usr/man/man1/tput.1 #usr/man/man1/tset.1 #usr/man/man3 +#usr/man/man3/BC.3x +#usr/man/man3/COLORS.3x #usr/man/man3/COLOR_PAIR.3x +#usr/man/man3/COLOR_PAIRS.3x +#usr/man/man3/COLS.3x +#usr/man/man3/ESCDELAY.3x +#usr/man/man3/LINES.3x #usr/man/man3/PAIR_NUMBER.3x +#usr/man/man3/PC.3x +#usr/man/man3/SP.3x +#usr/man/man3/TABSIZE.3x +#usr/man/man3/TYPE_ALNUM.3x +#usr/man/man3/TYPE_ALPHA.3x +#usr/man/man3/TYPE_ENUM.3x +#usr/man/man3/TYPE_INTEGER.3x +#usr/man/man3/TYPE_IPV4.3x +#usr/man/man3/TYPE_NUMERIC.3x +#usr/man/man3/TYPE_REGEXP.3x +#usr/man/man3/UP.3x +#usr/man/man3/_nc_free_and_exit.3x +#usr/man/man3/_nc_freeall.3x #usr/man/man3/_nc_tracebits.3x #usr/man/man3/_traceattr.3x #usr/man/man3/_traceattr2.3x +#usr/man/man3/_tracecchar_t.3x +#usr/man/man3/_tracecchar_t2.3x #usr/man/man3/_tracechar.3x #usr/man/man3/_tracechtype.3x #usr/man/man3/_tracechtype2.3x #usr/man/man3/_tracedump.3x #usr/man/man3/_tracef.3x #usr/man/man3/_tracemouse.3x +#usr/man/man3/acs_map.3x #usr/man/man3/add_wch.3x #usr/man/man3/add_wchnstr.3x #usr/man/man3/add_wchstr.3x @@ -90,6 +133,7 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/addstr.3x #usr/man/man3/addwstr.3x #usr/man/man3/assume_default_colors.3x +#usr/man/man3/assume_default_colors_sp.3x #usr/man/man3/attr_get.3x #usr/man/man3/attr_off.3x #usr/man/man3/attr_on.3x @@ -98,26 +142,36 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/attron.3x #usr/man/man3/attrset.3x #usr/man/man3/baudrate.3x +#usr/man/man3/baudrate_sp.3x #usr/man/man3/beep.3x +#usr/man/man3/beep_sp.3x #usr/man/man3/bkgd.3x #usr/man/man3/bkgdset.3x #usr/man/man3/bkgrnd.3x #usr/man/man3/bkgrndset.3x +#usr/man/man3/boolcodes.3x +#usr/man/man3/boolfnames.3x +#usr/man/man3/boolnames.3x #usr/man/man3/border.3x #usr/man/man3/border_set.3x #usr/man/man3/bottom_panel.3x #usr/man/man3/box.3x #usr/man/man3/box_set.3x #usr/man/man3/can_change_color.3x +#usr/man/man3/can_change_color_sp.3x #usr/man/man3/cbreak.3x +#usr/man/man3/cbreak_sp.3x +#usr/man/man3/ceiling_panel.3x #usr/man/man3/chgat.3x #usr/man/man3/clear.3x #usr/man/man3/clearok.3x #usr/man/man3/clrtobot.3x #usr/man/man3/clrtoeol.3x #usr/man/man3/color_content.3x +#usr/man/man3/color_content_sp.3x #usr/man/man3/color_set.3x #usr/man/man3/copywin.3x +#usr/man/man3/cur_term.3x #usr/man/man3/current_field.3x #usr/man/man3/current_item.3x #usr/man/man3/curs_add_wch.3x @@ -156,8 +210,11 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/curs_instr.3x #usr/man/man3/curs_inwstr.3x #usr/man/man3/curs_kernel.3x +#usr/man/man3/curs_legacy.3x +#usr/man/man3/curs_memleaks.3x #usr/man/man3/curs_mouse.3x #usr/man/man3/curs_move.3x +#usr/man/man3/curs_opaque.3x #usr/man/man3/curs_outopts.3x #usr/man/man3/curs_overlay.3x #usr/man/man3/curs_pad.3x @@ -168,39 +225,53 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/curs_scr_dump.3x #usr/man/man3/curs_scroll.3x #usr/man/man3/curs_set.3x +#usr/man/man3/curs_set_sp.3x #usr/man/man3/curs_slk.3x +#usr/man/man3/curs_sp_funcs.3x #usr/man/man3/curs_termattrs.3x #usr/man/man3/curs_termcap.3x #usr/man/man3/curs_terminfo.3x +#usr/man/man3/curs_threads.3x #usr/man/man3/curs_touch.3x #usr/man/man3/curs_trace.3x #usr/man/man3/curs_util.3x +#usr/man/man3/curs_variables.3x #usr/man/man3/curs_window.3x +#usr/man/man3/curscr.3x #usr/man/man3/curses_version.3x #usr/man/man3/data_ahead.3x #usr/man/man3/data_behind.3x #usr/man/man3/def_prog_mode.3x +#usr/man/man3/def_prog_mode_sp.3x #usr/man/man3/def_shell_mode.3x +#usr/man/man3/def_shell_mode_sp.3x #usr/man/man3/default_colors.3x #usr/man/man3/define_key.3x +#usr/man/man3/define_key_sp.3x #usr/man/man3/del_curterm.3x +#usr/man/man3/del_curterm_sp.3x #usr/man/man3/del_panel.3x #usr/man/man3/delay_output.3x +#usr/man/man3/delay_output_sp.3x #usr/man/man3/delch.3x #usr/man/man3/deleteln.3x #usr/man/man3/delscreen.3x #usr/man/man3/delwin.3x #usr/man/man3/derwin.3x #usr/man/man3/doupdate.3x +#usr/man/man3/doupdate_sp.3x #usr/man/man3/dup_field.3x #usr/man/man3/dupwin.3x #usr/man/man3/dynamic_field_info.3x #usr/man/man3/echo.3x +#usr/man/man3/echo_sp.3x #usr/man/man3/echo_wchar.3x #usr/man/man3/echochar.3x #usr/man/man3/endwin.3x +#usr/man/man3/endwin_sp.3x #usr/man/man3/erase.3x #usr/man/man3/erasechar.3x +#usr/man/man3/erasechar_sp.3x #usr/man/man3/erasewchar.3x #usr/man/man3/field_arg.3x #usr/man/man3/field_back.3x @@ -220,8 +291,11 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/field_type.3x #usr/man/man3/field_userptr.3x #usr/man/man3/filter.3x +#usr/man/man3/filter_sp.3x #usr/man/man3/flash.3x +#usr/man/man3/flash_sp.3x #usr/man/man3/flushinp.3x +#usr/man/man3/flushinp_sp.3x #usr/man/man3/form.3x #usr/man/man3/form_cursor.3x #usr/man/man3/form_data.3x @@ -252,33 +326,55 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/form_sub.3x #usr/man/man3/form_term.3x #usr/man/man3/form_userptr.3x +#usr/man/man3/form_variables.3x #usr/man/man3/form_win.3x #usr/man/man3/free_field.3x #usr/man/man3/free_fieldtype.3x #usr/man/man3/free_form.3x #usr/man/man3/free_item.3x #usr/man/man3/free_menu.3x +#usr/man/man3/get_escdelay.3x +#usr/man/man3/get_escdelay_sp.3x #usr/man/man3/get_wch.3x #usr/man/man3/get_wstr.3x +#usr/man/man3/getattrs.3x +#usr/man/man3/getbegx.3x +#usr/man/man3/getbegy.3x #usr/man/man3/getbegyx.3x #usr/man/man3/getbkgd.3x #usr/man/man3/getbkgrnd.3x #usr/man/man3/getcchar.3x #usr/man/man3/getch.3x +#usr/man/man3/getcurx.3x +#usr/man/man3/getcury.3x +#usr/man/man3/getmaxx.3x +#usr/man/man3/getmaxy.3x #usr/man/man3/getmaxyx.3x #usr/man/man3/getmouse.3x +#usr/man/man3/getmouse_sp.3x #usr/man/man3/getn_wstr.3x #usr/man/man3/getnstr.3x +#usr/man/man3/getparx.3x +#usr/man/man3/getpary.3x #usr/man/man3/getparyx.3x #usr/man/man3/getstr.3x #usr/man/man3/getsyx.3x #usr/man/man3/getwin.3x +#usr/man/man3/getwin_sp.3x #usr/man/man3/getyx.3x +#usr/man/man3/ground_panel.3x #usr/man/man3/halfdelay.3x +#usr/man/man3/halfdelay_sp.3x #usr/man/man3/has_colors.3x +#usr/man/man3/has_colors_sp.3x #usr/man/man3/has_ic.3x +#usr/man/man3/has_ic_sp.3x #usr/man/man3/has_il.3x +#usr/man/man3/has_il_sp.3x #usr/man/man3/has_key.3x +#usr/man/man3/has_key_sp.3x +#usr/man/man3/has_mouse.3x +#usr/man/man3/has_mouse_sp.3x #usr/man/man3/hide_panel.3x #usr/man/man3/hline.3x #usr/man/man3/hline_set.3x @@ -292,7 +388,9 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/inchnstr.3x #usr/man/man3/inchstr.3x #usr/man/man3/init_color.3x +#usr/man/man3/init_color_sp.3x #usr/man/man3/init_pair.3x +#usr/man/man3/init_pair_sp.3x #usr/man/man3/initscr.3x #usr/man/man3/innstr.3x #usr/man/man3/innwstr.3x @@ -306,11 +404,26 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/insstr.3x #usr/man/man3/instr.3x #usr/man/man3/intrflush.3x +#usr/man/man3/intrflush_sp.3x #usr/man/man3/inwstr.3x +#usr/man/man3/is_cleared.3x +#usr/man/man3/is_idcok.3x +#usr/man/man3/is_idlok.3x +#usr/man/man3/is_immedok.3x +#usr/man/man3/is_keypad.3x +#usr/man/man3/is_leaveok.3x #usr/man/man3/is_linetouched.3x +#usr/man/man3/is_nodelay.3x +#usr/man/man3/is_notimeout.3x +#usr/man/man3/is_pad.3x +#usr/man/man3/is_scrollok.3x +#usr/man/man3/is_subwin.3x +#usr/man/man3/is_syncok.3x #usr/man/man3/is_term_resized.3x +#usr/man/man3/is_term_resized_sp.3x #usr/man/man3/is_wintouched.3x #usr/man/man3/isendwin.3x +#usr/man/man3/isendwin_sp.3x #usr/man/man3/item_count.3x #usr/man/man3/item_description.3x #usr/man/man3/item_index.3x @@ -324,18 +437,25 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/item_value.3x #usr/man/man3/item_visible.3x #usr/man/man3/key_defined.3x +#usr/man/man3/key_defined_sp.3x #usr/man/man3/key_name.3x #usr/man/man3/keybound.3x +#usr/man/man3/keybound_sp.3x #usr/man/man3/keyname.3x +#usr/man/man3/keyname_sp.3x #usr/man/man3/keyok.3x +#usr/man/man3/keyok_sp.3x #usr/man/man3/keypad.3x #usr/man/man3/killchar.3x +#usr/man/man3/killchar_sp.3x #usr/man/man3/killwchar.3x #usr/man/man3/leaveok.3x +#usr/man/man3/legacy_coding.3x #usr/man/man3/link_field.3x #usr/man/man3/link_fieldtype.3x #usr/man/man3/longname.3x #usr/man/man3/mcprint.3x +#usr/man/man3/mcprint_sp.3x #usr/man/man3/menu.3x #usr/man/man3/menu_attributes.3x #usr/man/man3/menu_back.3x @@ -373,7 +493,9 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/mitem_visible.3x #usr/man/man3/mouse_trafo.3x #usr/man/man3/mouseinterval.3x +#usr/man/man3/mouseinterval_sp.3x #usr/man/man3/mousemask.3x +#usr/man/man3/mousemask_sp.3x #usr/man/man3/move.3x #usr/man/man3/move_field.3x #usr/man/man3/move_panel.3x @@ -389,6 +511,7 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/mvaddwstr.3x #usr/man/man3/mvchgat.3x #usr/man/man3/mvcur.3x +#usr/man/man3/mvcur_sp.3x #usr/man/man3/mvdelch.3x #usr/man/man3/mvderwin.3x #usr/man/man3/mvget_wch.3x @@ -461,28 +584,49 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/mvwvline.3x #usr/man/man3/mvwvline_set.3x #usr/man/man3/napms.3x +#usr/man/man3/napms_sp.3x #usr/man/man3/ncurses.3x #usr/man/man3/new_field.3x #usr/man/man3/new_fieldtype.3x #usr/man/man3/new_form.3x +#usr/man/man3/new_form_sp.3x #usr/man/man3/new_item.3x #usr/man/man3/new_menu.3x +#usr/man/man3/new_menu_sp.3x #usr/man/man3/new_page.3x #usr/man/man3/new_panel.3x +#usr/man/man3/new_prescr.3x #usr/man/man3/newpad.3x +#usr/man/man3/newpad_sp.3x +#usr/man/man3/newscr.3x #usr/man/man3/newterm.3x +#usr/man/man3/newterm_sp.3x #usr/man/man3/newwin.3x +#usr/man/man3/newwin_sp.3x #usr/man/man3/nl.3x +#usr/man/man3/nl_sp.3x #usr/man/man3/nocbreak.3x +#usr/man/man3/nocbreak_sp.3x #usr/man/man3/nodelay.3x #usr/man/man3/noecho.3x +#usr/man/man3/noecho_sp.3x +#usr/man/man3/nofilter.3x +#usr/man/man3/nofilter_sp.3x #usr/man/man3/nonl.3x +#usr/man/man3/nonl_sp.3x #usr/man/man3/noqiflush.3x +#usr/man/man3/noqiflush_sp.3x #usr/man/man3/noraw.3x +#usr/man/man3/noraw_sp.3x #usr/man/man3/notimeout.3x +#usr/man/man3/numcodes.3x +#usr/man/man3/numfnames.3x +#usr/man/man3/numnames.3x +#usr/man/man3/ospeed.3x #usr/man/man3/overlay.3x #usr/man/man3/overwrite.3x #usr/man/man3/pair_content.3x +#usr/man/man3/pair_content_sp.3x #usr/man/man3/panel.3x #usr/man/man3/panel_above.3x #usr/man/man3/panel_below.3x @@ -499,33 +643,50 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/prefresh.3x #usr/man/man3/printw.3x #usr/man/man3/putp.3x +#usr/man/man3/putp_sp.3x #usr/man/man3/putwin.3x #usr/man/man3/qiflush.3x +#usr/man/man3/qiflush_sp.3x #usr/man/man3/raw.3x +#usr/man/man3/raw_sp.3x #usr/man/man3/redrawwin.3x #usr/man/man3/refresh.3x #usr/man/man3/replace_panel.3x #usr/man/man3/reset_prog_mode.3x +#usr/man/man3/reset_prog_mode_sp.3x #usr/man/man3/reset_shell_mode.3x +#usr/man/man3/reset_shell_mode_sp.3x #usr/man/man3/resetty.3x +#usr/man/man3/resetty_sp.3x #usr/man/man3/resize_term.3x +#usr/man/man3/resize_term_sp.3x #usr/man/man3/resizeterm.3x +#usr/man/man3/resizeterm_sp.3x #usr/man/man3/restartterm.3x +#usr/man/man3/restartterm_sp.3x #usr/man/man3/ripoffline.3x +#usr/man/man3/ripoffline_sp.3x #usr/man/man3/savetty.3x +#usr/man/man3/savetty_sp.3x #usr/man/man3/scale_form.3x #usr/man/man3/scale_menu.3x #usr/man/man3/scanw.3x #usr/man/man3/scr_dump.3x #usr/man/man3/scr_init.3x +#usr/man/man3/scr_init_sp.3x #usr/man/man3/scr_restore.3x +#usr/man/man3/scr_restore_sp.3x #usr/man/man3/scr_set.3x +#usr/man/man3/scr_set_sp.3x #usr/man/man3/scrl.3x #usr/man/man3/scroll.3x #usr/man/man3/scrollok.3x #usr/man/man3/set_current_field.3x #usr/man/man3/set_current_item.3x #usr/man/man3/set_curterm.3x +#usr/man/man3/set_curterm_sp.3x +#usr/man/man3/set_escdelay.3x +#usr/man/man3/set_escdelay_sp.3x #usr/man/man3/set_field_back.3x #usr/man/man3/set_field_buffer.3x #usr/man/man3/set_field_fore.3x @@ -570,6 +731,8 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/set_menu_win.3x #usr/man/man3/set_new_page.3x #usr/man/man3/set_panel_userptr.3x +#usr/man/man3/set_tabsize.3x +#usr/man/man3/set_tabsize_sp.3x #usr/man/man3/set_term.3x #usr/man/man3/set_top_row.3x #usr/man/man3/setcchar.3x @@ -582,59 +745,109 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/slk_attr_off.3x #usr/man/man3/slk_attr_on.3x #usr/man/man3/slk_attr_set.3x +#usr/man/man3/slk_attr_set_sp.3x +#usr/man/man3/slk_attr_sp.3x #usr/man/man3/slk_attroff.3x +#usr/man/man3/slk_attroff_sp.3x #usr/man/man3/slk_attron.3x +#usr/man/man3/slk_attron_sp.3x #usr/man/man3/slk_attrset.3x +#usr/man/man3/slk_attrset_sp.3x #usr/man/man3/slk_clear.3x +#usr/man/man3/slk_clear_sp.3x #usr/man/man3/slk_color.3x +#usr/man/man3/slk_color_sp.3x #usr/man/man3/slk_init.3x +#usr/man/man3/slk_init_sp.3x #usr/man/man3/slk_label.3x +#usr/man/man3/slk_label_sp.3x #usr/man/man3/slk_noutrefresh.3x +#usr/man/man3/slk_noutrefresh_sp.3x #usr/man/man3/slk_refresh.3x +#usr/man/man3/slk_refresh_sp.3x #usr/man/man3/slk_restore.3x +#usr/man/man3/slk_restore_sp.3x #usr/man/man3/slk_set.3x +#usr/man/man3/slk_set_sp.3x #usr/man/man3/slk_touch.3x +#usr/man/man3/slk_touch_sp.3x +#usr/man/man3/slk_wset.3x #usr/man/man3/standend.3x #usr/man/man3/standout.3x #usr/man/man3/start_color.3x +#usr/man/man3/start_color_sp.3x +#usr/man/man3/stdscr.3x +#usr/man/man3/strcodes.3x +#usr/man/man3/strfnames.3x +#usr/man/man3/strnames.3x #usr/man/man3/subpad.3x #usr/man/man3/subwin.3x #usr/man/man3/syncok.3x #usr/man/man3/term_attrs.3x +#usr/man/man3/term_attrs_sp.3x +#usr/man/man3/term_variables.3x #usr/man/man3/termattrs.3x +#usr/man/man3/termattrs_sp.3x #usr/man/man3/termname.3x +#usr/man/man3/termname_sp.3x #usr/man/man3/tgetent.3x +#usr/man/man3/tgetent_sp.3x #usr/man/man3/tgetflag.3x +#usr/man/man3/tgetflag_sp.3x #usr/man/man3/tgetnum.3x +#usr/man/man3/tgetnum_sp.3x #usr/man/man3/tgetstr.3x +#usr/man/man3/tgetstr_sp.3x #usr/man/man3/tgoto.3x #usr/man/man3/tigetflag.3x +#usr/man/man3/tigetflag_sp.3x #usr/man/man3/tigetnum.3x +#usr/man/man3/tigetnum_sp.3x #usr/man/man3/tigetstr.3x +#usr/man/man3/tigetstr_sp.3x #usr/man/man3/timeout.3x +#usr/man/man3/tiparm.3x #usr/man/man3/top_panel.3x #usr/man/man3/top_row.3x #usr/man/man3/touchline.3x #usr/man/man3/touchwin.3x #usr/man/man3/tparm.3x #usr/man/man3/tputs.3x +#usr/man/man3/tputs_sp.3x #usr/man/man3/trace.3x +#usr/man/man3/ttytype.3x #usr/man/man3/typeahead.3x +#usr/man/man3/typeahead_sp.3x #usr/man/man3/unctrl.3x +#usr/man/man3/unctrl_sp.3x #usr/man/man3/unget_wch.3x +#usr/man/man3/unget_wch_sp.3x #usr/man/man3/ungetch.3x +#usr/man/man3/ungetch_sp.3x #usr/man/man3/ungetmouse.3x +#usr/man/man3/ungetmouse_sp.3x #usr/man/man3/unpost_form.3x #usr/man/man3/unpost_menu.3x #usr/man/man3/untouchwin.3x #usr/man/man3/update_panels.3x +#usr/man/man3/update_panels_sp.3x #usr/man/man3/use_default_colors.3x +#usr/man/man3/use_default_colors_sp.3x #usr/man/man3/use_env.3x +#usr/man/man3/use_env_sp.3x #usr/man/man3/use_extended_names.3x +#usr/man/man3/use_legacy_coding.3x +#usr/man/man3/use_legacy_coding_sp.3x +#usr/man/man3/use_screen.3x +#usr/man/man3/use_window.3x #usr/man/man3/vid_attr.3x +#usr/man/man3/vid_attr_sp.3x #usr/man/man3/vid_puts.3x +#usr/man/man3/vid_puts_sp.3x #usr/man/man3/vidattr.3x +#usr/man/man3/vidattr_sp.3x #usr/man/man3/vidputs.3x +#usr/man/man3/vidputs_sp.3x #usr/man/man3/vline.3x #usr/man/man3/vline_set.3x #usr/man/man3/vw_printw.3x @@ -682,6 +895,8 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/wgetch.3x #usr/man/man3/wgetn_wstr.3x #usr/man/man3/wgetnstr.3x +#usr/man/man3/wgetparent.3x +#usr/man/man3/wgetscrreg.3x #usr/man/man3/wgetstr.3x #usr/man/man3/whline.3x #usr/man/man3/whline_set.3x @@ -720,6 +935,7 @@ usr/lib/libpanelw.so.5.5 #usr/man/man3/wtimeout.3x #usr/man/man3/wtouchln.3x #usr/man/man3/wunctrl.3x +#usr/man/man3/wunctrl_sp.3x #usr/man/man3/wvline.3x #usr/man/man3/wvline_set.3x #usr/man/man5 @@ -770,11 +986,14 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/9 #usr/share/terminfo/9/955-hb #usr/share/terminfo/9/955-w +#usr/share/terminfo/9/9term #usr/share/terminfo/A #usr/share/terminfo/A/Apple_Terminal #usr/share/terminfo/E -#usr/share/terminfo/E/Eterm -#usr/share/terminfo/E/Eterm-color +usr/share/terminfo/E/Eterm +usr/share/terminfo/E/Eterm-256color +usr/share/terminfo/E/Eterm-88color +usr/share/terminfo/E/Eterm-color #usr/share/terminfo/L #usr/share/terminfo/L/LFT-PC850 #usr/share/terminfo/M @@ -937,10 +1156,11 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/a/ampex232w #usr/share/terminfo/a/ampex80 #usr/share/terminfo/a/annarbor4080 -#usr/share/terminfo/a/ansi +usr/share/terminfo/a/ansi #usr/share/terminfo/a/ansi+arrows #usr/share/terminfo/a/ansi+csr #usr/share/terminfo/a/ansi+cup +#usr/share/terminfo/a/ansi+enq #usr/share/terminfo/a/ansi+erase #usr/share/terminfo/a/ansi+idc #usr/share/terminfo/a/ansi+idl @@ -1015,8 +1235,18 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/a/arm100-am #usr/share/terminfo/a/arm100-w #usr/share/terminfo/a/arm100-wam +#usr/share/terminfo/a/at +#usr/share/terminfo/a/at-color +#usr/share/terminfo/a/at-m #usr/share/terminfo/a/at386 #usr/share/terminfo/a/atari +#usr/share/terminfo/a/atari-color +#usr/share/terminfo/a/atari-m +#usr/share/terminfo/a/atari-old +#usr/share/terminfo/a/atari_st +#usr/share/terminfo/a/atari_st-color +#usr/share/terminfo/a/atarist-m +usr/share/terminfo/a/aterm #usr/share/terminfo/a/att2300 #usr/share/terminfo/a/att2350 #usr/share/terminfo/a/att4410 @@ -1171,6 +1401,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/b/bsdos-pc-nobold #usr/share/terminfo/b/bsdos-ppc #usr/share/terminfo/b/bsdos-sparc +usr/share/terminfo/b/bterm #usr/share/terminfo/c #usr/share/terminfo/c/c100 #usr/share/terminfo/c/c100-1p @@ -1240,7 +1471,8 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/c/concept108-w-8 #usr/share/terminfo/c/concept108-w8p #usr/share/terminfo/c/concept108rv4p -#usr/share/terminfo/c/cons25 +usr/share/terminfo/c/cons25 +#usr/share/terminfo/c/cons25-debian #usr/share/terminfo/c/cons25-iso-m #usr/share/terminfo/c/cons25-iso8859 #usr/share/terminfo/c/cons25-koi8-r @@ -1293,7 +1525,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/c/cx100 #usr/share/terminfo/c/cyb110 #usr/share/terminfo/c/cyb83 -#usr/share/terminfo/c/cygwin +usr/share/terminfo/c/cygwin #usr/share/terminfo/c/cygwinB19 #usr/share/terminfo/c/cygwinDBG #usr/share/terminfo/d @@ -1576,7 +1808,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/d/dtc300s #usr/share/terminfo/d/dtc382 #usr/share/terminfo/d/dtterm -#usr/share/terminfo/d/dumb +usr/share/terminfo/d/dumb #usr/share/terminfo/d/dw #usr/share/terminfo/d/dw1 #usr/share/terminfo/d/dw2 @@ -1604,7 +1836,8 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/e/ergo4000 #usr/share/terminfo/e/esprit #usr/share/terminfo/e/esprit-am -#usr/share/terminfo/e/eterm +usr/share/terminfo/e/eterm +usr/share/terminfo/e/eterm-color #usr/share/terminfo/e/ex155 #usr/share/terminfo/e/excel62 #usr/share/terminfo/e/excel62-rv @@ -1646,7 +1879,12 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/g/gator-t #usr/share/terminfo/g/gigi #usr/share/terminfo/g/glasstty -#usr/share/terminfo/g/gnome +usr/share/terminfo/g/gnome +#usr/share/terminfo/g/gnome+pcfkeys +#usr/share/terminfo/g/gnome-2007 +#usr/share/terminfo/g/gnome-2008 +usr/share/terminfo/g/gnome-256color +#usr/share/terminfo/g/gnome-fc5 #usr/share/terminfo/g/gnome-rh62 #usr/share/terminfo/g/gnome-rh72 #usr/share/terminfo/g/gnome-rh80 @@ -1817,8 +2055,9 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/h/hpgeneric #usr/share/terminfo/h/hpsub #usr/share/terminfo/h/hpterm +#usr/share/terminfo/h/hpterm-color #usr/share/terminfo/h/htx11 -#usr/share/terminfo/h/hurd +usr/share/terminfo/h/hurd #usr/share/terminfo/h/hz1000 #usr/share/terminfo/h/hz1420 #usr/share/terminfo/h/hz1500 @@ -1833,6 +2072,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/i/i3101 #usr/share/terminfo/i/i3164 #usr/share/terminfo/i/i400 +#usr/share/terminfo/i/iTerm.app #usr/share/terminfo/i/ibcs2 #usr/share/terminfo/i/ibm+16color #usr/share/terminfo/i/ibm+color @@ -1913,6 +2153,7 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/j/jaixterm #usr/share/terminfo/j/jaixterm-m #usr/share/terminfo/j/jerq +usr/share/terminfo/j/jfbterm #usr/share/terminfo/k #usr/share/terminfo/k/k45 #usr/share/terminfo/k/kaypro @@ -1927,10 +2168,16 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/k/klone+koi8acs #usr/share/terminfo/k/klone+sgr #usr/share/terminfo/k/klone+sgr-dumb -#usr/share/terminfo/k/konsole +#usr/share/terminfo/k/klone+sgr8 +#usr/share/terminfo/k/kon +#usr/share/terminfo/k/kon2 +usr/share/terminfo/k/konsole +#usr/share/terminfo/k/konsole+pcfkeys #usr/share/terminfo/k/konsole-16color +usr/share/terminfo/k/konsole-256color #usr/share/terminfo/k/konsole-base #usr/share/terminfo/k/konsole-linux +#usr/share/terminfo/k/konsole-solaris #usr/share/terminfo/k/konsole-vt100 #usr/share/terminfo/k/konsole-vt420pc #usr/share/terminfo/k/konsole-xf3x @@ -1948,15 +2195,17 @@ usr/lib/libpanelw.so.5.5 #usr/share/terminfo/l/lft #usr/share/terminfo/l/lft-pc850 usr/share/terminfo/l/linux -usr/share/terminfo/l/linux-basic +#usr/share/terminfo/l/linux-16color +#usr/share/terminfo/l/linux-basic #usr/share/terminfo/l/linux-c #usr/share/terminfo/l/linux-c-nc #usr/share/terminfo/l/linux-koi8 #usr/share/terminfo/l/linux-koi8r -usr/share/terminfo/l/linux-lat -usr/share/terminfo/l/linux-m -usr/share/terminfo/l/linux-nic -usr/share/terminfo/l/linux-vt +#usr/share/terminfo/l/linux-lat +#usr/share/terminfo/l/linux-m +#usr/share/terminfo/l/linux-nic +#usr/share/terminfo/l/linux-vt +#usr/share/terminfo/l/linux2.6.26 #usr/share/terminfo/l/lisa #usr/share/terminfo/l/lisaterm #usr/share/terminfo/l/lisaterm-w @@ -1970,9 +2219,9 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/m2-nam #usr/share/terminfo/m/mac #usr/share/terminfo/m/mac-w -#usr/share/terminfo/m/mach -#usr/share/terminfo/m/mach-bold -#usr/share/terminfo/m/mach-color +usr/share/terminfo/m/mach +usr/share/terminfo/m/mach-bold +usr/share/terminfo/m/mach-color #usr/share/terminfo/m/macintosh #usr/share/terminfo/m/macterminal-w #usr/share/terminfo/m/mai @@ -1985,6 +2234,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/mgr #usr/share/terminfo/m/mgr-linux #usr/share/terminfo/m/mgr-sun +#usr/share/terminfo/m/mgt #usr/share/terminfo/m/mgterm #usr/share/terminfo/m/microb #usr/share/terminfo/m/microbee @@ -2012,9 +2262,13 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/minitel1b #usr/share/terminfo/m/minitel1b-80 #usr/share/terminfo/m/minix +#usr/share/terminfo/m/minix-1.5 +#usr/share/terminfo/m/minix-1.7 #usr/share/terminfo/m/minix-old #usr/share/terminfo/m/minix-old-am -#usr/share/terminfo/m/mlterm +usr/share/terminfo/m/mlterm +#usr/share/terminfo/m/mlterm+pcfkeys +#usr/share/terminfo/m/mlterm-256color #usr/share/terminfo/m/mm314 #usr/share/terminfo/m/mm340 #usr/share/terminfo/m/mod @@ -2025,6 +2279,8 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/m/mono-emx #usr/share/terminfo/m/morphos #usr/share/terminfo/m/mouse-sun +usr/share/terminfo/m/mrxvt +#usr/share/terminfo/m/mrxvt-256color #usr/share/terminfo/m/ms-vt-utf8 #usr/share/terminfo/m/ms-vt100 #usr/share/terminfo/m/ms-vt100+ @@ -2104,6 +2360,15 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/ncsa-ns #usr/share/terminfo/n/ncsa-vt220 #usr/share/terminfo/n/ncsa-vt220-8 +#usr/share/terminfo/n/nd9500 +#usr/share/terminfo/n/ndr9500 +#usr/share/terminfo/n/ndr9500-25 +#usr/share/terminfo/n/ndr9500-25-mc +#usr/share/terminfo/n/ndr9500-25-mc-nl +#usr/share/terminfo/n/ndr9500-25-nl +#usr/share/terminfo/n/ndr9500-mc +#usr/share/terminfo/n/ndr9500-mc-nl +#usr/share/terminfo/n/ndr9500-nl #usr/share/terminfo/n/nec #usr/share/terminfo/n/nec5520 #usr/share/terminfo/n/newhp @@ -2140,13 +2405,14 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/next #usr/share/terminfo/n/nextshell #usr/share/terminfo/n/northstar -#usr/share/terminfo/n/nsterm +usr/share/terminfo/n/nsterm #usr/share/terminfo/n/nsterm+7 #usr/share/terminfo/n/nsterm+acs #usr/share/terminfo/n/nsterm+c #usr/share/terminfo/n/nsterm+c41 #usr/share/terminfo/n/nsterm+mac #usr/share/terminfo/n/nsterm+s +#usr/share/terminfo/n/nsterm-16color #usr/share/terminfo/n/nsterm-7 #usr/share/terminfo/n/nsterm-7-c #usr/share/terminfo/n/nsterm-7-c-s @@ -2159,6 +2425,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/nsterm-acs-m #usr/share/terminfo/n/nsterm-acs-m-s #usr/share/terminfo/n/nsterm-acs-s +#usr/share/terminfo/n/nsterm-bce #usr/share/terminfo/n/nsterm-c #usr/share/terminfo/n/nsterm-c-7 #usr/share/terminfo/n/nsterm-c-acs @@ -2171,6 +2438,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/n/nsterm-m-s #usr/share/terminfo/n/nsterm-m-s-7 #usr/share/terminfo/n/nsterm-m-s-acs +#usr/share/terminfo/n/nsterm-old #usr/share/terminfo/n/nsterm-s #usr/share/terminfo/n/nsterm-s-7 #usr/share/terminfo/n/nsterm-s-acs @@ -2292,7 +2560,7 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/p/pc3r-m #usr/share/terminfo/p/pc6300plus #usr/share/terminfo/p/pc7300 -#usr/share/terminfo/p/pcansi +usr/share/terminfo/p/pcansi #usr/share/terminfo/p/pcansi-25 #usr/share/terminfo/p/pcansi-25-m #usr/share/terminfo/p/pcansi-33 @@ -2381,7 +2649,9 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/p/pt505-22 #usr/share/terminfo/p/pt505-24 #usr/share/terminfo/p/pty -#usr/share/terminfo/p/putty +usr/share/terminfo/p/putty +usr/share/terminfo/p/putty-256color +usr/share/terminfo/p/putty-vt100 #usr/share/terminfo/q #usr/share/terminfo/q/qansi #usr/share/terminfo/q/qansi-g @@ -2443,14 +2713,16 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/r/rt6221 #usr/share/terminfo/r/rt6221-w #usr/share/terminfo/r/rtpc -#usr/share/terminfo/r/rxvt +usr/share/terminfo/r/rxvt #usr/share/terminfo/r/rxvt+pcfkeys -#usr/share/terminfo/r/rxvt-16color -#usr/share/terminfo/r/rxvt-basic -#usr/share/terminfo/r/rxvt-color -#usr/share/terminfo/r/rxvt-cygwin -#usr/share/terminfo/r/rxvt-cygwin-native -#usr/share/terminfo/r/rxvt-xpm +usr/share/terminfo/r/rxvt-16color +usr/share/terminfo/r/rxvt-256color +usr/share/terminfo/r/rxvt-88color +usr/share/terminfo/r/rxvt-basic +usr/share/terminfo/r/rxvt-color +usr/share/terminfo/r/rxvt-cygwin +usr/share/terminfo/r/rxvt-cygwin-native +usr/share/terminfo/r/rxvt-xpm #usr/share/terminfo/s #usr/share/terminfo/s/s4 #usr/share/terminfo/s/sb1 @@ -2465,11 +2737,35 @@ usr/share/terminfo/l/linux-vt #usr/share/terminfo/s/scoansi-new #usr/share/terminfo/s/scoansi-old usr/share/terminfo/s/screen +#usr/share/terminfo/s/screen+fkeys +usr/share/terminfo/s/screen-16color +#usr/share/terminfo/s/screen-16color-bce +#usr/share/terminfo/s/screen-16color-bce-s +#usr/share/terminfo/s/screen-16color-s +usr/share/terminfo/s/screen-256color +#usr/share/terminfo/s/screen-256color-bce +#usr/share/terminfo/s/screen-256color-bce-s +#usr/share/terminfo/s/screen-256color-s usr/share/terminfo/s/screen-bce +#usr/share/terminfo/s/screen-bce.Eterm +#usr/share/terminfo/s/screen-bce.gnome +#usr/share/terminfo/s/screen-bce.konsole +#usr/share/terminfo/s/screen-bce.linux +#usr/share/terminfo/s/screen-bce.mlterm +#usr/share/terminfo/s/screen-bce.mrxvt +#usr/share/terminfo/s/screen-bce.rxvt +#usr/share/terminfo/s/screen-bce.xterm-new usr/share/terminfo/s/screen-s usr/share/terminfo/s/screen-w +usr/share/terminfo/s/screen.Eterm +usr/share/terminfo/s/screen.gnome +usr/share/terminfo/s/screen.konsole usr/share/terminfo/s/screen.linux +usr/share/terminfo/s/screen.mlterm +usr/share/terminfo/s/screen.mrxvt +usr/share/terminfo/s/screen.rxvt usr/share/terminfo/s/screen.teraterm +usr/share/terminfo/s/screen.vte usr/share/terminfo/s/screen.xterm-new usr/share/terminfo/s/screen.xterm-r6 usr/share/terminfo/s/screen.xterm-xfree86 @@ -2484,7 +2780,12 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/s/soroc140 #usr/share/terminfo/s/spinwriter #usr/share/terminfo/s/st52 -#usr/share/terminfo/s/sun +#usr/share/terminfo/s/st52-color +#usr/share/terminfo/s/st52-m +#usr/share/terminfo/s/st52-old +#usr/share/terminfo/s/stv52 +#usr/share/terminfo/s/stv52pc +usr/share/terminfo/s/sun #usr/share/terminfo/s/sun-1 #usr/share/terminfo/s/sun-12 #usr/share/terminfo/s/sun-17 @@ -2572,7 +2873,9 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/t/tek4404 #usr/share/terminfo/t/teleray #usr/share/terminfo/t/teletec -#usr/share/terminfo/t/teraterm +usr/share/terminfo/t/teraterm +usr/share/terminfo/t/teraterm2.3 +#usr/share/terminfo/t/teraterm4.59 #usr/share/terminfo/t/terminet #usr/share/terminfo/t/terminet1200 #usr/share/terminfo/t/terminet300 @@ -2614,6 +2917,7 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/t/ts1p #usr/share/terminfo/t/tt #usr/share/terminfo/t/tt505-22 +#usr/share/terminfo/t/tt52 #usr/share/terminfo/t/tty33 #usr/share/terminfo/t/tty35 #usr/share/terminfo/t/tty37 @@ -2751,6 +3055,10 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/t/tvi970-2p #usr/share/terminfo/t/tvi970-vb #usr/share/terminfo/t/tvipt +#usr/share/terminfo/t/tw100 +#usr/share/terminfo/t/tw52 +#usr/share/terminfo/t/tw52-color +#usr/share/terminfo/t/tw52-m #usr/share/terminfo/t/tws-generic #usr/share/terminfo/t/tws2102-sna #usr/share/terminfo/t/tws2103 @@ -2819,42 +3127,44 @@ usr/share/terminfo/s/screen3 #usr/share/terminfo/v/vt-61 #usr/share/terminfo/v/vt-utf8 usr/share/terminfo/v/vt100 -usr/share/terminfo/v/vt100+ -usr/share/terminfo/v/vt100+fnkeys -usr/share/terminfo/v/vt100+keypad -usr/share/terminfo/v/vt100+pfkeys -usr/share/terminfo/v/vt100-am -usr/share/terminfo/v/vt100-bm -usr/share/terminfo/v/vt100-bm-o -usr/share/terminfo/v/vt100-bot-s -usr/share/terminfo/v/vt100-nam -usr/share/terminfo/v/vt100-nam-w +#usr/share/terminfo/v/vt100+ +#usr/share/terminfo/v/vt100+enq +#usr/share/terminfo/v/vt100+fnkeys +#usr/share/terminfo/v/vt100+keypad +#usr/share/terminfo/v/vt100+pfkeys +#usr/share/terminfo/v/vt100-am +#usr/share/terminfo/v/vt100-bm +#usr/share/terminfo/v/vt100-bm-o +#usr/share/terminfo/v/vt100-bot-s +#usr/share/terminfo/v/vt100-nam +#usr/share/terminfo/v/vt100-nam-w usr/share/terminfo/v/vt100-nav -usr/share/terminfo/v/vt100-nav-w -usr/share/terminfo/v/vt100-putty -usr/share/terminfo/v/vt100-s -usr/share/terminfo/v/vt100-s-bot -usr/share/terminfo/v/vt100-s-top -usr/share/terminfo/v/vt100-top-s -usr/share/terminfo/v/vt100-vb -usr/share/terminfo/v/vt100-w -usr/share/terminfo/v/vt100-w-am -usr/share/terminfo/v/vt100-w-nam -usr/share/terminfo/v/vt100-w-nav -usr/share/terminfo/v/vt100nam +#usr/share/terminfo/v/vt100-nav-w +#usr/share/terminfo/v/vt100-putty +#usr/share/terminfo/v/vt100-s +#usr/share/terminfo/v/vt100-s-bot +#usr/share/terminfo/v/vt100-s-top +#usr/share/terminfo/v/vt100-top-s +#usr/share/terminfo/v/vt100-vb +#usr/share/terminfo/v/vt100-w +#usr/share/terminfo/v/vt100-w-am +#usr/share/terminfo/v/vt100-w-nam +#usr/share/terminfo/v/vt100-w-nav +#usr/share/terminfo/v/vt100nam usr/share/terminfo/v/vt102 -usr/share/terminfo/v/vt102-nsgr -usr/share/terminfo/v/vt102-w +#usr/share/terminfo/v/vt102+enq +#usr/share/terminfo/v/vt102-nsgr +#usr/share/terminfo/v/vt102-w #usr/share/terminfo/v/vt125 #usr/share/terminfo/v/vt131 #usr/share/terminfo/v/vt132 -usr/share/terminfo/v/vt200 -usr/share/terminfo/v/vt200-8 -usr/share/terminfo/v/vt200-8bit -usr/share/terminfo/v/vt200-js +#usr/share/terminfo/v/vt200 +#usr/share/terminfo/v/vt200-8 +#usr/share/terminfo/v/vt200-8bit +#usr/share/terminfo/v/vt200-js #usr/share/terminfo/v/vt200-old -usr/share/terminfo/v/vt200-w -#usr/share/terminfo/v/vt220 +#usr/share/terminfo/v/vt200-w +usr/share/terminfo/v/vt220 #usr/share/terminfo/v/vt220+keypad #usr/share/terminfo/v/vt220-8 #usr/share/terminfo/v/vt220-8bit @@ -2887,13 +3197,19 @@ usr/share/terminfo/v/vt200-w #usr/share/terminfo/v/vt510 #usr/share/terminfo/v/vt510pc #usr/share/terminfo/v/vt510pcdos -#usr/share/terminfo/v/vt52 +usr/share/terminfo/v/vt52 #usr/share/terminfo/v/vt520 #usr/share/terminfo/v/vt525 #usr/share/terminfo/v/vt61 #usr/share/terminfo/v/vt61.5 +usr/share/terminfo/v/vte +#usr/share/terminfo/v/vte+pcfkeys +#usr/share/terminfo/v/vte-2007 +#usr/share/terminfo/v/vte-2008 +usr/share/terminfo/v/vte-256color #usr/share/terminfo/v/vtnt #usr/share/terminfo/v/vv100 +usr/share/terminfo/v/vwmterm #usr/share/terminfo/w #usr/share/terminfo/w/wren #usr/share/terminfo/w/wrenw @@ -3147,6 +3463,8 @@ usr/share/terminfo/v/vt200-w #usr/share/terminfo/x/xerox-lm #usr/share/terminfo/x/xerox1720 #usr/share/terminfo/x/xerox820 +usr/share/terminfo/x/xfce +#usr/share/terminfo/x/xiterm #usr/share/terminfo/x/xl83 #usr/share/terminfo/x/xnuppc #usr/share/terminfo/x/xnuppc+100x37 @@ -3199,39 +3517,55 @@ usr/share/terminfo/v/vt200-w #usr/share/terminfo/x/xnuppc-m-f2 #usr/share/terminfo/x/xtalk usr/share/terminfo/x/xterm -usr/share/terminfo/x/xterm+pcfkeys -usr/share/terminfo/x/xterm+sl -usr/share/terminfo/x/xterm+sl-twm -#usr/share/terminfo/x/xterm-1002 -#usr/share/terminfo/x/xterm-1003 -#usr/share/terminfo/x/xterm-16color -#usr/share/terminfo/x/xterm-24 +#usr/share/terminfo/x/xterm+256color +#usr/share/terminfo/x/xterm+88color +#usr/share/terminfo/x/xterm+app +#usr/share/terminfo/x/xterm+edit +#usr/share/terminfo/x/xterm+noapp +#usr/share/terminfo/x/xterm+pc+edit +#usr/share/terminfo/x/xterm+pcc0 +#usr/share/terminfo/x/xterm+pcc1 +#usr/share/terminfo/x/xterm+pcc2 +#usr/share/terminfo/x/xterm+pcc3 +#usr/share/terminfo/x/xterm+pce2 +#usr/share/terminfo/x/xterm+pcf0 +#usr/share/terminfo/x/xterm+pcf2 +#usr/share/terminfo/x/xterm+pcfkeys +#usr/share/terminfo/x/xterm+r6f2 +#usr/share/terminfo/x/xterm+sl +#usr/share/terminfo/x/xterm+sl-twm +#usr/share/terminfo/x/xterm+vt+edit +usr/share/terminfo/x/xterm-1002 +usr/share/terminfo/x/xterm-1003 +usr/share/terminfo/x/xterm-16color +usr/share/terminfo/x/xterm-24 usr/share/terminfo/x/xterm-256color usr/share/terminfo/x/xterm-88color -#usr/share/terminfo/x/xterm-8bit -#usr/share/terminfo/x/xterm-basic -#usr/share/terminfo/x/xterm-bold +usr/share/terminfo/x/xterm-8bit +usr/share/terminfo/x/xterm-basic +usr/share/terminfo/x/xterm-bold usr/share/terminfo/x/xterm-color -#usr/share/terminfo/x/xterm-hp -#usr/share/terminfo/x/xterm-new -#usr/share/terminfo/x/xterm-nic -#usr/share/terminfo/x/xterm-noapp -#usr/share/terminfo/x/xterm-old -#usr/share/terminfo/x/xterm-pcolor -#usr/share/terminfo/x/xterm-r5 -#usr/share/terminfo/x/xterm-r6 -#usr/share/terminfo/x/xterm-sco -#usr/share/terminfo/x/xterm-sun +usr/share/terminfo/x/xterm-hp +usr/share/terminfo/x/xterm-new +usr/share/terminfo/x/xterm-nic +usr/share/terminfo/x/xterm-noapp +usr/share/terminfo/x/xterm-old +usr/share/terminfo/x/xterm-pcolor +usr/share/terminfo/x/xterm-r5 +usr/share/terminfo/x/xterm-r6 +usr/share/terminfo/x/xterm-sco +usr/share/terminfo/x/xterm-sun +usr/share/terminfo/x/xterm-utf8 usr/share/terminfo/x/xterm-vt220 usr/share/terminfo/x/xterm-vt52 -#usr/share/terminfo/x/xterm-xf86-v32 -#usr/share/terminfo/x/xterm-xf86-v33 -#usr/share/terminfo/x/xterm-xf86-v333 -#usr/share/terminfo/x/xterm-xf86-v40 -#usr/share/terminfo/x/xterm-xf86-v43 -#usr/share/terminfo/x/xterm-xf86-v44 -#usr/share/terminfo/x/xterm-xfree86 -#usr/share/terminfo/x/xterm-xi +usr/share/terminfo/x/xterm-xf86-v32 +usr/share/terminfo/x/xterm-xf86-v33 +usr/share/terminfo/x/xterm-xf86-v333 +usr/share/terminfo/x/xterm-xf86-v40 +usr/share/terminfo/x/xterm-xf86-v43 +usr/share/terminfo/x/xterm-xf86-v44 +usr/share/terminfo/x/xterm-xfree86 +usr/share/terminfo/x/xterm-xi #usr/share/terminfo/x/xterm1 #usr/share/terminfo/x/xtermc #usr/share/terminfo/x/xtermm diff --git a/config/rootfiles/common/newt b/config/rootfiles/common/newt index f5f0fa4f3e..08fb2ce0c4 100644 --- a/config/rootfiles/common/newt +++ b/config/rootfiles/common/newt @@ -1,4 +1,4 @@ -#usr/bin/whiptail +usr/bin/whiptail #usr/include/newt.h #usr/lib/libnewt.a usr/lib/libnewt.so diff --git a/config/rootfiles/common/openldap b/config/rootfiles/common/openldap index bb43588b18..6a72df8b1c 100644 --- a/config/rootfiles/common/openldap +++ b/config/rootfiles/common/openldap @@ -41,19 +41,119 @@ #usr/include/slapi-plugin.h usr/lib/liblber-2.3.so.0 usr/lib/liblber-2.3.so.0.2.8 -#usr/lib/liblber.a #usr/lib/liblber.la -usr/lib/liblber.so +#usr/lib/liblber.so usr/lib/libldap-2.3.so.0 usr/lib/libldap-2.3.so.0.2.8 -#usr/lib/libldap.a #usr/lib/libldap.la -usr/lib/libldap.so +#usr/lib/libldap.so usr/lib/libldap_r-2.3.so.0 usr/lib/libldap_r-2.3.so.0.2.8 -#usr/lib/libldap_r.a #usr/lib/libldap_r.la -usr/lib/libldap_r.so +#usr/lib/libldap_r.so +#usr/lib/openldap +#usr/lib/openldap/accesslog-2.3.so.0 +#usr/lib/openldap/accesslog-2.3.so.0.2.8 +#usr/lib/openldap/accesslog.la +#usr/lib/openldap/accesslog.so +#usr/lib/openldap/back_bdb-2.3.so.0 +#usr/lib/openldap/back_bdb-2.3.so.0.2.8 +#usr/lib/openldap/back_bdb.la +#usr/lib/openldap/back_bdb.so +#usr/lib/openldap/back_dnssrv-2.3.so.0 +#usr/lib/openldap/back_dnssrv-2.3.so.0.2.8 +#usr/lib/openldap/back_dnssrv.la +#usr/lib/openldap/back_dnssrv.so +#usr/lib/openldap/back_hdb-2.3.so.0 +#usr/lib/openldap/back_hdb-2.3.so.0.2.8 +#usr/lib/openldap/back_hdb.la +#usr/lib/openldap/back_hdb.so +#usr/lib/openldap/back_ldap-2.3.so.0 +#usr/lib/openldap/back_ldap-2.3.so.0.2.8 +#usr/lib/openldap/back_ldap.la +#usr/lib/openldap/back_ldap.so +#usr/lib/openldap/back_ldbm-2.3.so.0 +#usr/lib/openldap/back_ldbm-2.3.so.0.2.8 +#usr/lib/openldap/back_ldbm.la +#usr/lib/openldap/back_ldbm.so +#usr/lib/openldap/back_meta-2.3.so.0 +#usr/lib/openldap/back_meta-2.3.so.0.2.8 +#usr/lib/openldap/back_meta.la +#usr/lib/openldap/back_meta.so +#usr/lib/openldap/back_monitor-2.3.so.0 +#usr/lib/openldap/back_monitor-2.3.so.0.2.8 +#usr/lib/openldap/back_monitor.la +#usr/lib/openldap/back_monitor.so +#usr/lib/openldap/back_null-2.3.so.0 +#usr/lib/openldap/back_null-2.3.so.0.2.8 +#usr/lib/openldap/back_null.la +#usr/lib/openldap/back_null.so +#usr/lib/openldap/back_passwd-2.3.so.0 +#usr/lib/openldap/back_passwd-2.3.so.0.2.8 +#usr/lib/openldap/back_passwd.la +#usr/lib/openldap/back_passwd.so +#usr/lib/openldap/back_relay-2.3.so.0 +#usr/lib/openldap/back_relay-2.3.so.0.2.8 +#usr/lib/openldap/back_relay.la +#usr/lib/openldap/back_relay.so +#usr/lib/openldap/back_shell-2.3.so.0 +#usr/lib/openldap/back_shell-2.3.so.0.2.8 +#usr/lib/openldap/back_shell.la +#usr/lib/openldap/back_shell.so +#usr/lib/openldap/denyop-2.3.so.0 +#usr/lib/openldap/denyop-2.3.so.0.2.8 +#usr/lib/openldap/denyop.la +#usr/lib/openldap/denyop.so +#usr/lib/openldap/dyngroup-2.3.so.0 +#usr/lib/openldap/dyngroup-2.3.so.0.2.8 +#usr/lib/openldap/dyngroup.la +#usr/lib/openldap/dyngroup.so +#usr/lib/openldap/dynlist-2.3.so.0 +#usr/lib/openldap/dynlist-2.3.so.0.2.8 +#usr/lib/openldap/dynlist.la +#usr/lib/openldap/dynlist.so +#usr/lib/openldap/lastmod-2.3.so.0 +#usr/lib/openldap/lastmod-2.3.so.0.2.8 +#usr/lib/openldap/lastmod.la +#usr/lib/openldap/lastmod.so +#usr/lib/openldap/pcache-2.3.so.0 +#usr/lib/openldap/pcache-2.3.so.0.2.8 +#usr/lib/openldap/pcache.la +#usr/lib/openldap/pcache.so +#usr/lib/openldap/ppolicy-2.3.so.0 +#usr/lib/openldap/ppolicy-2.3.so.0.2.8 +#usr/lib/openldap/ppolicy.la +#usr/lib/openldap/ppolicy.so +#usr/lib/openldap/refint-2.3.so.0 +#usr/lib/openldap/refint-2.3.so.0.2.8 +#usr/lib/openldap/refint.la +#usr/lib/openldap/refint.so +#usr/lib/openldap/retcode-2.3.so.0 +#usr/lib/openldap/retcode-2.3.so.0.2.8 +#usr/lib/openldap/retcode.la +#usr/lib/openldap/retcode.so +#usr/lib/openldap/rwm-2.3.so.0 +#usr/lib/openldap/rwm-2.3.so.0.2.8 +#usr/lib/openldap/rwm.la +#usr/lib/openldap/rwm.so +#usr/lib/openldap/syncprov-2.3.so.0 +#usr/lib/openldap/syncprov-2.3.so.0.2.8 +#usr/lib/openldap/syncprov.la +#usr/lib/openldap/syncprov.so +#usr/lib/openldap/translucent-2.3.so.0 +#usr/lib/openldap/translucent-2.3.so.0.2.8 +#usr/lib/openldap/translucent.la +#usr/lib/openldap/translucent.so +#usr/lib/openldap/unique-2.3.so.0 +#usr/lib/openldap/unique-2.3.so.0.2.8 +#usr/lib/openldap/unique.la +#usr/lib/openldap/unique.so +#usr/lib/openldap/valsort-2.3.so.0 +#usr/lib/openldap/valsort-2.3.so.0.2.8 +#usr/lib/openldap/valsort.la +#usr/lib/openldap/valsort.so +#usr/lib/slapd +#usr/lib/slurpd #usr/man/man1/ldapadd.1 #usr/man/man1/ldapcompare.1 #usr/man/man1/ldapdelete.1 @@ -257,9 +357,7 @@ usr/lib/libldap_r.so #usr/sbin/slapadd #usr/sbin/slapauth #usr/sbin/slapcat -#usr/sbin/slapd #usr/sbin/slapdn #usr/sbin/slapindex #usr/sbin/slappasswd #usr/sbin/slaptest -#usr/sbin/slurpd diff --git a/config/rootfiles/common/openssl b/config/rootfiles/common/openssl index 02e4c1cdd9..bc1ac49f0b 100644 --- a/config/rootfiles/common/openssl +++ b/config/rootfiles/common/openssl @@ -1116,6 +1116,7 @@ usr/lib/libssl.so.0.9.8 #usr/share/man/man3/dsa.3 #usr/share/man/man3/ecdsa.3 #usr/share/man/man3/engine.3 +#usr/share/man/man3/err.3 #usr/share/man/man3/evp.3 #usr/share/man/man3/hmac.3 #usr/share/man/man3/i2d_ASN1_OBJECT.3 @@ -1163,7 +1164,6 @@ usr/lib/libssl.so.0.9.8 #usr/share/man/man3/md5.3 #usr/share/man/man3/mdc2.3 #usr/share/man/man3/pem.3 -#usr/share/man/man3/rand.3 #usr/share/man/man3/rc4.3 #usr/share/man/man3/ripemd.3 #usr/share/man/man3/rsa.3 diff --git a/config/rootfiles/common/pam b/config/rootfiles/common/pam index a14302aab8..3335a544ab 100644 --- a/config/rootfiles/common/pam +++ b/config/rootfiles/common/pam @@ -11,7 +11,9 @@ etc/security #etc/security/group.conf #etc/security/limits.conf #etc/security/limits.d +#etc/security/namespace.conf #etc/security/namespace.d +#etc/security/namespace.init #etc/security/pam_env.conf #etc/security/time.conf lib/libpam.so.0 @@ -63,6 +65,8 @@ lib/security/pam_mail.so #lib/security/pam_mkhomedir.so #lib/security/pam_motd.la #lib/security/pam_motd.so +#lib/security/pam_namespace.la +#lib/security/pam_namespace.so #lib/security/pam_nologin.la lib/security/pam_nologin.so #lib/security/pam_permit.la @@ -161,6 +165,7 @@ usr/lib/libpamc.so #usr/share/man/man5/access.conf.5 #usr/share/man/man5/group.conf.5 #usr/share/man/man5/limits.conf.5 +#usr/share/man/man5/namespace.conf.5 #usr/share/man/man5/pam.conf.5 #usr/share/man/man5/pam.d.5 #usr/share/man/man5/pam_env.conf.5 @@ -188,6 +193,7 @@ usr/lib/libpamc.so #usr/share/man/man8/pam_mail.8 #usr/share/man/man8/pam_mkhomedir.8 #usr/share/man/man8/pam_motd.8 +#usr/share/man/man8/pam_namespace.8 #usr/share/man/man8/pam_nologin.8 #usr/share/man/man8/pam_permit.8 #usr/share/man/man8/pam_rhosts.8 diff --git a/config/rootfiles/common/pango b/config/rootfiles/common/pango new file mode 100644 index 0000000000..286aa35e0e --- /dev/null +++ b/config/rootfiles/common/pango @@ -0,0 +1,143 @@ +etc/pango +etc/pango/pango.modules +usr/bin/pango-querymodules +usr/bin/pango-view +#usr/include/pango-1.0 +#usr/include/pango-1.0/pango +#usr/include/pango-1.0/pango/pango-attributes.h +#usr/include/pango-1.0/pango/pango-bidi-type.h +#usr/include/pango-1.0/pango/pango-break.h +#usr/include/pango-1.0/pango/pango-context.h +#usr/include/pango-1.0/pango/pango-coverage.h +#usr/include/pango-1.0/pango/pango-engine.h +#usr/include/pango-1.0/pango/pango-enum-types.h +#usr/include/pango-1.0/pango/pango-features.h +#usr/include/pango-1.0/pango/pango-font.h +#usr/include/pango-1.0/pango/pango-fontmap.h +#usr/include/pango-1.0/pango/pango-fontset.h +#usr/include/pango-1.0/pango/pango-glyph-item.h +#usr/include/pango-1.0/pango/pango-glyph.h +#usr/include/pango-1.0/pango/pango-gravity.h +#usr/include/pango-1.0/pango/pango-item.h +#usr/include/pango-1.0/pango/pango-language.h +#usr/include/pango-1.0/pango/pango-layout.h +#usr/include/pango-1.0/pango/pango-matrix.h +#usr/include/pango-1.0/pango/pango-modules.h +#usr/include/pango-1.0/pango/pango-ot.h +#usr/include/pango-1.0/pango/pango-renderer.h +#usr/include/pango-1.0/pango/pango-script.h +#usr/include/pango-1.0/pango/pango-tabs.h +#usr/include/pango-1.0/pango/pango-types.h +#usr/include/pango-1.0/pango/pango-utils.h +#usr/include/pango-1.0/pango/pango.h +#usr/include/pango-1.0/pango/pangocairo.h +#usr/include/pango-1.0/pango/pangofc-decoder.h +#usr/include/pango-1.0/pango/pangofc-font.h +#usr/include/pango-1.0/pango/pangofc-fontmap.h +#usr/include/pango-1.0/pango/pangoft2.h +#usr/lib/libpango-1.0.la +#usr/lib/libpango-1.0.so +usr/lib/libpango-1.0.so.0 +usr/lib/libpango-1.0.so.0.3000.1 +#usr/lib/libpangocairo-1.0.la +#usr/lib/libpangocairo-1.0.so +usr/lib/libpangocairo-1.0.so.0 +usr/lib/libpangocairo-1.0.so.0.3000.1 +#usr/lib/libpangoft2-1.0.la +#usr/lib/libpangoft2-1.0.so +usr/lib/libpangoft2-1.0.so.0 +usr/lib/libpangoft2-1.0.so.0.3000.1 +usr/lib/pango +usr/lib/pango/1.6.0 +usr/lib/pango/1.6.0/modules +#usr/lib/pango/1.6.0/modules/pango-arabic-fc.la +usr/lib/pango/1.6.0/modules/pango-arabic-fc.so +#usr/lib/pango/1.6.0/modules/pango-arabic-lang.la +usr/lib/pango/1.6.0/modules/pango-arabic-lang.so +#usr/lib/pango/1.6.0/modules/pango-basic-fc.la +usr/lib/pango/1.6.0/modules/pango-basic-fc.so +#usr/lib/pango/1.6.0/modules/pango-hangul-fc.la +usr/lib/pango/1.6.0/modules/pango-hangul-fc.so +#usr/lib/pango/1.6.0/modules/pango-hebrew-fc.la +usr/lib/pango/1.6.0/modules/pango-hebrew-fc.so +#usr/lib/pango/1.6.0/modules/pango-indic-fc.la +usr/lib/pango/1.6.0/modules/pango-indic-fc.so +#usr/lib/pango/1.6.0/modules/pango-indic-lang.la +usr/lib/pango/1.6.0/modules/pango-indic-lang.so +#usr/lib/pango/1.6.0/modules/pango-khmer-fc.la +usr/lib/pango/1.6.0/modules/pango-khmer-fc.so +#usr/lib/pango/1.6.0/modules/pango-syriac-fc.la +usr/lib/pango/1.6.0/modules/pango-syriac-fc.so +#usr/lib/pango/1.6.0/modules/pango-thai-fc.la +usr/lib/pango/1.6.0/modules/pango-thai-fc.so +#usr/lib/pango/1.6.0/modules/pango-tibetan-fc.la +usr/lib/pango/1.6.0/modules/pango-tibetan-fc.so +#usr/lib/pkgconfig/pango.pc +#usr/lib/pkgconfig/pangocairo.pc +#usr/lib/pkgconfig/pangoft2.pc +#usr/share/gtk-doc/html/pango +#usr/share/gtk-doc/html/pango/PangoEngineLang.html +#usr/share/gtk-doc/html/pango/PangoEngineShape.html +#usr/share/gtk-doc/html/pango/PangoFcDecoder.html +#usr/share/gtk-doc/html/pango/PangoFcFont.html +#usr/share/gtk-doc/html/pango/PangoFcFontMap.html +#usr/share/gtk-doc/html/pango/PangoMarkupFormat.html +#usr/share/gtk-doc/html/pango/annotation-glossary.html +#usr/share/gtk-doc/html/pango/api-index-1-10.html +#usr/share/gtk-doc/html/pango/api-index-1-12.html +#usr/share/gtk-doc/html/pango/api-index-1-14.html +#usr/share/gtk-doc/html/pango/api-index-1-16.html +#usr/share/gtk-doc/html/pango/api-index-1-18.html +#usr/share/gtk-doc/html/pango/api-index-1-2.html +#usr/share/gtk-doc/html/pango/api-index-1-20.html +#usr/share/gtk-doc/html/pango/api-index-1-22.html +#usr/share/gtk-doc/html/pango/api-index-1-24.html +#usr/share/gtk-doc/html/pango/api-index-1-26.html +#usr/share/gtk-doc/html/pango/api-index-1-28.html +#usr/share/gtk-doc/html/pango/api-index-1-30.html +#usr/share/gtk-doc/html/pango/api-index-1-4.html +#usr/share/gtk-doc/html/pango/api-index-1-6.html +#usr/share/gtk-doc/html/pango/api-index-1-8.html +#usr/share/gtk-doc/html/pango/api-index-deprecated.html +#usr/share/gtk-doc/html/pango/api-index-full.html +#usr/share/gtk-doc/html/pango/home.png +#usr/share/gtk-doc/html/pango/index.html +#usr/share/gtk-doc/html/pango/index.sgml +#usr/share/gtk-doc/html/pango/layout.gif +#usr/share/gtk-doc/html/pango/left.png +#usr/share/gtk-doc/html/pango/lowlevel.html +#usr/share/gtk-doc/html/pango/pango-ATSUI-Fonts.html +#usr/share/gtk-doc/html/pango/pango-Bidirectional-Text.html +#usr/share/gtk-doc/html/pango/pango-Cairo-Rendering.html +#usr/share/gtk-doc/html/pango/pango-CoreText-Fonts.html +#usr/share/gtk-doc/html/pango/pango-Coverage-Maps.html +#usr/share/gtk-doc/html/pango/pango-Engines.html +#usr/share/gtk-doc/html/pango/pango-Fonts.html +#usr/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-Glyph-Storage.html +#usr/share/gtk-doc/html/pango/pango-Layout-Objects.html +#usr/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html +#usr/share/gtk-doc/html/pango/pango-Modules.html +#usr/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html +#usr/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html +#usr/share/gtk-doc/html/pango/pango-Tab-Stops.html +#usr/share/gtk-doc/html/pango/pango-Text-Attributes.html +#usr/share/gtk-doc/html/pango/pango-Text-Processing.html +#usr/share/gtk-doc/html/pango/pango-Version-Checking.html +#usr/share/gtk-doc/html/pango/pango-Vertical-Text.html +#usr/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-X-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html +#usr/share/gtk-doc/html/pango/pango-hierarchy.html +#usr/share/gtk-doc/html/pango/pango-pango-renderer.html +#usr/share/gtk-doc/html/pango/pango-querymodules.html +#usr/share/gtk-doc/html/pango/pango.devhelp2 +#usr/share/gtk-doc/html/pango/pango.html +#usr/share/gtk-doc/html/pango/rendering.html +#usr/share/gtk-doc/html/pango/right.png +#usr/share/gtk-doc/html/pango/rotated-text.png +#usr/share/gtk-doc/html/pango/style.css +#usr/share/gtk-doc/html/pango/tools.html +#usr/share/gtk-doc/html/pango/up.png +#usr/share/man/man1/pango-querymodules.1 +#usr/share/man/man1/pango-view.1 diff --git a/config/rootfiles/common/pciutils b/config/rootfiles/common/pciutils index 260f2717c0..43c31a1a2e 100644 --- a/config/rootfiles/common/pciutils +++ b/config/rootfiles/common/pciutils @@ -1,21 +1,12 @@ +bin/lspci +bin/setpci +lib/libpci.so.3 +lib/libpci.so.3.1.10 +sbin/update-pciids #usr/include/pci #usr/include/pci/config.h #usr/include/pci/header.h -#usr/include/pci/i386-io-hurd.h -#usr/include/pci/i386-io-linux.h -#usr/include/pci/i386-io-sunos.h -#usr/include/pci/i386-io-windows.h -#usr/include/pci/internal.h #usr/include/pci/pci.h -#usr/include/pci/pread.h -#usr/include/pci/sysdep.h #usr/include/pci/types.h -#usr/lib/libpci.a -usr/sbin/lspci -usr/sbin/setpci -usr/sbin/update-pciids -#usr/share/hwdata -#usr/share/hwdata/pci.ids -#usr/share/man/man8/lspci.8 -#usr/share/man/man8/setpci.8 -#usr/share/man/man8/update-pciids.8 +#usr/lib/libpci.so +#usr/lib/pkgconfig/libpci.pc diff --git a/config/rootfiles/common/pcre b/config/rootfiles/common/pcre index d031bd3dd0..5c292700c7 100644 --- a/config/rootfiles/common/pcre +++ b/config/rootfiles/common/pcre @@ -1,5 +1,3 @@ -lib/libpcre.so.0 -lib/libpcre.so.0.0.1 #usr/bin/pcre-config #usr/bin/pcregrep #usr/bin/pcretest @@ -9,57 +7,21 @@ lib/libpcre.so.0.0.1 #usr/include/pcrecpp.h #usr/include/pcrecpparg.h #usr/include/pcreposix.h -#usr/lib/libpcre.a #usr/lib/libpcre.la usr/lib/libpcre.so -#usr/lib/libpcrecpp.a +usr/lib/libpcre.so.1 +usr/lib/libpcre.so.1.0.1 #usr/lib/libpcrecpp.la usr/lib/libpcrecpp.so usr/lib/libpcrecpp.so.0 usr/lib/libpcrecpp.so.0.0.0 -#usr/lib/libpcreposix.a #usr/lib/libpcreposix.la usr/lib/libpcreposix.so usr/lib/libpcreposix.so.0 -usr/lib/libpcreposix.so.0.0.0 +usr/lib/libpcreposix.so.0.0.1 #usr/lib/pkgconfig/libpcre.pc -#usr/man/man1/pcregrep.1 -#usr/man/man1/pcretest.1 -#usr/man/man3/pcre.3 -#usr/man/man3/pcre_compile.3 -#usr/man/man3/pcre_compile2.3 -#usr/man/man3/pcre_config.3 -#usr/man/man3/pcre_copy_named_substring.3 -#usr/man/man3/pcre_copy_substring.3 -#usr/man/man3/pcre_dfa_exec.3 -#usr/man/man3/pcre_exec.3 -#usr/man/man3/pcre_free_substring.3 -#usr/man/man3/pcre_free_substring_list.3 -#usr/man/man3/pcre_fullinfo.3 -#usr/man/man3/pcre_get_named_substring.3 -#usr/man/man3/pcre_get_stringnumber.3 -#usr/man/man3/pcre_get_stringtable_entries.3 -#usr/man/man3/pcre_get_substring.3 -#usr/man/man3/pcre_get_substring_list.3 -#usr/man/man3/pcre_info.3 -#usr/man/man3/pcre_maketables.3 -#usr/man/man3/pcre_refcount.3 -#usr/man/man3/pcre_study.3 -#usr/man/man3/pcre_version.3 -#usr/man/man3/pcreapi.3 -#usr/man/man3/pcrebuild.3 -#usr/man/man3/pcrecallout.3 -#usr/man/man3/pcrecompat.3 -#usr/man/man3/pcrecpp.3 -#usr/man/man3/pcrematching.3 -#usr/man/man3/pcrepartial.3 -#usr/man/man3/pcrepattern.3 -#usr/man/man3/pcreperform.3 -#usr/man/man3/pcreposix.3 -#usr/man/man3/pcreprecompile.3 -#usr/man/man3/pcresample.3 -#usr/man/man3/pcrestack.3 #usr/lib/pkgconfig/libpcrecpp.pc +#usr/lib/pkgconfig/libpcreposix.pc #usr/share/doc/pcre #usr/share/doc/pcre/AUTHORS #usr/share/doc/pcre/COPYING @@ -71,6 +33,8 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/index.html #usr/share/doc/pcre/html/pcre-config.html #usr/share/doc/pcre/html/pcre.html +#usr/share/doc/pcre/html/pcre16.html +#usr/share/doc/pcre/html/pcre_assign_jit_stack.html #usr/share/doc/pcre/html/pcre_compile.html #usr/share/doc/pcre/html/pcre_compile2.html #usr/share/doc/pcre/html/pcre_config.html @@ -78,6 +42,7 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/pcre_copy_substring.html #usr/share/doc/pcre/html/pcre_dfa_exec.html #usr/share/doc/pcre/html/pcre_exec.html +#usr/share/doc/pcre/html/pcre_free_study.html #usr/share/doc/pcre/html/pcre_free_substring.html #usr/share/doc/pcre/html/pcre_free_substring_list.html #usr/share/doc/pcre/html/pcre_fullinfo.html @@ -86,17 +51,23 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/pcre_get_stringtable_entries.html #usr/share/doc/pcre/html/pcre_get_substring.html #usr/share/doc/pcre/html/pcre_get_substring_list.html -#usr/share/doc/pcre/html/pcre_info.html +#usr/share/doc/pcre/html/pcre_jit_stack_alloc.html +#usr/share/doc/pcre/html/pcre_jit_stack_free.html #usr/share/doc/pcre/html/pcre_maketables.html +#usr/share/doc/pcre/html/pcre_pattern_to_host_byte_order.html #usr/share/doc/pcre/html/pcre_refcount.html #usr/share/doc/pcre/html/pcre_study.html +#usr/share/doc/pcre/html/pcre_utf16_to_host_byte_order.html #usr/share/doc/pcre/html/pcre_version.html #usr/share/doc/pcre/html/pcreapi.html #usr/share/doc/pcre/html/pcrebuild.html #usr/share/doc/pcre/html/pcrecallout.html #usr/share/doc/pcre/html/pcrecompat.html #usr/share/doc/pcre/html/pcrecpp.html +#usr/share/doc/pcre/html/pcredemo.html #usr/share/doc/pcre/html/pcregrep.html +#usr/share/doc/pcre/html/pcrejit.html +#usr/share/doc/pcre/html/pcrelimits.html #usr/share/doc/pcre/html/pcrematching.html #usr/share/doc/pcre/html/pcrepartial.html #usr/share/doc/pcre/html/pcrepattern.html @@ -107,6 +78,7 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/doc/pcre/html/pcrestack.html #usr/share/doc/pcre/html/pcresyntax.html #usr/share/doc/pcre/html/pcretest.html +#usr/share/doc/pcre/html/pcreunicode.html #usr/share/doc/pcre/pcre-config.txt #usr/share/doc/pcre/pcre.txt #usr/share/doc/pcre/pcregrep.txt @@ -115,6 +87,33 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man1/pcregrep.1 #usr/share/man/man1/pcretest.1 #usr/share/man/man3/pcre.3 +#usr/share/man/man3/pcre16.3 +#usr/share/man/man3/pcre16_assign_jit_stack.3 +#usr/share/man/man3/pcre16_compile.3 +#usr/share/man/man3/pcre16_compile2.3 +#usr/share/man/man3/pcre16_config.3 +#usr/share/man/man3/pcre16_copy_named_substring.3 +#usr/share/man/man3/pcre16_copy_substring.3 +#usr/share/man/man3/pcre16_dfa_exec.3 +#usr/share/man/man3/pcre16_exec.3 +#usr/share/man/man3/pcre16_free_study.3 +#usr/share/man/man3/pcre16_free_substring.3 +#usr/share/man/man3/pcre16_free_substring_list.3 +#usr/share/man/man3/pcre16_fullinfo.3 +#usr/share/man/man3/pcre16_get_named_substring.3 +#usr/share/man/man3/pcre16_get_stringnumber.3 +#usr/share/man/man3/pcre16_get_stringtable_entries.3 +#usr/share/man/man3/pcre16_get_substring.3 +#usr/share/man/man3/pcre16_get_substring_list.3 +#usr/share/man/man3/pcre16_jit_stack_alloc.3 +#usr/share/man/man3/pcre16_jit_stack_free.3 +#usr/share/man/man3/pcre16_maketables.3 +#usr/share/man/man3/pcre16_pattern_to_host_byte_order.3 +#usr/share/man/man3/pcre16_refcount.3 +#usr/share/man/man3/pcre16_study.3 +#usr/share/man/man3/pcre16_utf16_to_host_byte_order.3 +#usr/share/man/man3/pcre16_version.3 +#usr/share/man/man3/pcre_assign_jit_stack.3 #usr/share/man/man3/pcre_compile.3 #usr/share/man/man3/pcre_compile2.3 #usr/share/man/man3/pcre_config.3 @@ -122,6 +121,7 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man3/pcre_copy_substring.3 #usr/share/man/man3/pcre_dfa_exec.3 #usr/share/man/man3/pcre_exec.3 +#usr/share/man/man3/pcre_free_study.3 #usr/share/man/man3/pcre_free_substring.3 #usr/share/man/man3/pcre_free_substring_list.3 #usr/share/man/man3/pcre_fullinfo.3 @@ -130,16 +130,21 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man3/pcre_get_stringtable_entries.3 #usr/share/man/man3/pcre_get_substring.3 #usr/share/man/man3/pcre_get_substring_list.3 -#usr/share/man/man3/pcre_info.3 +#usr/share/man/man3/pcre_jit_stack_alloc.3 +#usr/share/man/man3/pcre_jit_stack_free.3 #usr/share/man/man3/pcre_maketables.3 +#usr/share/man/man3/pcre_pattern_to_host_byte_order.3 #usr/share/man/man3/pcre_refcount.3 #usr/share/man/man3/pcre_study.3 +#usr/share/man/man3/pcre_utf16_to_host_byte_order.3 #usr/share/man/man3/pcre_version.3 #usr/share/man/man3/pcreapi.3 #usr/share/man/man3/pcrebuild.3 #usr/share/man/man3/pcrecallout.3 #usr/share/man/man3/pcrecompat.3 #usr/share/man/man3/pcrecpp.3 +#usr/share/man/man3/pcrejit.3 +#usr/share/man/man3/pcrelimits.3 #usr/share/man/man3/pcrematching.3 #usr/share/man/man3/pcrepartial.3 #usr/share/man/man3/pcrepattern.3 @@ -149,3 +154,4 @@ usr/lib/libpcreposix.so.0.0.0 #usr/share/man/man3/pcresample.3 #usr/share/man/man3/pcrestack.3 #usr/share/man/man3/pcresyntax.3 +#usr/share/man/man3/pcreunicode.3 diff --git a/config/rootfiles/common/pcre-compat b/config/rootfiles/common/pcre-compat new file mode 100644 index 0000000000..ff1b776438 --- /dev/null +++ b/config/rootfiles/common/pcre-compat @@ -0,0 +1,2 @@ +lib/libpcre.so.0 +lib/libpcre.so.0.0.1 diff --git a/config/rootfiles/common/pixman b/config/rootfiles/common/pixman new file mode 100644 index 0000000000..ea44cd812d --- /dev/null +++ b/config/rootfiles/common/pixman @@ -0,0 +1,9 @@ +#usr/include/pixman-1 +#usr/include/pixman-1/pixman-version.h +#usr/include/pixman-1/pixman.h +#usr/lib/libpixman-1.a +#usr/lib/libpixman-1.la +usr/lib/libpixman-1.so +usr/lib/libpixman-1.so.0 +usr/lib/libpixman-1.so.0.26.0 +#usr/lib/pkgconfig/pixman-1.pc diff --git a/config/rootfiles/common/procps b/config/rootfiles/common/procps index 267e8be404..d5e5ad3e16 100644 --- a/config/rootfiles/common/procps +++ b/config/rootfiles/common/procps @@ -15,7 +15,7 @@ usr/bin/top usr/bin/uptime usr/bin/vmstat usr/bin/w -#usr/bin/watch +usr/bin/watch #usr/share/man/man1/free.1 #usr/share/man/man1/kill.1 #usr/share/man/man1/pgrep.1 diff --git a/config/rootfiles/common/readline b/config/rootfiles/common/readline index edf003534d..7bef2c18fa 100644 --- a/config/rootfiles/common/readline +++ b/config/rootfiles/common/readline @@ -1,7 +1,3 @@ -lib/libhistory.so.5 -lib/libhistory.so.5.1 -lib/libreadline.so.5 -lib/libreadline.so.5.1 #usr/include/readline #usr/include/readline/chardefs.h #usr/include/readline/history.h @@ -11,12 +7,14 @@ lib/libreadline.so.5.1 #usr/include/readline/rlstdc.h #usr/include/readline/rltypedefs.h #usr/include/readline/tilde.h -#usr/info/history.info -#usr/info/readline.info -#usr/info/rluserman.info -#usr/lib/libhistory.a -usr/lib/libhistory.so -#usr/lib/libreadline.a -usr/lib/libreadline.so -#usr/man/man3/history.3 -#usr/man/man3/readline.3 +#usr/lib/libhistory.so +usr/lib/libhistory.so.6 +usr/lib/libhistory.so.6.2 +#usr/lib/libreadline.so +usr/lib/libreadline.so.6 +usr/lib/libreadline.so.6.2 +#usr/share/info/history.info +#usr/share/info/readline.info +#usr/share/info/rluserman.info +#usr/share/man/man3/history.3 +#usr/share/man/man3/readline.3 diff --git a/config/rootfiles/common/readline-compat b/config/rootfiles/common/readline-compat new file mode 100644 index 0000000000..1ff73257cf --- /dev/null +++ b/config/rootfiles/common/readline-compat @@ -0,0 +1,4 @@ +lib/libhistory.so.5 +lib/libhistory.so.5.2 +lib/libreadline.so.5 +lib/libreadline.so.5.2 diff --git a/config/rootfiles/common/reiser4progs b/config/rootfiles/common/reiser4progs deleted file mode 100644 index e01e4f8b86..0000000000 --- a/config/rootfiles/common/reiser4progs +++ /dev/null @@ -1,77 +0,0 @@ -#sbin/debugfs.reiser4 -sbin/fsck.reiser4 -#sbin/make_reiser4 -sbin/measurefs.reiser4 -sbin/mkfs.reiser4 -#usr/include/reiser4 -#usr/include/reiser4/alloc.h -#usr/include/reiser4/backup.h -#usr/include/reiser4/bitmap.h -#usr/include/reiser4/factory.h -#usr/include/reiser4/fake.h -#usr/include/reiser4/filesystem.h -#usr/include/reiser4/flow.h -#usr/include/reiser4/format.h -#usr/include/reiser4/item.h -#usr/include/reiser4/journal.h -#usr/include/reiser4/key.h -#usr/include/reiser4/libreiser4.h -#usr/include/reiser4/master.h -#usr/include/reiser4/node.h -#usr/include/reiser4/object.h -#usr/include/reiser4/oid.h -#usr/include/reiser4/place.h -#usr/include/reiser4/plugin.h -#usr/include/reiser4/print.h -#usr/include/reiser4/profile.h -#usr/include/reiser4/pset.h -#usr/include/reiser4/semantic.h -#usr/include/reiser4/status.h -#usr/include/reiser4/tree.h -#usr/include/reiser4/types.h -#usr/include/repair -#usr/include/repair/add_missing.h -#usr/include/repair/alloc.h -#usr/include/repair/backup.h -#usr/include/repair/cleanup.h -#usr/include/repair/disk_scan.h -#usr/include/repair/filesystem.h -#usr/include/repair/filter.h -#usr/include/repair/format.h -#usr/include/repair/item.h -#usr/include/repair/journal.h -#usr/include/repair/librepair.h -#usr/include/repair/lost_found.h -#usr/include/repair/master.h -#usr/include/repair/node.h -#usr/include/repair/object.h -#usr/include/repair/oid.h -#usr/include/repair/place.h -#usr/include/repair/plugin.h -#usr/include/repair/pset.h -#usr/include/repair/repair.h -#usr/include/repair/semantic.h -#usr/include/repair/status.h -#usr/include/repair/tree.h -#usr/include/repair/twig_scan.h -usr/lib/libreiser4-1.0.so.6 -usr/lib/libreiser4-1.0.so.6.0.0 -usr/lib/libreiser4-minimal-1.0.so.6 -usr/lib/libreiser4-minimal-1.0.so.6.0.0 -#usr/lib/libreiser4-minimal.a -#usr/lib/libreiser4-minimal.la -usr/lib/libreiser4-minimal.so -#usr/lib/libreiser4.a -#usr/lib/libreiser4.la -usr/lib/libreiser4.so -usr/lib/librepair-1.0.so.6 -usr/lib/librepair-1.0.so.6.0.0 -#usr/lib/librepair.a -#usr/lib/librepair.la -usr/lib/librepair.so -#usr/man/man8 -#usr/man/man8/debugfs.reiser4.8 -#usr/man/man8/fsck.reiser4.8 -#usr/man/man8/measurefs.reiser4.8 -#usr/man/man8/mkfs.reiser4.8 -#usr/share/aclocal/libreiser4.m4 diff --git a/config/rootfiles/common/rrdtool b/config/rootfiles/common/rrdtool index faa0dca844..c957d523bd 100644 --- a/config/rootfiles/common/rrdtool +++ b/config/rootfiles/common/rrdtool @@ -1,17 +1,20 @@ #srv/web/ipfire/html/graphs -#usr/bin/rrdcgi +usr/bin/rrdcached usr/bin/rrdtool usr/bin/rrdupdate +#usr/include/rrd.h +#usr/include/rrd_client.h +#usr/include/rrd_format.h #usr/lib/librrd.a #usr/lib/librrd.la -usr/lib/librrd.so -usr/lib/librrd.so.2 -usr/lib/librrd.so.2.0.15 +#usr/lib/librrd.so +usr/lib/librrd.so.4 +usr/lib/librrd.so.4.2.0 #usr/lib/librrd_th.a #usr/lib/librrd_th.la -usr/lib/librrd_th.so -usr/lib/librrd_th.so.2 -usr/lib/librrd_th.so.2.0.13 +#usr/lib/librrd_th.so +usr/lib/librrd_th.so.4 +usr/lib/librrd_th.so.4.2.0 usr/lib/perl5/site_perl/5.12.3/RRDp.pm usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDp @@ -20,17 +23,111 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/.packlist #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.bs usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so -#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/ntmake.pl +#usr/lib/pkgconfig/librrd.pc +#usr/share/doc/rrdtool-1.4.7 +#usr/share/doc/rrdtool-1.4.7/html +#usr/share/doc/rrdtool-1.4.7/html/RRDp.html +#usr/share/doc/rrdtool-1.4.7/html/RRDs.html +#usr/share/doc/rrdtool-1.4.7/html/bin_dec_hex.html +#usr/share/doc/rrdtool-1.4.7/html/cdeftutorial.html +#usr/share/doc/rrdtool-1.4.7/html/index.html +#usr/share/doc/rrdtool-1.4.7/html/librrd.html +#usr/share/doc/rrdtool-1.4.7/html/rpntutorial.html +#usr/share/doc/rrdtool-1.4.7/html/rrd-beginners.html +#usr/share/doc/rrdtool-1.4.7/html/rrdbuild.html +#usr/share/doc/rrdtool-1.4.7/html/rrdcached.html +#usr/share/doc/rrdtool-1.4.7/html/rrdcgi.html +#usr/share/doc/rrdtool-1.4.7/html/rrdcreate.html +#usr/share/doc/rrdtool-1.4.7/html/rrddump.html +#usr/share/doc/rrdtool-1.4.7/html/rrdfetch.html +#usr/share/doc/rrdtool-1.4.7/html/rrdfirst.html +#usr/share/doc/rrdtool-1.4.7/html/rrdflushcached.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_data.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_examples.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_graph.html +#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_rpn.html +#usr/share/doc/rrdtool-1.4.7/html/rrdinfo.html +#usr/share/doc/rrdtool-1.4.7/html/rrdlast.html +#usr/share/doc/rrdtool-1.4.7/html/rrdlastupdate.html +#usr/share/doc/rrdtool-1.4.7/html/rrdresize.html +#usr/share/doc/rrdtool-1.4.7/html/rrdrestore.html +#usr/share/doc/rrdtool-1.4.7/html/rrdthreads.html +#usr/share/doc/rrdtool-1.4.7/html/rrdtool.html +#usr/share/doc/rrdtool-1.4.7/html/rrdtune.html +#usr/share/doc/rrdtool-1.4.7/html/rrdtutorial.html +#usr/share/doc/rrdtool-1.4.7/html/rrdupdate.html +#usr/share/doc/rrdtool-1.4.7/html/rrdxport.html +#usr/share/doc/rrdtool-1.4.7/txt +#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.pod +#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.txt +#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.pod +#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.txt +#usr/share/doc/rrdtool-1.4.7/txt/librrd.txt +#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.pod +#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrddump.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrddump.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.txt +#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.pod +#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.txt #usr/share/man/man1/bin_dec_hex.1 #usr/share/man/man1/cdeftutorial.1 #usr/share/man/man1/rpntutorial.1 #usr/share/man/man1/rrd-beginners.1 #usr/share/man/man1/rrdbuild.1 +#usr/share/man/man1/rrdcached.1 #usr/share/man/man1/rrdcgi.1 #usr/share/man/man1/rrdcreate.1 #usr/share/man/man1/rrddump.1 #usr/share/man/man1/rrdfetch.1 #usr/share/man/man1/rrdfirst.1 +#usr/share/man/man1/rrdflushcached.1 #usr/share/man/man1/rrdgraph.1 #usr/share/man/man1/rrdgraph_data.1 #usr/share/man/man1/rrdgraph_examples.1 @@ -49,105 +146,18 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so #usr/share/man/man1/rrdxport.1 #usr/share/man/man3/RRDp.3 #usr/share/man/man3/RRDs.3 -#usr/share/rrdtool-1.2.30 -#usr/share/rrdtool-1.2.30/include -#usr/share/rrdtool-1.2.30/include/rrd.h -#usr/share/rrdtool-1.2.30/share -#usr/share/rrdtool-1.2.30/share/doc -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30 -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDp.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDs.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/bin_dec_hex.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/cdeftutorial.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/index.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rpntutorial.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrd-beginners.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdbuild.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcgi.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcreate.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrddump.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfetch.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfirst.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_data.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_examples.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_graph.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_rpn.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdinfo.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlast.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlastupdate.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdresize.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdrestore.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdthreads.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtool.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtune.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtutorial.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdupdate.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdxport.html -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.txt -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.pod -#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.txt -#usr/share/rrdtool-1.2.30/share/rrdtool -#usr/share/rrdtool-1.2.30/share/rrdtool/examples -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/4charts.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/bigtops.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/cgi-demo.cgi -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/minmax.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/perftest.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/piped-demo.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/shared-demo.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/examples/stripes.pl -#usr/share/rrdtool-1.2.30/share/rrdtool/fonts -usr/share/rrdtool-1.2.30/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf +#usr/share/man/man3/librrd.3 +#usr/share/rrdtool +#usr/share/rrdtool/examples +#usr/share/rrdtool/examples/4charts.pl +#usr/share/rrdtool/examples/bigtops.pl +#usr/share/rrdtool/examples/cgi-demo.cgi +#usr/share/rrdtool/examples/minmax.pl +#usr/share/rrdtool/examples/perftest.pl +#usr/share/rrdtool/examples/piped-demo.pl +#usr/share/rrdtool/examples/rrdcached +#usr/share/rrdtool/examples/rrdcached/RRDCached.pm +#usr/share/rrdtool/examples/rrdcached/rrdcached-size.pl +#usr/share/rrdtool/examples/shared-demo.pl +#usr/share/rrdtool/examples/stripes.pl var/log/rrd diff --git a/config/rootfiles/common/sdparm b/config/rootfiles/common/sdparm index cf5caa5061..1bfb6a9abf 100644 --- a/config/rootfiles/common/sdparm +++ b/config/rootfiles/common/sdparm @@ -1,2 +1,2 @@ usr/bin/sdparm -#usr/man/man8/sdparm.8 +#usr/share/man/man8/sdparm.8 diff --git a/config/rootfiles/common/sed b/config/rootfiles/common/sed index 5cd180bef7..8db08fa39d 100644 --- a/config/rootfiles/common/sed +++ b/config/rootfiles/common/sed @@ -1,5 +1,3 @@ bin/sed -#usr/info/sed.info -#usr/info/sed.info-1 -#usr/info/sed.info-2 -#usr/man/man1/sed.1 +#usr/share/info/sed.info +#usr/share/man/man1/sed.1 diff --git a/config/rootfiles/common/shadow b/config/rootfiles/common/shadow index 31a273f862..ec9054efea 100644 --- a/config/rootfiles/common/shadow +++ b/config/rootfiles/common/shadow @@ -23,7 +23,7 @@ lib/libshadow.so.0.0.0 #usr/bin/sg #usr/lib/libshadow.a #usr/lib/libshadow.la -usr/lib/libshadow.so +#usr/lib/libshadow.so #usr/man/man1/chage.1 #usr/man/man1/chfn.1 #usr/man/man1/chsh.1 @@ -45,6 +45,7 @@ usr/lib/libshadow.so #usr/man/man5/porttime.5 #usr/man/man5/shadow.5 #usr/man/man5/suauth.5 +#usr/man/man8 #usr/man/man8/chpasswd.8 #usr/man/man8/faillog.8 #usr/man/man8/groupadd.8 diff --git a/config/rootfiles/common/smartmontools b/config/rootfiles/common/smartmontools index d06ea9eaff..e37be6dceb 100644 --- a/config/rootfiles/common/smartmontools +++ b/config/rootfiles/common/smartmontools @@ -2,9 +2,6 @@ #usr/etc/rc.d/init.d #usr/etc/rc.d/init.d/smartd #usr/etc/smartd.conf -#usr/man/man5/smartd.conf.5 -#usr/man/man8/smartctl.8 -#usr/man/man8/smartd.8 usr/sbin/smartctl #usr/sbin/smartd usr/sbin/update-smart-drivedb @@ -24,5 +21,8 @@ usr/sbin/update-smart-drivedb #usr/share/doc/smartmontools/examplescripts/Example4 #usr/share/doc/smartmontools/examplescripts/README #usr/share/doc/smartmontools/smartd.conf +#usr/share/man/man5/smartd.conf.5 +#usr/share/man/man8/smartctl.8 +#usr/share/man/man8/smartd.8 #usr/share/smartmontools usr/share/smartmontools/drivedb.h diff --git a/config/rootfiles/common/snort b/config/rootfiles/common/snort index 90233a181c..8404486533 100644 --- a/config/rootfiles/common/snort +++ b/config/rootfiles/common/snort @@ -26,9 +26,10 @@ usr/bin/u2spewfoo #usr/include/snort/dynamic_output/snort_debug.h #usr/include/snort/dynamic_output/stream_api.h #usr/include/snort/dynamic_preproc -#usr/include/snort/dynamic_preproc/attribute_table_api.h #usr/include/snort/dynamic_preproc/bitop.h #usr/include/snort/dynamic_preproc/cpuclock.h +#usr/include/snort/dynamic_preproc/file_api.h +#usr/include/snort/dynamic_preproc/file_lib.h #usr/include/snort/dynamic_preproc/idle_processing.h #usr/include/snort/dynamic_preproc/ipv6_port.h #usr/include/snort/dynamic_preproc/mempool.h @@ -178,6 +179,7 @@ usr/sbin/snort #usr/share/doc/snort/README.dnp3 #usr/share/doc/snort/README.dns #usr/share/doc/snort/README.event_queue +#usr/share/doc/snort/README.file #usr/share/doc/snort/README.filters #usr/share/doc/snort/README.flowbits #usr/share/doc/snort/README.frag3 diff --git a/config/rootfiles/common/squid b/config/rootfiles/common/squid index 1e015bfcd0..159161ae59 100644 --- a/config/rootfiles/common/squid +++ b/config/rootfiles/common/squid @@ -1157,47 +1157,47 @@ usr/lib/squid/errors/fr/error-details.txt #usr/lib/squid/errors/ms/error-details.txt #usr/lib/squid/errors/nl #usr/lib/squid/errors/nl-nl -#usr/lib/squid/errors/nl/ERR_ACCESS_DENIED -#usr/lib/squid/errors/nl/ERR_ACL_TIME_QUOTA_EXCEEDED -#usr/lib/squid/errors/nl/ERR_AGENT_CONFIGURE -#usr/lib/squid/errors/nl/ERR_AGENT_WPAD -#usr/lib/squid/errors/nl/ERR_CACHE_ACCESS_DENIED -#usr/lib/squid/errors/nl/ERR_CACHE_MGR_ACCESS_DENIED -#usr/lib/squid/errors/nl/ERR_CANNOT_FORWARD -#usr/lib/squid/errors/nl/ERR_CONNECT_FAIL -#usr/lib/squid/errors/nl/ERR_DIR_LISTING -#usr/lib/squid/errors/nl/ERR_DNS_FAIL -#usr/lib/squid/errors/nl/ERR_ESI -#usr/lib/squid/errors/nl/ERR_FORWARDING_DENIED -#usr/lib/squid/errors/nl/ERR_FTP_DISABLED -#usr/lib/squid/errors/nl/ERR_FTP_FAILURE -#usr/lib/squid/errors/nl/ERR_FTP_FORBIDDEN -#usr/lib/squid/errors/nl/ERR_FTP_NOT_FOUND -#usr/lib/squid/errors/nl/ERR_FTP_PUT_CREATED -#usr/lib/squid/errors/nl/ERR_FTP_PUT_ERROR -#usr/lib/squid/errors/nl/ERR_FTP_PUT_MODIFIED -#usr/lib/squid/errors/nl/ERR_FTP_UNAVAILABLE -#usr/lib/squid/errors/nl/ERR_GATEWAY_FAILURE -#usr/lib/squid/errors/nl/ERR_ICAP_FAILURE -#usr/lib/squid/errors/nl/ERR_INVALID_REQ -#usr/lib/squid/errors/nl/ERR_INVALID_RESP -#usr/lib/squid/errors/nl/ERR_INVALID_URL -#usr/lib/squid/errors/nl/ERR_LIFETIME_EXP -#usr/lib/squid/errors/nl/ERR_NO_RELAY -#usr/lib/squid/errors/nl/ERR_ONLY_IF_CACHED_MISS -#usr/lib/squid/errors/nl/ERR_PRECONDITION_FAILED -#usr/lib/squid/errors/nl/ERR_READ_ERROR -#usr/lib/squid/errors/nl/ERR_READ_TIMEOUT -#usr/lib/squid/errors/nl/ERR_SECURE_CONNECT_FAIL -#usr/lib/squid/errors/nl/ERR_SHUTTING_DOWN -#usr/lib/squid/errors/nl/ERR_SOCKET_FAILURE -#usr/lib/squid/errors/nl/ERR_TOO_BIG -#usr/lib/squid/errors/nl/ERR_UNSUP_HTTPVERSION -#usr/lib/squid/errors/nl/ERR_UNSUP_REQ -#usr/lib/squid/errors/nl/ERR_URN_RESOLVE -#usr/lib/squid/errors/nl/ERR_WRITE_ERROR -#usr/lib/squid/errors/nl/ERR_ZERO_SIZE_OBJECT -#usr/lib/squid/errors/nl/error-details.txt +usr/lib/squid/errors/nl/ERR_ACCESS_DENIED +usr/lib/squid/errors/nl/ERR_ACL_TIME_QUOTA_EXCEEDED +usr/lib/squid/errors/nl/ERR_AGENT_CONFIGURE +usr/lib/squid/errors/nl/ERR_AGENT_WPAD +usr/lib/squid/errors/nl/ERR_CACHE_ACCESS_DENIED +usr/lib/squid/errors/nl/ERR_CACHE_MGR_ACCESS_DENIED +usr/lib/squid/errors/nl/ERR_CANNOT_FORWARD +usr/lib/squid/errors/nl/ERR_CONNECT_FAIL +usr/lib/squid/errors/nl/ERR_DIR_LISTING +usr/lib/squid/errors/nl/ERR_DNS_FAIL +usr/lib/squid/errors/nl/ERR_ESI +usr/lib/squid/errors/nl/ERR_FORWARDING_DENIED +usr/lib/squid/errors/nl/ERR_FTP_DISABLED +usr/lib/squid/errors/nl/ERR_FTP_FAILURE +usr/lib/squid/errors/nl/ERR_FTP_FORBIDDEN +usr/lib/squid/errors/nl/ERR_FTP_NOT_FOUND +usr/lib/squid/errors/nl/ERR_FTP_PUT_CREATED +usr/lib/squid/errors/nl/ERR_FTP_PUT_ERROR +usr/lib/squid/errors/nl/ERR_FTP_PUT_MODIFIED +usr/lib/squid/errors/nl/ERR_FTP_UNAVAILABLE +usr/lib/squid/errors/nl/ERR_GATEWAY_FAILURE +usr/lib/squid/errors/nl/ERR_ICAP_FAILURE +usr/lib/squid/errors/nl/ERR_INVALID_REQ +usr/lib/squid/errors/nl/ERR_INVALID_RESP +usr/lib/squid/errors/nl/ERR_INVALID_URL +usr/lib/squid/errors/nl/ERR_LIFETIME_EXP +usr/lib/squid/errors/nl/ERR_NO_RELAY +usr/lib/squid/errors/nl/ERR_ONLY_IF_CACHED_MISS +usr/lib/squid/errors/nl/ERR_PRECONDITION_FAILED +usr/lib/squid/errors/nl/ERR_READ_ERROR +usr/lib/squid/errors/nl/ERR_READ_TIMEOUT +usr/lib/squid/errors/nl/ERR_SECURE_CONNECT_FAIL +usr/lib/squid/errors/nl/ERR_SHUTTING_DOWN +usr/lib/squid/errors/nl/ERR_SOCKET_FAILURE +usr/lib/squid/errors/nl/ERR_TOO_BIG +usr/lib/squid/errors/nl/ERR_UNSUP_HTTPVERSION +usr/lib/squid/errors/nl/ERR_UNSUP_REQ +usr/lib/squid/errors/nl/ERR_URN_RESOLVE +usr/lib/squid/errors/nl/ERR_WRITE_ERROR +usr/lib/squid/errors/nl/ERR_ZERO_SIZE_OBJECT +usr/lib/squid/errors/nl/error-details.txt #usr/lib/squid/errors/oc #usr/lib/squid/errors/oc/ERR_ACCESS_DENIED #usr/lib/squid/errors/oc/ERR_ACL_TIME_QUOTA_EXCEEDED diff --git a/config/rootfiles/common/stage2 b/config/rootfiles/common/stage2 index 796e0f3237..e10c649b19 100644 --- a/config/rootfiles/common/stage2 +++ b/config/rootfiles/common/stage2 @@ -1,6 +1,6 @@ bin/bash bin/cat -bin/grep +bin/echo bin/pwd bin/stty #boot @@ -13,11 +13,10 @@ etc/hddtemp.db etc/host.conf etc/inittab etc/inputrc -#etc/ipsec.user.conf -#etc/ipsec.user.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets etc/issue etc/ld.so.conf -etc/localtime etc/logrotate.conf etc/mime.types etc/modprobe.d @@ -30,11 +29,13 @@ etc/nsswitch.conf etc/passwd etc/profile #etc/profile.d -etc/profile.d/bashrc.sh -etc/profile.d/dircolors.sh +etc/profile.d/colorls.sh etc/profile.d/extrapaths.sh +etc/profile.d/glib2-locale.sh etc/profile.d/i18n.sh +etc/profile.d/lang.sh etc/profile.d/readline.sh +etc/profile.d/term256.sh etc/profile.d/umask.sh etc/resolv.conf etc/securetty @@ -50,14 +51,23 @@ media/usbkey mnt #opt #root +root/.bash_logout +root/.bash_profile +root/.bashrc root/ipfire #sbin #srv +#usr/bin #usr/bin/perl #usr/include #usr/lib -usr/lib/libgcc_s.so +#usr/lib/libgcc_s.so usr/lib/libgcc_s.so.1 +#usr/lib/libstdc++.la +#usr/lib/libstdc++.so +usr/lib/libstdc++.so.6 +#usr/local +#usr/local/bin #usr/local/bin/archive.files usr/local/bin/backupiso usr/local/bin/connscheduler @@ -75,13 +85,16 @@ usr/local/bin/setddns.pl usr/local/bin/settime usr/local/bin/timecheck #usr/local/bin/uname -usr/local/bin/vpn-watch +usr/local/bin/update-lang-cache #usr/local/include #usr/local/lib #usr/local/sbin +#usr/local/share #usr/local/share/doc #usr/local/share/info #usr/local/share/locale +#usr/local/share/man +#usr/local/share/man/man1 #usr/local/share/man/man2 #usr/local/share/man/man3 #usr/local/share/man/man4 @@ -94,6 +107,7 @@ usr/local/bin/vpn-watch #usr/local/share/zoneinfo #usr/local/src #usr/sbin +usr/sbin/ovpn-ccd-convert #usr/share #usr/share/doc #usr/share/doc/licenses @@ -133,6 +147,6 @@ var/run var/run/utmp #var/spool var/tmp -dev/null dev/console +dev/null tmp diff --git a/config/rootfiles/common/strongswan b/config/rootfiles/common/strongswan index 4c7d558b1a..2d5d42b431 100644 --- a/config/rootfiles/common/strongswan +++ b/config/rootfiles/common/strongswan @@ -21,125 +21,61 @@ usr/lib/ipsec/libcharon.so.0.0.0 usr/lib/ipsec/libhydra.so usr/lib/ipsec/libhydra.so.0 usr/lib/ipsec/libhydra.so.0.0.0 +#usr/lib/ipsec/libradius.a +#usr/lib/ipsec/libradius.la +usr/lib/ipsec/libradius.so +usr/lib/ipsec/libradius.so.0 +usr/lib/ipsec/libradius.so.0.0.0 #usr/lib/ipsec/libstrongswan.a #usr/lib/ipsec/libstrongswan.la usr/lib/ipsec/libstrongswan.so usr/lib/ipsec/libstrongswan.so.0 usr/lib/ipsec/libstrongswan.so.0.0.0 #usr/lib/ipsec/plugins -#usr/lib/ipsec/plugins/libstrongswan-aes.a -#usr/lib/ipsec/plugins/libstrongswan-aes.la usr/lib/ipsec/plugins/libstrongswan-aes.so -#usr/lib/ipsec/plugins/libstrongswan-attr.a -#usr/lib/ipsec/plugins/libstrongswan-attr.la usr/lib/ipsec/plugins/libstrongswan-attr.so -#usr/lib/ipsec/plugins/libstrongswan-cmac.a -#usr/lib/ipsec/plugins/libstrongswan-cmac.la usr/lib/ipsec/plugins/libstrongswan-cmac.so -#usr/lib/ipsec/plugins/libstrongswan-constraints.a -#usr/lib/ipsec/plugins/libstrongswan-constraints.la usr/lib/ipsec/plugins/libstrongswan-constraints.so -#usr/lib/ipsec/plugins/libstrongswan-curl.a -#usr/lib/ipsec/plugins/libstrongswan-curl.la usr/lib/ipsec/plugins/libstrongswan-curl.so -#usr/lib/ipsec/plugins/libstrongswan-des.a -#usr/lib/ipsec/plugins/libstrongswan-des.la usr/lib/ipsec/plugins/libstrongswan-des.so -#usr/lib/ipsec/plugins/libstrongswan-dnskey.a -#usr/lib/ipsec/plugins/libstrongswan-dnskey.la usr/lib/ipsec/plugins/libstrongswan-dnskey.so -#usr/lib/ipsec/plugins/libstrongswan-fips-prf.a -#usr/lib/ipsec/plugins/libstrongswan-fips-prf.la +usr/lib/ipsec/plugins/libstrongswan-eap-radius.so usr/lib/ipsec/plugins/libstrongswan-fips-prf.so -#usr/lib/ipsec/plugins/libstrongswan-gmp.a -#usr/lib/ipsec/plugins/libstrongswan-gmp.la usr/lib/ipsec/plugins/libstrongswan-gmp.so -#usr/lib/ipsec/plugins/libstrongswan-hmac.a -#usr/lib/ipsec/plugins/libstrongswan-hmac.la usr/lib/ipsec/plugins/libstrongswan-hmac.so -#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.a -#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.la usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.so -#usr/lib/ipsec/plugins/libstrongswan-md5.a -#usr/lib/ipsec/plugins/libstrongswan-md5.la usr/lib/ipsec/plugins/libstrongswan-md5.so -#usr/lib/ipsec/plugins/libstrongswan-pem.a -#usr/lib/ipsec/plugins/libstrongswan-pem.la +usr/lib/ipsec/plugins/libstrongswan-nonce.so +usr/lib/ipsec/plugins/libstrongswan-openssl.so +#usr/lib/ipsec/plugins/libstrongswan-padlock.so usr/lib/ipsec/plugins/libstrongswan-pem.so -#usr/lib/ipsec/plugins/libstrongswan-pgp.a -#usr/lib/ipsec/plugins/libstrongswan-pgp.la usr/lib/ipsec/plugins/libstrongswan-pgp.so -#usr/lib/ipsec/plugins/libstrongswan-pkcs1.a -#usr/lib/ipsec/plugins/libstrongswan-pkcs1.la usr/lib/ipsec/plugins/libstrongswan-pkcs1.so -#usr/lib/ipsec/plugins/libstrongswan-pkcs8.a -#usr/lib/ipsec/plugins/libstrongswan-pkcs8.la +usr/lib/ipsec/plugins/libstrongswan-pkcs7.so usr/lib/ipsec/plugins/libstrongswan-pkcs8.so -#usr/lib/ipsec/plugins/libstrongswan-pubkey.a -#usr/lib/ipsec/plugins/libstrongswan-pubkey.la usr/lib/ipsec/plugins/libstrongswan-pubkey.so -#usr/lib/ipsec/plugins/libstrongswan-random.a -#usr/lib/ipsec/plugins/libstrongswan-random.la usr/lib/ipsec/plugins/libstrongswan-random.so -#usr/lib/ipsec/plugins/libstrongswan-resolve.a -#usr/lib/ipsec/plugins/libstrongswan-resolve.la usr/lib/ipsec/plugins/libstrongswan-resolve.so -#usr/lib/ipsec/plugins/libstrongswan-revocation.a -#usr/lib/ipsec/plugins/libstrongswan-revocation.la usr/lib/ipsec/plugins/libstrongswan-revocation.so -#usr/lib/ipsec/plugins/libstrongswan-sha1.a -#usr/lib/ipsec/plugins/libstrongswan-sha1.la usr/lib/ipsec/plugins/libstrongswan-sha1.so -#usr/lib/ipsec/plugins/libstrongswan-sha2.a -#usr/lib/ipsec/plugins/libstrongswan-sha2.la usr/lib/ipsec/plugins/libstrongswan-sha2.so -#usr/lib/ipsec/plugins/libstrongswan-socket-raw.a -#usr/lib/ipsec/plugins/libstrongswan-socket-raw.la -usr/lib/ipsec/plugins/libstrongswan-socket-raw.so -#usr/lib/ipsec/plugins/libstrongswan-stroke.a -#usr/lib/ipsec/plugins/libstrongswan-stroke.la +usr/lib/ipsec/plugins/libstrongswan-socket-default.so usr/lib/ipsec/plugins/libstrongswan-stroke.so -#usr/lib/ipsec/plugins/libstrongswan-updown.a -#usr/lib/ipsec/plugins/libstrongswan-updown.la usr/lib/ipsec/plugins/libstrongswan-updown.so -#usr/lib/ipsec/plugins/libstrongswan-x509.a -#usr/lib/ipsec/plugins/libstrongswan-x509.la usr/lib/ipsec/plugins/libstrongswan-x509.so -#usr/lib/ipsec/plugins/libstrongswan-xauth.a -#usr/lib/ipsec/plugins/libstrongswan-xauth.la -usr/lib/ipsec/plugins/libstrongswan-xauth.so -#usr/lib/ipsec/plugins/libstrongswan-xcbc.a -#usr/lib/ipsec/plugins/libstrongswan-xcbc.la +usr/lib/ipsec/plugins/libstrongswan-xauth-generic.so usr/lib/ipsec/plugins/libstrongswan-xcbc.so #usr/libexec/ipsec usr/libexec/ipsec/_copyright -usr/libexec/ipsec/_pluto_adns usr/libexec/ipsec/_updown usr/libexec/ipsec/_updown_espmark usr/libexec/ipsec/charon usr/libexec/ipsec/openac usr/libexec/ipsec/pki -usr/libexec/ipsec/pluto usr/libexec/ipsec/scepclient usr/libexec/ipsec/starter usr/libexec/ipsec/stroke -usr/libexec/ipsec/whack usr/sbin/ipsec -#usr/share/man/man3/anyaddr.3 -#usr/share/man/man3/atoaddr.3 -#usr/share/man/man3/atoasr.3 -#usr/share/man/man3/atoul.3 -#usr/share/man/man3/goodmask.3 -#usr/share/man/man3/initaddr.3 -#usr/share/man/man3/initsubnet.3 -#usr/share/man/man3/portof.3 -#usr/share/man/man3/rangetosubnet.3 -#usr/share/man/man3/sameaddr.3 -#usr/share/man/man3/subnetof.3 -#usr/share/man/man3/ttoaddr.3 -#usr/share/man/man3/ttodata.3 -#usr/share/man/man3/ttosa.3 -#usr/share/man/man3/ttoul.3 #usr/share/man/man5/ipsec.conf.5 #usr/share/man/man5/ipsec.secrets.5 #usr/share/man/man5/strongswan.conf.5 @@ -147,7 +83,4 @@ usr/sbin/ipsec #usr/share/man/man8/_updown_espmark.8 #usr/share/man/man8/ipsec.8 #usr/share/man/man8/openac.8 -#usr/share/man/man8/pluto.8 #usr/share/man/man8/scepclient.8 -etc/ipsec.user.conf -etc/ipsec.user.secrets diff --git a/config/rootfiles/common/sysfsutils b/config/rootfiles/common/sysfsutils index c749e481aa..32eca4ed57 100644 --- a/config/rootfiles/common/sysfsutils +++ b/config/rootfiles/common/sysfsutils @@ -1,18 +1,3 @@ -#opt/MACHINE-uClibc/bin/dlist_test -#opt/MACHINE-uClibc/bin/get_bus_devices_list -#opt/MACHINE-uClibc/bin/get_class_dev -#opt/MACHINE-uClibc/bin/get_classdev_parent -#opt/MACHINE-uClibc/bin/get_device -#opt/MACHINE-uClibc/bin/get_driver -#opt/MACHINE-uClibc/bin/systool -#opt/MACHINE-uClibc/bin/testlibsysfs -#opt/MACHINE-uClibc/bin/write_attr -#opt/MACHINE-uClibc/lib/libsysfs.a -#opt/MACHINE-uClibc/lib/libsysfs.la -#opt/MACHINE-uClibc/man/man1/systool.1 -#opt/MACHINE-uClibc/usr/include/sysfs -#opt/MACHINE-uClibc/usr/include/sysfs/dlist.h -#opt/MACHINE-uClibc/usr/include/sysfs/libsysfs.h #bin/dlist_test #bin/get_bus_devices_list #bin/get_class_dev diff --git a/config/rootfiles/common/sysvinit b/config/rootfiles/common/sysvinit index 8bd60efbdc..ede5aa50d3 100644 --- a/config/rootfiles/common/sysvinit +++ b/config/rootfiles/common/sysvinit @@ -1,6 +1,7 @@ bin/mountpoint bin/pidof #sbin/bootlogd +#sbin/fstab-decode sbin/halt sbin/init sbin/killall5 @@ -20,10 +21,12 @@ usr/bin/wall #usr/share/man/man1/lastb.1 #usr/share/man/man1/mesg.1 #usr/share/man/man1/mountpoint.1 +#usr/share/man/man1/utmpdump.1 #usr/share/man/man1/wall.1 #usr/share/man/man5/initscript.5 #usr/share/man/man5/inittab.5 #usr/share/man/man8/bootlogd.8 +#usr/share/man/man8/fstab-decode.8 #usr/share/man/man8/halt.8 #usr/share/man/man8/init.8 #usr/share/man/man8/killall5.8 diff --git a/config/rootfiles/common/texinfo b/config/rootfiles/common/texinfo index e7de4b7a91..00e9aedf8b 100644 --- a/config/rootfiles/common/texinfo +++ b/config/rootfiles/common/texinfo @@ -2,23 +2,26 @@ #usr/bin/infokey #usr/bin/install-info #usr/bin/makeinfo +#usr/bin/pdftexi2dvi #usr/bin/texi2dvi #usr/bin/texi2pdf #usr/bin/texindex -#usr/info/info-stnd.info -#usr/info/info.info -#usr/info/texinfo -#usr/info/texinfo-1 -#usr/info/texinfo-2 -#usr/info/texinfo-3 -#usr/man/man1/info.1 -#usr/man/man1/infokey.1 -#usr/man/man1/install-info.1 -#usr/man/man1/makeinfo.1 -#usr/man/man1/texi2dvi.1 -#usr/man/man1/texindex.1 -#usr/man/man5/info.5 -#usr/man/man5/texinfo.5 +#usr/share/info/info-stnd.info +#usr/share/info/info.info +#usr/share/info/texinfo +#usr/share/info/texinfo-1 +#usr/share/info/texinfo-2 +#usr/share/info/texinfo-3 +#usr/share/man/man1/info.1 +#usr/share/man/man1/infokey.1 +#usr/share/man/man1/install-info.1 +#usr/share/man/man1/makeinfo.1 +#usr/share/man/man1/pdftexi2dvi.1 +#usr/share/man/man1/texi2dvi.1 +#usr/share/man/man1/texi2pdf.1 +#usr/share/man/man1/texindex.1 +#usr/share/man/man5/info.5 +#usr/share/man/man5/texinfo.5 #usr/share/texinfo #usr/share/texinfo/texinfo.cat #usr/share/texinfo/texinfo.dtd diff --git a/config/rootfiles/common/tzdata b/config/rootfiles/common/tzdata index 9df54d94d7..7362a0f8a5 100644 --- a/config/rootfiles/common/tzdata +++ b/config/rootfiles/common/tzdata @@ -100,6 +100,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/America/Coral_Harbour #usr/share/zoneinfo/America/Cordoba #usr/share/zoneinfo/America/Costa_Rica +#usr/share/zoneinfo/America/Creston #usr/share/zoneinfo/America/Cuiaba #usr/share/zoneinfo/America/Curacao #usr/share/zoneinfo/America/Danmarkshavn @@ -594,12 +595,14 @@ usr/share/zoneinfo #usr/share/zoneinfo/US/Michigan #usr/share/zoneinfo/US/Mountain #usr/share/zoneinfo/US/Pacific +#usr/share/zoneinfo/US/Pacific-New #usr/share/zoneinfo/US/Samoa #usr/share/zoneinfo/UTC #usr/share/zoneinfo/Universal #usr/share/zoneinfo/W-SU #usr/share/zoneinfo/WET #usr/share/zoneinfo/Zulu +#usr/share/zoneinfo/iso3166.tab #usr/share/zoneinfo/posix #usr/share/zoneinfo/posix/Africa #usr/share/zoneinfo/posix/Africa/Abidjan @@ -702,6 +705,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/America/Coral_Harbour #usr/share/zoneinfo/posix/America/Cordoba #usr/share/zoneinfo/posix/America/Costa_Rica +#usr/share/zoneinfo/posix/America/Creston #usr/share/zoneinfo/posix/America/Cuiaba #usr/share/zoneinfo/posix/America/Curacao #usr/share/zoneinfo/posix/America/Danmarkshavn @@ -1196,6 +1200,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/posix/US/Michigan #usr/share/zoneinfo/posix/US/Mountain #usr/share/zoneinfo/posix/US/Pacific +#usr/share/zoneinfo/posix/US/Pacific-New #usr/share/zoneinfo/posix/US/Samoa #usr/share/zoneinfo/posix/UTC #usr/share/zoneinfo/posix/Universal @@ -1305,6 +1310,7 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/America/Coral_Harbour #usr/share/zoneinfo/right/America/Cordoba #usr/share/zoneinfo/right/America/Costa_Rica +#usr/share/zoneinfo/right/America/Creston #usr/share/zoneinfo/right/America/Cuiaba #usr/share/zoneinfo/right/America/Curacao #usr/share/zoneinfo/right/America/Danmarkshavn @@ -1799,9 +1805,11 @@ usr/share/zoneinfo #usr/share/zoneinfo/right/US/Michigan #usr/share/zoneinfo/right/US/Mountain #usr/share/zoneinfo/right/US/Pacific +#usr/share/zoneinfo/right/US/Pacific-New #usr/share/zoneinfo/right/US/Samoa #usr/share/zoneinfo/right/UTC #usr/share/zoneinfo/right/Universal #usr/share/zoneinfo/right/W-SU #usr/share/zoneinfo/right/WET #usr/share/zoneinfo/right/Zulu +#usr/share/zoneinfo/zone.tab diff --git a/config/rootfiles/common/uClibc b/config/rootfiles/common/uClibc deleted file mode 100644 index 373caa98ee..0000000000 --- a/config/rootfiles/common/uClibc +++ /dev/null @@ -1,1353 +0,0 @@ -#lib/ld-uClibc-0.9.28.so -#lib/ld-uClibc.so.0 -#lib/libc.so -#lib/libc.so.0 -#lib/libm.so.0 -#lib/libuClibc-0.9.28.so -#opt/MACHINE-uClibc/include/a.out.h -#opt/MACHINE-uClibc/include/alloca.h -#opt/MACHINE-uClibc/include/ar.h -#opt/MACHINE-uClibc/include/arpa -#opt/MACHINE-uClibc/include/arpa/ftp.h -#opt/MACHINE-uClibc/include/arpa/inet.h -#opt/MACHINE-uClibc/include/arpa/nameser.h -#opt/MACHINE-uClibc/include/arpa/nameser_compat.h -#opt/MACHINE-uClibc/include/arpa/telnet.h -#opt/MACHINE-uClibc/include/arpa/tftp.h -#opt/MACHINE-uClibc/include/asm -#opt/MACHINE-uClibc/include/asm-generic -#opt/MACHINE-uClibc/include/asm-generic/errno-base.h -#opt/MACHINE-uClibc/include/asm-generic/errno.h -#opt/MACHINE-uClibc/include/asm/8253pit.h -#opt/MACHINE-uClibc/include/asm/a.out.h -#opt/MACHINE-uClibc/include/asm/agp.h -#opt/MACHINE-uClibc/include/asm/apic.h -#opt/MACHINE-uClibc/include/asm/apicdef.h -#opt/MACHINE-uClibc/include/asm/arch_hooks.h -#opt/MACHINE-uClibc/include/asm/atomic.h -#opt/MACHINE-uClibc/include/asm/bitops.h -#opt/MACHINE-uClibc/include/asm/boot.h -#opt/MACHINE-uClibc/include/asm/byteorder.h -#opt/MACHINE-uClibc/include/asm/cache.h -#opt/MACHINE-uClibc/include/asm/cacheflush.h -#opt/MACHINE-uClibc/include/asm/checksum.h -#opt/MACHINE-uClibc/include/asm/cpu.h -#opt/MACHINE-uClibc/include/asm/cpufeature.h -#opt/MACHINE-uClibc/include/asm/debugreg.h -#opt/MACHINE-uClibc/include/asm/desc.h -#opt/MACHINE-uClibc/include/asm/dma.h -#opt/MACHINE-uClibc/include/asm/e820.h -#opt/MACHINE-uClibc/include/asm/elf.h -#opt/MACHINE-uClibc/include/asm/errno.h -#opt/MACHINE-uClibc/include/asm/fcntl.h -#opt/MACHINE-uClibc/include/asm/fixmap.h -#opt/MACHINE-uClibc/include/asm/floppy.h -#opt/MACHINE-uClibc/include/asm/genapic.h -#opt/MACHINE-uClibc/include/asm/hardirq.h -#opt/MACHINE-uClibc/include/asm/hdreg.h -#opt/MACHINE-uClibc/include/asm/hw_irq.h -#opt/MACHINE-uClibc/include/asm/i8259.h -#opt/MACHINE-uClibc/include/asm/init.h -#opt/MACHINE-uClibc/include/asm/io.h -#opt/MACHINE-uClibc/include/asm/io_apic.h -#opt/MACHINE-uClibc/include/asm/ioctl.h -#opt/MACHINE-uClibc/include/asm/ioctls.h -#opt/MACHINE-uClibc/include/asm/ipc.h -#opt/MACHINE-uClibc/include/asm/ipcbuf.h -#opt/MACHINE-uClibc/include/asm/irq.h -#opt/MACHINE-uClibc/include/asm/kdebug.h -#opt/MACHINE-uClibc/include/asm/kprobes.h -#opt/MACHINE-uClibc/include/asm/kvm.h -#opt/MACHINE-uClibc/include/asm/kvm_emulate.h -#opt/MACHINE-uClibc/include/asm/kvm_host.h -#opt/MACHINE-uClibc/include/asm/kvm_para.h -#opt/MACHINE-uClibc/include/asm/ldt.h -#opt/MACHINE-uClibc/include/asm/linkage.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-default -#opt/MACHINE-uClibc/include/asm/mach-default/apm.h -#opt/MACHINE-uClibc/include/asm/mach-default/bios_ebda.h -#opt/MACHINE-uClibc/include/asm/mach-default/do_timer.h -#opt/MACHINE-uClibc/include/asm/mach-default/entry_arch.h -#opt/MACHINE-uClibc/include/asm/mach-default/io_ports.h -#opt/MACHINE-uClibc/include/asm/mach-default/irq_vectors.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_reboot.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_time.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_timer.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_traps.h -#opt/MACHINE-uClibc/include/asm/mach-default/mach_wakecpu.h -#opt/MACHINE-uClibc/include/asm/mach-default/pci-functions.h -#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_post.h -#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_pre.h -#opt/MACHINE-uClibc/include/asm/mach-default/smpboot_hooks.h -#opt/MACHINE-uClibc/include/asm/mach-es7000 -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_wakecpu.h -#opt/MACHINE-uClibc/include/asm/mach-generic -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-numaq -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_wakecpu.h -#opt/MACHINE-uClibc/include/asm/mach-summit -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_ipi.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpparse.h -#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpspec.h -#opt/MACHINE-uClibc/include/asm/mach-visws -#opt/MACHINE-uClibc/include/asm/mach-visws/cobalt.h -#opt/MACHINE-uClibc/include/asm/mach-visws/do_timer.h -#opt/MACHINE-uClibc/include/asm/mach-visws/entry_arch.h -#opt/MACHINE-uClibc/include/asm/mach-visws/irq_vectors.h -#opt/MACHINE-uClibc/include/asm/mach-visws/lithium.h -#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apic.h -#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apicdef.h -#opt/MACHINE-uClibc/include/asm/mach-visws/piix4.h -#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_post.h -#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_pre.h -#opt/MACHINE-uClibc/include/asm/mach-visws/smpboot_hooks.h -#opt/MACHINE-uClibc/include/asm/mach-voyager -#opt/MACHINE-uClibc/include/asm/mach-voyager/do_timer.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/entry_arch.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/irq_vectors.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_post.h -#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_pre.h -#opt/MACHINE-uClibc/include/asm/math_emu.h -#opt/MACHINE-uClibc/include/asm/mca.h -#opt/MACHINE-uClibc/include/asm/mca_dma.h -#opt/MACHINE-uClibc/include/asm/mman.h -#opt/MACHINE-uClibc/include/asm/mmu.h -#opt/MACHINE-uClibc/include/asm/mmu_context.h -#opt/MACHINE-uClibc/include/asm/mmx.h -#opt/MACHINE-uClibc/include/asm/module.h -#opt/MACHINE-uClibc/include/asm/mpspec.h -#opt/MACHINE-uClibc/include/asm/mpspec_def.h -#opt/MACHINE-uClibc/include/asm/msgbuf.h -#opt/MACHINE-uClibc/include/asm/msr.h -#opt/MACHINE-uClibc/include/asm/mtrr.h -#opt/MACHINE-uClibc/include/asm/namei.h -#opt/MACHINE-uClibc/include/asm/nmi.h -#opt/MACHINE-uClibc/include/asm/node.h -#opt/MACHINE-uClibc/include/asm/numaq.h -#opt/MACHINE-uClibc/include/asm/numnodes.h -#opt/MACHINE-uClibc/include/asm/page.h -#opt/MACHINE-uClibc/include/asm/param.h -#opt/MACHINE-uClibc/include/asm/parport.h -#opt/MACHINE-uClibc/include/asm/pgalloc.h -#opt/MACHINE-uClibc/include/asm/poll.h -#opt/MACHINE-uClibc/include/asm/posix_types.h -#opt/MACHINE-uClibc/include/asm/processor.h -#opt/MACHINE-uClibc/include/asm/ptrace.h -#opt/MACHINE-uClibc/include/asm/rwlock.h -#opt/MACHINE-uClibc/include/asm/segment.h -#opt/MACHINE-uClibc/include/asm/semaphore.h -#opt/MACHINE-uClibc/include/asm/sembuf.h -#opt/MACHINE-uClibc/include/asm/serial.h -#opt/MACHINE-uClibc/include/asm/shmbuf.h -#opt/MACHINE-uClibc/include/asm/shmparam.h -#opt/MACHINE-uClibc/include/asm/sigcontext.h -#opt/MACHINE-uClibc/include/asm/siginfo.h -#opt/MACHINE-uClibc/include/asm/socket.h -#opt/MACHINE-uClibc/include/asm/sockios.h -#opt/MACHINE-uClibc/include/asm/spinlock.h -#opt/MACHINE-uClibc/include/asm/srat.h -#opt/MACHINE-uClibc/include/asm/stat.h -#opt/MACHINE-uClibc/include/asm/suspend.h -#opt/MACHINE-uClibc/include/asm/svm.h -#opt/MACHINE-uClibc/include/asm/system.h -#opt/MACHINE-uClibc/include/asm/termbits.h -#opt/MACHINE-uClibc/include/asm/termios.h -#opt/MACHINE-uClibc/include/asm/timer.h -#opt/MACHINE-uClibc/include/asm/timex.h -#opt/MACHINE-uClibc/include/asm/tlbflush.h -#opt/MACHINE-uClibc/include/asm/types.h -#opt/MACHINE-uClibc/include/asm/ucontext.h -#opt/MACHINE-uClibc/include/asm/unaligned.h -#opt/MACHINE-uClibc/include/asm/unistd.h -#opt/MACHINE-uClibc/include/asm/user.h -#opt/MACHINE-uClibc/include/asm/vga.h -#opt/MACHINE-uClibc/include/asm/vic.h -#opt/MACHINE-uClibc/include/asm/virtext.h -#opt/MACHINE-uClibc/include/asm/vm86.h -#opt/MACHINE-uClibc/include/asm/vmx.h -#opt/MACHINE-uClibc/include/asm/voyager.h -#opt/MACHINE-uClibc/include/assert.h -#opt/MACHINE-uClibc/include/atomic.h -#opt/MACHINE-uClibc/include/bits -#opt/MACHINE-uClibc/include/bits/atomic.h -#opt/MACHINE-uClibc/include/bits/atomicity.h -#opt/MACHINE-uClibc/include/bits/byteswap.h -#opt/MACHINE-uClibc/include/bits/cmathcalls.h -#opt/MACHINE-uClibc/include/bits/confname.h -#opt/MACHINE-uClibc/include/bits/dirent.h -#opt/MACHINE-uClibc/include/bits/dlfcn.h -#opt/MACHINE-uClibc/include/bits/elfclass.h -#opt/MACHINE-uClibc/include/bits/endian.h -#opt/MACHINE-uClibc/include/bits/environments.h -#opt/MACHINE-uClibc/include/bits/errno.h -#opt/MACHINE-uClibc/include/bits/errno_values.h -#opt/MACHINE-uClibc/include/bits/fcntl.h -#opt/MACHINE-uClibc/include/bits/fenv.h -#opt/MACHINE-uClibc/include/bits/fenvinline.h -#opt/MACHINE-uClibc/include/bits/getopt.h -#opt/MACHINE-uClibc/include/bits/huge_val.h -#opt/MACHINE-uClibc/include/bits/in.h -#opt/MACHINE-uClibc/include/bits/initspin.h -#opt/MACHINE-uClibc/include/bits/ioctl-types.h -#opt/MACHINE-uClibc/include/bits/ioctls.h -#opt/MACHINE-uClibc/include/bits/ipc.h -#opt/MACHINE-uClibc/include/bits/kernel_sigaction.h -#opt/MACHINE-uClibc/include/bits/kernel_stat.h -#opt/MACHINE-uClibc/include/bits/kernel_types.h -#opt/MACHINE-uClibc/include/bits/local_lim.h -#opt/MACHINE-uClibc/include/bits/locale.h -#opt/MACHINE-uClibc/include/bits/mathcalls.h -#opt/MACHINE-uClibc/include/bits/mathdef.h -#opt/MACHINE-uClibc/include/bits/mathinline.h -#opt/MACHINE-uClibc/include/bits/mman.h -#opt/MACHINE-uClibc/include/bits/msq.h -#opt/MACHINE-uClibc/include/bits/nan.h -#opt/MACHINE-uClibc/include/bits/netdb.h -#opt/MACHINE-uClibc/include/bits/poll.h -#opt/MACHINE-uClibc/include/bits/posix1_lim.h -#opt/MACHINE-uClibc/include/bits/posix2_lim.h -#opt/MACHINE-uClibc/include/bits/posix_opt.h -#opt/MACHINE-uClibc/include/bits/profil-counter.h -#opt/MACHINE-uClibc/include/bits/pthreadtypes.h -#opt/MACHINE-uClibc/include/bits/resource.h -#opt/MACHINE-uClibc/include/bits/sched.h -#opt/MACHINE-uClibc/include/bits/select.h -#opt/MACHINE-uClibc/include/bits/sem.h -#opt/MACHINE-uClibc/include/bits/setjmp.h -#opt/MACHINE-uClibc/include/bits/shm.h -#opt/MACHINE-uClibc/include/bits/sigaction.h -#opt/MACHINE-uClibc/include/bits/sigcontext.h -#opt/MACHINE-uClibc/include/bits/sigcontextinfo.h -#opt/MACHINE-uClibc/include/bits/siginfo.h -#opt/MACHINE-uClibc/include/bits/signum.h -#opt/MACHINE-uClibc/include/bits/sigset.h -#opt/MACHINE-uClibc/include/bits/sigstack.h -#opt/MACHINE-uClibc/include/bits/sigthread.h -#opt/MACHINE-uClibc/include/bits/sockaddr.h -#opt/MACHINE-uClibc/include/bits/socket.h -#opt/MACHINE-uClibc/include/bits/stackinfo.h -#opt/MACHINE-uClibc/include/bits/stat.h -#opt/MACHINE-uClibc/include/bits/statfs.h -#opt/MACHINE-uClibc/include/bits/statvfs.h -#opt/MACHINE-uClibc/include/bits/stdio.h -#opt/MACHINE-uClibc/include/bits/stdio_lim.h -#opt/MACHINE-uClibc/include/bits/syscalls.h -#opt/MACHINE-uClibc/include/bits/sysnum.h -#opt/MACHINE-uClibc/include/bits/termios.h -#opt/MACHINE-uClibc/include/bits/time.h -#opt/MACHINE-uClibc/include/bits/types.h -#opt/MACHINE-uClibc/include/bits/uClibc_clk_tck.h -#opt/MACHINE-uClibc/include/bits/uClibc_config.h -#opt/MACHINE-uClibc/include/bits/uClibc_ctype.h -#opt/MACHINE-uClibc/include/bits/uClibc_fpmax.h -#opt/MACHINE-uClibc/include/bits/uClibc_locale.h -#opt/MACHINE-uClibc/include/bits/uClibc_locale_data.h -#opt/MACHINE-uClibc/include/bits/uClibc_page.h -#opt/MACHINE-uClibc/include/bits/uClibc_pthread.h -#opt/MACHINE-uClibc/include/bits/uClibc_stdio.h -#opt/MACHINE-uClibc/include/bits/uClibc_touplow.h -#opt/MACHINE-uClibc/include/bits/uClibc_uintmaxtostr.h -#opt/MACHINE-uClibc/include/bits/uClibc_uwchar.h -#opt/MACHINE-uClibc/include/bits/uClibc_va_copy.h -#opt/MACHINE-uClibc/include/bits/uio.h -#opt/MACHINE-uClibc/include/bits/ustat.h -#opt/MACHINE-uClibc/include/bits/utmp.h -#opt/MACHINE-uClibc/include/bits/utmpx.h -#opt/MACHINE-uClibc/include/bits/utsname.h -#opt/MACHINE-uClibc/include/bits/waitflags.h -#opt/MACHINE-uClibc/include/bits/waitstatus.h -#opt/MACHINE-uClibc/include/bits/wchar.h -#opt/MACHINE-uClibc/include/bits/wordsize.h -#opt/MACHINE-uClibc/include/bits/xopen_lim.h -#opt/MACHINE-uClibc/include/byteswap.h -#opt/MACHINE-uClibc/include/complex.h -#opt/MACHINE-uClibc/include/cpio.h -#opt/MACHINE-uClibc/include/crypt.h -#opt/MACHINE-uClibc/include/ctype.h -#opt/MACHINE-uClibc/include/dirent.h -#opt/MACHINE-uClibc/include/dlfcn.h -#opt/MACHINE-uClibc/include/elf.h -#opt/MACHINE-uClibc/include/endian.h -#opt/MACHINE-uClibc/include/err.h -#opt/MACHINE-uClibc/include/errno.h -#opt/MACHINE-uClibc/include/error.h -#opt/MACHINE-uClibc/include/fcntl.h -#opt/MACHINE-uClibc/include/features.h -#opt/MACHINE-uClibc/include/fnmatch.h -#opt/MACHINE-uClibc/include/fpu_control.h -#opt/MACHINE-uClibc/include/ftw.h -#opt/MACHINE-uClibc/include/getopt.h -#opt/MACHINE-uClibc/include/glob.h -#opt/MACHINE-uClibc/include/gnu-versions.h -#opt/MACHINE-uClibc/include/grp.h -#opt/MACHINE-uClibc/include/iconv.h -#opt/MACHINE-uClibc/include/ieee754.h -#opt/MACHINE-uClibc/include/inttypes.h -#opt/MACHINE-uClibc/include/langinfo.h -#opt/MACHINE-uClibc/include/lastlog.h -#opt/MACHINE-uClibc/include/libgen.h -#opt/MACHINE-uClibc/include/limits.h -#opt/MACHINE-uClibc/include/link.h -#opt/MACHINE-uClibc/include/linux -#opt/MACHINE-uClibc/include/linux/8250_pci.h -#opt/MACHINE-uClibc/include/linux/a.out.h -#opt/MACHINE-uClibc/include/linux/acct.h -#opt/MACHINE-uClibc/include/linux/acpi.h -#opt/MACHINE-uClibc/include/linux/adb.h -#opt/MACHINE-uClibc/include/linux/adfs_fs.h -#opt/MACHINE-uClibc/include/linux/adfs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/affs_fs.h -#opt/MACHINE-uClibc/include/linux/affs_hardblocks.h -#opt/MACHINE-uClibc/include/linux/agpgart.h -#opt/MACHINE-uClibc/include/linux/aio.h -#opt/MACHINE-uClibc/include/linux/aio_abi.h -#opt/MACHINE-uClibc/include/linux/amifd.h -#opt/MACHINE-uClibc/include/linux/amifdreg.h -#opt/MACHINE-uClibc/include/linux/amigaffs.h -#opt/MACHINE-uClibc/include/linux/apm_bios.h -#opt/MACHINE-uClibc/include/linux/ata.h -#opt/MACHINE-uClibc/include/linux/atalk.h -#opt/MACHINE-uClibc/include/linux/atm.h -#opt/MACHINE-uClibc/include/linux/atm_eni.h -#opt/MACHINE-uClibc/include/linux/atm_he.h -#opt/MACHINE-uClibc/include/linux/atm_idt77105.h -#opt/MACHINE-uClibc/include/linux/atm_nicstar.h -#opt/MACHINE-uClibc/include/linux/atm_suni.h -#opt/MACHINE-uClibc/include/linux/atm_tcp.h -#opt/MACHINE-uClibc/include/linux/atm_zatm.h -#opt/MACHINE-uClibc/include/linux/atmapi.h -#opt/MACHINE-uClibc/include/linux/atmarp.h -#opt/MACHINE-uClibc/include/linux/atmbr2684.h -#opt/MACHINE-uClibc/include/linux/atmclip.h -#opt/MACHINE-uClibc/include/linux/atmdev.h -#opt/MACHINE-uClibc/include/linux/atmioc.h -#opt/MACHINE-uClibc/include/linux/atmlec.h -#opt/MACHINE-uClibc/include/linux/atmmpc.h -#opt/MACHINE-uClibc/include/linux/atmppp.h -#opt/MACHINE-uClibc/include/linux/atmsap.h -#opt/MACHINE-uClibc/include/linux/atmsvc.h -#opt/MACHINE-uClibc/include/linux/audit.h -#opt/MACHINE-uClibc/include/linux/auto_fs.h -#opt/MACHINE-uClibc/include/linux/auto_fs4.h -#opt/MACHINE-uClibc/include/linux/autoconf.h -#opt/MACHINE-uClibc/include/linux/awe_voice.h -#opt/MACHINE-uClibc/include/linux/ax25.h -#opt/MACHINE-uClibc/include/linux/b1lli.h -#opt/MACHINE-uClibc/include/linux/backing-dev.h -#opt/MACHINE-uClibc/include/linux/backlight.h -#opt/MACHINE-uClibc/include/linux/baycom.h -#opt/MACHINE-uClibc/include/linux/bcd.h -#opt/MACHINE-uClibc/include/linux/bfs_fs.h -#opt/MACHINE-uClibc/include/linux/binfmts.h -#opt/MACHINE-uClibc/include/linux/bitmap.h -#opt/MACHINE-uClibc/include/linux/bitops.h -#opt/MACHINE-uClibc/include/linux/blkpg.h -#opt/MACHINE-uClibc/include/linux/blockgroup_lock.h -#opt/MACHINE-uClibc/include/linux/bootmem.h -#opt/MACHINE-uClibc/include/linux/bpqether.h -#opt/MACHINE-uClibc/include/linux/byteorder -#opt/MACHINE-uClibc/include/linux/byteorder/big_endian.h -#opt/MACHINE-uClibc/include/linux/byteorder/generic.h -#opt/MACHINE-uClibc/include/linux/byteorder/little_endian.h -#opt/MACHINE-uClibc/include/linux/byteorder/pdp_endian.h -#opt/MACHINE-uClibc/include/linux/byteorder/swab.h -#opt/MACHINE-uClibc/include/linux/byteorder/swabb.h -#opt/MACHINE-uClibc/include/linux/cache.h -#opt/MACHINE-uClibc/include/linux/capability.h -#opt/MACHINE-uClibc/include/linux/capi.h -#opt/MACHINE-uClibc/include/linux/cciss_ioctl.h -#opt/MACHINE-uClibc/include/linux/cd1400.h -#opt/MACHINE-uClibc/include/linux/cdk.h -#opt/MACHINE-uClibc/include/linux/cdrom.h -#opt/MACHINE-uClibc/include/linux/circ_buf.h -#opt/MACHINE-uClibc/include/linux/cobalt-nvram.h -#opt/MACHINE-uClibc/include/linux/coda.h -#opt/MACHINE-uClibc/include/linux/coda_proc.h -#opt/MACHINE-uClibc/include/linux/coda_psdev.h -#opt/MACHINE-uClibc/include/linux/coff.h -#opt/MACHINE-uClibc/include/linux/com20020.h -#opt/MACHINE-uClibc/include/linux/compat.h -#opt/MACHINE-uClibc/include/linux/compat_ioctl.h -#opt/MACHINE-uClibc/include/linux/compiler.h -#opt/MACHINE-uClibc/include/linux/comstats.h -#opt/MACHINE-uClibc/include/linux/config.h -#opt/MACHINE-uClibc/include/linux/console.h -#opt/MACHINE-uClibc/include/linux/console_struct.h -#opt/MACHINE-uClibc/include/linux/consolemap.h -#opt/MACHINE-uClibc/include/linux/cpu.h -#opt/MACHINE-uClibc/include/linux/cpufreq.h -#opt/MACHINE-uClibc/include/linux/cramfs_fs.h -#opt/MACHINE-uClibc/include/linux/cramfs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/crc32.h -#opt/MACHINE-uClibc/include/linux/crypto.h -#opt/MACHINE-uClibc/include/linux/cryptodev.h -#opt/MACHINE-uClibc/include/linux/ctype.h -#opt/MACHINE-uClibc/include/linux/cuda.h -#opt/MACHINE-uClibc/include/linux/cyclades.h -#opt/MACHINE-uClibc/include/linux/cycx_cfm.h -#opt/MACHINE-uClibc/include/linux/cycx_drv.h -#opt/MACHINE-uClibc/include/linux/cycx_x25.h -#opt/MACHINE-uClibc/include/linux/devfs_fs.h -#opt/MACHINE-uClibc/include/linux/devfs_fs_kernel.h -#opt/MACHINE-uClibc/include/linux/device-mapper.h -#opt/MACHINE-uClibc/include/linux/device.h -#opt/MACHINE-uClibc/include/linux/devpts_fs.h -#opt/MACHINE-uClibc/include/linux/dirent.h -#opt/MACHINE-uClibc/include/linux/divert.h -#opt/MACHINE-uClibc/include/linux/dm-ioctl.h -#opt/MACHINE-uClibc/include/linux/dn.h -#opt/MACHINE-uClibc/include/linux/dnotify.h -#opt/MACHINE-uClibc/include/linux/dqblk_v1.h -#opt/MACHINE-uClibc/include/linux/dqblk_v2.h -#opt/MACHINE-uClibc/include/linux/dqblk_xfs.h -#opt/MACHINE-uClibc/include/linux/dtlk.h -#opt/MACHINE-uClibc/include/linux/dvb -#opt/MACHINE-uClibc/include/linux/dvb/audio.h -#opt/MACHINE-uClibc/include/linux/dvb/ca.h -#opt/MACHINE-uClibc/include/linux/dvb/dmx.h -#opt/MACHINE-uClibc/include/linux/dvb/frontend.h -#opt/MACHINE-uClibc/include/linux/dvb/net.h -#opt/MACHINE-uClibc/include/linux/dvb/osd.h -#opt/MACHINE-uClibc/include/linux/dvb/version.h -#opt/MACHINE-uClibc/include/linux/dvb/video.h -#opt/MACHINE-uClibc/include/linux/eeprom.h -#opt/MACHINE-uClibc/include/linux/efi.h -#opt/MACHINE-uClibc/include/linux/efs_dir.h -#opt/MACHINE-uClibc/include/linux/efs_fs.h -#opt/MACHINE-uClibc/include/linux/efs_fs_i.h -#opt/MACHINE-uClibc/include/linux/efs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/efs_vh.h -#opt/MACHINE-uClibc/include/linux/eisa.h -#opt/MACHINE-uClibc/include/linux/elevator.h -#opt/MACHINE-uClibc/include/linux/elf-fdpic.h -#opt/MACHINE-uClibc/include/linux/elf.h -#opt/MACHINE-uClibc/include/linux/elfcore.h -#opt/MACHINE-uClibc/include/linux/err.h -#opt/MACHINE-uClibc/include/linux/err_kernel_only.h -#opt/MACHINE-uClibc/include/linux/errno.h -#opt/MACHINE-uClibc/include/linux/errqueue.h -#opt/MACHINE-uClibc/include/linux/ethtool.h -#opt/MACHINE-uClibc/include/linux/eventpoll.h -#opt/MACHINE-uClibc/include/linux/ext2_fs.h -#opt/MACHINE-uClibc/include/linux/ext3_fs.h -#opt/MACHINE-uClibc/include/linux/ext3_jbd.h -#opt/MACHINE-uClibc/include/linux/fadvise.h -#opt/MACHINE-uClibc/include/linux/fb.h -#opt/MACHINE-uClibc/include/linux/fcntl.h -#opt/MACHINE-uClibc/include/linux/fd.h -#opt/MACHINE-uClibc/include/linux/fd1772.h -#opt/MACHINE-uClibc/include/linux/fdreg.h -#opt/MACHINE-uClibc/include/linux/file.h -#opt/MACHINE-uClibc/include/linux/filter.h -#opt/MACHINE-uClibc/include/linux/firmware.h -#opt/MACHINE-uClibc/include/linux/flat.h -#opt/MACHINE-uClibc/include/linux/font.h -#opt/MACHINE-uClibc/include/linux/fs.h -#opt/MACHINE-uClibc/include/linux/fs_struct.h -#opt/MACHINE-uClibc/include/linux/ftape-header-segment.h -#opt/MACHINE-uClibc/include/linux/ftape-vendors.h -#opt/MACHINE-uClibc/include/linux/ftape.h -#opt/MACHINE-uClibc/include/linux/futex.h -#opt/MACHINE-uClibc/include/linux/gameport.h -#opt/MACHINE-uClibc/include/linux/gen_stats.h -#opt/MACHINE-uClibc/include/linux/generic_serial.h -#opt/MACHINE-uClibc/include/linux/genetlink.h -#opt/MACHINE-uClibc/include/linux/genhd.h -#opt/MACHINE-uClibc/include/linux/gfp.h -#opt/MACHINE-uClibc/include/linux/hash.h -#opt/MACHINE-uClibc/include/linux/hayesesp.h -#opt/MACHINE-uClibc/include/linux/hdlc -#opt/MACHINE-uClibc/include/linux/hdlc.h -#opt/MACHINE-uClibc/include/linux/hdlc/ioctl.h -#opt/MACHINE-uClibc/include/linux/hdlcdrv.h -#opt/MACHINE-uClibc/include/linux/hdreg.h -#opt/MACHINE-uClibc/include/linux/hdsmart.h -#opt/MACHINE-uClibc/include/linux/hiddev.h -#opt/MACHINE-uClibc/include/linux/highuid.h -#opt/MACHINE-uClibc/include/linux/hpfs_fs.h -#opt/MACHINE-uClibc/include/linux/hysdn_if.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-bit.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-ite.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-pcf.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-sgi.h -#opt/MACHINE-uClibc/include/linux/i2c-algo-sibyte.h -#opt/MACHINE-uClibc/include/linux/i2c-dev.h -#opt/MACHINE-uClibc/include/linux/i2c-id.h -#opt/MACHINE-uClibc/include/linux/i2c-sensor.h -#opt/MACHINE-uClibc/include/linux/i2c-vid.h -#opt/MACHINE-uClibc/include/linux/i2c.h -#opt/MACHINE-uClibc/include/linux/i2o-dev.h -#opt/MACHINE-uClibc/include/linux/i8k.h -#opt/MACHINE-uClibc/include/linux/ibmtr.h -#opt/MACHINE-uClibc/include/linux/icmp.h -#opt/MACHINE-uClibc/include/linux/icmpv6.h -#opt/MACHINE-uClibc/include/linux/ide.h -#opt/MACHINE-uClibc/include/linux/idr.h -#opt/MACHINE-uClibc/include/linux/if.h -#opt/MACHINE-uClibc/include/linux/if_arcnet.h -#opt/MACHINE-uClibc/include/linux/if_arp.h -#opt/MACHINE-uClibc/include/linux/if_bonding.h -#opt/MACHINE-uClibc/include/linux/if_bridge.h -#opt/MACHINE-uClibc/include/linux/if_cablemodem.h -#opt/MACHINE-uClibc/include/linux/if_ec.h -#opt/MACHINE-uClibc/include/linux/if_eql.h -#opt/MACHINE-uClibc/include/linux/if_ether.h -#opt/MACHINE-uClibc/include/linux/if_fc.h -#opt/MACHINE-uClibc/include/linux/if_fddi.h -#opt/MACHINE-uClibc/include/linux/if_frad.h -#opt/MACHINE-uClibc/include/linux/if_hippi.h -#opt/MACHINE-uClibc/include/linux/if_infiniband.h -#opt/MACHINE-uClibc/include/linux/if_ltalk.h -#opt/MACHINE-uClibc/include/linux/if_packet.h -#opt/MACHINE-uClibc/include/linux/if_plip.h -#opt/MACHINE-uClibc/include/linux/if_ppp.h -#opt/MACHINE-uClibc/include/linux/if_pppox.h -#opt/MACHINE-uClibc/include/linux/if_shaper.h -#opt/MACHINE-uClibc/include/linux/if_slip.h -#opt/MACHINE-uClibc/include/linux/if_strip.h -#opt/MACHINE-uClibc/include/linux/if_tr.h -#opt/MACHINE-uClibc/include/linux/if_tun.h -#opt/MACHINE-uClibc/include/linux/if_tunnel.h -#opt/MACHINE-uClibc/include/linux/if_vlan.h -#opt/MACHINE-uClibc/include/linux/if_wanpipe.h -#opt/MACHINE-uClibc/include/linux/if_wanpipe_common.h -#opt/MACHINE-uClibc/include/linux/igmp.h -#opt/MACHINE-uClibc/include/linux/in.h -#opt/MACHINE-uClibc/include/linux/in6.h -#opt/MACHINE-uClibc/include/linux/in_route.h -#opt/MACHINE-uClibc/include/linux/inetdevice.h -#opt/MACHINE-uClibc/include/linux/init.h -#opt/MACHINE-uClibc/include/linux/init_task.h -#opt/MACHINE-uClibc/include/linux/initrd.h -#opt/MACHINE-uClibc/include/linux/inotify.h -#opt/MACHINE-uClibc/include/linux/input.h -#opt/MACHINE-uClibc/include/linux/interrupt.h -#opt/MACHINE-uClibc/include/linux/ioctl.h -#opt/MACHINE-uClibc/include/linux/ioctl32.h -#opt/MACHINE-uClibc/include/linux/ioport.h -#opt/MACHINE-uClibc/include/linux/ip.h -#opt/MACHINE-uClibc/include/linux/ip6_tunnel.h -#opt/MACHINE-uClibc/include/linux/ip_mp_alg.h -#opt/MACHINE-uClibc/include/linux/ipc.h -#opt/MACHINE-uClibc/include/linux/ipmi.h -#opt/MACHINE-uClibc/include/linux/ipmi_msgdefs.h -#opt/MACHINE-uClibc/include/linux/ipmi_smi.h -#opt/MACHINE-uClibc/include/linux/ipsec.h -#opt/MACHINE-uClibc/include/linux/ipv6.h -#opt/MACHINE-uClibc/include/linux/ipv6_route.h -#opt/MACHINE-uClibc/include/linux/ipx.h -#opt/MACHINE-uClibc/include/linux/irda.h -#opt/MACHINE-uClibc/include/linux/irq.h -#opt/MACHINE-uClibc/include/linux/irq_cpustat.h -#opt/MACHINE-uClibc/include/linux/isapnp.h -#opt/MACHINE-uClibc/include/linux/isdn -#opt/MACHINE-uClibc/include/linux/isdn.h -#opt/MACHINE-uClibc/include/linux/isdn/capicmd.h -#opt/MACHINE-uClibc/include/linux/isdn/capilli.h -#opt/MACHINE-uClibc/include/linux/isdn/capiutil.h -#opt/MACHINE-uClibc/include/linux/isdn/tpam.h -#opt/MACHINE-uClibc/include/linux/isdn_divertif.h -#opt/MACHINE-uClibc/include/linux/isdn_ppp.h -#opt/MACHINE-uClibc/include/linux/isdnif.h -#opt/MACHINE-uClibc/include/linux/isicom.h -#opt/MACHINE-uClibc/include/linux/iso_fs.h -#opt/MACHINE-uClibc/include/linux/istallion.h -#opt/MACHINE-uClibc/include/linux/ite_gpio.h -#opt/MACHINE-uClibc/include/linux/ixjuser.h -#opt/MACHINE-uClibc/include/linux/jbd.h -#opt/MACHINE-uClibc/include/linux/jffs.h -#opt/MACHINE-uClibc/include/linux/jffs2.h -#opt/MACHINE-uClibc/include/linux/jffs2_fs_sb.h -#opt/MACHINE-uClibc/include/linux/jhash.h -#opt/MACHINE-uClibc/include/linux/jiffies.h -#opt/MACHINE-uClibc/include/linux/journal-head.h -#opt/MACHINE-uClibc/include/linux/joystick.h -#opt/MACHINE-uClibc/include/linux/kallsyms.h -#opt/MACHINE-uClibc/include/linux/kbd_diacr.h -#opt/MACHINE-uClibc/include/linux/kbd_kern.h -#opt/MACHINE-uClibc/include/linux/kd.h -#opt/MACHINE-uClibc/include/linux/kdev_t.h -#opt/MACHINE-uClibc/include/linux/kernel.h -#opt/MACHINE-uClibc/include/linux/kernel_stat.h -#opt/MACHINE-uClibc/include/linux/kernelcapi.h -#opt/MACHINE-uClibc/include/linux/keyboard.h -#opt/MACHINE-uClibc/include/linux/keyctl.h -#opt/MACHINE-uClibc/include/linux/kmalloc_sizes.h -#opt/MACHINE-uClibc/include/linux/kmod.h -#opt/MACHINE-uClibc/include/linux/kprobes.h -#opt/MACHINE-uClibc/include/linux/kvm.h -#opt/MACHINE-uClibc/include/linux/kvm_host.h -#opt/MACHINE-uClibc/include/linux/kvm_para.h -#opt/MACHINE-uClibc/include/linux/kvm_types.h -#opt/MACHINE-uClibc/include/linux/lapb.h -#opt/MACHINE-uClibc/include/linux/lcd.h -#opt/MACHINE-uClibc/include/linux/libata.h -#opt/MACHINE-uClibc/include/linux/libps2.h -#opt/MACHINE-uClibc/include/linux/limits.h -#opt/MACHINE-uClibc/include/linux/linkage.h -#opt/MACHINE-uClibc/include/linux/linux_logo.h -#opt/MACHINE-uClibc/include/linux/list.h -#opt/MACHINE-uClibc/include/linux/llc.h -#opt/MACHINE-uClibc/include/linux/lockd -#opt/MACHINE-uClibc/include/linux/lockd/bind.h -#opt/MACHINE-uClibc/include/linux/lockd/debug.h -#opt/MACHINE-uClibc/include/linux/lockd/nlm.h -#opt/MACHINE-uClibc/include/linux/lockd/share.h -#opt/MACHINE-uClibc/include/linux/lockd/sm_inter.h -#opt/MACHINE-uClibc/include/linux/lockd/xdr.h -#opt/MACHINE-uClibc/include/linux/lockd/xdr4.h -#opt/MACHINE-uClibc/include/linux/loop.h -#opt/MACHINE-uClibc/include/linux/lp.h -#opt/MACHINE-uClibc/include/linux/major.h -#opt/MACHINE-uClibc/include/linux/matroxfb.h -#opt/MACHINE-uClibc/include/linux/mbcache.h -#opt/MACHINE-uClibc/include/linux/mc6821.h -#opt/MACHINE-uClibc/include/linux/mca-legacy.h -#opt/MACHINE-uClibc/include/linux/mca.h -#opt/MACHINE-uClibc/include/linux/mempool.h -#opt/MACHINE-uClibc/include/linux/meye.h -#opt/MACHINE-uClibc/include/linux/mii.h -#opt/MACHINE-uClibc/include/linux/minix_fs.h -#opt/MACHINE-uClibc/include/linux/miscdevice.h -#opt/MACHINE-uClibc/include/linux/mm.h -#opt/MACHINE-uClibc/include/linux/mm_inline.h -#opt/MACHINE-uClibc/include/linux/mman.h -#opt/MACHINE-uClibc/include/linux/mod_devicetable.h -#opt/MACHINE-uClibc/include/linux/module.h -#opt/MACHINE-uClibc/include/linux/moduleloader.h -#opt/MACHINE-uClibc/include/linux/moduleparam.h -#opt/MACHINE-uClibc/include/linux/mount.h -#opt/MACHINE-uClibc/include/linux/mroute.h -#opt/MACHINE-uClibc/include/linux/msdos_fs.h -#opt/MACHINE-uClibc/include/linux/msg.h -#opt/MACHINE-uClibc/include/linux/mtd -#opt/MACHINE-uClibc/include/linux/mtd/blktrans.h -#opt/MACHINE-uClibc/include/linux/mtd/cfi.h -#opt/MACHINE-uClibc/include/linux/mtd/cfi_endian.h -#opt/MACHINE-uClibc/include/linux/mtd/compatmac.h -#opt/MACHINE-uClibc/include/linux/mtd/concat.h -#opt/MACHINE-uClibc/include/linux/mtd/doc2000.h -#opt/MACHINE-uClibc/include/linux/mtd/flashchip.h -#opt/MACHINE-uClibc/include/linux/mtd/ftl.h -#opt/MACHINE-uClibc/include/linux/mtd/gen_probe.h -#opt/MACHINE-uClibc/include/linux/mtd/iflash.h -#opt/MACHINE-uClibc/include/linux/mtd/jedec.h -#opt/MACHINE-uClibc/include/linux/mtd/map.h -#opt/MACHINE-uClibc/include/linux/mtd/nand.h -#opt/MACHINE-uClibc/include/linux/mtd/nand_ecc.h -#opt/MACHINE-uClibc/include/linux/mtd/nftl.h -#opt/MACHINE-uClibc/include/linux/mtd/partitions.h -#opt/MACHINE-uClibc/include/linux/mtd/pmc551.h -#opt/MACHINE-uClibc/include/linux/mtio.h -#opt/MACHINE-uClibc/include/linux/n_r3964.h -#opt/MACHINE-uClibc/include/linux/namei.h -#opt/MACHINE-uClibc/include/linux/nbd.h -#opt/MACHINE-uClibc/include/linux/ncp.h -#opt/MACHINE-uClibc/include/linux/ncp_fs.h -#opt/MACHINE-uClibc/include/linux/ncp_mount.h -#opt/MACHINE-uClibc/include/linux/ncp_no.h -#opt/MACHINE-uClibc/include/linux/net.h -#opt/MACHINE-uClibc/include/linux/netdevice.h -#opt/MACHINE-uClibc/include/linux/netfilter -#opt/MACHINE-uClibc/include/linux/netfilter.h -#opt/MACHINE-uClibc/include/linux/netfilter/Kbuild -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_amanda.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_common.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_dccp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_ftp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_asn1.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_types.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_irc.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_pptp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_proto_gre.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sane.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sip.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tcp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tftp.h -#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tuple_common.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_compat.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_log.h -#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_queue.h -#opt/MACHINE-uClibc/include/linux/netfilter/x_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_CLASSIFY.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNSECMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_DSCP.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_IMQ.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_LED.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_MARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFLOG.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFQUEUE.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_RATEEST.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_SECMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPMSS.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPOPTSTRIP.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_TPROXY.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_cluster.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_comment.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_connbytes.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_connlimit.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_connmark.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_dccp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_dscp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_esp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_hashlimit.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_iprange.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_layer7.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_length.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_mac.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_mark.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_multiport.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_osf.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_owner.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_physdev.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_pkttype.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_policy.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_quota.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_rateest.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_realm.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_recent.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_socket.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_state.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_statistic.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_string.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpmss.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpudp.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_time.h -#opt/MACHINE-uClibc/include/linux/netfilter/xt_u32.h -#opt/MACHINE-uClibc/include/linux/netfilter_arp -#opt/MACHINE-uClibc/include/linux/netfilter_arp.h -#opt/MACHINE-uClibc/include/linux/netfilter_arp/arp_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter_arp/arpt_mangle.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge -#opt/MACHINE-uClibc/include/linux/netfilter_bridge.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_802_3.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_among.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arp.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arpreply.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ip.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_log.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_m.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_t.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_nat.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_pkttype.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_redirect.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_stp.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ulog.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_vlan.h -#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebtables.h -#opt/MACHINE-uClibc/include/linux/netfilter_decnet.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4 -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_amanda.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_core.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_ftp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_icmp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_irc.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_protocol.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tcp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tftp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tuple.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_core.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_protocol.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_rule.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_queue.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLASSIFY.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CONNMARK.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_DSCP.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ECN.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_LOG.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_MARK.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_REJECT.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_SAME.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TCPMSS.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TOS.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ULOG.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_addrtype.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ah.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_comment.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_connmark.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_conntrack.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_dscp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ecn.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_esp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_hashlimit.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_helper.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_iprange.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_length.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mac.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mark.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_multiport.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_owner.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_physdev.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_pkttype.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_realm.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_recent.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_sctp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_state.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tcpmss.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tos.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ttl.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/listhelp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/lockhelp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6 -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6_tables.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_LOG.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_MARK.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ah.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_esp.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_frag.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_hl.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ipv6header.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_length.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_limit.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mac.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mark.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_multiport.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_opts.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_owner.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_physdev.h -#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_rt.h -#opt/MACHINE-uClibc/include/linux/netlink.h -#opt/MACHINE-uClibc/include/linux/netrom.h -#opt/MACHINE-uClibc/include/linux/nfs.h -#opt/MACHINE-uClibc/include/linux/nfs2.h -#opt/MACHINE-uClibc/include/linux/nfs3.h -#opt/MACHINE-uClibc/include/linux/nfs4.h -#opt/MACHINE-uClibc/include/linux/nfs4_mount.h -#opt/MACHINE-uClibc/include/linux/nfs_fs.h -#opt/MACHINE-uClibc/include/linux/nfs_fs_i.h -#opt/MACHINE-uClibc/include/linux/nfs_fs_sb.h -#opt/MACHINE-uClibc/include/linux/nfs_idmap.h -#opt/MACHINE-uClibc/include/linux/nfs_mount.h -#opt/MACHINE-uClibc/include/linux/nfs_xdr.h -#opt/MACHINE-uClibc/include/linux/nfsd -#opt/MACHINE-uClibc/include/linux/nfsd/const.h -#opt/MACHINE-uClibc/include/linux/nfsd/debug.h -#opt/MACHINE-uClibc/include/linux/nfsd/export.h -#opt/MACHINE-uClibc/include/linux/nfsd/interface.h -#opt/MACHINE-uClibc/include/linux/nfsd/nfsd.h -#opt/MACHINE-uClibc/include/linux/nfsd/nfsfh.h -#opt/MACHINE-uClibc/include/linux/nfsd/state.h -#opt/MACHINE-uClibc/include/linux/nfsd/stats.h -#opt/MACHINE-uClibc/include/linux/nfsd/syscall.h -#opt/MACHINE-uClibc/include/linux/nfsd/xdr.h -#opt/MACHINE-uClibc/include/linux/nfsd/xdr3.h -#opt/MACHINE-uClibc/include/linux/nfsd/xdr4.h -#opt/MACHINE-uClibc/include/linux/nls.h -#opt/MACHINE-uClibc/include/linux/nmi.h -#opt/MACHINE-uClibc/include/linux/node.h -#opt/MACHINE-uClibc/include/linux/notifier.h -#opt/MACHINE-uClibc/include/linux/nubus.h -#opt/MACHINE-uClibc/include/linux/numa.h -#opt/MACHINE-uClibc/include/linux/nvram.h -#opt/MACHINE-uClibc/include/linux/openprom_fs.h -#opt/MACHINE-uClibc/include/linux/oprofile.h -#opt/MACHINE-uClibc/include/linux/pagemap.h -#opt/MACHINE-uClibc/include/linux/pagevec.h -#opt/MACHINE-uClibc/include/linux/param.h -#opt/MACHINE-uClibc/include/linux/parport.h -#opt/MACHINE-uClibc/include/linux/parport_pc.h -#opt/MACHINE-uClibc/include/linux/parser.h -#opt/MACHINE-uClibc/include/linux/patchkey.h -#opt/MACHINE-uClibc/include/linux/pci-dynids.h -#opt/MACHINE-uClibc/include/linux/pci.h -#opt/MACHINE-uClibc/include/linux/pci_ids.h -#opt/MACHINE-uClibc/include/linux/pcieport_if.h -#opt/MACHINE-uClibc/include/linux/percpu.h -#opt/MACHINE-uClibc/include/linux/percpu_counter.h -#opt/MACHINE-uClibc/include/linux/personality.h -#opt/MACHINE-uClibc/include/linux/pfkeyv2.h -#opt/MACHINE-uClibc/include/linux/pg.h -#opt/MACHINE-uClibc/include/linux/pipe_fs_i.h -#opt/MACHINE-uClibc/include/linux/pkt_cls.h -#opt/MACHINE-uClibc/include/linux/pkt_sched.h -#opt/MACHINE-uClibc/include/linux/pktcdvd.h -#opt/MACHINE-uClibc/include/linux/pmu.h -#opt/MACHINE-uClibc/include/linux/poll.h -#opt/MACHINE-uClibc/include/linux/posix-timers.h -#opt/MACHINE-uClibc/include/linux/posix_acl.h -#opt/MACHINE-uClibc/include/linux/posix_acl_xattr.h -#opt/MACHINE-uClibc/include/linux/posix_types.h -#opt/MACHINE-uClibc/include/linux/ppdev.h -#opt/MACHINE-uClibc/include/linux/ppp-comp.h -#opt/MACHINE-uClibc/include/linux/ppp_channel.h -#opt/MACHINE-uClibc/include/linux/ppp_defs.h -#opt/MACHINE-uClibc/include/linux/prctl.h -#opt/MACHINE-uClibc/include/linux/preempt.h -#opt/MACHINE-uClibc/include/linux/prefetch.h -#opt/MACHINE-uClibc/include/linux/proc_fs.h -#opt/MACHINE-uClibc/include/linux/ps2esdi.h -#opt/MACHINE-uClibc/include/linux/ptrace.h -#opt/MACHINE-uClibc/include/linux/qic117.h -#opt/MACHINE-uClibc/include/linux/qnx4_fs.h -#opt/MACHINE-uClibc/include/linux/qnxtypes.h -#opt/MACHINE-uClibc/include/linux/quota.h -#opt/MACHINE-uClibc/include/linux/quotaio_v1.h -#opt/MACHINE-uClibc/include/linux/quotaio_v2.h -#opt/MACHINE-uClibc/include/linux/radeonfb.h -#opt/MACHINE-uClibc/include/linux/raid -#opt/MACHINE-uClibc/include/linux/raid/linear.h -#opt/MACHINE-uClibc/include/linux/raid/md.h -#opt/MACHINE-uClibc/include/linux/raid/md_p.h -#opt/MACHINE-uClibc/include/linux/raid/md_u.h -#opt/MACHINE-uClibc/include/linux/raid/multipath.h -#opt/MACHINE-uClibc/include/linux/raid/raid0.h -#opt/MACHINE-uClibc/include/linux/raid/raid1.h -#opt/MACHINE-uClibc/include/linux/raid/raid5.h -#opt/MACHINE-uClibc/include/linux/raid/xor.h -#opt/MACHINE-uClibc/include/linux/random.h -#opt/MACHINE-uClibc/include/linux/raw.h -#opt/MACHINE-uClibc/include/linux/rbtree.h -#opt/MACHINE-uClibc/include/linux/reboot.h -#opt/MACHINE-uClibc/include/linux/reiserfs_acl.h -#opt/MACHINE-uClibc/include/linux/reiserfs_fs.h -#opt/MACHINE-uClibc/include/linux/reiserfs_xattr.h -#opt/MACHINE-uClibc/include/linux/resource.h -#opt/MACHINE-uClibc/include/linux/romfs_fs.h -#opt/MACHINE-uClibc/include/linux/root_dev.h -#opt/MACHINE-uClibc/include/linux/rose.h -#opt/MACHINE-uClibc/include/linux/route.h -#opt/MACHINE-uClibc/include/linux/rtc.h -#opt/MACHINE-uClibc/include/linux/rtnetlink.h -#opt/MACHINE-uClibc/include/linux/sc26198.h -#opt/MACHINE-uClibc/include/linux/scc.h -#opt/MACHINE-uClibc/include/linux/sched.h -#opt/MACHINE-uClibc/include/linux/sctp.h -#opt/MACHINE-uClibc/include/linux/scx200.h -#opt/MACHINE-uClibc/include/linux/scx200_gpio.h -#opt/MACHINE-uClibc/include/linux/sdla.h -#opt/MACHINE-uClibc/include/linux/sdla_asy.h -#opt/MACHINE-uClibc/include/linux/sdla_chdlc.h -#opt/MACHINE-uClibc/include/linux/sdla_fr.h -#opt/MACHINE-uClibc/include/linux/sdla_ppp.h -#opt/MACHINE-uClibc/include/linux/sdla_x25.h -#opt/MACHINE-uClibc/include/linux/sdladrv.h -#opt/MACHINE-uClibc/include/linux/sdlapci.h -#opt/MACHINE-uClibc/include/linux/sdlasfm.h -#opt/MACHINE-uClibc/include/linux/securebits.h -#opt/MACHINE-uClibc/include/linux/security.h -#opt/MACHINE-uClibc/include/linux/selection.h -#opt/MACHINE-uClibc/include/linux/selinux_netlink.h -#opt/MACHINE-uClibc/include/linux/sem.h -#opt/MACHINE-uClibc/include/linux/seqlock.h -#opt/MACHINE-uClibc/include/linux/serial.h -#opt/MACHINE-uClibc/include/linux/serial167.h -#opt/MACHINE-uClibc/include/linux/serialP.h -#opt/MACHINE-uClibc/include/linux/serial_8250.h -#opt/MACHINE-uClibc/include/linux/serial_core.h -#opt/MACHINE-uClibc/include/linux/serial_reg.h -#opt/MACHINE-uClibc/include/linux/serio.h -#opt/MACHINE-uClibc/include/linux/shm.h -#opt/MACHINE-uClibc/include/linux/siginfo.h -#opt/MACHINE-uClibc/include/linux/signal.h -#opt/MACHINE-uClibc/include/linux/skbuff.h -#opt/MACHINE-uClibc/include/linux/smb.h -#opt/MACHINE-uClibc/include/linux/smb_fs.h -#opt/MACHINE-uClibc/include/linux/smb_mount.h -#opt/MACHINE-uClibc/include/linux/smbno.h -#opt/MACHINE-uClibc/include/linux/smp_lock.h -#opt/MACHINE-uClibc/include/linux/snmp.h -#opt/MACHINE-uClibc/include/linux/socket.h -#opt/MACHINE-uClibc/include/linux/sockios.h -#opt/MACHINE-uClibc/include/linux/som.h -#opt/MACHINE-uClibc/include/linux/sonet.h -#opt/MACHINE-uClibc/include/linux/sonypi.h -#opt/MACHINE-uClibc/include/linux/sound.h -#opt/MACHINE-uClibc/include/linux/soundcard.h -#opt/MACHINE-uClibc/include/linux/spinlock.h -#opt/MACHINE-uClibc/include/linux/stallion.h -#opt/MACHINE-uClibc/include/linux/stddef.h -#opt/MACHINE-uClibc/include/linux/stringify.h -#opt/MACHINE-uClibc/include/linux/sunrpc -#opt/MACHINE-uClibc/include/linux/sunrpc/cache.h -#opt/MACHINE-uClibc/include/linux/sunrpc/clnt.h -#opt/MACHINE-uClibc/include/linux/sunrpc/debug.h -#opt/MACHINE-uClibc/include/linux/sunrpc/gss_asn1.h -#opt/MACHINE-uClibc/include/linux/sunrpc/gss_krb5.h -#opt/MACHINE-uClibc/include/linux/sunrpc/gss_spkm3.h -#opt/MACHINE-uClibc/include/linux/sunrpc/sched.h -#opt/MACHINE-uClibc/include/linux/sunrpc/stats.h -#opt/MACHINE-uClibc/include/linux/sunrpc/svc.h -#opt/MACHINE-uClibc/include/linux/sunrpc/svcsock.h -#opt/MACHINE-uClibc/include/linux/sunrpc/timer.h -#opt/MACHINE-uClibc/include/linux/sunrpc/types.h -#opt/MACHINE-uClibc/include/linux/sunrpc/xprt.h -#opt/MACHINE-uClibc/include/linux/superhyway.h -#opt/MACHINE-uClibc/include/linux/suspend.h -#opt/MACHINE-uClibc/include/linux/swap.h -#opt/MACHINE-uClibc/include/linux/swapops.h -#opt/MACHINE-uClibc/include/linux/synclink.h -#opt/MACHINE-uClibc/include/linux/sys.h -#opt/MACHINE-uClibc/include/linux/syscalls.h -#opt/MACHINE-uClibc/include/linux/sysctl.h -#opt/MACHINE-uClibc/include/linux/sysdev.h -#opt/MACHINE-uClibc/include/linux/sysfs.h -#opt/MACHINE-uClibc/include/linux/sysrq.h -#opt/MACHINE-uClibc/include/linux/sysv_fs.h -#opt/MACHINE-uClibc/include/linux/tc_act -#opt/MACHINE-uClibc/include/linux/tc_act/tc_defact.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_gact.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_ipt.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_mirred.h -#opt/MACHINE-uClibc/include/linux/tc_act/tc_pedit.h -#opt/MACHINE-uClibc/include/linux/tc_ematch -#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_cmp.h -#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_meta.h -#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_nbyte.h -#opt/MACHINE-uClibc/include/linux/tcp.h -#opt/MACHINE-uClibc/include/linux/tcp_diag.h -#opt/MACHINE-uClibc/include/linux/telephony.h -#opt/MACHINE-uClibc/include/linux/termios.h -#opt/MACHINE-uClibc/include/linux/threads.h -#opt/MACHINE-uClibc/include/linux/ticable.h -#opt/MACHINE-uClibc/include/linux/time.h -#opt/MACHINE-uClibc/include/linux/times.h -#opt/MACHINE-uClibc/include/linux/timex.h -#opt/MACHINE-uClibc/include/linux/tiocl.h -#opt/MACHINE-uClibc/include/linux/toshiba.h -#opt/MACHINE-uClibc/include/linux/tty.h -#opt/MACHINE-uClibc/include/linux/types.h -#opt/MACHINE-uClibc/include/linux/udf_fs.h -#opt/MACHINE-uClibc/include/linux/udf_fs_i.h -#opt/MACHINE-uClibc/include/linux/udf_fs_sb.h -#opt/MACHINE-uClibc/include/linux/udp.h -#opt/MACHINE-uClibc/include/linux/ufs_fs.h -#opt/MACHINE-uClibc/include/linux/uinput.h -#opt/MACHINE-uClibc/include/linux/uio.h -#opt/MACHINE-uClibc/include/linux/ultrasound.h -#opt/MACHINE-uClibc/include/linux/umem.h -#opt/MACHINE-uClibc/include/linux/un.h -#opt/MACHINE-uClibc/include/linux/unistd.h -#opt/MACHINE-uClibc/include/linux/usb.h -#opt/MACHINE-uClibc/include/linux/usb_cdc.h -#opt/MACHINE-uClibc/include/linux/usb_ch9.h -#opt/MACHINE-uClibc/include/linux/usb_gadgetfs.h -#opt/MACHINE-uClibc/include/linux/usbdevice_fs.h -#opt/MACHINE-uClibc/include/linux/user.h -#opt/MACHINE-uClibc/include/linux/utime.h -#opt/MACHINE-uClibc/include/linux/uts.h -#opt/MACHINE-uClibc/include/linux/utsname.h -#opt/MACHINE-uClibc/include/linux/version.h -#opt/MACHINE-uClibc/include/linux/video_decoder.h -#opt/MACHINE-uClibc/include/linux/video_encoder.h -#opt/MACHINE-uClibc/include/linux/videodev.h -#opt/MACHINE-uClibc/include/linux/videodev2.h -#opt/MACHINE-uClibc/include/linux/videotext.h -#opt/MACHINE-uClibc/include/linux/vmalloc.h -#opt/MACHINE-uClibc/include/linux/vt.h -#opt/MACHINE-uClibc/include/linux/vt_buffer.h -#opt/MACHINE-uClibc/include/linux/vt_kern.h -#opt/MACHINE-uClibc/include/linux/wait.h -#opt/MACHINE-uClibc/include/linux/wanpipe.h -#opt/MACHINE-uClibc/include/linux/wanrouter.h -#opt/MACHINE-uClibc/include/linux/watchdog.h -#opt/MACHINE-uClibc/include/linux/wavefront.h -#opt/MACHINE-uClibc/include/linux/wireless.h -#opt/MACHINE-uClibc/include/linux/workqueue.h -#opt/MACHINE-uClibc/include/linux/x25.h -#opt/MACHINE-uClibc/include/linux/xattr.h -#opt/MACHINE-uClibc/include/linux/xattr_acl.h -#opt/MACHINE-uClibc/include/linux/xfrm.h -#opt/MACHINE-uClibc/include/linux/yam.h -#opt/MACHINE-uClibc/include/linux/zftape.h -#opt/MACHINE-uClibc/include/linux/zorro.h -#opt/MACHINE-uClibc/include/linux/zorro_ids.h -#opt/MACHINE-uClibc/include/locale.h -#opt/MACHINE-uClibc/include/malloc.h -#opt/MACHINE-uClibc/include/math.h -#opt/MACHINE-uClibc/include/memory.h -#opt/MACHINE-uClibc/include/mntent.h -#opt/MACHINE-uClibc/include/mqueue.h -#opt/MACHINE-uClibc/include/net -#opt/MACHINE-uClibc/include/net/ethernet.h -#opt/MACHINE-uClibc/include/net/if.h -#opt/MACHINE-uClibc/include/net/if_arp.h -#opt/MACHINE-uClibc/include/net/if_packet.h -#opt/MACHINE-uClibc/include/net/if_ppp.h -#opt/MACHINE-uClibc/include/net/if_shaper.h -#opt/MACHINE-uClibc/include/net/if_slip.h -#opt/MACHINE-uClibc/include/net/ppp-comp.h -#opt/MACHINE-uClibc/include/net/ppp_defs.h -#opt/MACHINE-uClibc/include/net/route.h -#opt/MACHINE-uClibc/include/netax25 -#opt/MACHINE-uClibc/include/netax25/ax25.h -#opt/MACHINE-uClibc/include/netdb.h -#opt/MACHINE-uClibc/include/neteconet -#opt/MACHINE-uClibc/include/neteconet/ec.h -#opt/MACHINE-uClibc/include/netinet -#opt/MACHINE-uClibc/include/netinet/ether.h -#opt/MACHINE-uClibc/include/netinet/icmp6.h -#opt/MACHINE-uClibc/include/netinet/if_ether.h -#opt/MACHINE-uClibc/include/netinet/if_fddi.h -#opt/MACHINE-uClibc/include/netinet/if_tr.h -#opt/MACHINE-uClibc/include/netinet/igmp.h -#opt/MACHINE-uClibc/include/netinet/in.h -#opt/MACHINE-uClibc/include/netinet/in_systm.h -#opt/MACHINE-uClibc/include/netinet/ip.h -#opt/MACHINE-uClibc/include/netinet/ip6.h -#opt/MACHINE-uClibc/include/netinet/ip_fw.h -#opt/MACHINE-uClibc/include/netinet/ip_icmp.h -#opt/MACHINE-uClibc/include/netinet/ip_tcp.h -#opt/MACHINE-uClibc/include/netinet/ip_udp.h -#opt/MACHINE-uClibc/include/netinet/protocols.h -#opt/MACHINE-uClibc/include/netinet/tcp.h -#opt/MACHINE-uClibc/include/netinet/udp.h -#opt/MACHINE-uClibc/include/netipx -#opt/MACHINE-uClibc/include/netipx/ipx.h -#opt/MACHINE-uClibc/include/netpacket -#opt/MACHINE-uClibc/include/netpacket/packet.h -#opt/MACHINE-uClibc/include/nl_types.h -#opt/MACHINE-uClibc/include/obstack.h -#opt/MACHINE-uClibc/include/paths.h -#opt/MACHINE-uClibc/include/poll.h -#opt/MACHINE-uClibc/include/printf.h -#opt/MACHINE-uClibc/include/protocols -#opt/MACHINE-uClibc/include/protocols/routed.h -#opt/MACHINE-uClibc/include/protocols/rwhod.h -#opt/MACHINE-uClibc/include/protocols/talkd.h -#opt/MACHINE-uClibc/include/protocols/timed.h -#opt/MACHINE-uClibc/include/pthread.h -#opt/MACHINE-uClibc/include/pty.h -#opt/MACHINE-uClibc/include/pwd.h -#opt/MACHINE-uClibc/include/regex.h -#opt/MACHINE-uClibc/include/regexp.h -#opt/MACHINE-uClibc/include/resolv.h -#opt/MACHINE-uClibc/include/rpc -#opt/MACHINE-uClibc/include/rpc/auth.h -#opt/MACHINE-uClibc/include/rpc/auth_des.h -#opt/MACHINE-uClibc/include/rpc/auth_unix.h -#opt/MACHINE-uClibc/include/rpc/clnt.h -#opt/MACHINE-uClibc/include/rpc/des_crypt.h -#opt/MACHINE-uClibc/include/rpc/key_prot.h -#opt/MACHINE-uClibc/include/rpc/netdb.h -#opt/MACHINE-uClibc/include/rpc/pmap_clnt.h -#opt/MACHINE-uClibc/include/rpc/pmap_prot.h -#opt/MACHINE-uClibc/include/rpc/pmap_rmt.h -#opt/MACHINE-uClibc/include/rpc/rpc.h -#opt/MACHINE-uClibc/include/rpc/rpc_des.h -#opt/MACHINE-uClibc/include/rpc/rpc_msg.h -#opt/MACHINE-uClibc/include/rpc/svc.h -#opt/MACHINE-uClibc/include/rpc/svc_auth.h -#opt/MACHINE-uClibc/include/rpc/types.h -#opt/MACHINE-uClibc/include/rpc/xdr.h -#opt/MACHINE-uClibc/include/sched.h -#opt/MACHINE-uClibc/include/scsi -#opt/MACHINE-uClibc/include/scsi/scsi.h -#opt/MACHINE-uClibc/include/scsi/scsi_ioctl.h -#opt/MACHINE-uClibc/include/scsi/sg.h -#opt/MACHINE-uClibc/include/search.h -#opt/MACHINE-uClibc/include/semaphore.h -#opt/MACHINE-uClibc/include/setjmp.h -#opt/MACHINE-uClibc/include/sgtty.h -#opt/MACHINE-uClibc/include/shadow.h -#opt/MACHINE-uClibc/include/signal.h -#opt/MACHINE-uClibc/include/stdint.h -#opt/MACHINE-uClibc/include/stdio.h -#opt/MACHINE-uClibc/include/stdio_ext.h -#opt/MACHINE-uClibc/include/stdlib.h -#opt/MACHINE-uClibc/include/string.h -#opt/MACHINE-uClibc/include/strings.h -#opt/MACHINE-uClibc/include/sys -#opt/MACHINE-uClibc/include/sys/bitypes.h -#opt/MACHINE-uClibc/include/sys/cdefs.h -#opt/MACHINE-uClibc/include/sys/debugreg.h -#opt/MACHINE-uClibc/include/sys/dir.h -#opt/MACHINE-uClibc/include/sys/elf.h -#opt/MACHINE-uClibc/include/sys/epoll.h -#opt/MACHINE-uClibc/include/sys/errno.h -#opt/MACHINE-uClibc/include/sys/fcntl.h -#opt/MACHINE-uClibc/include/sys/file.h -#opt/MACHINE-uClibc/include/sys/fsuid.h -#opt/MACHINE-uClibc/include/sys/io.h -#opt/MACHINE-uClibc/include/sys/ioctl.h -#opt/MACHINE-uClibc/include/sys/ipc.h -#opt/MACHINE-uClibc/include/sys/kd.h -#opt/MACHINE-uClibc/include/sys/kdaemon.h -#opt/MACHINE-uClibc/include/sys/klog.h -#opt/MACHINE-uClibc/include/sys/mman.h -#opt/MACHINE-uClibc/include/sys/mount.h -#opt/MACHINE-uClibc/include/sys/msg.h -#opt/MACHINE-uClibc/include/sys/mtio.h -#opt/MACHINE-uClibc/include/sys/param.h -#opt/MACHINE-uClibc/include/sys/perm.h -#opt/MACHINE-uClibc/include/sys/personality.h -#opt/MACHINE-uClibc/include/sys/poll.h -#opt/MACHINE-uClibc/include/sys/prctl.h -#opt/MACHINE-uClibc/include/sys/procfs.h -#opt/MACHINE-uClibc/include/sys/ptrace.h -#opt/MACHINE-uClibc/include/sys/queue.h -#opt/MACHINE-uClibc/include/sys/quota.h -#opt/MACHINE-uClibc/include/sys/reboot.h -#opt/MACHINE-uClibc/include/sys/reg.h -#opt/MACHINE-uClibc/include/sys/resource.h -#opt/MACHINE-uClibc/include/sys/select.h -#opt/MACHINE-uClibc/include/sys/sem.h -#opt/MACHINE-uClibc/include/sys/sendfile.h -#opt/MACHINE-uClibc/include/sys/shm.h -#opt/MACHINE-uClibc/include/sys/signal.h -#opt/MACHINE-uClibc/include/sys/socket.h -#opt/MACHINE-uClibc/include/sys/socketvar.h -#opt/MACHINE-uClibc/include/sys/soundcard.h -#opt/MACHINE-uClibc/include/sys/stat.h -#opt/MACHINE-uClibc/include/sys/statfs.h -#opt/MACHINE-uClibc/include/sys/statvfs.h -#opt/MACHINE-uClibc/include/sys/swap.h -#opt/MACHINE-uClibc/include/sys/syscall.h -#opt/MACHINE-uClibc/include/sys/sysctl.h -#opt/MACHINE-uClibc/include/sys/sysinfo.h -#opt/MACHINE-uClibc/include/sys/syslog.h -#opt/MACHINE-uClibc/include/sys/sysmacros.h -#opt/MACHINE-uClibc/include/sys/termios.h -#opt/MACHINE-uClibc/include/sys/time.h -#opt/MACHINE-uClibc/include/sys/timeb.h -#opt/MACHINE-uClibc/include/sys/times.h -#opt/MACHINE-uClibc/include/sys/timex.h -#opt/MACHINE-uClibc/include/sys/ttydefaults.h -#opt/MACHINE-uClibc/include/sys/types.h -#opt/MACHINE-uClibc/include/sys/ucontext.h -#opt/MACHINE-uClibc/include/sys/uio.h -#opt/MACHINE-uClibc/include/sys/un.h -#opt/MACHINE-uClibc/include/sys/unistd.h -#opt/MACHINE-uClibc/include/sys/user.h -#opt/MACHINE-uClibc/include/sys/ustat.h -#opt/MACHINE-uClibc/include/sys/utsname.h -#opt/MACHINE-uClibc/include/sys/vfs.h -#opt/MACHINE-uClibc/include/sys/vm86.h -#opt/MACHINE-uClibc/include/sys/vt.h -#opt/MACHINE-uClibc/include/sys/wait.h -#opt/MACHINE-uClibc/include/sys/xattr.h -#opt/MACHINE-uClibc/include/syscall.h -#opt/MACHINE-uClibc/include/sysexits.h -#opt/MACHINE-uClibc/include/syslog.h -#opt/MACHINE-uClibc/include/tar.h -#opt/MACHINE-uClibc/include/termio.h -#opt/MACHINE-uClibc/include/termios.h -#opt/MACHINE-uClibc/include/tgmath.h -#opt/MACHINE-uClibc/include/thread_db.h -#opt/MACHINE-uClibc/include/time.h -#opt/MACHINE-uClibc/include/ttyent.h -#opt/MACHINE-uClibc/include/ucontext.h -#opt/MACHINE-uClibc/include/ulimit.h -#opt/MACHINE-uClibc/include/unistd.h -#opt/MACHINE-uClibc/include/ustat.h -#opt/MACHINE-uClibc/include/utime.h -#opt/MACHINE-uClibc/include/utmp.h -#opt/MACHINE-uClibc/include/values.h -#opt/MACHINE-uClibc/include/wait.h -#opt/MACHINE-uClibc/include/wchar.h -#opt/MACHINE-uClibc/include/wctype.h -#opt/MACHINE-uClibc/include/xlocale.h -#opt/MACHINE-uClibc/lib/Scrt1.o -#opt/MACHINE-uClibc/lib/crt1.o -#opt/MACHINE-uClibc/lib/crti.o -#opt/MACHINE-uClibc/lib/crtn.o -#opt/MACHINE-uClibc/lib/ld-uClibc-0.9.28.so -#opt/MACHINE-uClibc/lib/ld-uClibc.so.0 -#opt/MACHINE-uClibc/lib/ldscripts -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.x -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xbn -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xc -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xd -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdc -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdw -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xn -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xr -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xs -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsc -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsw -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xu -#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xw -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.x -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xbn -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xn -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xr -#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xu -#opt/MACHINE-uClibc/lib/libc.a -#opt/MACHINE-uClibc/lib/libc.so -#opt/MACHINE-uClibc/lib/libc.so.0 -#opt/MACHINE-uClibc/lib/libc_pic.a -#opt/MACHINE-uClibc/lib/libcrypt-0.9.28.so -#opt/MACHINE-uClibc/lib/libcrypt.a -#opt/MACHINE-uClibc/lib/libcrypt.so -#opt/MACHINE-uClibc/lib/libcrypt.so.0 -#opt/MACHINE-uClibc/lib/libcrypt_pic.a -#opt/MACHINE-uClibc/lib/libdl-0.9.28.so -#opt/MACHINE-uClibc/lib/libdl.a -#opt/MACHINE-uClibc/lib/libdl.so -#opt/MACHINE-uClibc/lib/libdl.so.0 -#opt/MACHINE-uClibc/lib/libm-0.9.28.so -#opt/MACHINE-uClibc/lib/libm.a -#opt/MACHINE-uClibc/lib/libm.so -#opt/MACHINE-uClibc/lib/libm.so.0 -#opt/MACHINE-uClibc/lib/libm_pic.a -#opt/MACHINE-uClibc/lib/libnsl-0.9.28.so -#opt/MACHINE-uClibc/lib/libnsl.a -#opt/MACHINE-uClibc/lib/libnsl.so -#opt/MACHINE-uClibc/lib/libnsl.so.0 -#opt/MACHINE-uClibc/lib/libnsl_pic.a -#opt/MACHINE-uClibc/lib/libpthread-0.9.28.so -#opt/MACHINE-uClibc/lib/libpthread.a -#opt/MACHINE-uClibc/lib/libpthread.so -#opt/MACHINE-uClibc/lib/libpthread.so.0 -#opt/MACHINE-uClibc/lib/libpthread_pic.a -#opt/MACHINE-uClibc/lib/libresolv-0.9.28.so -#opt/MACHINE-uClibc/lib/libresolv.a -#opt/MACHINE-uClibc/lib/libresolv.so -#opt/MACHINE-uClibc/lib/libresolv.so.0 -#opt/MACHINE-uClibc/lib/libresolv_pic.a -#opt/MACHINE-uClibc/lib/librt-0.9.28.so -#opt/MACHINE-uClibc/lib/librt.a -#opt/MACHINE-uClibc/lib/librt.so -#opt/MACHINE-uClibc/lib/librt.so.0 -#opt/MACHINE-uClibc/lib/librt_pic.a -#opt/MACHINE-uClibc/lib/libuClibc-0.9.28.so -#opt/MACHINE-uClibc/lib/libutil-0.9.28.so -#opt/MACHINE-uClibc/lib/libutil.a -#opt/MACHINE-uClibc/lib/libutil.so -#opt/MACHINE-uClibc/lib/libutil.so.0 -#opt/MACHINE-uClibc/lib/libutil_pic.a diff --git a/config/rootfiles/common/udev b/config/rootfiles/common/udev index 5e5cb5a0d8..bacd0cbbe3 100644 --- a/config/rootfiles/common/udev +++ b/config/rootfiles/common/udev @@ -1,25 +1,18 @@ etc/modprobe.d/blacklist etc/scsi_id.config etc/udev -#etc/udev/dvb.sh #etc/udev/rules.d -#etc/udev/rules.d/05-udev-early.rules -#etc/udev/rules.d/10-dvb.rules -#etc/udev/rules.d/25-lfs.rules -#etc/udev/rules.d/26-modprobe.rules -#etc/udev/rules.d/27-firmware.rules #etc/udev/rules.d/30-persistent-network.rules -#etc/udev/rules.d/55-scsi-cdrom.rules -#etc/udev/rules.d/60-persistent-storage.rules -#etc/udev/rules.d/81-cdrom.rules #etc/udev/udev.conf #lib/firmware -lib/firmware/dirinfo -lib/libvolume_id.so.0 -lib/libvolume_id.so.0.85.0 +lib/libudev.so.0 +lib/libudev.so.0.2.0 +lib/libvolume_id.so.1 +lib/libvolume_id.so.1.1.0 lib/udev #lib/udev/ata_id #lib/udev/cdrom_id +#lib/udev/collect #lib/udev/create_floppy_devices #lib/udev/devices #lib/udev/devices/core @@ -31,27 +24,39 @@ lib/udev #lib/udev/devices/stdin #lib/udev/devices/stdout #lib/udev/edd_id +#lib/udev/enable_codel #lib/udev/firmware.sh +#lib/udev/fstab_import #lib/udev/path_id +#lib/udev/rule_generator.functions #lib/udev/rules.d +#lib/udev/rules.d/25-alsa.rules +#lib/udev/rules.d/50-firmware.rules #lib/udev/rules.d/50-udev-default.rules #lib/udev/rules.d/60-cdrom_id.rules #lib/udev/rules.d/60-persistent-input.rules +#lib/udev/rules.d/60-persistent-serial.rules #lib/udev/rules.d/60-persistent-storage-tape.rules #lib/udev/rules.d/60-persistent-storage.rules #lib/udev/rules.d/60-persistent-v4l.rules #lib/udev/rules.d/61-persistent-storage-edd.rules +#lib/udev/rules.d/75-cd-aliases-generator.rules +#lib/udev/rules.d/79-fstab_import.rules #lib/udev/rules.d/80-drivers.rules #lib/udev/rules.d/95-udev-late.rules +#lib/udev/rules.d/99-codel.rules #lib/udev/scsi_id #lib/udev/usb_id #lib/udev/vol_id +#lib/udev/write_cd_rules +#lib/udev/write_net_rules sbin/udevadm sbin/udevd -sbin/udevsettle -usr/bin/udevinfo +#usr/include/libudev.h #usr/include/libvolume_id.h +usr/lib/libudev.so usr/lib/libvolume_id.so +#usr/lib/pkgconfig/libudev.pc #usr/lib/pkgconfig/libvolume_id.pc #usr/share/man/man7/udev.7 #usr/share/man/man8/ata_id.8 @@ -62,4 +67,5 @@ usr/lib/libvolume_id.so #usr/share/man/man8/scsi_id.8 #usr/share/man/man8/udevadm.8 #usr/share/man/man8/udevd.8 +#usr/share/man/man8/usb_id.8 #usr/share/man/man8/vol_id.8 diff --git a/config/rootfiles/common/usbutils b/config/rootfiles/common/usbutils index d5b0f475c8..3858b3964f 100644 --- a/config/rootfiles/common/usbutils +++ b/config/rootfiles/common/usbutils @@ -1,4 +1,5 @@ #usr/man/man8/lsusb.8 usr/sbin/lsusb usr/sbin/update-usbids +#usr/share/hwdata #usr/share/hwdata/usb.ids diff --git a/config/rootfiles/common/xz b/config/rootfiles/common/xz index ef419c5901..a8fa20bebd 100644 --- a/config/rootfiles/common/xz +++ b/config/rootfiles/common/xz @@ -30,18 +30,18 @@ usr/bin/xzmore #usr/include/lzma/container.h #usr/include/lzma/delta.h #usr/include/lzma/filter.h +#usr/include/lzma/hardware.h #usr/include/lzma/index.h #usr/include/lzma/index_hash.h #usr/include/lzma/lzma.h #usr/include/lzma/stream_flags.h -#usr/include/lzma/subblock.h #usr/include/lzma/version.h #usr/include/lzma/vli.h #usr/lib/liblzma.a #usr/lib/liblzma.la usr/lib/liblzma.so -usr/lib/liblzma.so.0 -usr/lib/liblzma.so.0.0.0 +usr/lib/liblzma.so.5 +usr/lib/liblzma.so.5.0.4 #usr/lib/pkgconfig/liblzma.pc #usr/share/doc/xz #usr/share/doc/xz/AUTHORS @@ -51,10 +51,24 @@ usr/lib/liblzma.so.0.0.0 #usr/share/doc/xz/README #usr/share/doc/xz/THANKS #usr/share/doc/xz/TODO +#usr/share/doc/xz/examples +#usr/share/doc/xz/examples/00_README.txt +#usr/share/doc/xz/examples/01_compress_easy.c +#usr/share/doc/xz/examples/02_decompress.c +#usr/share/doc/xz/examples/03_compress_custom.c +#usr/share/doc/xz/examples/Makefile +#usr/share/doc/xz/examples_old +#usr/share/doc/xz/examples_old/xz_pipe_comp.c +#usr/share/doc/xz/examples_old/xz_pipe_decomp.c #usr/share/doc/xz/faq.txt #usr/share/doc/xz/history.txt #usr/share/doc/xz/lzma-file-format.txt #usr/share/doc/xz/xz-file-format.txt +#usr/share/locale/cs/LC_MESSAGES/xz.mo +#usr/share/locale/de/LC_MESSAGES/xz.mo +#usr/share/locale/fr/LC_MESSAGES/xz.mo +#usr/share/locale/it/LC_MESSAGES/xz.mo +#usr/share/locale/pl/LC_MESSAGES/xz.mo #usr/share/man/man1/lzcat.1 #usr/share/man/man1/lzcmp.1 #usr/share/man/man1/lzdiff.1 diff --git a/config/rootfiles/common/zlib b/config/rootfiles/common/zlib index b275de54b9..13cf704415 100644 --- a/config/rootfiles/common/zlib +++ b/config/rootfiles/common/zlib @@ -1,7 +1,10 @@ +lib/libz.so lib/libz.so.1 -lib/libz.so.1.2.3 +lib/libz.so.1.2.7 #usr/include/zconf.h #usr/include/zlib.h #usr/lib/libz.a -usr/lib/libz.so +#usr/lib/libz.so +#usr/lib/pkgconfig +#usr/lib/pkgconfig/zlib.pc #usr/share/man/man3/zlib.3 diff --git a/config/rootfiles/core/66/exclude b/config/rootfiles/core/66/exclude new file mode 100644 index 0000000000..18141fd3ee --- /dev/null +++ b/config/rootfiles/core/66/exclude @@ -0,0 +1,16 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/collectd.custom +etc/shadow +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/log/cache +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/core/61/filelists/GeoIP b/config/rootfiles/core/66/filelists/GeoIP similarity index 100% rename from config/rootfiles/core/61/filelists/GeoIP rename to config/rootfiles/core/66/filelists/GeoIP diff --git a/config/rootfiles/core/66/filelists/armv5tel/binutils b/config/rootfiles/core/66/filelists/armv5tel/binutils new file mode 120000 index 0000000000..ac971f931b --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/binutils @@ -0,0 +1 @@ +../../../../common/armv5tel/binutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/dracut b/config/rootfiles/core/66/filelists/armv5tel/dracut new file mode 120000 index 0000000000..861df3f36a --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/dracut @@ -0,0 +1 @@ +../../../../common/armv5tel/dracut \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/gcc b/config/rootfiles/core/66/filelists/armv5tel/gcc new file mode 120000 index 0000000000..84f7b9344e --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/gcc @@ -0,0 +1 @@ +../../../../common/armv5tel/gcc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/glibc b/config/rootfiles/core/66/filelists/armv5tel/glibc new file mode 120000 index 0000000000..4c70d724b4 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/glibc @@ -0,0 +1 @@ +../../../../common/armv5tel/glibc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood b/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood new file mode 120000 index 0000000000..72171071e6 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/linux-kirkwood @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-kirkwood \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-omap b/config/rootfiles/core/66/filelists/armv5tel/linux-omap new file mode 120000 index 0000000000..50bf786513 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/linux-omap @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-omap \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/linux-rpi b/config/rootfiles/core/66/filelists/armv5tel/linux-rpi new file mode 120000 index 0000000000..a651a498fe --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/linux-rpi @@ -0,0 +1 @@ +../../../../common/armv5tel/linux-rpi \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware b/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware new file mode 120000 index 0000000000..428fdf88fe --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/rpi-firmware @@ -0,0 +1 @@ +../../../../common/armv5tel/rpi-firmware \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/u-boot b/config/rootfiles/core/66/filelists/armv5tel/u-boot new file mode 120000 index 0000000000..3df31a883d --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/u-boot @@ -0,0 +1 @@ +../../../../common/armv5tel/u-boot \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/armv5tel/util-linux b/config/rootfiles/core/66/filelists/armv5tel/util-linux new file mode 120000 index 0000000000..2596908cc1 --- /dev/null +++ b/config/rootfiles/core/66/filelists/armv5tel/util-linux @@ -0,0 +1 @@ +../../../../common/armv5tel/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/autoconf b/config/rootfiles/core/66/filelists/autoconf new file mode 120000 index 0000000000..aa39ce671c --- /dev/null +++ b/config/rootfiles/core/66/filelists/autoconf @@ -0,0 +1 @@ +../../../common/autoconf \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/automake b/config/rootfiles/core/66/filelists/automake new file mode 120000 index 0000000000..df3ee421c9 --- /dev/null +++ b/config/rootfiles/core/66/filelists/automake @@ -0,0 +1 @@ +../../../common/automake \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/bash b/config/rootfiles/core/66/filelists/bash new file mode 120000 index 0000000000..de970cb1d1 --- /dev/null +++ b/config/rootfiles/core/66/filelists/bash @@ -0,0 +1 @@ +../../../common/bash \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/bind b/config/rootfiles/core/66/filelists/bind new file mode 120000 index 0000000000..48a0ebaefd --- /dev/null +++ b/config/rootfiles/core/66/filelists/bind @@ -0,0 +1 @@ +../../../common/bind \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/bridge-utils b/config/rootfiles/core/66/filelists/bridge-utils new file mode 120000 index 0000000000..3dee211b6b --- /dev/null +++ b/config/rootfiles/core/66/filelists/bridge-utils @@ -0,0 +1 @@ +../../../common/bridge-utils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/cairo b/config/rootfiles/core/66/filelists/cairo new file mode 120000 index 0000000000..bf48d25a41 --- /dev/null +++ b/config/rootfiles/core/66/filelists/cairo @@ -0,0 +1 @@ +../../../common/cairo \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/capi4k-utils b/config/rootfiles/core/66/filelists/capi4k-utils new file mode 120000 index 0000000000..82982c4b9f --- /dev/null +++ b/config/rootfiles/core/66/filelists/capi4k-utils @@ -0,0 +1 @@ +../../../common/capi4k-utils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/cmake b/config/rootfiles/core/66/filelists/cmake new file mode 120000 index 0000000000..491d25f727 --- /dev/null +++ b/config/rootfiles/core/66/filelists/cmake @@ -0,0 +1 @@ +../../../common/cmake \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/collectd b/config/rootfiles/core/66/filelists/collectd new file mode 120000 index 0000000000..871b32f14b --- /dev/null +++ b/config/rootfiles/core/66/filelists/collectd @@ -0,0 +1 @@ +../../../common/collectd \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/compat-wireless b/config/rootfiles/core/66/filelists/compat-wireless new file mode 120000 index 0000000000..5b5ac9ee4e --- /dev/null +++ b/config/rootfiles/core/66/filelists/compat-wireless @@ -0,0 +1 @@ +../../../common/compat-wireless \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/conntrack-tools b/config/rootfiles/core/66/filelists/conntrack-tools new file mode 120000 index 0000000000..88fbe061e8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/conntrack-tools @@ -0,0 +1 @@ +../../../common/conntrack-tools \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/coreutils b/config/rootfiles/core/66/filelists/coreutils new file mode 120000 index 0000000000..7351ed2cf5 --- /dev/null +++ b/config/rootfiles/core/66/filelists/coreutils @@ -0,0 +1 @@ +../../../common/coreutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/curl b/config/rootfiles/core/66/filelists/curl new file mode 120000 index 0000000000..4b84bef53a --- /dev/null +++ b/config/rootfiles/core/66/filelists/curl @@ -0,0 +1 @@ +../../../common/curl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/cyrus-sasl b/config/rootfiles/core/66/filelists/cyrus-sasl new file mode 120000 index 0000000000..bb51b4c92c --- /dev/null +++ b/config/rootfiles/core/66/filelists/cyrus-sasl @@ -0,0 +1 @@ +../../../common/cyrus-sasl \ No newline at end of file diff --git a/config/rootfiles/core/64/filelists/daq b/config/rootfiles/core/66/filelists/daq similarity index 100% rename from config/rootfiles/core/64/filelists/daq rename to config/rootfiles/core/66/filelists/daq diff --git a/config/rootfiles/core/66/filelists/dejavu-fonts-ttf b/config/rootfiles/core/66/filelists/dejavu-fonts-ttf new file mode 120000 index 0000000000..0007a8b24b --- /dev/null +++ b/config/rootfiles/core/66/filelists/dejavu-fonts-ttf @@ -0,0 +1 @@ +../../../common/dejavu-fonts-ttf \ No newline at end of file diff --git a/config/rootfiles/core/63/filelists/dhcp b/config/rootfiles/core/66/filelists/dhcp similarity index 100% rename from config/rootfiles/core/63/filelists/dhcp rename to config/rootfiles/core/66/filelists/dhcp diff --git a/config/rootfiles/core/66/filelists/dvb-firmwares b/config/rootfiles/core/66/filelists/dvb-firmwares new file mode 120000 index 0000000000..69d0cdcfa5 --- /dev/null +++ b/config/rootfiles/core/66/filelists/dvb-firmwares @@ -0,0 +1 @@ +../../../common/dvb-firmwares \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/e2fsprogs b/config/rootfiles/core/66/filelists/e2fsprogs new file mode 120000 index 0000000000..37b55de698 --- /dev/null +++ b/config/rootfiles/core/66/filelists/e2fsprogs @@ -0,0 +1 @@ +../../../common/e2fsprogs \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/file b/config/rootfiles/core/66/filelists/file new file mode 120000 index 0000000000..0c60e43aa5 --- /dev/null +++ b/config/rootfiles/core/66/filelists/file @@ -0,0 +1 @@ +../../../common/file \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/files b/config/rootfiles/core/66/filelists/files new file mode 100644 index 0000000000..9d0006f53d --- /dev/null +++ b/config/rootfiles/core/66/filelists/files @@ -0,0 +1,53 @@ +etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf +etc/issue +etc/modprobe.d/cfg80211 +etc/rc.d/init.d/cleanfs +etc/rc.d/init.d/firewall +etc/rc.d/init.d/fsresize +etc/rc.d/init.d/halt +etc/rc.d/init.d/leds +etc/rc.d/init.d/mountfs +etc/rc.d/init.d/network +etc/rc.d/init.d/networking/dhcpcd.exe +etc/rc.d/init.d/networking/red +etc/rc.d/init.d/networking/red.up/01-conntrack-cleanup +etc/rc.d/init.d/networking/red.up/98-leds +etc/rc.d/init.d/partresize +etc/rc.d/init.d/reboot +etc/rc.d/init.d/sendsignals +etc/rc.d/init.d/setclock +etc/rc.d/init.d/tmpfs +etc/rc.d/init.d/udev +etc/rc.d/init.d/udev_retry +etc/rc.d/rc0.d/K47setclock +etc/rc.d/rc6.d/K47setclock +etc/securetty +etc/sysctl.conf +etc/system-release +opt/pakfire/db/core/mine +opt/pakfire/etc/pakfire.conf +opt/pakfire/lib/functions.sh +srv/web/ipfire/cgi-bin/backup.cgi +srv/web/ipfire/cgi-bin/credits.cgi +srv/web/ipfire/cgi-bin/ids.cgi +srv/web/ipfire/cgi-bin/logs.cgi/calamaris.dat +srv/web/ipfire/cgi-bin/media.cgi +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/proxy.cgi +srv/web/ipfire/cgi-bin/qos.cgi +srv/web/ipfire/cgi-bin/services.cgi +srv/web/ipfire/cgi-bin/updatexlrator.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +usr/bin/watch +usr/local/bin/backupiso +usr/local/bin/makegraphs +usr/local/bin/readhash +usr/local/bin/scanhd +usr/sbin/ovpn-ccd-convert +var/ipfire/backup/bin/backup.pl +var/ipfire/backup/include +var/ipfire/general-functions.pl +var/ipfire/langs +var/ipfire/outgoing/bin/outgoingfw.pl +var/ipfire/qos/bin/makeqosscripts.pl +var/ipfire/updatexlrator/bin/download diff --git a/config/rootfiles/core/66/filelists/fontconfig b/config/rootfiles/core/66/filelists/fontconfig new file mode 120000 index 0000000000..6daeffdd05 --- /dev/null +++ b/config/rootfiles/core/66/filelists/fontconfig @@ -0,0 +1 @@ +../../../common/fontconfig \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/fstrim b/config/rootfiles/core/66/filelists/fstrim new file mode 120000 index 0000000000..5541351c06 --- /dev/null +++ b/config/rootfiles/core/66/filelists/fstrim @@ -0,0 +1 @@ +../../../common/fstrim \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gawk b/config/rootfiles/core/66/filelists/gawk new file mode 120000 index 0000000000..a3bbe32ce6 --- /dev/null +++ b/config/rootfiles/core/66/filelists/gawk @@ -0,0 +1 @@ +../../../common/gawk \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gettext b/config/rootfiles/core/66/filelists/gettext new file mode 120000 index 0000000000..b6c6c6f4fe --- /dev/null +++ b/config/rootfiles/core/66/filelists/gettext @@ -0,0 +1 @@ +../../../common/gettext \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/glib b/config/rootfiles/core/66/filelists/glib new file mode 120000 index 0000000000..44665746ad --- /dev/null +++ b/config/rootfiles/core/66/filelists/glib @@ -0,0 +1 @@ +../../../common/glib \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gmp b/config/rootfiles/core/66/filelists/gmp new file mode 120000 index 0000000000..8662a8982f --- /dev/null +++ b/config/rootfiles/core/66/filelists/gmp @@ -0,0 +1 @@ +../../../common/gmp \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gmp-compat b/config/rootfiles/core/66/filelists/gmp-compat new file mode 120000 index 0000000000..10093cdd7e --- /dev/null +++ b/config/rootfiles/core/66/filelists/gmp-compat @@ -0,0 +1 @@ +../../../common/gmp-compat \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/gnupg b/config/rootfiles/core/66/filelists/gnupg new file mode 120000 index 0000000000..a1a156447b --- /dev/null +++ b/config/rootfiles/core/66/filelists/gnupg @@ -0,0 +1 @@ +../../../common/gnupg \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/grep b/config/rootfiles/core/66/filelists/grep new file mode 120000 index 0000000000..ab5ef8b0e3 --- /dev/null +++ b/config/rootfiles/core/66/filelists/grep @@ -0,0 +1 @@ +../../../common/grep \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/hdparm b/config/rootfiles/core/66/filelists/hdparm new file mode 120000 index 0000000000..b6447518ad --- /dev/null +++ b/config/rootfiles/core/66/filelists/hdparm @@ -0,0 +1 @@ +../../../common/hdparm \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/acpi-init b/config/rootfiles/core/66/filelists/i586/acpi-init new file mode 100644 index 0000000000..982638aa2e --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/acpi-init @@ -0,0 +1,4 @@ +etc/rc.d/init.d/acpid +etc/rc.d/rc0.d/K87acpid +etc/rc.d/rc3.d/S12acpid +etc/rc.d/rc6.d/K87acpid diff --git a/config/rootfiles/core/66/filelists/i586/acpid b/config/rootfiles/core/66/filelists/i586/acpid new file mode 120000 index 0000000000..21d36ee1dd --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/acpid @@ -0,0 +1 @@ +../../../../common/i586/acpid \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/binutils b/config/rootfiles/core/66/filelists/i586/binutils new file mode 120000 index 0000000000..78695d73a3 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/binutils @@ -0,0 +1 @@ +../../../../common/i586/binutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/dracut b/config/rootfiles/core/66/filelists/i586/dracut new file mode 120000 index 0000000000..9a09010519 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/dracut @@ -0,0 +1 @@ +../../../../common/i586/dracut \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/gcc b/config/rootfiles/core/66/filelists/i586/gcc new file mode 120000 index 0000000000..ba328e3b68 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/gcc @@ -0,0 +1 @@ +../../../../common/i586/gcc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/glibc b/config/rootfiles/core/66/filelists/i586/glibc new file mode 120000 index 0000000000..943021f19a --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/glibc @@ -0,0 +1 @@ +../../../../common/i586/glibc \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/grub b/config/rootfiles/core/66/filelists/i586/grub new file mode 120000 index 0000000000..feb236a224 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/grub @@ -0,0 +1 @@ +../../../../common/i586/grub \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/linux b/config/rootfiles/core/66/filelists/i586/linux new file mode 120000 index 0000000000..693ec4bbf9 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/linux @@ -0,0 +1 @@ +../../../../common/i586/linux \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/strongswan-padlock b/config/rootfiles/core/66/filelists/i586/strongswan-padlock new file mode 120000 index 0000000000..2412824fb2 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/strongswan-padlock @@ -0,0 +1 @@ +../../../../common/i586/strongswan-padlock \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/i586/util-linux b/config/rootfiles/core/66/filelists/i586/util-linux new file mode 120000 index 0000000000..c973106f12 --- /dev/null +++ b/config/rootfiles/core/66/filelists/i586/util-linux @@ -0,0 +1 @@ +../../../../common/i586/util-linux \ No newline at end of file diff --git a/config/rootfiles/core/63/filelists/inetutils b/config/rootfiles/core/66/filelists/inetutils similarity index 100% rename from config/rootfiles/core/63/filelists/inetutils rename to config/rootfiles/core/66/filelists/inetutils diff --git a/config/rootfiles/core/66/filelists/iproute2 b/config/rootfiles/core/66/filelists/iproute2 new file mode 120000 index 0000000000..05f0f71fb5 --- /dev/null +++ b/config/rootfiles/core/66/filelists/iproute2 @@ -0,0 +1 @@ +../../../common/iproute2 \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/iptables b/config/rootfiles/core/66/filelists/iptables new file mode 120000 index 0000000000..8caf12bccb --- /dev/null +++ b/config/rootfiles/core/66/filelists/iptables @@ -0,0 +1 @@ +../../../common/iptables \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/kbd b/config/rootfiles/core/66/filelists/kbd new file mode 120000 index 0000000000..9b85839b1f --- /dev/null +++ b/config/rootfiles/core/66/filelists/kbd @@ -0,0 +1 @@ +../../../common/kbd \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/less b/config/rootfiles/core/66/filelists/less new file mode 120000 index 0000000000..65c0e0771e --- /dev/null +++ b/config/rootfiles/core/66/filelists/less @@ -0,0 +1 @@ +../../../common/less \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libffi b/config/rootfiles/core/66/filelists/libffi new file mode 120000 index 0000000000..c391acd0cb --- /dev/null +++ b/config/rootfiles/core/66/filelists/libffi @@ -0,0 +1 @@ +../../../common/libffi \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libmnl b/config/rootfiles/core/66/filelists/libmnl new file mode 120000 index 0000000000..f671c4175f --- /dev/null +++ b/config/rootfiles/core/66/filelists/libmnl @@ -0,0 +1 @@ +../../../common/libmnl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libnl b/config/rootfiles/core/66/filelists/libnl new file mode 120000 index 0000000000..7181849de8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/libnl @@ -0,0 +1 @@ +../../../common/libnl \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libsigc++ b/config/rootfiles/core/66/filelists/libsigc++ new file mode 120000 index 0000000000..51f4c756ff --- /dev/null +++ b/config/rootfiles/core/66/filelists/libsigc++ @@ -0,0 +1 @@ +../../../common/libsigc++ \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libtool b/config/rootfiles/core/66/filelists/libtool new file mode 120000 index 0000000000..54f5666f89 --- /dev/null +++ b/config/rootfiles/core/66/filelists/libtool @@ -0,0 +1 @@ +../../../common/libtool \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/libupnp b/config/rootfiles/core/66/filelists/libupnp new file mode 120000 index 0000000000..7ec2b0074e --- /dev/null +++ b/config/rootfiles/core/66/filelists/libupnp @@ -0,0 +1 @@ +../../../common/libupnp \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/linux-atm b/config/rootfiles/core/66/filelists/linux-atm new file mode 120000 index 0000000000..8adccafbd6 --- /dev/null +++ b/config/rootfiles/core/66/filelists/linux-atm @@ -0,0 +1 @@ +../../../common/linux-atm \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/linux-firmware b/config/rootfiles/core/66/filelists/linux-firmware new file mode 120000 index 0000000000..4bf91bca9f --- /dev/null +++ b/config/rootfiles/core/66/filelists/linux-firmware @@ -0,0 +1 @@ +../../../common/linux-firmware \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/m4 b/config/rootfiles/core/66/filelists/m4 new file mode 120000 index 0000000000..3f009cc698 --- /dev/null +++ b/config/rootfiles/core/66/filelists/m4 @@ -0,0 +1 @@ +../../../common/m4 \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/mISDNuser b/config/rootfiles/core/66/filelists/mISDNuser new file mode 120000 index 0000000000..78537d4c93 --- /dev/null +++ b/config/rootfiles/core/66/filelists/mISDNuser @@ -0,0 +1 @@ +../../../common/mISDNuser \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/man b/config/rootfiles/core/66/filelists/man new file mode 120000 index 0000000000..b04d65c44a --- /dev/null +++ b/config/rootfiles/core/66/filelists/man @@ -0,0 +1 @@ +../../../common/man \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/misc-progs b/config/rootfiles/core/66/filelists/misc-progs new file mode 120000 index 0000000000..7223cadddd --- /dev/null +++ b/config/rootfiles/core/66/filelists/misc-progs @@ -0,0 +1 @@ +../../../common/misc-progs \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/mpfr b/config/rootfiles/core/66/filelists/mpfr new file mode 120000 index 0000000000..c8468bf42f --- /dev/null +++ b/config/rootfiles/core/66/filelists/mpfr @@ -0,0 +1 @@ +../../../common/mpfr \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/ncurses b/config/rootfiles/core/66/filelists/ncurses new file mode 120000 index 0000000000..512faef6ae --- /dev/null +++ b/config/rootfiles/core/66/filelists/ncurses @@ -0,0 +1 @@ +../../../common/ncurses \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/newt b/config/rootfiles/core/66/filelists/newt new file mode 120000 index 0000000000..fb3eb20c3e --- /dev/null +++ b/config/rootfiles/core/66/filelists/newt @@ -0,0 +1 @@ +../../../common/newt \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/openldap b/config/rootfiles/core/66/filelists/openldap new file mode 120000 index 0000000000..80c324f768 --- /dev/null +++ b/config/rootfiles/core/66/filelists/openldap @@ -0,0 +1 @@ +../../../common/openldap \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/openssh b/config/rootfiles/core/66/filelists/openssh new file mode 120000 index 0000000000..d8c77fd8e7 --- /dev/null +++ b/config/rootfiles/core/66/filelists/openssh @@ -0,0 +1 @@ +../../../common/openssh \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/openssl b/config/rootfiles/core/66/filelists/openssl new file mode 120000 index 0000000000..e011a9266c --- /dev/null +++ b/config/rootfiles/core/66/filelists/openssl @@ -0,0 +1 @@ +../../../common/openssl \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/pam b/config/rootfiles/core/66/filelists/pam similarity index 100% rename from config/rootfiles/core/61/filelists/pam rename to config/rootfiles/core/66/filelists/pam diff --git a/config/rootfiles/core/66/filelists/pango b/config/rootfiles/core/66/filelists/pango new file mode 120000 index 0000000000..6c37231c7e --- /dev/null +++ b/config/rootfiles/core/66/filelists/pango @@ -0,0 +1 @@ +../../../common/pango \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pciutils b/config/rootfiles/core/66/filelists/pciutils new file mode 120000 index 0000000000..aeb45e7b31 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pciutils @@ -0,0 +1 @@ +../../../common/pciutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pcmciautils b/config/rootfiles/core/66/filelists/pcmciautils new file mode 120000 index 0000000000..7cbf8218c5 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pcmciautils @@ -0,0 +1 @@ +../../../common/pcmciautils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pcre b/config/rootfiles/core/66/filelists/pcre new file mode 120000 index 0000000000..b390d9a367 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pcre @@ -0,0 +1 @@ +../../../common/pcre \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pcre-compat b/config/rootfiles/core/66/filelists/pcre-compat new file mode 120000 index 0000000000..eff8a7d8b9 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pcre-compat @@ -0,0 +1 @@ +../../../common/pcre-compat \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pixman b/config/rootfiles/core/66/filelists/pixman new file mode 120000 index 0000000000..fdb6346ae8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/pixman @@ -0,0 +1 @@ +../../../common/pixman \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/popt b/config/rootfiles/core/66/filelists/popt new file mode 120000 index 0000000000..d71a9ab041 --- /dev/null +++ b/config/rootfiles/core/66/filelists/popt @@ -0,0 +1 @@ +../../../common/popt \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/pptp b/config/rootfiles/core/66/filelists/pptp new file mode 120000 index 0000000000..2b3dfadc0d --- /dev/null +++ b/config/rootfiles/core/66/filelists/pptp @@ -0,0 +1 @@ +../../../common/pptp \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/readline b/config/rootfiles/core/66/filelists/readline new file mode 120000 index 0000000000..84209f1891 --- /dev/null +++ b/config/rootfiles/core/66/filelists/readline @@ -0,0 +1 @@ +../../../common/readline \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/readline-compat b/config/rootfiles/core/66/filelists/readline-compat new file mode 120000 index 0000000000..f96bc808cc --- /dev/null +++ b/config/rootfiles/core/66/filelists/readline-compat @@ -0,0 +1 @@ +../../../common/readline-compat \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/reiserfsprogs b/config/rootfiles/core/66/filelists/reiserfsprogs new file mode 120000 index 0000000000..008c3e8915 --- /dev/null +++ b/config/rootfiles/core/66/filelists/reiserfsprogs @@ -0,0 +1 @@ +../../../common/reiserfsprogs \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/rrdtool b/config/rootfiles/core/66/filelists/rrdtool new file mode 120000 index 0000000000..7a82e414b6 --- /dev/null +++ b/config/rootfiles/core/66/filelists/rrdtool @@ -0,0 +1 @@ +../../../common/rrdtool \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/screen b/config/rootfiles/core/66/filelists/screen new file mode 120000 index 0000000000..81008f46ef --- /dev/null +++ b/config/rootfiles/core/66/filelists/screen @@ -0,0 +1 @@ +../../../common/screen \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/sdparm b/config/rootfiles/core/66/filelists/sdparm new file mode 120000 index 0000000000..86d9c247fc --- /dev/null +++ b/config/rootfiles/core/66/filelists/sdparm @@ -0,0 +1 @@ +../../../common/sdparm \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/sed b/config/rootfiles/core/66/filelists/sed new file mode 120000 index 0000000000..fc5f5c6d6b --- /dev/null +++ b/config/rootfiles/core/66/filelists/sed @@ -0,0 +1 @@ +../../../common/sed \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/setup b/config/rootfiles/core/66/filelists/setup new file mode 120000 index 0000000000..209374bbcf --- /dev/null +++ b/config/rootfiles/core/66/filelists/setup @@ -0,0 +1 @@ +../../../common/setup \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/shadow b/config/rootfiles/core/66/filelists/shadow new file mode 120000 index 0000000000..c0824b7b99 --- /dev/null +++ b/config/rootfiles/core/66/filelists/shadow @@ -0,0 +1 @@ +../../../common/shadow \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/slang b/config/rootfiles/core/66/filelists/slang new file mode 120000 index 0000000000..228e45ed4c --- /dev/null +++ b/config/rootfiles/core/66/filelists/slang @@ -0,0 +1 @@ +../../../common/slang \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/smartmontools b/config/rootfiles/core/66/filelists/smartmontools new file mode 120000 index 0000000000..fb66dafeff --- /dev/null +++ b/config/rootfiles/core/66/filelists/smartmontools @@ -0,0 +1 @@ +../../../common/smartmontools \ No newline at end of file diff --git a/config/rootfiles/core/64/filelists/snort b/config/rootfiles/core/66/filelists/snort similarity index 100% rename from config/rootfiles/core/64/filelists/snort rename to config/rootfiles/core/66/filelists/snort diff --git a/config/rootfiles/core/61/filelists/squid b/config/rootfiles/core/66/filelists/squid similarity index 100% rename from config/rootfiles/core/61/filelists/squid rename to config/rootfiles/core/66/filelists/squid diff --git a/config/rootfiles/core/66/filelists/stage2-partial b/config/rootfiles/core/66/filelists/stage2-partial new file mode 100644 index 0000000000..df9ad8f3c0 --- /dev/null +++ b/config/rootfiles/core/66/filelists/stage2-partial @@ -0,0 +1,17 @@ +etc/bashrc +etc/profile +etc/profile.d/colorls.sh +etc/profile.d/extrapaths.sh +etc/profile.d/glib2-locale.sh +etc/profile.d/i18n.sh +etc/profile.d/lang.sh +etc/profile.d/readline.sh +etc/profile.d/term256.sh +etc/profile.d/umask.sh +etc/securetty +etc/sysctl.conf +root/.bash_logout +root/.bash_profile +root/.bashrc +usr/lib/libgcc_s.so.1 +usr/lib/libstdc++.so.6 diff --git a/config/rootfiles/core/60/filelists/strongswan b/config/rootfiles/core/66/filelists/strongswan similarity index 100% rename from config/rootfiles/core/60/filelists/strongswan rename to config/rootfiles/core/66/filelists/strongswan diff --git a/config/rootfiles/core/66/filelists/sysfsutils b/config/rootfiles/core/66/filelists/sysfsutils new file mode 120000 index 0000000000..8f3ee3e867 --- /dev/null +++ b/config/rootfiles/core/66/filelists/sysfsutils @@ -0,0 +1 @@ +../../../common/sysfsutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/sysvinit b/config/rootfiles/core/66/filelists/sysvinit new file mode 120000 index 0000000000..f3fb3304d3 --- /dev/null +++ b/config/rootfiles/core/66/filelists/sysvinit @@ -0,0 +1 @@ +../../../common/sysvinit \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/texinfo b/config/rootfiles/core/66/filelists/texinfo new file mode 120000 index 0000000000..fa9df02576 --- /dev/null +++ b/config/rootfiles/core/66/filelists/texinfo @@ -0,0 +1 @@ +../../../common/texinfo \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/tzdata b/config/rootfiles/core/66/filelists/tzdata new file mode 120000 index 0000000000..5a6e3252f3 --- /dev/null +++ b/config/rootfiles/core/66/filelists/tzdata @@ -0,0 +1 @@ +../../../common/tzdata \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/udev b/config/rootfiles/core/66/filelists/udev new file mode 120000 index 0000000000..e967a1c925 --- /dev/null +++ b/config/rootfiles/core/66/filelists/udev @@ -0,0 +1 @@ +../../../common/udev \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/usbutils b/config/rootfiles/core/66/filelists/usbutils new file mode 120000 index 0000000000..31db5a7ac9 --- /dev/null +++ b/config/rootfiles/core/66/filelists/usbutils @@ -0,0 +1 @@ +../../../common/usbutils \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/vim b/config/rootfiles/core/66/filelists/vim new file mode 120000 index 0000000000..98613172e3 --- /dev/null +++ b/config/rootfiles/core/66/filelists/vim @@ -0,0 +1 @@ +../../../common/vim \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/wget b/config/rootfiles/core/66/filelists/wget new file mode 120000 index 0000000000..fcb57dfec8 --- /dev/null +++ b/config/rootfiles/core/66/filelists/wget @@ -0,0 +1 @@ +../../../common/wget \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/wpa_supplicant b/config/rootfiles/core/66/filelists/wpa_supplicant new file mode 120000 index 0000000000..1d04c03c01 --- /dev/null +++ b/config/rootfiles/core/66/filelists/wpa_supplicant @@ -0,0 +1 @@ +../../../common/wpa_supplicant \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/xz b/config/rootfiles/core/66/filelists/xz new file mode 120000 index 0000000000..734e926c7e --- /dev/null +++ b/config/rootfiles/core/66/filelists/xz @@ -0,0 +1 @@ +../../../common/xz \ No newline at end of file diff --git a/config/rootfiles/core/66/filelists/zlib b/config/rootfiles/core/66/filelists/zlib new file mode 120000 index 0000000000..e345663226 --- /dev/null +++ b/config/rootfiles/core/66/filelists/zlib @@ -0,0 +1 @@ +../../../common/zlib \ No newline at end of file diff --git a/config/rootfiles/core/60/meta b/config/rootfiles/core/66/meta similarity index 100% rename from config/rootfiles/core/60/meta rename to config/rootfiles/core/66/meta diff --git a/config/rootfiles/core/66/update.sh b/config/rootfiles/core/66/update.sh new file mode 100644 index 0000000000..e0a787584e --- /dev/null +++ b/config/rootfiles/core/66/update.sh @@ -0,0 +1,379 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire 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. # +# # +# IPFire 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 IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2013 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +function add_to_backup () +{ + # Add path to ROOTFILES but remove old entries to prevent double + # files in the tar + grep -v "^$1" /opt/pakfire/tmp/ROOTFILES > /opt/pakfire/tmp/ROOTFILES.tmp + mv /opt/pakfire/tmp/ROOTFILES.tmp /opt/pakfire/tmp/ROOTFILES + echo $1 >> /opt/pakfire/tmp/ROOTFILES +} + +# +# Remove old core updates from pakfire cache to save space... +# +core=66 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +# Do some sanity checks. +case $(uname -r) in + *-ipfire-versatile ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update. versatile support is dropped." + # Report no error to pakfire. So it does not try to install it again. + exit 0 + ;; + *-ipfire-xen ) + BOOTSIZE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f2 | tail -n 1` + if [ $BOOTSIZE -lt 28000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because not enough space on boot." + exit 2 + fi + ;; + *-ipfire* ) + # Ok. + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update. No IPFire Kernel." + # Report no error to pakfire. So it does not try to install it again. + exit 0 + ;; +esac + +if [ ! "$(mount | grep " reiser4 (")" == "" ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because there is a reiser4 fs mounted." + exit 1 +fi + +# +# +KVER="3.2.38" +MOUNT=`grep "kernel" /boot/grub/grub.conf 2>/dev/null | tail -n 1 ` +# Nur den letzten Parameter verwenden +echo $MOUNT > /dev/null +MOUNT=$_ +if [ ! $MOUNT == "rw" ]; then + MOUNT="ro" +fi + +# +# check if we the backup file already exist +if [ -e /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz ]; then + echo Moving backup to backup-old ... + mv -f /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz \ + /var/ipfire/backup/core-upgrade$core_$KVER-old.tar.xz +fi +echo First we made a backup of all files that was inside of the +echo update archive. This may take a while ... +# Add some files that are not in the package to backup +add_to_backup lib/modules +add_to_backup etc/udev +add_to_backup lib/udev +add_to_backup boot +add_to_backup etc/snort +add_to_backup usr/lib/snort_* +add_to_backup usr/share/zoneinfo +add_to_backup lib/libncurses* +add_to_backup etc/dircolors +add_to_backup etc/profile.d +add_to_backup usr/share/terminfo +add_to_backup etc/sysconfig/lm_sensors +add_to_backup etc/sysconfig/rc.local +add_to_backup usr/local/bin/vpn-watch +add_to_backup usr/local/bin/updxsetperms +add_to_backup usr/libexec/ipsec + +# Backup the files +tar cJvf /var/ipfire/backup/core-upgrade$core_$KVER.tar.xz \ + -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' --exclude='/var/cache' > /dev/null 2>&1 + +# Check diskspace on root +ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $ROOTSPACE -lt 70000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: ERROR cannot update because not enough free space on root." + exit 2 +fi + +# Add user nobody to group squid. +usermod -a -G squid nobody + +echo +echo Update Kernel to $KVER ... +# +# Remove old kernel, configs, initrd, modules ... +# +rm -rf /boot/System.map-* +rm -rf /boot/config-* +rm -rf /boot/ipfirerd-* +rm -rf /boot/vmlinuz-* +rm -rf /boot/uImage-ipfire-* +rm -rf /boot/uInit-ipfire-* +rm -rf /lib/modules +rm -rf /etc/dircolors +rm -rf /etc/profile.d +rm -rf /usr/share/terminfo +rm -rf /bin/[ + +# +# Remove old udev rules. +# +if [ -e /etc/udev/rules.d/29-ct-server-network.rules ]; then + cp /etc/udev/rules.d/29-ct-server-network.rules /tmp/ +fi +cp /etc/udev/rules.d/30-persistent-network.rules /tmp/ +rm -rf /etc/udev +rm -rf /lib/udev +mkdir -p /etc/udev/rules.d +if [ -e /tmp/rules.d/29-ct-server-network.rules ]; then + mv /tmp/29-ct-server-network.rules /etc/udev/rules.d/ +fi +mv /tmp/30-persistent-network.rules /etc/udev/rules.d/ + +case $(uname -m) in + i?86 ) + # + # Backup grub.conf + # + cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org + ;; +esac +# +#Stop services +/etc/init.d/snort stop +/etc/init.d/squid stop +/etc/init.d/ipsec stop +/etc/init.d/apache stop + + +#Remove old snort, zoneinfo and ncurses-libs(wrong path). +rm -rf /etc/snort +rm -rf /usr/lib/snort_* +rm -rf /usr/share/zoneinfo +rm -rf /lib/libncurses* + +# Remove old pluto binaries. +rm -f /usr/libexec/ipsec/{pluto,_pluto_adns,whack} +rm -f /usr/local/bin/vpn-watch + +# Remove update accelerator permissions script. +rm -f /usr/local/bin/updxsetperms + +# +#Extract files +tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C / + +# Check diskspace on boot +BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + +if [ $BOOTSPACE -lt 1000 ]; then + case $(uname -r) in + *-ipfire-kirkwood ) + # Special handling for old kirkwood images. + # (install only kirkwood kernel) + rm -rf /boot/* + tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \ + --numeric-owner -C / --wildcards 'boot/*-kirkwood*' + ;; + * ) + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: FATAL-ERROR space run out on boot. System is not bootable..." + /etc/init.d/apache start + exit 4 + ;; + esac +fi + +# +#Reload init to close old linker/glibc +telinit u + +# Regenerate ipsec configuration files. +/srv/web/ipfire/cgi-bin/vpnmain.cgi + +# Convert OpenVPN RW connections. +/usr/sbin/ovpn-ccd-convert + +touch /var/ipfire/ovpn/ccd.conf +touch /var/ipfire/ovpn/ccdroute +touch /var/ipfire/ovpn/ccdroute2 +chown nobody:nobody /var/ipfire/ovpn/ccd.conf +chown nobody:nobody /var/ipfire/ovpn/ccdroute +chown nobody:nobody /var/ipfire/ovpn/ccdroute2 + +# Update crontab. +sed -i /var/spool/cron/root.orig \ + -e 's@^.*fcron.weekly.*$@\&nice(10),bootrun 47 2 \* \* 1\ttest -x /usr/local/bin/run-parts \&\& /usr/local/bin/run-parts /etc/fcron.weekly@' +fcrontab -z &>/dev/null + +# +# Start services +# +/etc/init.d/apache start +/etc/init.d/squid start +/etc/init.d/snort start +if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then + /etc/init.d/ipsec start +fi + +# +# Rebuild qosscript if enabled +# +if [ -e /var/ipfire/qos/enable ]; then + /usr/local/bin/qosctrl stop + /usr/local/bin/qosctrl generate + /usr/local/bin/qosctrl start +fi + +# Remove preloading libsafe. +rm -f /etc/ld.so.preload + +case $(uname -m) in + i?86 ) + # + # Modify grub.conf + # + echo + echo Update grub configuration ... + ROOT=`mount | grep " / " | cut -d" " -f1` + + if [ ! -z $ROOT ]; then + ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` + fi + + if [ ! -z $ROOTUUID ]; then + sed -i "s|ROOT|UUID=$ROOTUUID|g" /boot/grub/grub.conf + else + sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf + fi + sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf + sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf + + if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then + echo "grub use default console ..." + else + echo "grub use serial console ..." + sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf + sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf + sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf + sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" /boot/grub/grub.conf + fi + + # + # ReInstall grub + # + echo "(hd0) ${ROOT::`expr length $ROOT`-1}" > /boot/grub/device.map + grub-install --no-floppy ${ROOT::`expr length $ROOT`-1} + ;; +esac +# +# Delete old lm-sensor modullist to force search at next boot +# +rm -rf /etc/sysconfig/lm_sensors + +# +# Remove powerbutton loop from rc local. +# +sed -i "/# power button shutdown/,+3d" /etc/sysconfig/rc.local + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# +# Remove meta's of packages that are now common... +# +rm -rf /opt/pakfire/db/*/meta-fontconfig +rm -rf /opt/pakfire/db/*/meta-glib + +# Force (re)install pae kernel if pae is supported +rm -rf /opt/pakfire/db/*/meta-linux-pae +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1` + if [ $BOOTSPACE -lt 8000 -o $ROOTSPACE -lt 70000 ]; then + /usr/bin/logger -p syslog.emerg -t ipfire \ + "core-update-$core: WARNING not enough space for pae kernel." + else + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 3.2.38" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 27" >> /opt/pakfire/db/installed/meta-linux-pae + fi +fi + +# Force reinstall xen kernel if it was installed +if [ -e "/opt/pakfire/db/installed/meta-linux-xen" ]; then + echo "Name: linux-xen" > /opt/pakfire/db/installed/meta-linux-xen + echo "ProgVersion: 2.6.32.60" >> /opt/pakfire/db/installed/meta-linux-xen + echo "Release: 24" >> /opt/pakfire/db/installed/meta-linux-xen + # Add xvc0 to /etc/securetty + echo "xvc0" >> /etc/securetty +fi + +# +# After pakfire has ended run it again and update the lists and do upgrade +# +echo '#!/bin/bash' > /tmp/pak_update +echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do' >> /tmp/pak_update +echo ' sleep 1' >> /tmp/pak_update +echo 'done' >> /tmp/pak_update +echo '/opt/pakfire/pakfire update -y --force' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/opt/pakfire/pakfire upgrade -y' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update +echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update +echo 'touch /var/run/need_reboot ' >> /tmp/pak_update +# +chmod +x /tmp/pak_update +/tmp/pak_update & + +sync + +# +#Finish +/etc/init.d/fireinfo start +sendprofile + +echo +echo Please wait until pakfire has ended... +echo +#Don't report the exitcode last command +exit 0 + diff --git a/config/rootfiles/installer/findutils b/config/rootfiles/installer/findutils new file mode 120000 index 0000000000..1114c4c47c --- /dev/null +++ b/config/rootfiles/installer/findutils @@ -0,0 +1 @@ +../common/findutils \ No newline at end of file diff --git a/config/rootfiles/installer/kudzu b/config/rootfiles/installer/kudzu deleted file mode 120000 index da66b915a0..0000000000 --- a/config/rootfiles/installer/kudzu +++ /dev/null @@ -1 +0,0 @@ -../common/kudzu \ No newline at end of file diff --git a/config/rootfiles/installer/libsafe b/config/rootfiles/installer/libsafe deleted file mode 120000 index c31e31db40..0000000000 --- a/config/rootfiles/installer/libsafe +++ /dev/null @@ -1 +0,0 @@ -../common/libsafe \ No newline at end of file diff --git a/config/rootfiles/installer/pcre b/config/rootfiles/installer/pcre new file mode 120000 index 0000000000..ffd8616161 --- /dev/null +++ b/config/rootfiles/installer/pcre @@ -0,0 +1 @@ +../common/pcre \ No newline at end of file diff --git a/config/rootfiles/core/60/exclude b/config/rootfiles/oldcore/60/exclude similarity index 100% rename from config/rootfiles/core/60/exclude rename to config/rootfiles/oldcore/60/exclude diff --git a/config/rootfiles/core/60/filelists/files b/config/rootfiles/oldcore/60/filelists/files similarity index 100% rename from config/rootfiles/core/60/filelists/files rename to config/rootfiles/oldcore/60/filelists/files diff --git a/config/rootfiles/oldcore/60/filelists/strongswan b/config/rootfiles/oldcore/60/filelists/strongswan new file mode 120000 index 0000000000..90c727e265 --- /dev/null +++ b/config/rootfiles/oldcore/60/filelists/strongswan @@ -0,0 +1 @@ +../../../common/strongswan \ No newline at end of file diff --git a/config/rootfiles/core/61/meta b/config/rootfiles/oldcore/60/meta similarity index 100% rename from config/rootfiles/core/61/meta rename to config/rootfiles/oldcore/60/meta diff --git a/config/rootfiles/core/60/update.sh b/config/rootfiles/oldcore/60/update.sh similarity index 100% rename from config/rootfiles/core/60/update.sh rename to config/rootfiles/oldcore/60/update.sh diff --git a/config/rootfiles/core/61/exclude b/config/rootfiles/oldcore/61/exclude similarity index 100% rename from config/rootfiles/core/61/exclude rename to config/rootfiles/oldcore/61/exclude diff --git a/config/rootfiles/core/62/filelists/GeoIP b/config/rootfiles/oldcore/61/filelists/GeoIP similarity index 100% rename from config/rootfiles/core/62/filelists/GeoIP rename to config/rootfiles/oldcore/61/filelists/GeoIP diff --git a/config/rootfiles/core/61/filelists/Net-Telnet b/config/rootfiles/oldcore/61/filelists/Net-Telnet similarity index 100% rename from config/rootfiles/core/61/filelists/Net-Telnet rename to config/rootfiles/oldcore/61/filelists/Net-Telnet diff --git a/config/rootfiles/core/61/filelists/files b/config/rootfiles/oldcore/61/filelists/files similarity index 100% rename from config/rootfiles/core/61/filelists/files rename to config/rootfiles/oldcore/61/filelists/files diff --git a/config/rootfiles/core/61/filelists/fireinfo b/config/rootfiles/oldcore/61/filelists/fireinfo similarity index 100% rename from config/rootfiles/core/61/filelists/fireinfo rename to config/rootfiles/oldcore/61/filelists/fireinfo diff --git a/config/rootfiles/core/61/filelists/logwatch b/config/rootfiles/oldcore/61/filelists/logwatch similarity index 100% rename from config/rootfiles/core/61/filelists/logwatch rename to config/rootfiles/oldcore/61/filelists/logwatch diff --git a/config/rootfiles/core/61/filelists/openvpn b/config/rootfiles/oldcore/61/filelists/openvpn similarity index 100% rename from config/rootfiles/core/61/filelists/openvpn rename to config/rootfiles/oldcore/61/filelists/openvpn diff --git a/config/rootfiles/oldcore/61/filelists/pam b/config/rootfiles/oldcore/61/filelists/pam new file mode 120000 index 0000000000..660a1d80ec --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/pam @@ -0,0 +1 @@ +../../../common/pam \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/php b/config/rootfiles/oldcore/61/filelists/php similarity index 100% rename from config/rootfiles/core/61/filelists/php rename to config/rootfiles/oldcore/61/filelists/php diff --git a/config/rootfiles/oldcore/61/filelists/squid b/config/rootfiles/oldcore/61/filelists/squid new file mode 120000 index 0000000000..2dc8372a0e --- /dev/null +++ b/config/rootfiles/oldcore/61/filelists/squid @@ -0,0 +1 @@ +../../../common/squid \ No newline at end of file diff --git a/config/rootfiles/core/61/filelists/usb_modeswitch_data b/config/rootfiles/oldcore/61/filelists/usb_modeswitch_data similarity index 100% rename from config/rootfiles/core/61/filelists/usb_modeswitch_data rename to config/rootfiles/oldcore/61/filelists/usb_modeswitch_data diff --git a/config/rootfiles/core/62/meta b/config/rootfiles/oldcore/61/meta similarity index 100% rename from config/rootfiles/core/62/meta rename to config/rootfiles/oldcore/61/meta diff --git a/config/rootfiles/core/61/update.sh b/config/rootfiles/oldcore/61/update.sh similarity index 100% rename from config/rootfiles/core/61/update.sh rename to config/rootfiles/oldcore/61/update.sh diff --git a/config/rootfiles/core/62/exclude b/config/rootfiles/oldcore/62/exclude similarity index 100% rename from config/rootfiles/core/62/exclude rename to config/rootfiles/oldcore/62/exclude diff --git a/config/rootfiles/core/63/filelists/GeoIP b/config/rootfiles/oldcore/62/filelists/GeoIP similarity index 100% rename from config/rootfiles/core/63/filelists/GeoIP rename to config/rootfiles/oldcore/62/filelists/GeoIP diff --git a/config/rootfiles/core/62/filelists/files b/config/rootfiles/oldcore/62/filelists/files similarity index 100% rename from config/rootfiles/core/62/filelists/files rename to config/rootfiles/oldcore/62/filelists/files diff --git a/config/rootfiles/core/62/filelists/hwdata b/config/rootfiles/oldcore/62/filelists/hwdata similarity index 100% rename from config/rootfiles/core/62/filelists/hwdata rename to config/rootfiles/oldcore/62/filelists/hwdata diff --git a/config/rootfiles/core/62/filelists/php b/config/rootfiles/oldcore/62/filelists/php similarity index 100% rename from config/rootfiles/core/62/filelists/php rename to config/rootfiles/oldcore/62/filelists/php diff --git a/config/rootfiles/core/62/filelists/usb_modeswitch b/config/rootfiles/oldcore/62/filelists/usb_modeswitch similarity index 100% rename from config/rootfiles/core/62/filelists/usb_modeswitch rename to config/rootfiles/oldcore/62/filelists/usb_modeswitch diff --git a/config/rootfiles/core/62/filelists/usb_modeswitch_data b/config/rootfiles/oldcore/62/filelists/usb_modeswitch_data similarity index 100% rename from config/rootfiles/core/62/filelists/usb_modeswitch_data rename to config/rootfiles/oldcore/62/filelists/usb_modeswitch_data diff --git a/config/rootfiles/core/63/meta b/config/rootfiles/oldcore/62/meta similarity index 100% rename from config/rootfiles/core/63/meta rename to config/rootfiles/oldcore/62/meta diff --git a/config/rootfiles/core/62/update.sh b/config/rootfiles/oldcore/62/update.sh similarity index 100% rename from config/rootfiles/core/62/update.sh rename to config/rootfiles/oldcore/62/update.sh diff --git a/config/rootfiles/core/63/exclude b/config/rootfiles/oldcore/63/exclude similarity index 100% rename from config/rootfiles/core/63/exclude rename to config/rootfiles/oldcore/63/exclude diff --git a/config/rootfiles/oldcore/63/filelists/GeoIP b/config/rootfiles/oldcore/63/filelists/GeoIP new file mode 100644 index 0000000000..0258236c03 --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/GeoIP @@ -0,0 +1 @@ +usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/core/63/filelists/apache2 b/config/rootfiles/oldcore/63/filelists/apache2 similarity index 100% rename from config/rootfiles/core/63/filelists/apache2 rename to config/rootfiles/oldcore/63/filelists/apache2 diff --git a/config/rootfiles/oldcore/63/filelists/dhcp b/config/rootfiles/oldcore/63/filelists/dhcp new file mode 120000 index 0000000000..32d8da443d --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/dhcp @@ -0,0 +1 @@ +../../../common/dhcp \ No newline at end of file diff --git a/config/rootfiles/core/63/filelists/files b/config/rootfiles/oldcore/63/filelists/files similarity index 100% rename from config/rootfiles/core/63/filelists/files rename to config/rootfiles/oldcore/63/filelists/files diff --git a/config/rootfiles/core/63/filelists/fireinfo b/config/rootfiles/oldcore/63/filelists/fireinfo similarity index 100% rename from config/rootfiles/core/63/filelists/fireinfo rename to config/rootfiles/oldcore/63/filelists/fireinfo diff --git a/config/rootfiles/oldcore/63/filelists/inetutils b/config/rootfiles/oldcore/63/filelists/inetutils new file mode 120000 index 0000000000..bcd329b8a6 --- /dev/null +++ b/config/rootfiles/oldcore/63/filelists/inetutils @@ -0,0 +1 @@ +../../../common/inetutils \ No newline at end of file diff --git a/config/rootfiles/core/64/meta b/config/rootfiles/oldcore/63/meta similarity index 100% rename from config/rootfiles/core/64/meta rename to config/rootfiles/oldcore/63/meta diff --git a/config/rootfiles/core/63/update.sh b/config/rootfiles/oldcore/63/update.sh similarity index 100% rename from config/rootfiles/core/63/update.sh rename to config/rootfiles/oldcore/63/update.sh diff --git a/config/rootfiles/core/64/exclude b/config/rootfiles/oldcore/64/exclude similarity index 100% rename from config/rootfiles/core/64/exclude rename to config/rootfiles/oldcore/64/exclude diff --git a/config/rootfiles/oldcore/64/filelists/daq b/config/rootfiles/oldcore/64/filelists/daq new file mode 120000 index 0000000000..d0e0956f28 --- /dev/null +++ b/config/rootfiles/oldcore/64/filelists/daq @@ -0,0 +1 @@ +../../../common/daq \ No newline at end of file diff --git a/config/rootfiles/core/64/filelists/files b/config/rootfiles/oldcore/64/filelists/files similarity index 100% rename from config/rootfiles/core/64/filelists/files rename to config/rootfiles/oldcore/64/filelists/files diff --git a/config/rootfiles/oldcore/64/filelists/snort b/config/rootfiles/oldcore/64/filelists/snort new file mode 120000 index 0000000000..9406ce01c7 --- /dev/null +++ b/config/rootfiles/oldcore/64/filelists/snort @@ -0,0 +1 @@ +../../../common/snort \ No newline at end of file diff --git a/config/rootfiles/oldcore/64/meta b/config/rootfiles/oldcore/64/meta new file mode 100644 index 0000000000..d547fa86fa --- /dev/null +++ b/config/rootfiles/oldcore/64/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/core/64/update.sh b/config/rootfiles/oldcore/64/update.sh similarity index 100% rename from config/rootfiles/core/64/update.sh rename to config/rootfiles/oldcore/64/update.sh diff --git a/config/rootfiles/oldcore/65/exclude b/config/rootfiles/oldcore/65/exclude new file mode 100644 index 0000000000..b6a8d1dfa9 --- /dev/null +++ b/config/rootfiles/oldcore/65/exclude @@ -0,0 +1,13 @@ +srv/web/ipfire/html/proxy.pac +etc/udev/rules.d/30-persistent-network.rules +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +var/updatecache +etc/localtime +var/ipfire/ovpn +etc/ssh/ssh_config +etc/ssh/sshd_config +etc/ssl/openssl.cnf +var/state/dhcp/dhcpd.leases diff --git a/config/rootfiles/oldcore/65/filelists/GeoIP b/config/rootfiles/oldcore/65/filelists/GeoIP new file mode 100644 index 0000000000..0258236c03 --- /dev/null +++ b/config/rootfiles/oldcore/65/filelists/GeoIP @@ -0,0 +1 @@ +usr/local/share/GeoIP/GeoIP.dat diff --git a/config/rootfiles/oldcore/65/filelists/daq b/config/rootfiles/oldcore/65/filelists/daq new file mode 120000 index 0000000000..d0e0956f28 --- /dev/null +++ b/config/rootfiles/oldcore/65/filelists/daq @@ -0,0 +1 @@ +../../../common/daq \ No newline at end of file diff --git a/config/rootfiles/oldcore/65/filelists/files b/config/rootfiles/oldcore/65/filelists/files new file mode 100644 index 0000000000..13788f1476 --- /dev/null +++ b/config/rootfiles/oldcore/65/filelists/files @@ -0,0 +1,12 @@ +etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf +etc/system-release +etc/issue +srv/web/ipfire/cgi-bin/logs.cgi/calamaris.dat +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/routing.cgi +srv/web/ipfire/cgi-bin/vpnmain.cgi +usr/local/bin/launch-ether-wake +usr/sbin/ovpn-ccd-convert +var/ipfire/general-functions.pl +var/ipfire/langs +var/ipfire/backup/include diff --git a/config/rootfiles/oldcore/65/meta b/config/rootfiles/oldcore/65/meta new file mode 100644 index 0000000000..d547fa86fa --- /dev/null +++ b/config/rootfiles/oldcore/65/meta @@ -0,0 +1 @@ +DEPS="" diff --git a/config/rootfiles/oldcore/65/update.sh b/config/rootfiles/oldcore/65/update.sh new file mode 100644 index 0000000000..88f5b3633d --- /dev/null +++ b/config/rootfiles/oldcore/65/update.sh @@ -0,0 +1,91 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire 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. # +# # +# IPFire 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 IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2012 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +# +# Remove old core updates from pakfire cache to save space... +core=65 +for (( i=1; i<=$core; i++ )) +do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# +#Stop services + +# +#Extract files +extract_files + +# +#Start services + +# +#Update Language cache +perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" + +# Convert OpenVPN RW connections. +/usr/sbin/ovpn-ccd-convert + +# Update crontab. +sed -i /var/spool/cron/root.orig \ + -e 's@^.*fcron.weekly.*$@\&nice(10),bootrun 47 2 \* \* 1\ttest -x /usr/local/bin/run-parts \&\& /usr/local/bin/run-parts /etc/fcron.weekly@' +fcrontab -z &>/dev/null + +# Reload apache configuration. +/etc/init.d/apache reload &>/dev/null + +#Rebuild module dep's +#arch=`uname -m` +#if [ ${arch::3} == "arm" ]; then +# depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1 +#else +# depmod -a 2.6.32.45-ipfire >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1 +# depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1 +#fi + + +#Rebuild initrd's because some compat-wireless modules are inside +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire +#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae +#fi +#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then +#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen +#fi + +sync + +# This update need a reboot... +#touch /var/run/need_reboot + +# +#Finish +/etc/init.d/fireinfo start +sendprofile +#Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/packages/alsa b/config/rootfiles/packages/alsa index c9db15008c..33e935bc1e 100644 --- a/config/rootfiles/packages/alsa +++ b/config/rootfiles/packages/alsa @@ -1,4 +1,3 @@ -etc/rc.d/init.d/alsa lib/firmware/aica_firmware.bin #lib/firmware/asihpi lib/firmware/asihpi/dsp2400.bin @@ -46,25 +45,22 @@ lib/firmware/emagic/emi26-bitstream.bin lib/firmware/emagic/emi26-firmware.bin lib/firmware/emagic/emi26-loader.bin lib/firmware/emagic/emi62-bitstream.bin -lib/firmware/emagic/emi62-firmware.bin lib/firmware/emagic/emi62-firmware-midi.bin lib/firmware/emagic/emi62-firmware-spdif.bin +lib/firmware/emagic/emi62-firmware.bin lib/firmware/emagic/emi62-loader.bin lib/firmware/emagic/license.txt #lib/firmware/emu lib/firmware/emu/audio_dock.fw lib/firmware/emu/emu0404.fw -lib/firmware/emu/emu1010b.fw lib/firmware/emu/emu1010_notebook.fw +lib/firmware/emu/emu1010b.fw lib/firmware/emu/hana.fw lib/firmware/emu/micro_dock.fw -lib/firmware/ess/maestro3_assp_kernel.fw -lib/firmware/ess/maestro3_assp_minisrc.fw -lib/firmware/korg/k1212.dsp #lib/firmware/mixart -lib/firmware/mixart/miXart8AES.xlx lib/firmware/mixart/miXart8.elf lib/firmware/mixart/miXart8.xlx +lib/firmware/mixart/miXart8AES.xlx lib/firmware/multiface_firmware.bin lib/firmware/multiface_firmware_rev11.bin #lib/firmware/pcxhr @@ -91,11 +87,6 @@ lib/firmware/pcxhr/xlxc882hr.dat lib/firmware/pcxhr/xlxc924.dat lib/firmware/pcxhr/xlxint.dat lib/firmware/rpm_firmware.bin -lib/firmware/sb16/alaw_main.csp -lib/firmware/sb16/ima_adpcm_capture.csp -lib/firmware/sb16/ima_adpcm_init.csp -lib/firmware/sb16/ima_adpcm_playback.csp -lib/firmware/sb16/mulaw_main.csp #lib/firmware/turtlebeach lib/firmware/turtlebeach/msndinit.bin lib/firmware/turtlebeach/msndperm.bin @@ -115,10 +106,6 @@ lib/firmware/vx/x1_1_vp4.xlx lib/firmware/vx/x1_1_vx2.xlx lib/firmware/vx/x1_1_vxp.xlx lib/firmware/vx/x1_2_v22.xlx -lib/firmware/yamaha/ds1_ctrl.fw -lib/firmware/yamaha/ds1_dsp.fw -lib/firmware/yamaha/ds1e_ctrl.fw -lib/firmware/yamaha/yss225_registers.bin lib/udev/rules.d/90-alsa-restore.rules usr/bin/aconnect usr/bin/alsaloop @@ -140,28 +127,28 @@ usr/bin/speaker-test #usr/include/alsa/asoundef.h #usr/include/alsa/asoundlib.h #usr/include/alsa/conf.h -#usr/include/alsa/control_external.h #usr/include/alsa/control.h +#usr/include/alsa/control_external.h #usr/include/alsa/error.h #usr/include/alsa/global.h #usr/include/alsa/hwdep.h #usr/include/alsa/iatomic.h #usr/include/alsa/input.h -#usr/include/alsa/mixer_abst.h #usr/include/alsa/mixer.h +#usr/include/alsa/mixer_abst.h #usr/include/alsa/output.h +#usr/include/alsa/pcm.h #usr/include/alsa/pcm_external.h #usr/include/alsa/pcm_extplug.h -#usr/include/alsa/pcm.h #usr/include/alsa/pcm_ioplug.h #usr/include/alsa/pcm_old.h #usr/include/alsa/pcm_plugin.h #usr/include/alsa/pcm_rate.h #usr/include/alsa/rawmidi.h -#usr/include/alsa/seq_event.h #usr/include/alsa/seq.h -#usr/include/alsa/seqmid.h +#usr/include/alsa/seq_event.h #usr/include/alsa/seq_midi_event.h +#usr/include/alsa/seqmid.h #usr/include/alsa/sound #usr/include/alsa/sound/asound_fm.h #usr/include/alsa/sound/emu10k1.h @@ -176,19 +163,14 @@ usr/include/alsa/sound/hdspm.h #usr/include/sys/asoundlib.h #usr/lib/alsa-lib #usr/lib/alsa-lib/smixer -#usr/lib/alsa-lib/smixer/smixer-ac97.a #usr/lib/alsa-lib/smixer/smixer-ac97.la usr/lib/alsa-lib/smixer/smixer-ac97.so -#usr/lib/alsa-lib/smixer/smixer-hda.a #usr/lib/alsa-lib/smixer/smixer-hda.la usr/lib/alsa-lib/smixer/smixer-hda.so -#usr/lib/alsa-lib/smixer/smixer-python.a #usr/lib/alsa-lib/smixer/smixer-python.la usr/lib/alsa-lib/smixer/smixer-python.so -#usr/lib/alsa-lib/smixer/smixer-sbase.a #usr/lib/alsa-lib/smixer/smixer-sbase.la usr/lib/alsa-lib/smixer/smixer-sbase.so -#usr/lib/libasound.a #usr/lib/libasound.la usr/lib/libasound.so usr/lib/libasound.so.2 @@ -203,10 +185,10 @@ usr/local/share/alsa #usr/local/share/alsa/firmware/hdsploader/multiface_firmware_rev11.bin usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin #usr/local/share/alsa/firmware/mixartloader -#usr/local/share/alsa/firmware/mixartloader/miXart8AES.xlx +#usr/local/share/alsa/firmware/mixartloader/miXart.conf #usr/local/share/alsa/firmware/mixartloader/miXart8.elf #usr/local/share/alsa/firmware/mixartloader/miXart8.xlx -#usr/local/share/alsa/firmware/mixartloader/miXart.conf +#usr/local/share/alsa/firmware/mixartloader/miXart8AES.xlx #usr/local/share/alsa/firmware/pcxhrloader #usr/local/share/alsa/firmware/pcxhrloader/b321_512.b56 #usr/local/share/alsa/firmware/pcxhrloader/d321_512.d56 @@ -221,13 +203,13 @@ usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin #usr/local/share/alsa/firmware/pcxhrloader/dspe882.e56 #usr/local/share/alsa/firmware/pcxhrloader/dspe924.e56 #usr/local/share/alsa/firmware/pcxhrloader/e321_512.e56 +#usr/local/share/alsa/firmware/pcxhrloader/pcxhr.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr0.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr1.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr2.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr3.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr4.conf #usr/local/share/alsa/firmware/pcxhrloader/pcxhr5.conf -#usr/local/share/alsa/firmware/pcxhrloader/pcxhr.conf #usr/local/share/alsa/firmware/pcxhrloader/xc_1_882.dat #usr/local/share/alsa/firmware/pcxhrloader/xi_1_882.dat #usr/local/share/alsa/firmware/pcxhrloader/xlxc1222e.dat @@ -240,17 +222,17 @@ usr/local/share/alsa/firmware/hdsploader/rpm_firmware.bin #usr/local/share/alsa/firmware/usx2yloader #usr/local/share/alsa/firmware/usx2yloader/tascam_loader.ihx #usr/local/share/alsa/firmware/usx2yloader/us122.conf -#usr/local/share/alsa/firmware/usx2yloader/us122fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us122.prepad #usr/local/share/alsa/firmware/usx2yloader/us122.rbt +#usr/local/share/alsa/firmware/usx2yloader/us122fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us224.conf -#usr/local/share/alsa/firmware/usx2yloader/us224fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us224.prepad #usr/local/share/alsa/firmware/usx2yloader/us224.rbt +#usr/local/share/alsa/firmware/usx2yloader/us224fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us428.conf -#usr/local/share/alsa/firmware/usx2yloader/us428fw.ihx #usr/local/share/alsa/firmware/usx2yloader/us428.prepad #usr/local/share/alsa/firmware/usx2yloader/us428.rbt +#usr/local/share/alsa/firmware/usx2yloader/us428fw.ihx #usr/local/share/alsa/firmware/vxloader #usr/local/share/alsa/firmware/vxloader/bd56002.boot #usr/local/share/alsa/firmware/vxloader/bd563s3.boot @@ -274,23 +256,23 @@ usr/sbin/alsactl #usr/share/aclocal/alsa.m4 usr/share/alsa #usr/share/alsa/alsa.conf +#usr/share/alsa/alsa.conf.d +usr/share/alsa/alsa.conf.d/README #usr/share/alsa/cards #usr/share/alsa/cards/AACI.conf -#usr/share/alsa/cards/aliases.alisp -#usr/share/alsa/cards/aliases.conf -#usr/share/alsa/cards/ATIIXP.conf #usr/share/alsa/cards/ATIIXP-MODEM.conf #usr/share/alsa/cards/ATIIXP-SPDMA.conf +#usr/share/alsa/cards/ATIIXP.conf #usr/share/alsa/cards/AU8810.conf #usr/share/alsa/cards/AU8820.conf #usr/share/alsa/cards/AU8830.conf -#usr/share/alsa/cards/Audigy2.conf #usr/share/alsa/cards/Audigy.conf +#usr/share/alsa/cards/Audigy2.conf #usr/share/alsa/cards/Aureon51.conf #usr/share/alsa/cards/Aureon71.conf #usr/share/alsa/cards/CA0106.conf -#usr/share/alsa/cards/CMI8338.conf #usr/share/alsa/cards/CMI8338-SWIEC.conf +#usr/share/alsa/cards/CMI8338.conf #usr/share/alsa/cards/CMI8738-MC6.conf #usr/share/alsa/cards/CMI8738-MC8.conf #usr/share/alsa/cards/CMI8788.conf @@ -300,14 +282,17 @@ usr/share/alsa #usr/share/alsa/cards/ENS1370.conf #usr/share/alsa/cards/ENS1371.conf #usr/share/alsa/cards/ES1968.conf +#usr/share/alsa/cards/Echo_Echo3G.conf #usr/share/alsa/cards/FM801.conf +#usr/share/alsa/cards/FWSpeakers.conf +#usr/share/alsa/cards/FireWave.conf #usr/share/alsa/cards/GUS.conf #usr/share/alsa/cards/HDA-Intel.conf #usr/share/alsa/cards/ICE1712.conf #usr/share/alsa/cards/ICE1724.conf -#usr/share/alsa/cards/ICH4.conf -#usr/share/alsa/cards/ICH.conf #usr/share/alsa/cards/ICH-MODEM.conf +#usr/share/alsa/cards/ICH.conf +#usr/share/alsa/cards/ICH4.conf #usr/share/alsa/cards/Maestro3.conf #usr/share/alsa/cards/NFORCE.conf #usr/share/alsa/cards/PC-Speaker.conf @@ -324,13 +309,15 @@ usr/share/alsa #usr/share/alsa/cards/TRID4DWAVENX.conf #usr/share/alsa/cards/USB-Audio.conf #usr/share/alsa/cards/VIA686A.conf -#usr/share/alsa/cards/VIA8233A.conf #usr/share/alsa/cards/VIA8233.conf +#usr/share/alsa/cards/VIA8233A.conf #usr/share/alsa/cards/VIA8237.conf #usr/share/alsa/cards/VX222.conf -#usr/share/alsa/cards/VXPocket440.conf #usr/share/alsa/cards/VXPocket.conf +#usr/share/alsa/cards/VXPocket440.conf #usr/share/alsa/cards/YMF744.conf +#usr/share/alsa/cards/aliases.alisp +#usr/share/alsa/cards/aliases.conf #usr/share/alsa/init #usr/share/alsa/init/00main #usr/share/alsa/init/default @@ -361,8 +348,8 @@ usr/share/alsa #usr/share/alsa/speaker-test/sample_map.csv #usr/share/locale/de/LC_MESSAGES/alsa-utils.mo #usr/share/locale/fr/LC_MESSAGES/alsa-utils.mo -#usr/share/locale/ja/LC_MESSAGES/alsaconf.mo #usr/share/locale/ja/LC_MESSAGES/alsa-utils.mo +#usr/share/locale/ja/LC_MESSAGES/alsaconf.mo #usr/share/locale/ru/LC_MESSAGES/alsaconf.mo #usr/share/man/fr/man8/alsaconf.8 #usr/share/man/man1/aconnect.1 @@ -392,3 +379,16 @@ usr/share/sounds/alsa #usr/share/sounds/alsa/Side_Left.wav #usr/share/sounds/alsa/Side_Right.wav var/lib/alsa +etc/rc.d/init.d/alsa +lib/firmware/ess/maestro3_assp_kernel.fw +lib/firmware/ess/maestro3_assp_minisrc.fw +lib/firmware/korg/k1212.dsp +lib/firmware/sb16/alaw_main.csp +lib/firmware/sb16/ima_adpcm_capture.csp +lib/firmware/sb16/ima_adpcm_init.csp +lib/firmware/sb16/ima_adpcm_playback.csp +lib/firmware/sb16/mulaw_main.csp +lib/firmware/yamaha/ds1_ctrl.fw +lib/firmware/yamaha/ds1_dsp.fw +lib/firmware/yamaha/ds1e_ctrl.fw +lib/firmware/yamaha/yss225_registers.bin diff --git a/config/rootfiles/packages/applejuice b/config/rootfiles/packages/applejuice deleted file mode 100644 index ca14deeb9b..0000000000 --- a/config/rootfiles/packages/applejuice +++ /dev/null @@ -1,141 +0,0 @@ -etc/httpd/conf/vhosts.d/phpaj.conf -etc/rc.d/init.d/applejuice -opt/applejuice -opt/applejuice/ajcore.jar -opt/applejuice/libajnetmask.so -srv/web/phpaj -srv/web/phpaj/export -srv/web/phpaj/export/Default.php -srv/web/phpaj/export/ajl.php -srv/web/phpaj/export/bb.php -srv/web/phpaj/export/html.php -srv/web/phpaj/index.php -srv/web/phpaj/language -srv/web/phpaj/language/deutsch.xml -srv/web/phpaj/language/english.xml -srv/web/phpaj/main -srv/web/phpaj/main/classes -srv/web/phpaj/main/classes/class_core.php -srv/web/phpaj/main/classes/class_downloads.php -srv/web/phpaj/main/classes/class_icons.php -srv/web/phpaj/main/classes/class_search.php -srv/web/phpaj/main/classes/class_server.php -srv/web/phpaj/main/classes/class_share.php -srv/web/phpaj/main/classes/class_uploads.php -srv/web/phpaj/main/directory.php -srv/web/phpaj/main/dl_parts.php -srv/web/phpaj/main/dl_users.php -srv/web/phpaj/main/downloads.php -srv/web/phpaj/main/extras.php -srv/web/phpaj/main/index.php -srv/web/phpaj/main/progressbar.php -srv/web/phpaj/main/search.php -srv/web/phpaj/main/server.php -srv/web/phpaj/main/settings.php -srv/web/phpaj/main/shareexport.php -srv/web/phpaj/main/sharefiles.php -srv/web/phpaj/main/shares.php -srv/web/phpaj/main/showparts.php -srv/web/phpaj/main/start.php -srv/web/phpaj/main/status.php -srv/web/phpaj/main/subs.php -srv/web/phpaj/main/top.php -srv/web/phpaj/main/uploads.php -srv/web/phpaj/minigui -srv/web/phpaj/minigui/downloads.php -srv/web/phpaj/minigui/index.php -srv/web/phpaj/minigui/minigui.php -srv/web/phpaj/plugins -srv/web/phpaj/plugins/ajl -srv/web/phpaj/plugins/ajl/ajl.php -srv/web/phpaj/plugins/ajl/icon.gif -srv/web/phpaj/plugins/ajl/info.php -srv/web/phpaj/plugins/register.php -srv/web/phpaj/plugins/sharestats -srv/web/phpaj/plugins/sharestats/info.php -srv/web/phpaj/plugins/sharestats/sharestats.php -srv/web/phpaj/plugins/versionchecker -srv/web/phpaj/plugins/versionchecker/info.php -srv/web/phpaj/plugins/versionchecker/versionchecker.php -srv/web/phpaj/plugins/wizard -srv/web/phpaj/plugins/wizard/icon.gif -srv/web/phpaj/plugins/wizard/info.php -srv/web/phpaj/plugins/wizard/wizard.php -srv/web/phpaj/plugins/wizard/wizard.xml -srv/web/phpaj/style -srv/web/phpaj/style/default -srv/web/phpaj/style/default/default_blue.css -srv/web/phpaj/style/default/default_green.css -srv/web/phpaj/style/default/default_grey.css -srv/web/phpaj/style/default/info.png -srv/web/phpaj/style/default/minus.png -srv/web/phpaj/style/default/os -srv/web/phpaj/style/default/os/bsd.png -srv/web/phpaj/style/default/os/linux.png -srv/web/phpaj/style/default/os/mac.png -srv/web/phpaj/style/default/os/na.png -srv/web/phpaj/style/default/os/netware.png -srv/web/phpaj/style/default/os/os2.png -srv/web/phpaj/style/default/os/solaris.png -srv/web/phpaj/style/default/os/win.png -srv/web/phpaj/style/default/plus.png -srv/web/phpaj/style/default/server -srv/web/phpaj/style/default/server/alt.gif -srv/web/phpaj/style/default/server/neu.gif -srv/web/phpaj/style/default/server/verbinde.gif -srv/web/phpaj/style/default/server/verbunden.gif -srv/web/phpaj/style/default/stop.png -srv/web/phpaj/style/default/tabs -srv/web/phpaj/style/default/tabs/download.gif -srv/web/phpaj/style/default/tabs/extras.gif -srv/web/phpaj/style/default/tabs/kill.gif -srv/web/phpaj/style/default/tabs/logout.gif -srv/web/phpaj/style/default/tabs/meinshare.gif -srv/web/phpaj/style/default/tabs/optionen.gif -srv/web/phpaj/style/default/tabs/server.gif -srv/web/phpaj/style/default/tabs/start.gif -srv/web/phpaj/style/default/tabs/suchen.gif -srv/web/phpaj/style/default/tabs/upload.gif -srv/web/phpaj/style/default/user -srv/web/phpaj/style/default/user/direct.png -srv/web/phpaj/style/default/user/indirect.png -srv/web/phpaj/style/default/user/tryindirect.png -srv/web/phpaj/style/default/user/unknown.png -srv/web/phpaj/style/default/warnung.gif -srv/web/phpaj/style/default/x.png -srv/web/phpaj/style/default_blue.php -srv/web/phpaj/style/default_green.php -srv/web/phpaj/style/default_grey.php -srv/web/phpaj/style/new -srv/web/phpaj/style/new.php -srv/web/phpaj/style/new/bg.png -srv/web/phpaj/style/new/new.css -srv/web/phpaj/style/tango -srv/web/phpaj/style/tango.php -srv/web/phpaj/style/tango/bg.png -srv/web/phpaj/style/tango/icons -srv/web/phpaj/style/tango/icons/direct.png -srv/web/phpaj/style/tango/icons/down.png -srv/web/phpaj/style/tango/icons/empty.png -srv/web/phpaj/style/tango/icons/extras.png -srv/web/phpaj/style/tango/icons/home.png -srv/web/phpaj/style/tango/icons/indirect.png -srv/web/phpaj/style/tango/icons/info.png -srv/web/phpaj/style/tango/icons/kill.png -srv/web/phpaj/style/tango/icons/logout.png -srv/web/phpaj/style/tango/icons/minus.png -srv/web/phpaj/style/tango/icons/plus.png -srv/web/phpaj/style/tango/icons/preferences.png -srv/web/phpaj/style/tango/icons/search.png -srv/web/phpaj/style/tango/icons/server.png -srv/web/phpaj/style/tango/icons/share.png -srv/web/phpaj/style/tango/icons/stop.png -srv/web/phpaj/style/tango/icons/up.png -srv/web/phpaj/style/tango/icons/warning.png -srv/web/phpaj/style/tango/icons/x.png -srv/web/phpaj/style/tango/tango.css -srv/web/phpaj/vars.php -usr/local/bin/applejuicectrl -var/ipfire/applejuice -var/ipfire/applejuice/settings -#usr/lib/libajnetmask.so diff --git a/config/rootfiles/packages/asterisk b/config/rootfiles/packages/asterisk index 7e7b25e963..f7b6cde9ab 100644 --- a/config/rootfiles/packages/asterisk +++ b/config/rootfiles/packages/asterisk @@ -156,8 +156,6 @@ usr/lib/asterisk/modules/app_channelredirect.so usr/lib/asterisk/modules/app_chanspy.so usr/lib/asterisk/modules/app_confbridge.so usr/lib/asterisk/modules/app_controlplayback.so -usr/lib/asterisk/modules/app_dahdibarge.so -usr/lib/asterisk/modules/app_dahdiras.so usr/lib/asterisk/modules/app_db.so usr/lib/asterisk/modules/app_dial.so usr/lib/asterisk/modules/app_dictate.so @@ -169,7 +167,6 @@ usr/lib/asterisk/modules/app_echo.so usr/lib/asterisk/modules/app_exec.so usr/lib/asterisk/modules/app_externalivr.so usr/lib/asterisk/modules/app_festival.so -usr/lib/asterisk/modules/app_flash.so usr/lib/asterisk/modules/app_followme.so usr/lib/asterisk/modules/app_forkcdr.so usr/lib/asterisk/modules/app_getcpeid.so @@ -177,7 +174,6 @@ usr/lib/asterisk/modules/app_ices.so usr/lib/asterisk/modules/app_image.so usr/lib/asterisk/modules/app_ivrdemo.so usr/lib/asterisk/modules/app_macro.so -usr/lib/asterisk/modules/app_meetme.so usr/lib/asterisk/modules/app_milliwatt.so usr/lib/asterisk/modules/app_minivm.so usr/lib/asterisk/modules/app_mixmonitor.so @@ -186,7 +182,6 @@ usr/lib/asterisk/modules/app_mp3.so usr/lib/asterisk/modules/app_mysql.so usr/lib/asterisk/modules/app_nbscat.so usr/lib/asterisk/modules/app_originate.so -usr/lib/asterisk/modules/app_page.so usr/lib/asterisk/modules/app_parkandannounce.so usr/lib/asterisk/modules/app_playback.so usr/lib/asterisk/modules/app_playtones.so @@ -237,7 +232,6 @@ usr/lib/asterisk/modules/chan_agent.so usr/lib/asterisk/modules/chan_alsa.so usr/lib/asterisk/modules/chan_bridge.so usr/lib/asterisk/modules/chan_capi.so -usr/lib/asterisk/modules/chan_dahdi.so usr/lib/asterisk/modules/chan_iax2.so usr/lib/asterisk/modules/chan_local.so usr/lib/asterisk/modules/chan_mgcp.so @@ -252,10 +246,10 @@ usr/lib/asterisk/modules/chan_unistim.so usr/lib/asterisk/modules/codec_a_mu.so usr/lib/asterisk/modules/codec_adpcm.so usr/lib/asterisk/modules/codec_alaw.so -usr/lib/asterisk/modules/codec_dahdi.so usr/lib/asterisk/modules/codec_g722.so usr/lib/asterisk/modules/codec_g726.so usr/lib/asterisk/modules/codec_gsm.so +usr/lib/asterisk/modules/codec_ilbc.so usr/lib/asterisk/modules/codec_lpc10.so usr/lib/asterisk/modules/codec_ulaw.so usr/lib/asterisk/modules/format_g719.so @@ -351,18 +345,32 @@ usr/lib/asterisk/modules/res_smdi.so usr/lib/asterisk/modules/res_snmp.so usr/lib/asterisk/modules/res_speech.so usr/lib/asterisk/modules/res_stun_monitor.so -usr/lib/asterisk/modules/res_timing_dahdi.so usr/lib/asterisk/modules/res_timing_pthread.so +usr/lib/asterisk/modules/res_timing_timerfd.so #usr/lib/pkgconfig/asterisk.pc +usr/sbin/aelparse +usr/sbin/astcanary usr/sbin/asterisk usr/sbin/astgenkey +usr/sbin/astman usr/sbin/autosupport +usr/sbin/check_expr +usr/sbin/check_expr2 +usr/sbin/conf2ael +usr/sbin/hashtest +usr/sbin/hashtest2 +usr/sbin/muted usr/sbin/rasterisk +usr/sbin/refcounter usr/sbin/safe_asterisk +usr/sbin/smsq +usr/sbin/stereorize +usr/sbin/streamplayer #usr/share/man/man8/asterisk.8 #usr/share/man/man8/astgenkey.8 #usr/share/man/man8/autosupport.8 #usr/share/man/man8/safe_asterisk.8 +#var/ipfire/asterisk var/ipfire/asterisk/adsi.conf var/ipfire/asterisk/agents.conf var/ipfire/asterisk/ais.conf @@ -2712,3 +2720,6 @@ var/spool/asterisk/voicemail/default/1234/INBOX var/spool/asterisk/voicemail/default/1234/en var/spool/asterisk/voicemail/default/1234/en/busy.gsm var/spool/asterisk/voicemail/default/1234/en/unavail.gsm +etc/rc.d/init.d/asterisk +srv/web/ipfire/cgi-bin/asterisk +var/ipfire/menu.d/EX-asterisk.menu diff --git a/config/rootfiles/packages/bluetooth b/config/rootfiles/packages/bluetooth index 278cbea287..267e40ea1a 100644 --- a/config/rootfiles/packages/bluetooth +++ b/config/rootfiles/packages/bluetooth @@ -6,7 +6,7 @@ etc/bluetooth/main.conf etc/bluetooth/network.conf etc/bluetooth/rfcomm.conf etc/dbus-1/system.d/bluetooth.conf -etc/udev/rules.d/24-bluetooth.rules +#lib/udev/rules.d/24-bluetooth.rules lib/firmware/BCM-LEGAL.txt lib/firmware/BCM2033-FW.bin lib/firmware/BCM2033-MD.hex diff --git a/config/rootfiles/packages/centerim b/config/rootfiles/packages/centerim deleted file mode 100644 index 26f9b48f1a..0000000000 --- a/config/rootfiles/packages/centerim +++ /dev/null @@ -1,10 +0,0 @@ -usr/bin/centerim -usr/bin/cicqconv -#usr/share/centerim -usr/share/centerim/email.wav -usr/share/centerim/msg.wav -usr/share/centerim/offline.wav -usr/share/centerim/online.wav -usr/share/centerim/sms.wav -usr/share/centerim/url.wav -#usr/share/man/man1/cicqconv.1 diff --git a/config/rootfiles/packages/cifs-utils b/config/rootfiles/packages/cifs-utils new file mode 100644 index 0000000000..e26e37e88a --- /dev/null +++ b/config/rootfiles/packages/cifs-utils @@ -0,0 +1,3 @@ +sbin/mount.cifs +#usr/local/include/cifsidmap.h +#usr/local/share/man/man8/mount.cifs.8 diff --git a/config/rootfiles/packages/cups b/config/rootfiles/packages/cups index 5f90047908..742cd8fbba 100644 --- a/config/rootfiles/packages/cups +++ b/config/rootfiles/packages/cups @@ -978,6 +978,7 @@ usr/share/doc/cups/robots.txt #usr/share/locale/ja/cups_ja.po #usr/share/locale/ko/cups_ko.po #usr/share/locale/nl/cups_nl.po +#usr/share/locale/no #usr/share/locale/no/cups_no.po #usr/share/locale/pl/cups_pl.po #usr/share/locale/pt/cups_pt.po diff --git a/config/rootfiles/packages/dahdi b/config/rootfiles/packages/dahdi deleted file mode 100644 index 8e7b8d7cef..0000000000 --- a/config/rootfiles/packages/dahdi +++ /dev/null @@ -1,127 +0,0 @@ -etc/dahdi -#etc/hotplug -#etc/hotplug/usb -etc/hotplug/usb/xpp_fxloader -etc/hotplug/usb/xpp_fxloader.usermap -etc/modprobe.d/dahdi -etc/modprobe.d/dahdi.blacklist -etc/rc.d/init.d/dahdi -etc/rc.d/rc0.d/K30dahdi -etc/rc.d/rc3.d/S15dahdi -etc/rc.d/rc6.d/K30dahdi -etc/udev/rules.d/dahdi.rules -etc/udev/rules.d/xpp.rules -lib/firmware/.dahdi-fw-oct6114-064-1.05.01 -lib/firmware/.dahdi-fw-oct6114-128-1.05.01 -lib/firmware/.dahdi-fw-tc400m-MR6.12 -lib/firmware/dahdi-fw-oct6114-064.bin -lib/firmware/dahdi-fw-oct6114-128.bin -lib/firmware/dahdi-fw-tc400m.bin -#usr/include/dahdi -#usr/include/dahdi/dahdi_config.h -#usr/include/dahdi/fasthdlc.h -#usr/include/dahdi/kernel.h -#usr/include/dahdi/tonezone.h -#usr/include/dahdi/user.h -#usr/include/dahdi/wctdm_user.h -#usr/lib/hotplug -#usr/lib/hotplug/firmware -#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-064-1.05.01 -#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-128-1.05.01 -#usr/lib/hotplug/firmware/.dahdi-fw-tc400m-MR6.12 -#usr/lib/hotplug/firmware/dahdi-fw-oct6114-064.bin -#usr/lib/hotplug/firmware/dahdi-fw-oct6114-128.bin -#usr/lib/hotplug/firmware/dahdi-fw-tc400m.bin -#usr/lib/libtonezone.a -usr/lib/libtonezone.so -usr/lib/libtonezone.so.1 -usr/lib/libtonezone.so.1.0 -usr/lib/libtonezone.so.2 -usr/lib/libtonezone.so.2.0 -#usr/lib/perl5/site_perl/5.12.3/Dahdi -usr/lib/perl5/site_perl/5.12.3/Dahdi.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Chans.pm -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Chandahdi.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Modules.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/System.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Unicall.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Users.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Xpporder.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Params.pm -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware -usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/PCI.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/USB.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Span.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Utils.pm -#usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Line.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Mpp.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xbus.pm -usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xpd.pm -usr/sbin/astribank_allow -usr/sbin/astribank_hexload -usr/sbin/astribank_is_starting -usr/sbin/astribank_tool -usr/sbin/dahdi_cfg -usr/sbin/dahdi_genconf -usr/sbin/dahdi_hardware -usr/sbin/dahdi_monitor -usr/sbin/dahdi_registration -usr/sbin/dahdi_scan -usr/sbin/dahdi_speed -usr/sbin/dahdi_test -usr/sbin/dahdi_tool -usr/sbin/fpga_load -usr/sbin/fxotune -usr/sbin/lsdahdi -usr/sbin/sethdlc -usr/sbin/twinstar -usr/sbin/xpp_blink -usr/sbin/xpp_sync -#usr/share/dahdi -usr/share/dahdi/FPGA_1141.hex -usr/share/dahdi/FPGA_1151.hex -usr/share/dahdi/FPGA_1161.hex -usr/share/dahdi/FPGA_FXS.hex -usr/share/dahdi/PIC_TYPE_1.hex -usr/share/dahdi/PIC_TYPE_2.hex -usr/share/dahdi/PIC_TYPE_3.hex -usr/share/dahdi/PIC_TYPE_4.hex -usr/share/dahdi/USB_FW.hex -usr/share/dahdi/XppConfig.pm -usr/share/dahdi/astribank_hook -usr/share/dahdi/init_card_1_30 -usr/share/dahdi/init_card_2_30 -usr/share/dahdi/init_card_3_30 -usr/share/dahdi/init_card_4_30 -usr/share/dahdi/waitfor_xpds -usr/share/dahdi/xpp_fxloader -#usr/share/man/man8/astribank_allow.8 -#usr/share/man/man8/astribank_hexload.8 -#usr/share/man/man8/astribank_is_starting.8 -#usr/share/man/man8/astribank_tool.8 -#usr/share/man/man8/dahdi_cfg.8 -#usr/share/man/man8/dahdi_genconf.8 -#usr/share/man/man8/dahdi_hardware.8 -#usr/share/man/man8/dahdi_monitor.8 -#usr/share/man/man8/dahdi_registration.8 -#usr/share/man/man8/dahdi_scan.8 -#usr/share/man/man8/dahdi_test.8 -#usr/share/man/man8/dahdi_tool.8 -#usr/share/man/man8/fpga_load.8 -#usr/share/man/man8/fxotune.8 -#usr/share/man/man8/lsdahdi.8 -#usr/share/man/man8/twinstar.8 -#usr/share/man/man8/xpp_blink.8 -#usr/share/man/man8/xpp_sync.8 -#var/ipfire/asterisk -#var/ipfire/asterisk/dahdi -var/ipfire/asterisk/dahdi/genconf_parameters -var/ipfire/asterisk/dahdi/init.conf -var/ipfire/asterisk/dahdi/modules -var/ipfire/asterisk/dahdi/system.conf diff --git a/config/rootfiles/packages/directfb b/config/rootfiles/packages/directfb deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/config/rootfiles/packages/ebtables b/config/rootfiles/packages/ebtables index 65c346bdad..7e10eee41f 100644 --- a/config/rootfiles/packages/ebtables +++ b/config/rootfiles/packages/ebtables @@ -6,11 +6,13 @@ usr/lib/libebt_among.so usr/lib/libebt_arp.so usr/lib/libebt_arpreply.so usr/lib/libebt_ip.so +usr/lib/libebt_ip6.so usr/lib/libebt_limit.so usr/lib/libebt_log.so usr/lib/libebt_mark.so usr/lib/libebt_mark_m.so usr/lib/libebt_nat.so +usr/lib/libebt_nflog.so usr/lib/libebt_pkttype.so usr/lib/libebt_redirect.so usr/lib/libebt_standard.so diff --git a/config/rootfiles/packages/elinks b/config/rootfiles/packages/elinks index 3e71dc9a5a..45c83b1768 100644 --- a/config/rootfiles/packages/elinks +++ b/config/rootfiles/packages/elinks @@ -2,6 +2,9 @@ usr/local/bin/elinks #usr/local/etc #usr/local/etc/elinks usr/local/etc/elinks/elinks.conf +#usr/local/share/locale/af +#usr/local/share/locale/af/LC_MESSAGES +#usr/local/share/locale/af/LC_MESSAGES/elinks.mo #usr/local/share/locale/be #usr/local/share/locale/be/LC_MESSAGES #usr/local/share/locale/be/LC_MESSAGES/elinks.mo diff --git a/config/rootfiles/packages/flac b/config/rootfiles/packages/flac index d5ca870976..e841bbff87 100644 --- a/config/rootfiles/packages/flac +++ b/config/rootfiles/packages/flac @@ -28,8 +28,6 @@ usr/lib/libFLAC.so.8 usr/lib/libFLAC.so.8.2.0 #usr/lib/pkgconfig/flac++.pc #usr/lib/pkgconfig/flac.pc -#usr/man/man1/flac.1 -#usr/man/man1/metaflac.1 #usr/share/aclocal/libFLAC++.m4 #usr/share/aclocal/libFLAC.m4 #usr/share/doc/flac-1.2.1 @@ -312,3 +310,5 @@ usr/lib/libFLAC.so.8.2.0 #usr/share/doc/flac-1.2.1/html/ru/index.html #usr/share/doc/flac-1.2.1/html/ru/links.html #usr/share/doc/flac-1.2.1/html/ru/news.html +#usr/share/man/man1/flac.1 +#usr/share/man/man1/metaflac.1 diff --git a/config/rootfiles/packages/git b/config/rootfiles/packages/git index b92070e074..ada23da83a 100644 --- a/config/rootfiles/packages/git +++ b/config/rootfiles/packages/git @@ -9,8 +9,21 @@ usr/lib/perl5/site_perl/5.12.3/Error.pm usr/lib/perl5/site_perl/5.12.3/Git usr/lib/perl5/site_perl/5.12.3/Git.pm usr/lib/perl5/site_perl/5.12.3/Git/I18N.pm -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Git -#usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi/auto/Git/.packlist +#usr/lib/perl5/site_perl/5.12.3/Git/IndexInfo.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN +#usr/lib/perl5/site_perl/5.12.3/Git/SVN.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Editor.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Fetcher.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/GlobSpec.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Log.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Memoize/YAML.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Migration.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Prompt.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Ra.pm +#usr/lib/perl5/site_perl/5.12.3/Git/SVN/Utils.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Git/.packlist usr/lib/python2.7/site-packages/git_remote_helpers #usr/lib/python2.7/site-packages/git_remote_helpers-0.1.0-py2.7.egg-info usr/lib/python2.7/site-packages/git_remote_helpers/__init__.py @@ -54,10 +67,12 @@ usr/libexec/git-core/git-cherry-pick usr/libexec/git-core/git-citool usr/libexec/git-core/git-clean usr/libexec/git-core/git-clone +usr/libexec/git-core/git-column usr/libexec/git-core/git-commit usr/libexec/git-core/git-commit-tree usr/libexec/git-core/git-config usr/libexec/git-core/git-count-objects +usr/libexec/git-core/git-credential usr/libexec/git-core/git-credential-cache usr/libexec/git-core/git-credential-cache--daemon usr/libexec/git-core/git-credential-store @@ -122,6 +137,7 @@ usr/libexec/git-core/git-mktree usr/libexec/git-core/git-mv usr/libexec/git-core/git-name-rev usr/libexec/git-core/git-notes +usr/libexec/git-core/git-p4 usr/libexec/git-core/git-pack-objects usr/libexec/git-core/git-pack-redundant usr/libexec/git-core/git-pack-refs @@ -149,6 +165,7 @@ usr/libexec/git-core/git-remote-ftps usr/libexec/git-core/git-remote-http usr/libexec/git-core/git-remote-https usr/libexec/git-core/git-remote-testgit +#usr/libexec/git-core/git-remote-testsvn usr/libexec/git-core/git-repack usr/libexec/git-core/git-replace usr/libexec/git-core/git-repo-config @@ -195,7 +212,9 @@ usr/libexec/git-core/git-write-tree usr/libexec/git-core/mergetools usr/libexec/git-core/mergetools/araxis usr/libexec/git-core/mergetools/bc3 +usr/libexec/git-core/mergetools/codecompare usr/libexec/git-core/mergetools/defaults +usr/libexec/git-core/mergetools/deltawalker usr/libexec/git-core/mergetools/diffuse usr/libexec/git-core/mergetools/ecmerge usr/libexec/git-core/mergetools/emerge @@ -298,7 +317,23 @@ usr/share/git-core/templates/info/exclude #usr/share/gitweb/static/git-logo.png #usr/share/gitweb/static/gitweb.css #usr/share/gitweb/static/gitweb.js +#usr/share/locale/da/LC_MESSAGES/git.mo +#usr/share/locale/de/LC_MESSAGES/git.mo #usr/share/locale/is/LC_MESSAGES/git.mo +#usr/share/locale/it/LC_MESSAGES/git.mo +#usr/share/locale/nl/LC_MESSAGES/git.mo +#usr/share/locale/pt_PT +#usr/share/locale/pt_PT/LC_MESSAGES +#usr/share/locale/pt_PT/LC_MESSAGES/git.mo +#usr/share/locale/sv/LC_MESSAGES/git.mo +#usr/share/locale/vi/LC_MESSAGES/git.mo +#usr/share/locale/zh_CN/LC_MESSAGES/git.mo #usr/share/man/man3/Git.3 #usr/share/man/man3/Git::I18N.3 +#usr/share/man/man3/Git::SVN::Editor.3 +#usr/share/man/man3/Git::SVN::Fetcher.3 +#usr/share/man/man3/Git::SVN::Memoize::YAML.3 +#usr/share/man/man3/Git::SVN::Prompt.3 +#usr/share/man/man3/Git::SVN::Ra.3 +#usr/share/man/man3/Git::SVN::Utils.3 #usr/share/man/man3/private-Error.3 diff --git a/config/rootfiles/packages/gnump3d b/config/rootfiles/packages/gnump3d index f7b18a7c9a..450adfb49a 100644 --- a/config/rootfiles/packages/gnump3d +++ b/config/rootfiles/packages/gnump3d @@ -1,9 +1,9 @@ +etc/fcron.daily/gnump3d-index #etc/gnump3d etc/gnump3d/file.types etc/gnump3d/gnump3d.conf etc/gnump3d/mime.types etc/rc.d/init.d/gnump3d -etc/fcron.daily/gnump3d-index usr/bin/gnump3d usr/bin/gnump3d-index usr/bin/gnump3d-top @@ -43,7 +43,8 @@ usr/lib/perl5/5.12.3/gnump3d/readtags.pm usr/lib/perl5/5.12.3/gnump3d/sorting.pm usr/lib/perl5/5.12.3/gnump3d/tagcache.pm usr/lib/perl5/5.12.3/gnump3d/url.pm -usr/lib/perl5/5.12.3/Pod +#usr/local/man +#usr/local/man/man1 #usr/local/man/man1/gnump3d-index.1 #usr/local/man/man1/gnump3d-top.1 #usr/local/man/man1/gnump3d.1 @@ -53,7 +54,6 @@ usr/share/gnump3d #usr/share/gnump3d/Avalon/AUTHOR #usr/share/gnump3d/Avalon/COPYING.html #usr/share/gnump3d/Avalon/base.css -#usr/share/gnump3d/Avalon/bug.html #usr/share/gnump3d/Avalon/error.html #usr/share/gnump3d/Avalon/gnump3d-logo.jpg #usr/share/gnump3d/Avalon/html_footer.tmpl @@ -77,7 +77,6 @@ usr/share/gnump3d #usr/share/gnump3d/BlueBox/AUTHOR #usr/share/gnump3d/BlueBox/BlueBox.css #usr/share/gnump3d/BlueBox/COPYING.html -#usr/share/gnump3d/BlueBox/bug.html #usr/share/gnump3d/BlueBox/error.html #usr/share/gnump3d/BlueBox/extras.html #usr/share/gnump3d/BlueBox/footer.tmpl @@ -99,7 +98,6 @@ usr/share/gnump3d #usr/share/gnump3d/Clean #usr/share/gnump3d/Clean/AUTHOR #usr/share/gnump3d/Clean/COPYING.html -#usr/share/gnump3d/Clean/bug.html #usr/share/gnump3d/Clean/error.html #usr/share/gnump3d/Clean/index.html #usr/share/gnump3d/Clean/info.html @@ -118,7 +116,6 @@ usr/share/gnump3d #usr/share/gnump3d/LaFrere #usr/share/gnump3d/LaFrere/AUTHOR #usr/share/gnump3d/LaFrere/COPYING.html -#usr/share/gnump3d/LaFrere/bug.html #usr/share/gnump3d/LaFrere/error.html #usr/share/gnump3d/LaFrere/index.html #usr/share/gnump3d/LaFrere/info.html @@ -137,7 +134,6 @@ usr/share/gnump3d #usr/share/gnump3d/Liquid/AUTHOR #usr/share/gnump3d/Liquid/COPYING.html #usr/share/gnump3d/Liquid/bck.gif -#usr/share/gnump3d/Liquid/bug.html #usr/share/gnump3d/Liquid/cel-bar-anthrazite-act.gif #usr/share/gnump3d/Liquid/cel-bar-anthrazite.gif #usr/share/gnump3d/Liquid/cel-bar-aqua-act.gif @@ -188,7 +184,6 @@ usr/share/gnump3d #usr/share/gnump3d/Musicus #usr/share/gnump3d/Musicus/AUTHOR #usr/share/gnump3d/Musicus/COPYING.html -#usr/share/gnump3d/Musicus/bug.html #usr/share/gnump3d/Musicus/error.html #usr/share/gnump3d/Musicus/extras.html #usr/share/gnump3d/Musicus/footer.tmpl @@ -214,7 +209,6 @@ usr/share/gnump3d #usr/share/gnump3d/Nomad/Nomad_theme.css #usr/share/gnump3d/Nomad/SmallHome.gif #usr/share/gnump3d/Nomad/bg.gif -#usr/share/gnump3d/Nomad/bug.html #usr/share/gnump3d/Nomad/error.html #usr/share/gnump3d/Nomad/gnump3d_themes_footer.tmpl #usr/share/gnump3d/Nomad/gnump3d_themes_header.tmpl @@ -235,7 +229,6 @@ usr/share/gnump3d #usr/share/gnump3d/SchwartzNGrau #usr/share/gnump3d/SchwartzNGrau/AUTHOR #usr/share/gnump3d/SchwartzNGrau/COPYING.html -#usr/share/gnump3d/SchwartzNGrau/bug.html #usr/share/gnump3d/SchwartzNGrau/clear.gif #usr/share/gnump3d/SchwartzNGrau/error.html #usr/share/gnump3d/SchwartzNGrau/index.html @@ -254,7 +247,6 @@ usr/share/gnump3d #usr/share/gnump3d/Tabular #usr/share/gnump3d/Tabular/AUTHOR #usr/share/gnump3d/Tabular/COPYING.html -#usr/share/gnump3d/Tabular/bug.html #usr/share/gnump3d/Tabular/error.html #usr/share/gnump3d/Tabular/extras.html #usr/share/gnump3d/Tabular/footer.tmpl @@ -276,7 +268,6 @@ usr/share/gnump3d #usr/share/gnump3d/Thexder #usr/share/gnump3d/Thexder/AUTHOR #usr/share/gnump3d/Thexder/COPYING.html -#usr/share/gnump3d/Thexder/bug.html #usr/share/gnump3d/Thexder/dig_temp2_01.jpg #usr/share/gnump3d/Thexder/dig_temp2_02.jpg #usr/share/gnump3d/Thexder/dig_temp2_03.gif @@ -308,7 +299,6 @@ usr/share/gnump3d #usr/share/gnump3d/default #usr/share/gnump3d/default/AUTHOR #usr/share/gnump3d/default/COPYING.html -#usr/share/gnump3d/default/bug.html #usr/share/gnump3d/default/error.html #usr/share/gnump3d/default/footer.tmpl #usr/share/gnump3d/default/header.tmpl @@ -328,7 +318,6 @@ usr/share/gnump3d #usr/share/gnump3d/dotNET #usr/share/gnump3d/dotNET/AUTHOR #usr/share/gnump3d/dotNET/COPYING.html -#usr/share/gnump3d/dotNET/bug.html #usr/share/gnump3d/dotNET/content.tmpl #usr/share/gnump3d/dotNET/error.html #usr/share/gnump3d/dotNET/header.tmpl @@ -365,7 +354,6 @@ usr/share/gnump3d #usr/share/gnump3d/nausicaa #usr/share/gnump3d/nausicaa/AUTHOR #usr/share/gnump3d/nausicaa/COPYING.html -#usr/share/gnump3d/nausicaa/bug.html #usr/share/gnump3d/nausicaa/error.html #usr/share/gnump3d/nausicaa/extras.html #usr/share/gnump3d/nausicaa/index.html @@ -382,7 +370,6 @@ usr/share/gnump3d #usr/share/gnump3d/redgrey #usr/share/gnump3d/redgrey/AUTHOR #usr/share/gnump3d/redgrey/COPYING.html -#usr/share/gnump3d/redgrey/bug.html #usr/share/gnump3d/redgrey/error.html #usr/share/gnump3d/redgrey/header.tmpl #usr/share/gnump3d/redgrey/index.html @@ -400,5 +387,4 @@ usr/share/gnump3d var/cache/gnump3d var/cache/gnump3d/serving var/log/gnump3d -#var/mp3 var/mp3/info diff --git a/config/rootfiles/packages/gpgme b/config/rootfiles/packages/gpgme new file mode 100644 index 0000000000..2a035231de --- /dev/null +++ b/config/rootfiles/packages/gpgme @@ -0,0 +1,18 @@ +usr/bin/gpgme-config +#usr/include/gpgme.h +#usr/lib/libgpgme-pthread.la +usr/lib/libgpgme-pthread.so +usr/lib/libgpgme-pthread.so.11 +usr/lib/libgpgme-pthread.so.11.8.1 +#usr/lib/libgpgme.la +usr/lib/libgpgme.so +usr/lib/libgpgme.so.11 +usr/lib/libgpgme.so.11.8.1 +#usr/share/aclocal/gpgme.m4 +usr/share/common-lisp/source/gpgme +usr/share/common-lisp/source/gpgme/gpgme-package.lisp +usr/share/common-lisp/source/gpgme/gpgme.asd +usr/share/common-lisp/source/gpgme/gpgme.lisp +#usr/share/info/gpgme.info +#usr/share/info/gpgme.info-1 +#usr/share/info/gpgme.info-2 diff --git a/config/rootfiles/packages/hplip b/config/rootfiles/packages/hplip index 551afa73a6..74a271140b 100644 --- a/config/rootfiles/packages/hplip +++ b/config/rootfiles/packages/hplip @@ -1,289 +1,242 @@ -usr/bin/hpijs -#usr/share/doc/hplip-2.7.10 -#usr/share/doc/hplip-2.7.10/COPYING -#usr/share/doc/hplip-2.7.10/README_LIBJPG -#usr/share/doc/hplip-2.7.10/about.html -#usr/share/doc/hplip-2.7.10/contacts.html -#usr/share/doc/hplip-2.7.10/downloads.html -#usr/share/doc/hplip-2.7.10/faqs.html -#usr/share/doc/hplip-2.7.10/features.html -#usr/share/doc/hplip-2.7.10/howtos -#usr/share/doc/hplip-2.7.10/howtos/build.html -#usr/share/doc/hplip-2.7.10/howtos/faxing.html -#usr/share/doc/hplip-2.7.10/howtos/index.html -#usr/share/doc/hplip-2.7.10/howtos/install.html -#usr/share/doc/hplip-2.7.10/howtos/io.html -#usr/share/doc/hplip-2.7.10/howtos/known.html -#usr/share/doc/hplip-2.7.10/howtos/negative.html -#usr/share/doc/hplip-2.7.10/howtos/other.html -#usr/share/doc/hplip-2.7.10/howtos/pcard.html -#usr/share/doc/hplip-2.7.10/howtos/printing.html -#usr/share/doc/hplip-2.7.10/howtos/scanning.html -#usr/share/doc/hplip-2.7.10/howtos/toolbox.html -#usr/share/doc/hplip-2.7.10/howtos/uninstall.html -#usr/share/doc/hplip-2.7.10/images -#usr/share/doc/hplip-2.7.10/images/Screenshot-xsane.png -#usr/share/doc/hplip-2.7.10/images/back.png -#usr/share/doc/hplip-2.7.10/images/button.png -#usr/share/doc/hplip-2.7.10/images/circular.gif -#usr/share/doc/hplip-2.7.10/images/cups_device_list.png -#usr/share/doc/hplip-2.7.10/images/cups_left.png -#usr/share/doc/hplip-2.7.10/images/cups_model_list.png -#usr/share/doc/hplip-2.7.10/images/cups_opening.png -#usr/share/doc/hplip-2.7.10/images/cups_printer_model.png -#usr/share/doc/hplip-2.7.10/images/download.png -#usr/share/doc/hplip-2.7.10/images/favicon.ico -#usr/share/doc/hplip-2.7.10/images/favicon2.ico -#usr/share/doc/hplip-2.7.10/images/fullbleed_1.png -#usr/share/doc/hplip-2.7.10/images/fullbleed_2.png -#usr/share/doc/hplip-2.7.10/images/fullbleed_3.png -#usr/share/doc/hplip-2.7.10/images/fullbleed_4.png -#usr/share/doc/hplip-2.7.10/images/gs_hpijs.png -#usr/share/doc/hplip-2.7.10/images/hp-tux-printer.png -#usr/share/doc/hplip-2.7.10/images/hp_invent_logo.png -#usr/share/doc/hplip-2.7.10/images/hplip_overview.png -#usr/share/doc/hplip-2.7.10/images/hpliplogo.png -#usr/share/doc/hplip-2.7.10/images/hplogo.png -#usr/share/doc/hplip-2.7.10/images/hplogo2.png -#usr/share/doc/hplip-2.7.10/images/linux_printing_logo.png -#usr/share/doc/hplip-2.7.10/images/linuxlogo.png -#usr/share/doc/hplip-2.7.10/images/network_appssocket.png -#usr/share/doc/hplip-2.7.10/images/network_device_list.png -#usr/share/doc/hplip-2.7.10/images/network_device_uri.png -#usr/share/doc/hplip-2.7.10/images/network_model_list.png -#usr/share/doc/hplip-2.7.10/images/osi_certified.png -#usr/share/doc/hplip-2.7.10/images/python-logo.png -#usr/share/doc/hplip-2.7.10/images/rest2web.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_copies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_fax.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_unload.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_xsane.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_10_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_11.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_12.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_13.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_14.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_15.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_7_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_9_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_emailalerts.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_autorefresh.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_commands.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_control.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_status.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_supplies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_tools.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_copies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_fax.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_unload.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_xsane.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_10_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_11.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_12.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_13.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_14.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_15.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_2.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_3.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_4.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_5.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_6.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_7_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_9_postfix.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_emailalerts.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_autorefresh.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_commands.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_control.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_functions.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print1.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_settings.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_status.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_supplies.png -#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_tools.png -#usr/share/doc/hplip-2.7.10/images/sflogo.png -#usr/share/doc/hplip-2.7.10/images/topbar.png -#usr/share/doc/hplip-2.7.10/images/tux.png -#usr/share/doc/hplip-2.7.10/images/tuxlogo.png -#usr/share/doc/hplip-2.7.10/images/tuxlogo2.png -#usr/share/doc/hplip-2.7.10/images/view.png -#usr/share/doc/hplip-2.7.10/images/yast_hardware.png -#usr/share/doc/hplip-2.7.10/images/yast_opening_hw.png -#usr/share/doc/hplip-2.7.10/images/yast_other_configure.png -#usr/share/doc/hplip-2.7.10/images/yast_other_kind.png -#usr/share/doc/hplip-2.7.10/images/yast_other_printer.png -#usr/share/doc/hplip-2.7.10/images/yast_printer_model.png -#usr/share/doc/hplip-2.7.10/index.html -#usr/share/doc/hplip-2.7.10/install -#usr/share/doc/hplip-2.7.10/install/index.html -#usr/share/doc/hplip-2.7.10/install/install -#usr/share/doc/hplip-2.7.10/install/install/index.html -#usr/share/doc/hplip-2.7.10/install/manual -#usr/share/doc/hplip-2.7.10/install/manual/configure.html -#usr/share/doc/hplip-2.7.10/install/manual/distros -#usr/share/doc/hplip-2.7.10/install/manual/distros/centos.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/debian.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/fedora_core.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/freebsd.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/gentoo.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/index.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/lfs.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/linspire.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/mac.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/mandriva.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/mepis.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/novell.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/other.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/redhat.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/redhatenterprise.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/slackware.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/ubuntu.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/windows.html -#usr/share/doc/hplip-2.7.10/install/manual/distros/xandros.html -#usr/share/doc/hplip-2.7.10/install/manual/download.html -#usr/share/doc/hplip-2.7.10/install/manual/final.html -#usr/share/doc/hplip-2.7.10/install/manual/hp_setup.html -#usr/share/doc/hplip-2.7.10/install/manual/index.html -#usr/share/doc/hplip-2.7.10/install/manual/make.html -#usr/share/doc/hplip-2.7.10/install/manual/make_install.html -#usr/share/doc/hplip-2.7.10/install/manual/permissions.html -#usr/share/doc/hplip-2.7.10/install/step1 -#usr/share/doc/hplip-2.7.10/install/step1/apt.html -#usr/share/doc/hplip-2.7.10/install/step1/index.html -#usr/share/doc/hplip-2.7.10/install/step1/rpm.html -#usr/share/doc/hplip-2.7.10/install/step2 -#usr/share/doc/hplip-2.7.10/install/step2/debian.html -#usr/share/doc/hplip-2.7.10/install/step2/fc4.html -#usr/share/doc/hplip-2.7.10/install/step2/freebsd.html -#usr/share/doc/hplip-2.7.10/install/step2/index.html -#usr/share/doc/hplip-2.7.10/install/step2/mandriva06.html -#usr/share/doc/hplip-2.7.10/install/step2/other.html -#usr/share/doc/hplip-2.7.10/install/step2/slackware.html -#usr/share/doc/hplip-2.7.10/install/step2/suse10.html -#usr/share/doc/hplip-2.7.10/install/step2/ubuntu510.html -#usr/share/doc/hplip-2.7.10/install/step2/ubuntu606.html -#usr/share/doc/hplip-2.7.10/install/step3 -#usr/share/doc/hplip-2.7.10/install/step3/index.html -#usr/share/doc/hplip-2.7.10/install/step4 -#usr/share/doc/hplip-2.7.10/install/step4/cups -#usr/share/doc/hplip-2.7.10/install/step4/cups/index.html -#usr/share/doc/hplip-2.7.10/install/step4/cups/local.html -#usr/share/doc/hplip-2.7.10/install/step4/cups/net.html -#usr/share/doc/hplip-2.7.10/install/step4/index.html -#usr/share/doc/hplip-2.7.10/install/step4/setup -#usr/share/doc/hplip-2.7.10/install/step4/setup/index.html -#usr/share/doc/hplip-2.7.10/install/step4/setup/local.html -#usr/share/doc/hplip-2.7.10/install/step4/setup/net.html -#usr/share/doc/hplip-2.7.10/install/step4/suse -#usr/share/doc/hplip-2.7.10/install/step4/suse/index.html -#usr/share/doc/hplip-2.7.10/legal.html -#usr/share/doc/hplip-2.7.10/license.html -#usr/share/doc/hplip-2.7.10/mailing_lists.html -#usr/share/doc/hplip-2.7.10/other_support.html -#usr/share/doc/hplip-2.7.10/release_notes.html -#usr/share/doc/hplip-2.7.10/screenshots.html -#usr/share/doc/hplip-2.7.10/styles -#usr/share/doc/hplip-2.7.10/styles/default.css -#usr/share/doc/hplip-2.7.10/styles/rest.css -#usr/share/doc/hplip-2.7.10/support_statement.html -#usr/share/doc/hplip-2.7.10/supported_devices -#usr/share/doc/hplip-2.7.10/supported_devices/color_laser.html -#usr/share/doc/hplip-2.7.10/supported_devices/color_laser_mfp.html -#usr/share/doc/hplip-2.7.10/supported_devices/combined.html -#usr/share/doc/hplip-2.7.10/supported_devices/edgeline.html -#usr/share/doc/hplip-2.7.10/supported_devices/index.html -#usr/share/doc/hplip-2.7.10/supported_devices/inkjet.html -#usr/share/doc/hplip-2.7.10/supported_devices/inkjet_aio.html -#usr/share/doc/hplip-2.7.10/supported_devices/laser.html -#usr/share/doc/hplip-2.7.10/supported_devices/mono_laser_mfp.html -#usr/share/doc/hplip-2.7.10/supported_devices/photosmart.html -#usr/share/doc/hplip-2.7.10/supported_devices/scanjet.html -#usr/share/doc/hplip-2.7.10/supported_devices/unsupported.html -#usr/share/doc/hplip-2.7.10/system_requirements.html -#usr/share/doc/hplip-2.7.10/tech_docs -#usr/share/doc/hplip-2.7.10/tech_docs/device_classes.html -#usr/share/doc/hplip-2.7.10/tech_docs/hpijs.html -#usr/share/doc/hplip-2.7.10/tech_docs/index.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/align.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/check.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/clean.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/colorcal.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/fab.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/firmware.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/hpssd.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/index.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/info.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/install.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/levels.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makecopies.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makeuri.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/print.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/probe.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/scan.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/sendfax.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/setup.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/testpage.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/timedate.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/toolbox.html -#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/unload.html -#usr/share/doc/hplip-2.7.10/tech_docs/overview.html -#usr/share/doc/hplip-2.7.10/tech_docs/page_sizes.html -#usr/share/doc/hplip-2.7.10/tech_docs/printable_areas.html -#usr/share/doc/hplip-2.7.10/tech_docs/tarball_install.html -#usr/share/doc/hplip-2.7.10/troubleshooting -#usr/share/doc/hplip-2.7.10/troubleshooting/build.html -#usr/share/doc/hplip-2.7.10/troubleshooting/distro.html -#usr/share/doc/hplip-2.7.10/troubleshooting/faxing.html -#usr/share/doc/hplip-2.7.10/troubleshooting/index.html -#usr/share/doc/hplip-2.7.10/troubleshooting/install.html -#usr/share/doc/hplip-2.7.10/troubleshooting/io.html -#usr/share/doc/hplip-2.7.10/troubleshooting/network.html -#usr/share/doc/hplip-2.7.10/troubleshooting/other.html -#usr/share/doc/hplip-2.7.10/troubleshooting/parallel.html -#usr/share/doc/hplip-2.7.10/troubleshooting/pcard.html -#usr/share/doc/hplip-2.7.10/troubleshooting/printing.html -#usr/share/doc/hplip-2.7.10/troubleshooting/scanning.html -#usr/share/doc/hplip-2.7.10/troubleshooting/toolbox.html -usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3800.ppd.gz -usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4Si_v2011.110.ppd.gz -usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4200_Series.ppd.gz -usr/share/foomatic/db/source/printer/HP-OfficeJet_J3600.xml -usr/share/foomatic/db/source/printer/HP-OfficeJet_J5500.xml -usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K8600.xml -usr/share/foomatic/db/source/printer/HP-Officejet_K7100.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4380.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6200.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7200.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_C8100.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5300.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7200.xml -usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7400.xml +#usr/share/doc/hplip-3.12.6 +#usr/share/doc/hplip-3.12.6/COPYING +#usr/share/doc/hplip-3.12.6/README_LIBJPG +#usr/share/doc/hplip-3.12.6/commandline.html +#usr/share/doc/hplip-3.12.6/copying.html +#usr/share/doc/hplip-3.12.6/copyright +#usr/share/doc/hplip-3.12.6/devicemanager.html +#usr/share/doc/hplip-3.12.6/faxtrouble.html +#usr/share/doc/hplip-3.12.6/gettinghelp.html +#usr/share/doc/hplip-3.12.6/hpscan.html +#usr/share/doc/hplip-3.12.6/images +#usr/share/doc/hplip-3.12.6/images/favicon.ico +#usr/share/doc/hplip-3.12.6/images/print.png +#usr/share/doc/hplip-3.12.6/images/toolbox_actions.png +#usr/share/doc/hplip-3.12.6/images/toolbox_fax.png +#usr/share/doc/hplip-3.12.6/images/toolbox_print_control.png +#usr/share/doc/hplip-3.12.6/images/toolbox_print_settings.png +#usr/share/doc/hplip-3.12.6/images/toolbox_status.png +#usr/share/doc/hplip-3.12.6/images/toolbox_supplies.png +#usr/share/doc/hplip-3.12.6/images/xsane.png +#usr/share/doc/hplip-3.12.6/index.html +#usr/share/doc/hplip-3.12.6/mainttask.html +#usr/share/doc/hplip-3.12.6/plugins.html +#usr/share/doc/hplip-3.12.6/print.html +#usr/share/doc/hplip-3.12.6/printing.html +#usr/share/doc/hplip-3.12.6/printoptions.html +#usr/share/doc/hplip-3.12.6/printtroubleshooting.html +#usr/share/doc/hplip-3.12.6/scanning.html +#usr/share/doc/hplip-3.12.6/scantrouble.html +#usr/share/doc/hplip-3.12.6/sendfax.html +#usr/share/doc/hplip-3.12.6/setup.html +#usr/share/doc/hplip-3.12.6/styles +#usr/share/doc/hplip-3.12.6/styles/css.css +#usr/share/doc/hplip-3.12.6/systray.html +#usr/share/doc/hplip-3.12.6/troubleshooting.html +#usr/share/doc/hplip-3.12.6/uninstalling.html +#usr/share/doc/hplip-3.12.6/upgrading.html usr/share/hplip +#usr/share/ppd +usr/share/ppd/HP +#usr/share/ppd/HP/hp-business_inkjet_2250-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2280-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2300-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2600-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_2800-ps.ppd.gz +#usr/share/ppd/HP/hp-business_inkjet_3000-ps.ppd.gz +#usr/share/ppd/HP/hp-cm8050_mfp_with_edgeline-ps.ppd.gz +#usr/share/ppd/HP/hp-cm8060_mfp_with_edgeline-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2500_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2550_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2605-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2605dn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2605dtn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2700-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2700n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2800-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2820-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2830-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_2840-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3000-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3700-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3700n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_3800-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4550-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4600-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4600_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4610-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4650-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4700-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_4730mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_5500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_5550-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_5m-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_8500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_8550-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_9500-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_9500_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1015-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1017-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1312_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm1312nfi_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320fxi_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320n_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm2320nf_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm3530_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm4540_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm4730_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm6030_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm6040_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cm6049_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp1514n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp1515n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp1518ni-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025dn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp2025x-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp3505-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp3525-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp4005-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp4020_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp4520_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5225-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5225dn-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5225n-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp5520_series-ps.ppd.gz +#usr/share/ppd/HP/hp-color_laserjet_cp6015-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4000ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4020ps-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4500mfp.ppd.gz +#usr/share/ppd/HP/hp-designjet_4500ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4520mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_4520ps-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1100ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1100ps_44in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1120ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1120ps_44in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1200_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t1300_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t2300_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t7100ps-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t7100ps_monochrome-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t770_postscript-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t770ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t790ps_24in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_t790ps_44in-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6100ps_42in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6100ps_60in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6200_42in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-designjet_z6200_60in_photo-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_100_color_mfp_m175-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1200n-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1220-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1220se-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1300-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1300n-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1300xi-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320n-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320nw-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_1320tn-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_200_colormfp_m275-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2100-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2200_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2300-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2300_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2410-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2420-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_2430-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3015-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3020-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3030-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3050-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3052-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3200m-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3300_3310_3320-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3380-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_3390-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_400_m401-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_400_m401d-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_400_mfp_m425-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4050_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4100_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4240-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4250-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4300-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4345_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4350-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4_plus-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4ml-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4mp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4si-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_4v-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5000-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_500_color_m551-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_500_color_mfp_m575-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_500_mfp_m525-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5200-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5200l-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5200lx-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5mp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5p-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5si-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_5si_mopier-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_600_m601_m602_m603-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_6mp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_6p-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8000-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8100_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8100_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_8150_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9000_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9000_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9040-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9040_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9050-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9050_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9055mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_9065mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_cm1410_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_cp1520_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1522_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1522n_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1522nf_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m1530_mfp_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m2727_mfp_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m3027_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m3035_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m4345_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m4349_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m4555_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m5025_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m5035_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m9040_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m9050_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_m9059_mfp-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p2015_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p2055_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p3004-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p3005-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p3010_series-ps.ppd.gz +#usr/share/ppd/HP/hp-laserjet_p4010_series-ps.ppd.gz +#usr/share/ppd/HP/hp-lj_300_400_color_m351_m451-ps.ppd.gz +#usr/share/ppd/HP/hp-lj_300_400_color_mfp_m375_m475-ps.ppd.gz +#usr/share/ppd/HP/hp-mopier_240-ps.ppd.gz +#usr/share/ppd/HP/hp-mopier_320-ps.ppd.gz +#usr/share/ppd/HP/hp-officejet_pro_8000_enterprise_a811a-ps.ppd.gz diff --git a/config/rootfiles/packages/ipfireseeder b/config/rootfiles/packages/ipfireseeder deleted file mode 100644 index 0577ade395..0000000000 --- a/config/rootfiles/packages/ipfireseeder +++ /dev/null @@ -1,5 +0,0 @@ -etc/rc.d/init.d/ipfireseeder -#var/ipfire/seeder -var/ipfire/seeder/ipfire-2.9.MACHINE-full-core51.iso.torrent -#var/log/seeder -var/log/seeder/info diff --git a/config/rootfiles/packages/lcr b/config/rootfiles/packages/lcr index 2633518b29..0739db4451 100644 --- a/config/rootfiles/packages/lcr +++ b/config/rootfiles/packages/lcr @@ -385,6 +385,7 @@ var/ipfire/lcr/vbox_german/record_play.isdn var/ipfire/lcr/vbox_german/record_record.isdn var/ipfire/lcr/vbox_german/store_ask.isdn var/ipfire/lcr/vbox_german/store_done.isdn +var/log/lcr usr/sbin/genextension usr/sbin/genrc usr/sbin/lcr diff --git a/config/rootfiles/packages/libassuan b/config/rootfiles/packages/libassuan new file mode 100644 index 0000000000..efe0df57e7 --- /dev/null +++ b/config/rootfiles/packages/libassuan @@ -0,0 +1,8 @@ +usr/bin/libassuan-config +#usr/include/assuan.h +#usr/lib/libassuan.la +usr/lib/libassuan.so +usr/lib/libassuan.so.0 +usr/lib/libassuan.so.0.3.0 +#usr/share/aclocal/libassuan.m4 +#usr/share/info/assuan.info diff --git a/config/rootfiles/packages/libgpg-error b/config/rootfiles/packages/libgpg-error new file mode 100644 index 0000000000..dad751ce08 --- /dev/null +++ b/config/rootfiles/packages/libgpg-error @@ -0,0 +1,25 @@ +usr/bin/gpg-error +usr/bin/gpg-error-config +#usr/include/gpg-error.h +#usr/lib/libgpg-error.la +usr/lib/libgpg-error.so +usr/lib/libgpg-error.so.0 +usr/lib/libgpg-error.so.0.8.0 +#usr/share/aclocal/gpg-error.m4 +usr/share/common-lisp +usr/share/common-lisp/source +usr/share/common-lisp/source/gpg-error +usr/share/common-lisp/source/gpg-error/gpg-error-codes.lisp +usr/share/common-lisp/source/gpg-error/gpg-error-package.lisp +usr/share/common-lisp/source/gpg-error/gpg-error.asd +usr/share/common-lisp/source/gpg-error/gpg-error.lisp +#usr/share/locale/cs/LC_MESSAGES/libgpg-error.mo +usr/share/locale/de/LC_MESSAGES/libgpg-error.mo +usr/share/locale/fr/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/it/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/nl/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/pl/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/ro/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/sv/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/vi/LC_MESSAGES/libgpg-error.mo +#usr/share/locale/zh_CN/LC_MESSAGES/libgpg-error.mo diff --git a/config/rootfiles/packages/libogg b/config/rootfiles/packages/libogg index e9ba57a439..21a8d63a53 100644 --- a/config/rootfiles/packages/libogg +++ b/config/rootfiles/packages/libogg @@ -4,85 +4,83 @@ #usr/include/ogg/os_types.h #usr/lib/libogg.a #usr/lib/libogg.la -usr/lib/libogg.so +#usr/lib/libogg.so usr/lib/libogg.so.0 -usr/lib/libogg.so.0.6.0 +usr/lib/libogg.so.0.8.0 #usr/lib/pkgconfig/ogg.pc #usr/share/aclocal/ogg.m4 -#usr/share/doc/libogg-1.1.4 -#usr/share/doc/libogg-1.1.4/framing.html -#usr/share/doc/libogg-1.1.4/index.html -#usr/share/doc/libogg-1.1.4/ogg -#usr/share/doc/libogg-1.1.4/ogg-multiplex.html -#usr/share/doc/libogg-1.1.4/ogg/bitpacking.html -#usr/share/doc/libogg-1.1.4/ogg/datastructures.html -#usr/share/doc/libogg-1.1.4/ogg/decoding.html -#usr/share/doc/libogg-1.1.4/ogg/encoding.html -#usr/share/doc/libogg-1.1.4/ogg/general.html -#usr/share/doc/libogg-1.1.4/ogg/index.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_packet.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_packet_clear.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_bos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_checksum_set.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_continued.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_eos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_granulepos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_packets.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_pageno.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_serialno.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_page_version.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_clear.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_destroy.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_eos.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_flush.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_init.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetin.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetout.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetpeek.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pagein.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pageout.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset_serialno.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_state.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_buffer.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_clear.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_destroy.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_init.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageout.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageseek.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_reset.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_state.html -#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_wrote.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv1.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_bits.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_buffer.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_bytes.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_get_buffer.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_look.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_look1.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_read.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_read1.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_readinit.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_reset.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_write.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writealign.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeclear.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writecopy.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeinit.html -#usr/share/doc/libogg-1.1.4/ogg/oggpack_writetrunc.html -#usr/share/doc/libogg-1.1.4/ogg/overview.html -#usr/share/doc/libogg-1.1.4/ogg/reference.html -#usr/share/doc/libogg-1.1.4/ogg/style.css -#usr/share/doc/libogg-1.1.4/ogg/vorbis_comment.html -#usr/share/doc/libogg-1.1.4/ogg/vorbis_info.html -#usr/share/doc/libogg-1.1.4/oggstream.html -#usr/share/doc/libogg-1.1.4/rfc3533.txt -#usr/share/doc/libogg-1.1.4/rfc3534.txt -#usr/share/doc/libogg-1.1.4/stream.png -#usr/share/doc/libogg-1.1.4/vorbisword2.png -#usr/share/doc/libogg-1.1.4/white-ogg.png -#usr/share/doc/libogg-1.1.4/white-xifish.png -#usr/share/doc/libogg-1.1.4/rfc5334.txt -#usr/share/doc/libogg-1.1.4/skeleton.html +#usr/share/doc/libogg-1.3.0 +#usr/share/doc/libogg-1.3.0/framing.html +#usr/share/doc/libogg-1.3.0/index.html +#usr/share/doc/libogg-1.3.0/ogg +#usr/share/doc/libogg-1.3.0/ogg-multiplex.html +#usr/share/doc/libogg-1.3.0/ogg/bitpacking.html +#usr/share/doc/libogg-1.3.0/ogg/datastructures.html +#usr/share/doc/libogg-1.3.0/ogg/decoding.html +#usr/share/doc/libogg-1.3.0/ogg/encoding.html +#usr/share/doc/libogg-1.3.0/ogg/general.html +#usr/share/doc/libogg-1.3.0/ogg/index.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_packet.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_packet_clear.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_bos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_checksum_set.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_continued.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_eos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_granulepos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_packets.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_pageno.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_serialno.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_page_version.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_clear.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_destroy.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_eos.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_flush.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_init.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetin.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetout.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetpeek.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pagein.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout_fill.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset_serialno.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_state.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_buffer.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_clear.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_destroy.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_init.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageout.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageseek.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_reset.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_state.html +#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_wrote.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv1.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_bits.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_buffer.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_bytes.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_get_buffer.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_look.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_look1.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_read.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_read1.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_readinit.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_reset.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_write.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writealign.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeclear.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writecopy.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeinit.html +#usr/share/doc/libogg-1.3.0/ogg/oggpack_writetrunc.html +#usr/share/doc/libogg-1.3.0/ogg/overview.html +#usr/share/doc/libogg-1.3.0/ogg/reference.html +#usr/share/doc/libogg-1.3.0/ogg/style.css +#usr/share/doc/libogg-1.3.0/oggstream.html +#usr/share/doc/libogg-1.3.0/rfc3533.txt +#usr/share/doc/libogg-1.3.0/rfc5334.txt +#usr/share/doc/libogg-1.3.0/skeleton.html +#usr/share/doc/libogg-1.3.0/stream.png +#usr/share/doc/libogg-1.3.0/vorbisword2.png +#usr/share/doc/libogg-1.3.0/white-ogg.png +#usr/share/doc/libogg-1.3.0/white-xifish.png diff --git a/config/rootfiles/packages/libsolv b/config/rootfiles/packages/libsolv index 587d5149f9..de1d12d055 100644 --- a/config/rootfiles/packages/libsolv +++ b/config/rootfiles/packages/libsolv @@ -1,13 +1,13 @@ #usr/include/solv #usr/include/solv/bitmap.h #usr/include/solv/chksum.h +#usr/include/solv/dataiterator.h #usr/include/solv/dirpool.h #usr/include/solv/evr.h #usr/include/solv/hash.h #usr/include/solv/knownid.h #usr/include/solv/policy.h #usr/include/solv/pool.h -#usr/include/solv/pool_fileconflicts.h #usr/include/solv/poolarch.h #usr/include/solv/poolid.h #usr/include/solv/pooltypes.h @@ -15,22 +15,9 @@ #usr/include/solv/problems.h #usr/include/solv/queue.h #usr/include/solv/repo.h -#usr/include/solv/repo_content.h -#usr/include/solv/repo_deb.h -#usr/include/solv/repo_deltainfoxml.h -#usr/include/solv/repo_helix.h -#usr/include/solv/repo_products.h -#usr/include/solv/repo_releasefile_products.h -#usr/include/solv/repo_repomdxml.h -#usr/include/solv/repo_rpmdb.h -#usr/include/solv/repo_rpmmd.h #usr/include/solv/repo_solv.h -#usr/include/solv/repo_susetags.h -#usr/include/solv/repo_updateinfoxml.h #usr/include/solv/repo_write.h -#usr/include/solv/repo_zyppdb.h #usr/include/solv/repodata.h -#usr/include/solv/repopage.h #usr/include/solv/rules.h #usr/include/solv/solv_xfopen.h #usr/include/solv/solvable.h @@ -38,10 +25,14 @@ #usr/include/solv/solverdebug.h #usr/include/solv/solvversion.h #usr/include/solv/strpool.h +#usr/include/solv/testcase.h #usr/include/solv/tools_util.h #usr/include/solv/transaction.h #usr/include/solv/util.h -usr/lib/libsolv.so +#usr/lib/libsolv.so usr/lib/libsolv.so.0 -usr/lib/libsolvext.so +#usr/lib/libsolvext.so usr/lib/libsolvext.so.0 +#usr/share/cmake +#usr/share/cmake/Modules +#usr/share/cmake/Modules/FindLibSolv.cmake diff --git a/config/rootfiles/packages/libstatgrab b/config/rootfiles/packages/libstatgrab new file mode 100644 index 0000000000..2c61411632 --- /dev/null +++ b/config/rootfiles/packages/libstatgrab @@ -0,0 +1,35 @@ +usr/bin/saidar +usr/bin/statgrab +#usr/bin/statgrab-make-mrtg-config +#usr/bin/statgrab-make-mrtg-index +#usr/include/statgrab.h +#usr/include/statgrab_deprecated.h +#usr/lib/libstatgrab.a +#usr/lib/libstatgrab.la +#usr/lib/libstatgrab.so +usr/lib/libstatgrab.so.6 +usr/lib/libstatgrab.so.6.2.3 +#usr/lib/pkgconfig/libstatgrab.pc +#usr/share/man/man1/saidar.1 +#usr/share/man/man1/statgrab-make-mrtg-config.1 +#usr/share/man/man1/statgrab-make-mrtg-index.1 +#usr/share/man/man1/statgrab.1 +#usr/share/man/man3/sg_get_cpu_percents.3 +#usr/share/man/man3/sg_get_cpu_stats.3 +#usr/share/man/man3/sg_get_cpu_stats_diff.3 +#usr/share/man/man3/sg_get_disk_io_stats.3 +#usr/share/man/man3/sg_get_disk_io_stats_diff.3 +#usr/share/man/man3/sg_get_fs_stats.3 +#usr/share/man/man3/sg_get_host_info.3 +#usr/share/man/man3/sg_get_load_stats.3 +#usr/share/man/man3/sg_get_mem_stats.3 +#usr/share/man/man3/sg_get_network_iface_stats.3 +#usr/share/man/man3/sg_get_network_io_stats.3 +#usr/share/man/man3/sg_get_network_io_stats_diff.3 +#usr/share/man/man3/sg_get_page_stats.3 +#usr/share/man/man3/sg_get_page_stats_diff.3 +#usr/share/man/man3/sg_get_process_count.3 +#usr/share/man/man3/sg_get_process_stats.3 +#usr/share/man/man3/sg_get_swap_stats.3 +#usr/share/man/man3/sg_get_user_stats.3 +#usr/share/man/man3/statgrab.3 diff --git a/config/rootfiles/packages/libtool b/config/rootfiles/packages/libtool deleted file mode 100644 index 528eac775b..0000000000 --- a/config/rootfiles/packages/libtool +++ /dev/null @@ -1,33 +0,0 @@ -#usr/bin/libtool -#usr/bin/libtoolize -#usr/include/ltdl.h -#usr/lib/libltdl.a -#usr/lib/libltdl.la -usr/lib/libltdl.so -usr/lib/libltdl.so.3 -usr/lib/libltdl.so.3.1.4 -#usr/share/aclocal/libtool.m4 -#usr/share/aclocal/ltdl.m4 -#usr/share/info/libtool.info -#usr/share/libtool -#usr/share/libtool/config.guess -#usr/share/libtool/config.sub -#usr/share/libtool/install-sh -#usr/share/libtool/libltdl -#usr/share/libtool/libltdl/COPYING.LIB -#usr/share/libtool/libltdl/Makefile.am -#usr/share/libtool/libltdl/Makefile.in -#usr/share/libtool/libltdl/README -#usr/share/libtool/libltdl/acinclude.m4 -#usr/share/libtool/libltdl/aclocal.m4 -#usr/share/libtool/libltdl/config-h.in -#usr/share/libtool/libltdl/config.guess -#usr/share/libtool/libltdl/config.sub -#usr/share/libtool/libltdl/configure -#usr/share/libtool/libltdl/configure.ac -#usr/share/libtool/libltdl/install-sh -#usr/share/libtool/libltdl/ltdl.c -#usr/share/libtool/libltdl/ltdl.h -#usr/share/libtool/libltdl/ltmain.sh -#usr/share/libtool/libltdl/missing -#usr/share/libtool/ltmain.sh diff --git a/config/rootfiles/packages/libvorbis b/config/rootfiles/packages/libvorbis index 212e864162..e7f7c3c1bc 100644 --- a/config/rootfiles/packages/libvorbis +++ b/config/rootfiles/packages/libvorbis @@ -4,128 +4,167 @@ #usr/include/vorbis/vorbisfile.h #usr/lib/libvorbis.a #usr/lib/libvorbis.la -usr/lib/libvorbis.so +#usr/lib/libvorbis.so usr/lib/libvorbis.so.0 -usr/lib/libvorbis.so.0.4.3 +usr/lib/libvorbis.so.0.4.6 #usr/lib/libvorbisenc.a #usr/lib/libvorbisenc.la -usr/lib/libvorbisenc.so +#usr/lib/libvorbisenc.so usr/lib/libvorbisenc.so.2 -usr/lib/libvorbisenc.so.2.0.6 +usr/lib/libvorbisenc.so.2.0.9 #usr/lib/libvorbisfile.a #usr/lib/libvorbisfile.la -usr/lib/libvorbisfile.so +#usr/lib/libvorbisfile.so usr/lib/libvorbisfile.so.3 -usr/lib/libvorbisfile.so.3.3.2 +usr/lib/libvorbisfile.so.3.3.5 #usr/lib/pkgconfig/vorbis.pc #usr/lib/pkgconfig/vorbisenc.pc #usr/lib/pkgconfig/vorbisfile.pc #usr/share/aclocal/vorbis.m4 -#usr/share/doc/libvorbis-1.2.3 -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.cfg -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.css -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.html -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.pdf -#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.tex -#usr/share/doc/libvorbis-1.2.3/eightphase.png -#usr/share/doc/libvorbis-1.2.3/evenlsp.png -#usr/share/doc/libvorbis-1.2.3/fish_xiph_org.png -#usr/share/doc/libvorbis-1.2.3/floor1_inverse_dB_table.html -#usr/share/doc/libvorbis-1.2.3/floorval.png -#usr/share/doc/libvorbis-1.2.3/fourphase.png -#usr/share/doc/libvorbis-1.2.3/framing.html -#usr/share/doc/libvorbis-1.2.3/helper.html -#usr/share/doc/libvorbis-1.2.3/index.html -#usr/share/doc/libvorbis-1.2.3/lspmap.png -#usr/share/doc/libvorbis-1.2.3/oddlsp.png -#usr/share/doc/libvorbis-1.2.3/oggstream.html -#usr/share/doc/libvorbis-1.2.3/programming.html -#usr/share/doc/libvorbis-1.2.3/rfc5215.txt -#usr/share/doc/libvorbis-1.2.3/rfc5215.xml -#usr/share/doc/libvorbis-1.2.3/squarepolar.png -#usr/share/doc/libvorbis-1.2.3/stereo.html -#usr/share/doc/libvorbis-1.2.3/stream.png -#usr/share/doc/libvorbis-1.2.3/v-comment.html -#usr/share/doc/libvorbis-1.2.3/vorbis-clip.txt -#usr/share/doc/libvorbis-1.2.3/vorbis-errors.txt -#usr/share/doc/libvorbis-1.2.3/vorbis-fidelity.html -#usr/share/doc/libvorbis-1.2.3/vorbis.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc -#usr/share/doc/libvorbis-1.2.3/vorbisenc/changes.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/examples.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/index.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage2_arg.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage_arg.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/overview.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/reference.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/style.css -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_ctl.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init_vbr.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_init.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_managed.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_vbr.html -#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_info.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile -#usr/share/doc/libvorbis-1.2.3/vorbisfile/OggVorbis_File.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/chaining_example_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/chainingexample.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/crosslap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/datastructures.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/decoding.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/example.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/exampleindex.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/fileinfo.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/index.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/initialization.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate_instant.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_clear.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_comment.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_crosslap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_fopen.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_info.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open_callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_tell.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_total.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_tell.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_total.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read_float.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_seekable.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_serialnumber.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_streams.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_callbacks.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_open.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page_lap.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_tell.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_total.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/overview.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/reference.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/return.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekexample.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_example_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_test_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekingexample.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/style.css -#usr/share/doc/libvorbis-1.2.3/vorbisfile/threads.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_comment.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_info.html -#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbisfile_example_c.html -#usr/share/doc/libvorbis-1.2.3/vorbisword2.png -#usr/share/doc/libvorbis-1.2.3/wait.png -#usr/share/doc/libvorbis-1.2.3/white-xifish.png +#usr/share/doc/libvorbis-1.3.3 +#usr/share/doc/libvorbis-1.3.3/doxygen-build.stamp +#usr/share/doc/libvorbis-1.3.3/eightphase.png +#usr/share/doc/libvorbis-1.3.3/evenlsp.png +#usr/share/doc/libvorbis-1.3.3/fish_xiph_org.png +#usr/share/doc/libvorbis-1.3.3/floor1_inverse_dB_table.html +#usr/share/doc/libvorbis-1.3.3/floorval.png +#usr/share/doc/libvorbis-1.3.3/fourphase.png +#usr/share/doc/libvorbis-1.3.3/framing.html +#usr/share/doc/libvorbis-1.3.3/helper.html +#usr/share/doc/libvorbis-1.3.3/index.html +#usr/share/doc/libvorbis-1.3.3/libvorbis +#usr/share/doc/libvorbis-1.3.3/libvorbis/index.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/overview.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/reference.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/return.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/style.css +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_blockout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_buffer.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_headerout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_wrote.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_addblock.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_flushpacket.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add_tag.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query_count.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_commentheader_out.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_state.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_granule_time.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_blocksize.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_clear.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_packet_blocksize.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_blockin.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate_p.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_headerin.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_idheader.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_init.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_lapout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_pcmout.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_read.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_restart.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_trackonly.html +#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_version_string.html +#usr/share/doc/libvorbis-1.3.3/lspmap.png +#usr/share/doc/libvorbis-1.3.3/oddlsp.png +#usr/share/doc/libvorbis-1.3.3/oggstream.html +#usr/share/doc/libvorbis-1.3.3/programming.html +#usr/share/doc/libvorbis-1.3.3/rfc5215.txt +#usr/share/doc/libvorbis-1.3.3/rfc5215.xml +#usr/share/doc/libvorbis-1.3.3/squarepolar.png +#usr/share/doc/libvorbis-1.3.3/stereo.html +#usr/share/doc/libvorbis-1.3.3/stream.png +#usr/share/doc/libvorbis-1.3.3/v-comment.html +#usr/share/doc/libvorbis-1.3.3/vorbis-clip.txt +#usr/share/doc/libvorbis-1.3.3/vorbis-errors.txt +#usr/share/doc/libvorbis-1.3.3/vorbis-fidelity.html +#usr/share/doc/libvorbis-1.3.3/vorbis.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc +#usr/share/doc/libvorbis-1.3.3/vorbisenc/changes.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/examples.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/index.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage2_arg.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage_arg.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/overview.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/reference.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/style.css +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_ctl.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init_vbr.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_init.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_managed.html +#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_vbr.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile +#usr/share/doc/libvorbis-1.3.3/vorbisfile/OggVorbis_File.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/chaining_example_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/chainingexample.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/crosslap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/datastructures.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/decoding.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/example.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/exampleindex.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/fileinfo.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/index.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/initialization.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate_instant.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_clear.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_comment.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_crosslap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_fopen.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_info.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open_callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_tell.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_total.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_tell.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_total.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_filter.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_float.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_seekable.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_serialnumber.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_streams.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_callbacks.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_open.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page_lap.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_tell.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_total.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/overview.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/reference.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekexample.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_example_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_test_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekingexample.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/style.css +#usr/share/doc/libvorbis-1.3.3/vorbisfile/threads.html +#usr/share/doc/libvorbis-1.3.3/vorbisfile/vorbisfile_example_c.html +#usr/share/doc/libvorbis-1.3.3/vorbisword2.png +#usr/share/doc/libvorbis-1.3.3/wait.png +#usr/share/doc/libvorbis-1.3.3/white-xifish.png diff --git a/config/rootfiles/packages/linux-pae b/config/rootfiles/packages/linux-pae index c4899a4d2d..5a54f2487a 100644 --- a/config/rootfiles/packages/linux-pae +++ b/config/rootfiles/packages/linux-pae @@ -10,38 +10,29 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/arch/x86 #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aes-i586.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/aesni-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/crc32c-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/salsa20-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/crypto/twofish-i586.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/apm.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/e_powersaver.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/gx-suspmod.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/longhaul.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/longrun.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k6.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k7.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-lib.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/microcode.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/msr.ko -#lib/modules/KVER-ipfire-pae/kernel/arch/x86/kernel/scx200.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-amd.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm-intel.ko #lib/modules/KVER-ipfire-pae/kernel/arch/x86/kvm/kvm.ko +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200 +#lib/modules/KVER-ipfire-pae/kernel/arch/x86/platform/scx200/scx200.ko #lib/modules/KVER-ipfire-pae/kernel/crypto #lib/modules/KVER-ipfire-pae/kernel/crypto/aes_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/af_alg.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_hash.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/algif_skcipher.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ansi_cprng.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/anubis.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/arc4.ko @@ -53,7 +44,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/async_xor.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/async_tx/raid6test.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/authencesn.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_common.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/blowfish_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/camellia.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cast5.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cast6.ko @@ -61,6 +54,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/ccm.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/crc32c.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cryptd.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/crypto_user.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/ctr.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/cts.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/des_generic.ko @@ -72,9 +66,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/khazad.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/lrw.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/lzo.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/md4.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/md5.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/michael_mic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/pcbc.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/pcrypt.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd128.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd160.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/rmd256.ko @@ -88,8 +84,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/crypto/sha512_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tea.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire-pae/kernel/crypto/twofish.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_common.ko +#lib/modules/KVER-ipfire-pae/kernel/crypto/twofish_generic.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/vmac.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/wp512.ko #lib/modules/KVER-ipfire-pae/kernel/crypto/xcbc.ko @@ -99,26 +95,31 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_ipmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/acpi_pad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/battery.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/button.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/container.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/ec_sys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/fan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/power_meter.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/processor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/sbshc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/thermal.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/acpi/video.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/acard-ahci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ahci_platform.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_generic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/ata_piix.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libahci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/libata.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_ali.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_amd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_arasan_cf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_artop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_atiixp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_atp867x.ko @@ -151,7 +152,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pcmcia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc2027x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_qdi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_piccolo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_radisys.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rdc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_rz1000.ko @@ -163,7 +164,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_sl82c105.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_triflex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_via.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pata_winbond.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/pdc_adma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_inic162x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ata/sata_mv.ko @@ -195,6 +195,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/suni.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/uPD98402.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/atm/zatm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/base +#lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap +#lib/modules/KVER-ipfire-pae/kernel/drivers/base/regmap/regmap-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma +#lib/modules/KVER-ipfire-pae/kernel/drivers/bcma/bcma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block #lib/modules/KVER-ipfire-pae/kernel/drivers/block/DAC960.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/aoe @@ -205,9 +210,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/block/floppy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/nbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/osdblk.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/block/rbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/sx8.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/block/virtio_blk.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth +#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/ath3k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bcm203x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bfusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/bluecard_cs.ko @@ -218,6 +225,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btsdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btuart_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/btwilink.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/dtl1_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_uart.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/bluetooth/hci_vhci.ko @@ -232,11 +240,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/ati-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/efficeon-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-agp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/intel-gtt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/nvidia-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sis-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/sworks-agp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/agp/via-agp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/cs5535_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hangcheck-timer.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random #lib/modules/KVER-ipfire-pae/kernel/drivers/char/hw_random/amd-rng.ko @@ -256,56 +264,91 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/char/lp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave #lib/modules/KVER-ipfire-pae/kernel/drivers/char/mwave/mwave.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/nozomi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nsc_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/nvram.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pc8736x_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/pcmcia/synclink_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/ppdev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/scx200_gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/char/toshiba.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource +#lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/cs5535-clockevt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/clocksource/scx200_hrt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/connector #lib/modules/KVER-ipfire-pae/kernel/drivers/connector/cn.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/acpi-cpufreq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq-nforce2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_conservative.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_ondemand.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_powersave.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/cpufreq_userspace.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/e_powersaver.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/gx-suspmod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longhaul.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/longrun.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/mperf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/p4-clockmod.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/pcc-cpufreq.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k6.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k7.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/powernow-k8.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-centrino.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-ich.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/cpufreq/speedstep-smi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/geode-aes.ko.off -#lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/hifn_795x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-aes.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/crypto/padlock-sha.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dca #lib/modules/KVER-ipfire-pae/kernel/drivers/dca/dca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/dmatest.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/intel_mid_dma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat #lib/modules/KVER-ipfire-pae/kernel/drivers/dma/ioat/ioatdma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/pch_dma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/dma/timb_dma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-ohci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firewire/firewire-sbp2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/dmi-sysfs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/iscsi_ibft.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/firmware/sigma.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-adp5588.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-cs5535.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-generic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-it8761e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-janz-ttl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max7300.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max730x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-max732x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-mcp23s08.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-ml-ioh.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pca953x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pcf857x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-pch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-rdc321x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-sch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpio/gpio-vx855.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/drm_kms_helper.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i830 -#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i830/i830.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/i915/i915.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/nouveau/nouveau.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128 #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/r128/r128.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/radeon @@ -320,39 +363,72 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/ttm/ttm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via #lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub +#lib/modules/KVER-ipfire-pae/kernel/drivers/gpu/stub/poulsbo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-a4tech.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-apple.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-axff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-belkin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cherry.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-chicony.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-drff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-dr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-elecom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ezkey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gaff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-gyration.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-holtekff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kensington.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-keytouch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-kye.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-lcpower.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech-dj.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-logitech.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-magicmouse.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-microsoft.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-monterey.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-multitouch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-ortek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-picolcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-pl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-primax.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-prodikeys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-quanta.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-arvo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kone.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-koneplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-kovaplus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat-pyra.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-roccat.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-samsung.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sjoy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sony.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-speedlink.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-sunplus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-tmff.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-topseed.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-uclogic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wacom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-waltop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-wiimote.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zpff.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hid/hid-zydacron.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid #lib/modules/KVER-ipfire-pae/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hv +#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_utils.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hv/hv_vmbus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/abituguru3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/acpi_power_meter.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ad7414.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ad7418.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1021.ko @@ -361,36 +437,46 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1029.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm1031.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adm9240.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads1015.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ads7828.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7411.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7462.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7473.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/adt7475.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/amc6821.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/applesmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asb100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asc7621.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/asus_atk0110.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/atxp1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/coretemp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/dme1737.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds1621.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ds620.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc1403.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc2103.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/emc6w201.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71805f.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f71882fg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/f75375s.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/fam15h_power.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/fschmd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/g760a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl518sm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hdaps.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hp_accel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/gpio-fan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon-vid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/hwmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/i5k_amb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmaem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ibmpex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/it87.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/jc42.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k10temp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/k8temp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lis3lv02d.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lineage-pem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm63.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm73.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm75.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm77.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm78.ko @@ -402,20 +488,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm92.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm93.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95241.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/lm95245.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4151.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4215.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ltc4261.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max16065.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1619.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max1668.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6639.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6642.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/max6650.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/ntc_thermistor.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87360.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pc87427.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/adm1275.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/lm25066.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ltc2978.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max16064.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max34440.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/max8688.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/pmbus_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/ucd9200.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/pmbus/zl6100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5627.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch5636.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sch56xx-common.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht15.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sht21.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/sis5595.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smm665.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47b397.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/smsc47m192.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/thmc50.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp102.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp401.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/tmp421.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/via-cputemp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/via686a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/vt1211.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/vt8231.ko @@ -425,10 +539,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83791d.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83792d.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83793.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83795.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83l785ts.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/hwmon/wm8350-hwmon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/algos #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/algos/i2c-algo-bit.ko @@ -440,7 +553,13 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd756.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-designware-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-diolan-u2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-eg20t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-intel-mid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-isch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-nforce2.ko @@ -456,16 +575,20 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis630.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-sis96x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-taos-evm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-tiny-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-via.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-voodoo3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/i2c-xiic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/chips/tsl2550.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-mux.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/i2c-smbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/gpio-i2cmux.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca9541.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/i2c/muxes/pca954x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154 #lib/modules/KVER-ipfire-pae/kernel/drivers/ieee802154/fakehard.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input @@ -473,34 +596,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/input/input-polldev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/adp5589-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/gpio_keys_polled.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lkkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/matrix_keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mcs_touchkey.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/mpr121_touchkey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/newtonkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt1070.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/qt2160.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/stowaway.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/tca6416-keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/keyboard/xtkbd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ad714x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/apanel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/bma150.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/cm109.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/keyspan_remote.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcf8574_keypad.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/pcspkr.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/wm831x-on.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/rotary_encoder.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/xen-kbdfront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/input/misc/yealink.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/input/xen-kbdfront.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/altera_ps2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/serio/ps2mult.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/input/sparse-keymap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000 #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/act2000/act2000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/capifs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/capi/kernelcapi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/divert #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/divert/dss1_divert.ko @@ -526,6 +663,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divacapi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divadidd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/avmfritz.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcmulti.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcpci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/hfcsusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNinfineon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNipac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/mISDNisar.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/netjet.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/speedfax.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hardware/mISDN/w6692.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/avma1_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/hisax/elsa_cs.ko @@ -545,56 +693,73 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/i4l/isdnhdlc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/icn/icn.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/l1oip.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/mISDN/mISDN_dsp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/pcbit/pcbit.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc #lib/modules/KVER-ipfire-pae/kernel/drivers/isdn/sc/sc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/led-class.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-alix2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/dell-led.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-bd2802.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-clevo-mail.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lm3530.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5521.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lp5523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-lt3593.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net48xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-net5501.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca9532.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wm8350.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-regulator.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-ss4200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/leds-wrap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-backlight.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-heartbeat.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-netdev.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/leds/ledtrig-timer.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/lguest #lib/modules/KVER-ipfire-pae/kernel/drivers/lguest/lg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-bufio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-crypt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-delay.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-flakey.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log-userspace.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-log.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mirror.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-multipath.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-queue-length.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-raid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-region-hash.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-round-robin.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-service-time.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-snapshot.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-thin-pool.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/dm-zero.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/linear.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/md-mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/multipath.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data +#lib/modules/KVER-ipfire-pae/kernel/drivers/md/persistent-data/dm-persistent-data.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid0.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/md/raid6_pq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mc44s803.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda18271.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda827x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda8290.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tda9887.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tea5761.ko @@ -602,12 +767,110 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-simple.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-types.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc4000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/common/tuners/xc5000.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core #lib/modules/KVER-ipfire-pae/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/media.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-alink-dtu-m.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-anysee.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-apac-viewcomp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-asus-pc39.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-ati-x10.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-a16d.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-cardbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-dvbt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-m135a.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia-rm-ks.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avermedia.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-avertv-303.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-azurewave-ad-tu700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-behold-columbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-behold.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-budget-ci-old.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-cinergy-1400.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-cinergy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dib0700-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dib0700-rc5.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-digitalnow-tinytwin.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-digittrade.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dm1105-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvb-t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-em-terratec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv-fm53.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-encore-enltv2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-evga-indtube.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-eztv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-flydvb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-flyvideo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-fusionhdtv-mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-gadmei-rm008z.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-gotview7135.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-hauppauge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-imon-pad.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-iodata-bctv7e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kaiomy.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-315u.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-leadtek-y04g0051.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lirc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-lme2510.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-manli.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-medion-x10.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-ii.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-digivox-iii.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-msi-tvanywhere.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-nebula.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-norwood.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-npgtech.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pctv-sedna.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-color.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-grey.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-002t.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-mk12.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview-new.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pixelview.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-powercolor-real-angel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-proteus-2309.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-purpletv.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-pv951.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-rc6-mce.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-real-audio-220-32-keys.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-snapstream-firefly.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-streamzap.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tbs-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-technisat-usb2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-cinergy-xs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim-2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-terratec-slim.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tevii-nec.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tivo.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-total-media-in-hand.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-trekstor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-tt-1500.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-twinhan1027.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-m1f.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-s350.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-videomate-tv-pvr.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/keymaps/rc-winfast.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/lirc_dev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/rc/rc-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video -#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l1-compat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/ir-kbd-i2c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-common.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/v4l2-int-device.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/media/video/videodev.ko @@ -617,6 +880,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/core/mspro_block.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/r592.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/memstick/host/tifm_ms.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion @@ -627,35 +891,61 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptscsih.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/message/fusion/mptspi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ab3100-otp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/cs5535-mfd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/janz-cmodio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/lpc_sch.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/mfd-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/pcf50633.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/rdc321x-southbridge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm831x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8350.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/timberdale.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6105x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps65010.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/tps6507x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/ucb1400_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/vx855.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wl1273-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mfd/wm8400-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds9802als.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/apds990x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1770glc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bh1780gli.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/bmp085.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/c2port-duramar2150.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/c2port/core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/cs5535-mfgpt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ds1682.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/at24.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/eeprom_93cx6.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/eeprom/max6875.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/enclosure.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/fsa9480.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hmc6352.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/hpilo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ics932s401.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29003.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/isl29020.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/iwmc3200top/iwmc3200top.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d_i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/pch_phub.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st/st_drv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_7xx1.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tifm_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/tsl2550.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/vmw_balloon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/card/mmc_block.ko @@ -665,13 +955,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/core/mmc_core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ricoh_mmc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci-pltfm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdhci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/sdricoh_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/ushc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/vub300.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mmc/host/wbsd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ar7part.ko @@ -686,8 +977,11 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtd_blkdevs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdblock.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/mtdconcat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/nand/nand_ecc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/sm_ftl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests +#lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_nandecctest.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_oobtest.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_pagetest.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/tests/mtd_readtest.ko @@ -698,83 +992,217 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi #lib/modules/KVER-ipfire-pae/kernel/drivers/mtd/ubi/ubi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c501.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c503.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c505.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c507.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c509.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c515.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c523.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c527.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/3c59x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8139cp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8139too.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/82596.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8390.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/8390p.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ac3200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/acenic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/amd8111e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/at1700.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1c -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1e -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx/atl1.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atlx/atl2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/atp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/b44.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/benet -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/benet/be2net.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bnx2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bnx2x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding #lib/modules/KVER-ipfire-pae/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/bsd_comp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cassini.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/chelsio -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cnic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cs89x0.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cxgb3 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/de600.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/de620.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/depca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/dl2k.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/dnet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000/e1000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000e -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/e2100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eepro.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eexpress.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/enic -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/enic/enic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/epic100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/es3210.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/eth16i.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethoc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ewrk3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/fealnx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/forcedeth.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hamachi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp-plus.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/hp100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ibmlana.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c501.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c509.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c515.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c574_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c589_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/3c59x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/3com/typhoon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/3c503.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/8390p.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ac3200.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/axnet_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/e2100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/es3210.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp-plus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/hp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/lne390.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne2k-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/ne3210.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/pcnet_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-mca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/smc-ultra32.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/8390/wd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/adaptec/starfire.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/alteon/acenic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/amd8111e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/depca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/lance.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/ni65.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/nmclan_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/amd/pcnet32.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1c/atl1c.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atl1e/atl1e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx/atl1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/atheros/atlx/atl2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/b44.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2x +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/cnic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/broadcom/tg3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/brocade/bna/bna.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb3 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb3/cxgb3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4/cxgb4.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4vf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cirrus +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cirrus/cs89x0.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/cisco/enic/enic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/ewrk3.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de2104x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/de4x5.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/dmfe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/tulip.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/uli526x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/winbond-840.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dec/tulip/xircom_cb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de600.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/de620.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/dl2k.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dlink/sundance.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/dnet.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex/benet +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/emulex/benet/be2net.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ethoc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fealnx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/at1700.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/eth16i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/fujitsu/fmvj18x_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/hp/hp100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c505.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c507.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c523.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/3c527.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/82596.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eepro.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/eexpress.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/lp486e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/ni52.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/i825xx/znet.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/icplus/ipg.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000/e1000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000e +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igb +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igb/igb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igbvf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/igbvf/igbvf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgb +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgb/ixgb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbe +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/jme.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/skge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/marvell/sky2.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4 +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ks8842.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ks8851_mll.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/micrel/ksz884x.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/myricom/myri10ge/myri10ge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ibmlana.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/natsemi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/natsemi/ns83820.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/s2io.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/vxge +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/neterion/vxge/vxge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/nvidia +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/nvidia/forcedeth.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/hamachi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/packetengines/yellowfin.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/netxen/netxen_nic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qla3xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlcnic +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlge +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/qlogic/qlge/qlge.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/rdc +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/rdc/r6040.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139cp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/8139too.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/atp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/realtek/r8169.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/seeq/seeq8005.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sfc/sfc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/silan/sc92031.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis/sis190.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sis/sis900.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/epic100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smc9194.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smc91c92_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/smsc/smsc9420.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro/stmmac +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/stmicro/stmmac/stmmac.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/cassini.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/niu.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/sungem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/sun/sunhme.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/tehuti +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/tehuti/tehuti.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ti +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/ti/tlan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-rhine.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/via/via-velocity.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ethernet/xircom/xirc2ps_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igb -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igb/igb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igbvf -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/igbvf/igbvf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ipg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/ali-ircc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/donauboe.ko @@ -791,137 +1219,74 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/via-ircc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/vlsi_ir.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgb -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgbe -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/jme.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ks8842.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ks8851_mll.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lance.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lne390.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/lp486e.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvlan.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/macvtap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/myri10ge -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/natsemi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne2k-pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ne3210.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netxen -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ni52.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ni65.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/niu.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ns83820.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pcnet32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/broadcom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/cicada.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/davicom.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/dp83640.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/et1011c.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/icplus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/lxt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/marvell.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/mdio-gpio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/micrel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/national.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/qsemi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/realtek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/smsc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/ste10Xp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_async.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_deflate.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_generic.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_mppe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp_synctty.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppoe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppol2tp.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/pppox.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qla3xxx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qlge -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/qlge/qlge.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/r6040.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/r8169.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/s2io.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/bsd_comp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_async.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_deflate.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_generic.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_mppe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/ppp_synctty.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppoe.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pppox.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/ppp/pptp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sb1000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sc92031.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/seeq8005.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sfc -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sfc/sfc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sis190.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sis900.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/skge.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sky2.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slhc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-mca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-ultra.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc-ultra32.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smc9194.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/smsc9420.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/starfire.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sundance.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slhc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/slip/slip.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/sungem_phy.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/sunhme.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tehuti.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tg3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tlan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/tulip.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/tulip/xircom_cb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/typhoon.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/asix.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc-phonet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_eem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_ncm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/cx82310_eth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/dm9601.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/gl620a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/hso.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/int51x1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kalmia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/kaweth.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/lg-vl600.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/mcs7830.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/net1080.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/pegasus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/plusb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rndis_host.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/sierra_net.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/smsc75xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/smsc95xx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/usbnet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/usb/zaurus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/via-rhine.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/via-velocity.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/virtio_net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/vmxnet3/vmxnet3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxge -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/vxge/vxge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/c101.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/cosa.ko @@ -945,95 +1310,25 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/sealevel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/wanxl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wan/z85230.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wimax/i2400m/i2400m.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/adm8211.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/airo_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/b43legacy/b43legacy.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/prism54 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/prism54/prism54.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/ray_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00 -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/wl3501_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback +#lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netback/xen-netback.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/net/xen-netfront.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/yellowfin.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/net/znet.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/parport #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/parport/parport_ax88796.ko @@ -1047,42 +1342,53 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/i82365.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pcmcia_rsrc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/rsrc_nonstatic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/tcic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pcmcia/yenta_socket.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86 #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acer-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/acerhdf.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/classmate-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi-aio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/dell-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/fujitsu-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hdaps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/hp_accel.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ibm_rtl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/ideapad-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_ips.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_menlow.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/intel_oaktrail.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/msi-wmi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/mxm-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-laptop.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/samsung-q10.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/sony-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/tc1100-wmi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/thinkpad_acpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/topstar-laptop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_acpi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/toshiba_bluetooth.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/ds2782_battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/max17040_battery.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/wm831x_power.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/power/wm8350_power.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/platform/x86/xo15-ebook.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/pps #lib/modules/KVER-ipfire-pae/kernel/drivers/pps/pps_core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp +#lib/modules/KVER-ipfire-pae/kernel/drivers/ptp/ptp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator +#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/fixed.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/regulator/gpio-regulator.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ab3100.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq32k.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-core.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1286.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1307.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1374.ko @@ -1090,29 +1396,32 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1553.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1672.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-ds3232.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-em3027.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl12022.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-lib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m41t80.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t35.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t59.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-m48t86.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-msm6242.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf50633.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8563.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rp5c01.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rv3029c2.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8025.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-rx8581.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-s35390a.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-test.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-wm8350.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/rtc/rtc-x1205.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/3w-xxxx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/53c700.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/BusLogic.ko @@ -1138,11 +1447,17 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/be2iscsi/be2iscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bfa #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2fc +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2fc/bnx2fc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/bnx2i/bnx2i.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgb3i -#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb3i/cxgb3i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb4i +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/cxgb4i/cxgb4i.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/cxgbi/libcxgbi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/dc395x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/device_handler/scsi_dh.ko @@ -1164,6 +1479,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/g_NCR5380.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/g_NCR5380_mmio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/gdth.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hpsa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/hptiop.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ibmmca.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/imm.ko @@ -1171,6 +1487,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/initio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ipr.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ips.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/isci +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/isci/isci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/iscsi_boot_sysfs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/iscsi_tcp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/libfc #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/libfc/libfc.ko @@ -1189,6 +1508,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mpt2sas/mpt2sas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/mvumi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/nsp32.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/osd/libosd.ko @@ -1200,6 +1520,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/nsp_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/qlogic_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001 +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pm8001/pm8001.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/pmcraid.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ppa.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla1280.ko @@ -1209,6 +1531,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qla4xxx/qla4xxx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/raid_class.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_mod.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_fc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/scsi_transport_iscsi.ko @@ -1229,37 +1552,55 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/tmscsim.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/u14-34f.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/ultrastor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/vmw_pvscsi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/scsi/wd7000.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_accent.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_boca.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_exar_st16c554.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_fourport.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/8250_hub6.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/serial/serial_cs.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb #lib/modules/KVER-ipfire-pae/kernel/drivers/ssb/ssb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/et131x/et131x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_blkvsc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_mouse.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_netvsc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_storvsc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/hv/hv_vmbus.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/mei/mei.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/phison/phison.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss #lib/modules/KVER-ipfire-pae/kernel/drivers/staging/slicoss/slicoss.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-core.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/usbip-host.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/staging/usbip/vhci-hcd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/ipwireless/ipwireless.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/n_gsm.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/nozomi.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_accent.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_boca.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_exar_st16c554.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_fourport.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/8250_hub6.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_jtaguart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/altera_uart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/mfd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/pch_uart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/serial_cs.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/timbuart.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/uartlite.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/tty/serial/xilinx_uartps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_aec.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_cif.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_netx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pci_generic.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_pdrv_genirq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uio/uio_smx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/atm/cxacru.ko @@ -1272,24 +1613,22 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/cdc-wdm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usblp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/core -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/core/usbcore.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3 +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-omap.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3-pci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/dwc3/dwc3.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ehci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/hwa-hc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp116x-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/ohci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/oxu210hp-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/r8a66597-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/sl811-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/uhci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/host/xhci-hcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/berry_charge.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cypress_cy7c63.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/cytherm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/emi26.ko @@ -1303,8 +1642,9 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbled.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/usbsevseg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/vstusb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/misc/yurex.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/gpio_vbus.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/otg/nop-usb-xceiv.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/aircable.ko @@ -1316,10 +1656,14 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/digi_acceleport.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/empeg.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/funsoft.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/garmin_gps.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/hp4x.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/io_ti.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipaq.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ipw.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ir-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/iuu_phoenix.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/keyspan_pda.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/mct_u232.ko @@ -1330,23 +1674,33 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/option.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/oti6858.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcaux.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/qcserial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/safe_serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/siemens_mpi.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/sierra.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ssu100.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/symbolserial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usb_wwan.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/visor.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/vivopay-serial.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/serial/zio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/uas.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-alauda.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-datafab.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-eneub6250.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-freecom.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-isd200.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-jumpshot.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-karma.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-realtek.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr09.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-sddr55.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/usb/storage/ums-usbat.ko @@ -1361,14 +1715,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/dfu #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/umc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/uwb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whc-rc.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/whci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/wlp -#lib/modules/KVER-ipfire-pae/kernel/drivers/uwb/wlp/wlp.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost +#lib/modules/KVER-ipfire-pae/kernel/drivers/vhost/vhost_net.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video #lib/modules/KVER-ipfire-pae/kernel/drivers/video/arkfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty @@ -1376,14 +1728,16 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/atyfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/aty/radeonfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8860_bl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/adp8870_bl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/apple_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/cr_bllcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/generic_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/kb3886_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/mbp_nvidia_bl.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/pcf50633-backlight.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/platform_lcd.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/video/backlight/wm831x_bl.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cirrusfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/cyber2000fb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/display @@ -1425,6 +1779,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sis/sisfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sm501fb.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/video/smscufx.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/sstfb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/svgalib.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/video/syscopyarea.ko @@ -1444,17 +1799,23 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/video/xen-fbfront.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_balloon.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_mmio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/virtio/virtio_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds1wm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2482.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/ds2490.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/masters/w1-gpio.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2408.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2423.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2431.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2433.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_ds2780.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_smem.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_therm.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/wire.ko @@ -1465,6 +1826,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim7101_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/cpu5wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/eurotechwdt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/f71808e_wdt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/geodewdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/hpwdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/i6300esb.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/iTCO_wdt.ko @@ -1473,6 +1836,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it8712f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it87_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/machzwd.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/nv_tco.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pc87413_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_pci.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_usb.ko @@ -1487,6 +1851,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/scx200_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/smsc37b787_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/softdog.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sp5100_tco.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83627hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697hf_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697ug_wdt.ko @@ -1494,15 +1859,16 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83977f_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wafer5823wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wm8350_wdt.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/xen_wdt.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen -#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/evtchn.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-evtchn.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntalloc.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-gntdev.ko +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback +#lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xen-pciback/xen-pciback.ko #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs #lib/modules/KVER-ipfire-pae/kernel/drivers/xen/xenfs/xenfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs -#lib/modules/KVER-ipfire-pae/kernel/fs/autofs/autofs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/autofs4 #lib/modules/KVER-ipfire-pae/kernel/fs/autofs4/autofs4.ko #lib/modules/KVER-ipfire-pae/kernel/fs/cachefiles @@ -1513,12 +1879,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/fs/ecryptfs/ecryptfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/exportfs #lib/modules/KVER-ipfire-pae/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ext2 -#lib/modules/KVER-ipfire-pae/kernel/fs/ext2/ext2.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ext3 -#lib/modules/KVER-ipfire-pae/kernel/fs/ext3/ext3.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/ext4 -#lib/modules/KVER-ipfire-pae/kernel/fs/ext4/ext4.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat #lib/modules/KVER-ipfire-pae/kernel/fs/fat/fat.ko #lib/modules/KVER-ipfire-pae/kernel/fs/fat/vfat.ko @@ -1529,17 +1889,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/fs/fuse/fuse.ko #lib/modules/KVER-ipfire-pae/kernel/fs/isofs #lib/modules/KVER-ipfire-pae/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd/jbd.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd2 -#lib/modules/KVER-ipfire-pae/kernel/fs/jbd2/jbd2.ko #lib/modules/KVER-ipfire-pae/kernel/fs/jffs2 #lib/modules/KVER-ipfire-pae/kernel/fs/jffs2/jffs2.ko #lib/modules/KVER-ipfire-pae/kernel/fs/jfs #lib/modules/KVER-ipfire-pae/kernel/fs/jfs/jfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/lockd #lib/modules/KVER-ipfire-pae/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/mbcache.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs #lib/modules/KVER-ipfire-pae/kernel/fs/nfs/nfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/nfs_common @@ -1550,26 +1905,24 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_tree.ko #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v1.ko #lib/modules/KVER-ipfire-pae/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/reiser4 -#lib/modules/KVER-ipfire-pae/kernel/fs/reiser4/reiser4.ko #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs #lib/modules/KVER-ipfire-pae/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire-pae/kernel/fs/smbfs -#lib/modules/KVER-ipfire-pae/kernel/fs/smbfs/smbfs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/udf #lib/modules/KVER-ipfire-pae/kernel/fs/udf/udf.ko +#lib/modules/KVER-ipfire-pae/kernel/fs/ufs +#lib/modules/KVER-ipfire-pae/kernel/fs/ufs/ufs.ko #lib/modules/KVER-ipfire-pae/kernel/fs/xfs #lib/modules/KVER-ipfire-pae/kernel/fs/xfs/xfs.ko #lib/modules/KVER-ipfire-pae/kernel/lib +#lib/modules/KVER-ipfire-pae/kernel/lib/cordic.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-ccitt.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-itu-t.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/crc16.ko #lib/modules/KVER-ipfire-pae/kernel/lib/crc7.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/crc8.ko #lib/modules/KVER-ipfire-pae/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/lzo -#lib/modules/KVER-ipfire-pae/kernel/lib/lzo/lzo_compress.ko -#lib/modules/KVER-ipfire-pae/kernel/lib/lzo/lzo_decompress.ko +#lib/modules/KVER-ipfire-pae/kernel/lib/raid6 +#lib/modules/KVER-ipfire-pae/kernel/lib/raid6/raid6_pq.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_bm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_fsm.ko #lib/modules/KVER-ipfire-pae/kernel/lib/ts_kmp.ko @@ -1586,6 +1939,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/atm/br2684.ko #lib/modules/KVER-ipfire-pae/kernel/net/atm/clip.ko #lib/modules/KVER-ipfire-pae/kernel/net/atm/pppoatm.ko +#lib/modules/KVER-ipfire-pae/kernel/net/batman-adv +#lib/modules/KVER-ipfire-pae/kernel/net/batman-adv/batman-adv.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/bluetooth.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/bnep @@ -1594,10 +1949,8 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/cmtp/cmtp.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/hidp #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/l2cap.ko #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm #lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire-pae/kernel/net/bluetooth/sco.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge #lib/modules/KVER-ipfire-pae/kernel/net/bridge/bridge.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter @@ -1623,13 +1976,16 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_filter.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtable_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ceph +#lib/modules/KVER-ipfire-pae/kernel/net/ceph/libceph.ko #lib/modules/KVER-ipfire-pae/kernel/net/ieee802154 +#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/6lowpan.ko #lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/nl802154.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/wpan-class.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ieee802154/ieee802154.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4 #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ah4.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/esp4.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/inet_diag.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ip_gre.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/ipcomp.ko @@ -1648,7 +2004,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_REJECT.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_addrtype.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ah.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ecn.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv4/netfilter/ipt_ipp2p.ko @@ -1691,7 +2046,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/esp6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ip6_tunnel.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/ipv6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/mip6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6_queue.ko @@ -1709,6 +2063,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_mangle.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/ip6table_raw.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/KVER-ipfire-pae/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/sit.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/tunnel6.ko #lib/modules/KVER-ipfire-pae/kernel/net/ipv6/xfrm6_mode_beet.ko @@ -1727,6 +2082,12 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/irda/irnet/irnet.ko #lib/modules/KVER-ipfire-pae/kernel/net/key #lib/modules/KVER-ipfire-pae/kernel/net/key/af_key.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_core.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_eth.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_netlink.ko +#lib/modules/KVER-ipfire-pae/kernel/net/l2tp/l2tp_ppp.ko #lib/modules/KVER-ipfire-pae/kernel/net/llc #lib/modules/KVER-ipfire-pae/kernel/net/llc/llc.ko #lib/modules/KVER-ipfire-pae/kernel/net/mac80211 @@ -1736,6 +2097,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/ipvs/ip_vs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_broadcast.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_ftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_h323.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_irc.ko @@ -1748,40 +2110,48 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_proto_udplite.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sane.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_snmp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_conntrack_tftp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nf_tproxy_core.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_log.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/nfnetlink_queue.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/x_tables.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_AUDIT.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CHECKSUM.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CONNMARK.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_CT.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_DSCP.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_HL.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IDLETIMER.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_IMQ.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_MARK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFLOG.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NFQUEUE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_NOTRACK.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_RATEEST.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPMSS.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TEE.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TPROXY.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_addrtype.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cluster.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_comment.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connbytes.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_connmark.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_cpu.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dccp.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_devgroup.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_dscp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_esp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hashlimit.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_helper.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_hl.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_iprange.ko +#lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_ipvs.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_layer7.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_length.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_limit.ko @@ -1806,24 +2176,21 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_tcpudp.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_time.ko #lib/modules/KVER-ipfire-pae/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire-pae/kernel/net/phonet -#lib/modules/KVER-ipfire-pae/kernel/net/phonet/phonet.ko -#lib/modules/KVER-ipfire-pae/kernel/net/phonet/pn_pep.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rds -#lib/modules/KVER-ipfire-pae/kernel/net/rds/rds.ko -#lib/modules/KVER-ipfire-pae/kernel/net/rds/rds_tcp.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill +#lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill-regulator.ko #lib/modules/KVER-ipfire-pae/kernel/net/rfkill/rfkill.ko #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/af-rxrpc.ko #lib/modules/KVER-ipfire-pae/kernel/net/rxrpc/rxkad.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched +#lib/modules/KVER-ipfire-pae/kernel/net/sched/act_csum.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_gact.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_ipt.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_mirred.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_nat.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_pedit.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_police.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/act_simple.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/act_skbedit.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_basic.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/cls_flow.ko @@ -1840,16 +2207,20 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sched/em_u32.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_atm.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_cbq.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_choke.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_drr.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_dsmark.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_gred.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_hfsc.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_htb.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_ingress.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_mqprio.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_multiq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_netem.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_prio.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_qfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_red.ko +#lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfb.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_sfq.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_tbf.ko #lib/modules/KVER-ipfire-pae/kernel/net/sched/sch_teql.ko @@ -1858,8 +2229,6 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko #lib/modules/KVER-ipfire-pae/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire-pae/kernel/net/wimax -#lib/modules/KVER-ipfire-pae/kernel/net/wimax/wimax.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless #lib/modules/KVER-ipfire-pae/kernel/net/wireless/cfg80211.ko #lib/modules/KVER-ipfire-pae/kernel/net/wireless/lib80211.ko @@ -1870,6 +2239,7 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_ipcomp.ko #lib/modules/KVER-ipfire-pae/kernel/net/xfrm/xfrm_user.ko #lib/modules/KVER-ipfire-pae/kernel/sound +#lib/modules/KVER-ipfire-pae/kernel/sound/ac97_bus.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core #lib/modules/KVER-ipfire-pae/kernel/sound/core/oss #lib/modules/KVER-ipfire-pae/kernel/sound/core/oss/snd-mixer-oss.ko @@ -1879,17 +2249,239 @@ lib/modules/KVER-ipfire-pae #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/oss/snd-seq-oss.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-device.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi-emul.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq-virmidi.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/seq/snd-seq.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-hrtimer.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-hwdep.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-page-alloc.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-pcm.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-rawmidi.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd-timer.ko #lib/modules/KVER-ipfire-pae/kernel/sound/core/snd.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401 +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3 +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4 +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/opl4/snd-opl4-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-aloop.ko #lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-dummy.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-mts64.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/vx +#lib/modules/KVER-ipfire-pae/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-firewire-speakers.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/firewire/snd-isight.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4113.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/other/snd-tea575x-tuner.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-i2c.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/i2c/snd-tea6330t.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1816a +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1816a/snd-ad1816a.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1848 +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/ad1848/snd-ad1848.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x/snd-cs4231.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/cs423x/snd-cs4236.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688 +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688/snd-es1688-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/es1688/snd-es1688.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy/snd-azt1605.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/galaxy/snd-azt2316.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gus-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusclassic.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusextreme.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-gusmax.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-interwave-stb.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/gus/snd-interwave.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-classic.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/msnd/snd-msnd-pinnacle.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-miro.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti92x-ad1848.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti92x-cs4231.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/opti9xx/snd-opti93x.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-emu8000-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-jazz16.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb-common.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16-csp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16-dsp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb16.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb8-dsp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sb8.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/sb/snd-sbawe.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-adlib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-als100.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-azt2320.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-cmi8330.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-es18xx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-opl3sa2.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-sc6000.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/snd-sscape.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wavefront +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wavefront/snd-wavefront.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wss +#lib/modules/KVER-ipfire-pae/kernel/sound/isa/wss/snd-wss-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ac97 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ali5451 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/asihpi +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/asihpi/snd-asihpi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/aw2/snd-aw2.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs5535audio +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ctxfi +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-ca0132.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-hdmi.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/korg1212 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lola +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lola/snd-lola.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lx6464es +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/mixart +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/nm256 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/pcxhr +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/riptide +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ad1889.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-als300.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-als4000.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-atiixp.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-azt3328.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-bt87x.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cmipci.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cs4281.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-cs5530.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ens1370.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-ens1371.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-es1938.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-es1968.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-fm801.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-maestro3.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme32.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-rme96.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sis7019.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/snd-via82xx.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/trident +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222 +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci +#lib/modules/KVER-ipfire-pae/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx +#lib/modules/KVER-ipfire-pae/kernel/sound/pcmcia/vx/snd-vxpocket.ko #lib/modules/KVER-ipfire-pae/kernel/sound/soundcore.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/synth +#lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux +#lib/modules/KVER-ipfire-pae/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/synth/snd-util-mem.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/6fire +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/6fire/snd-usb-6fire.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/caiaq +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/misc +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/misc/snd-ua101.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/snd-usbmidi-lib.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y/snd-usb-us122l.ko +#lib/modules/KVER-ipfire-pae/kernel/sound/usb/usx2y/snd-usb-usx2y.ko #lib/modules/KVER-ipfire-pae/modules.alias #lib/modules/KVER-ipfire-pae/modules.alias.bin +#lib/modules/KVER-ipfire-pae/modules.builtin #lib/modules/KVER-ipfire-pae/modules.ccwmap #lib/modules/KVER-ipfire-pae/modules.dep #lib/modules/KVER-ipfire-pae/modules.dep.bin diff --git a/config/rootfiles/packages/linux-xen b/config/rootfiles/packages/linux-xen index 7a3bc21b87..a05e1e72d2 100644 --- a/config/rootfiles/packages/linux-xen +++ b/config/rootfiles/packages/linux-xen @@ -1,1944 +1,1946 @@ -boot/System.map-KVER-ipfire-xen +boot/System.map-2.6.32.60-ipfire-xen boot/System.map-ipfire-xen -boot/config-KVER-ipfire-xen -boot/vmlinuz-KVER-ipfire-xen +boot/config-2.6.32.60-ipfire-xen +boot/vmlinuz-2.6.32.60-ipfire-xen boot/vmlinuz-ipfire-xen #lib/firmware/bnx2x-e1-5.0.21.0.fw #lib/firmware/bnx2x-e1h-5.0.21.0.fw #lib/modules -lib/modules/KVER-ipfire-xen -#lib/modules/KVER-ipfire-xen/build -#lib/modules/KVER-ipfire-xen/kernel -#lib/modules/KVER-ipfire-xen/kernel/arch -#lib/modules/KVER-ipfire-xen/kernel/arch/x86 -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/microcode.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/msr.ko -#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/scx200.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto -#lib/modules/KVER-ipfire-xen/kernel/crypto/aes_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ansi_cprng.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/anubis.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/arc4.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_pq.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_tx.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_xor.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/authenc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/blowfish.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/camellia.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cast5.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cast6.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cbc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ccm.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/crc32c.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cryptd.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ctr.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/cts.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/des_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ecb.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/fcrypt.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/gcm.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/gf128mul.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/ghash-generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/khazad.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/lrw.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/lzo.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/md5.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/michael_mic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/pcbc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd128.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd160.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd256.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd320.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/salsa20_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/seed.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/seqiv.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/serpent.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/sha1_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/sha256_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/sha512_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/tea.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/tgr192.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish_common.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/vmac.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/wp512.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/xcbc.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/xor.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/xts.ko -#lib/modules/KVER-ipfire-xen/kernel/crypto/zlib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/ac.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/button.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/container.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/fan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/pci_slot.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/power_meter.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/processor.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbshc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/thermal.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/video.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ahci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_piix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/libata.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ali.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_amd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_artop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cypress.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_efar.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it8213.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it821x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_marvell.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_netcell.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_opti.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_optidma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_radisys.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rdc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sil680.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sis.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_triflex.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pdc_adma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_mv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_nv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_promise.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_qstor.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil24.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sis.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_svw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sx4.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_uli.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_vsc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/ambassador.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/atmtcp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/eni.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/firestream.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/fore_200e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/he.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/horizon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77105.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77252.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/iphase.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/lanai.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/nicstar.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/solos-pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/suni.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/uPD98402.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/zatm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/DAC960.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe/aoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cciss.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cpqarray.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cryptoloop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/floppy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/nbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/osdblk.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/block/sx8.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/agpgart.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/via-agp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/i8k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/lp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nozomi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nsc_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nvram.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ppdev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/scx200_gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/char/toshiba.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource -#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/connector -#lib/modules/KVER-ipfire-xen/kernel/drivers/connector/cn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/dca -#lib/modules/KVER-ipfire-xen/kernel/drivers/dca/dca.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/dmatest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat -#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-net.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware -#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128 -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via -#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-apple.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-belkin.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cherry.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-chicony.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cypress.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-drff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gaff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gyration.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kensington.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kye.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-logitech.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-monterey.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-pl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-samsung.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sony.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-tmff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-topseed.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-wacom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-zpff.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid -#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7414.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7418.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1021.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1025.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1026.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1029.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1031.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm9240.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ads7828.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7462.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7470.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7473.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7475.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/applesmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asb100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/atxp1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/coretemp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/dme1737.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ds1621.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71805f.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f75375s.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/fschmd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/g760a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hdaps.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/it87.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/k8temp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm63.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm75.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm77.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm78.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm80.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm83.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm85.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm87.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm90.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm92.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm93.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm95241.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max1619.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max6650.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87360.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87427.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/sis5595.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/thmc50.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp401.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp421.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/via686a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt1211.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt8231.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83781d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83791d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83792d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83793.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154 -#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/ff-memless.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/input-polldev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/apanel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/cm109.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/powermate.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/yealink.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/led-class.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-alix2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wrap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-crypt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-delay.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mirror.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-multipath.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-queue-length.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-region-hash.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-round-robin.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-service-time.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-snapshot.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-zero.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/linear.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/md-mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/multipath.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid0.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid10.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid456.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid6_pq.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/videodev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/memstick.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/mfd-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/sm501.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm831x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710 -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/enclosure.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/hpilo.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/ics932s401.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/isl29003.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ar7part.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdblock.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdchar.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi -#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/3c59x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139cp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139too.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8390.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/acenic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/amd8111e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/b44.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet/be2net.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding/bonding.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bsd_comp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cassini.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cnic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de600.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de620.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dl2k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dnet.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dummy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000/e1000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic/enic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/epic100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/eql.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ethoc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/fealnx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/forcedeth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hamachi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hp100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ifb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb/igb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/imq.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ipg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/donauboe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/stir4200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/jme.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8842.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8851_mll.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/macvlan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mii.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/natsemi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ne2k-pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/niu.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ns83820.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcnet32.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/broadcom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/cicada.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/davicom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/et1011c.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/icplus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/lxt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/marvell.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/national.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/qsemi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/realtek.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/smsc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/vitesse.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_async.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_deflate.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_mppe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_synctty.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppol2tp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppox.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qla3xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge/qlge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r6040.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r8169.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/s2io.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sb1000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sc92031.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis190.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis900.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/skge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sky2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slhc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slip.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/smsc9420.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/starfire.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sundance.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem_phy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sunhme.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tehuti.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tg3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tlan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/tulip.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tun.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/typhoon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/asix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/catc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/dm9601.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/gl620a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/hso.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/int51x1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/kaweth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/net1080.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/pegasus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/plusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/usbnet.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/zaurus.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/veth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-rhine.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-velocity.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge/vxge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00 -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/net/yellowfin.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_pc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pci -#lib/modules/KVER-ipfire-xen/kernel/drivers/pci/pci-stub.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/i82092.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86 -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/wmi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/ds2782_battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/max17040_battery.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm831x_power.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm8350_power.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/pps -#lib/modules/KVER-ipfire-xen/kernel/drivers/pps/pps_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-test.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/BusLogic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/a100u2w.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/advansys.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/atp870u.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dc395x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/eata.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fdomain.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/gdth.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/hptiop.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/imm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/initio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ipr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ips.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/nsp32.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/osd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pmcraid.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ppa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla1280.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sd_mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ses.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sr_mod.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/stex.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2 -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/tmscsim.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/serial_core.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb -#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb/ssb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss -#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_aec.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_cif.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_smx.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usblp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core/usbcore.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/xhci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi26.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi62.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbled.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/uss720.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/aircable.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ch341.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/empeg.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ipw.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/opticon.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/option.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/sierra.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480 -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/umc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/uwb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whc-rc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp -#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/arkfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/atyfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/lcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/broadsheetfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cirrusfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cyber2000fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display/display.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_ddc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/lxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810 -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810/i810fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/macmodes.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/metronomefb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/neofb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/output.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm2fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm3fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva/rivafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/s3fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage/savagefb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis/sisfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sm501fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sstfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/svgalib.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/syscopyarea.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysfillrect.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysimgblt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tdfxfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tmiofb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tridentfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/uvesafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vgastate.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via/viafb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vt8623fb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1 -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/wire.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/machzwd.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/softdog.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2 -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront -#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs/autofs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4 -#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4/autofs4.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/cifs -#lib/modules/KVER-ipfire-xen/kernel/fs/cifs/cifs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs -#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs -#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs/exportfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ext2 -#lib/modules/KVER-ipfire-xen/kernel/fs/ext2/ext2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ext3 -#lib/modules/KVER-ipfire-xen/kernel/fs/ext3/ext3.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/ext4 -#lib/modules/KVER-ipfire-xen/kernel/fs/ext4/ext4.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fat -#lib/modules/KVER-ipfire-xen/kernel/fs/fat/fat.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fat/vfat.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fuse -#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/cuse.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/fuse.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/isofs -#lib/modules/KVER-ipfire-xen/kernel/fs/isofs/isofs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd/jbd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2 -#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2/jbd2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2 -#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2/jffs2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/jfs -#lib/modules/KVER-ipfire-xen/kernel/fs/jfs/jfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/lockd -#lib/modules/KVER-ipfire-xen/kernel/fs/lockd/lockd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/mbcache.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs/nfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common -#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd -#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd/nfsd.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/quota -#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_tree.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v1.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v2.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4 -#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4/reiser4.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs -#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs -#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs/smbfs.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/udf -#lib/modules/KVER-ipfire-xen/kernel/fs/udf/udf.ko -#lib/modules/KVER-ipfire-xen/kernel/fs/xfs -#lib/modules/KVER-ipfire-xen/kernel/fs/xfs/xfs.ko -#lib/modules/KVER-ipfire-xen/kernel/lib -#lib/modules/KVER-ipfire-xen/kernel/lib/crc-ccitt.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc-itu-t.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc-t10dif.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc16.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/crc7.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/libcrc32c.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/lzo -#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_compress.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/ts_bm.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/ts_fsm.ko -#lib/modules/KVER-ipfire-xen/kernel/lib/ts_kmp.ko -#lib/modules/KVER-ipfire-xen/kernel/net -#lib/modules/KVER-ipfire-xen/kernel/net/802 -#lib/modules/KVER-ipfire-xen/kernel/net/802/garp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/802/p8022.ko -#lib/modules/KVER-ipfire-xen/kernel/net/802/psnap.ko -#lib/modules/KVER-ipfire-xen/kernel/net/802/stp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/8021q -#lib/modules/KVER-ipfire-xen/kernel/net/8021q/8021q.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm -#lib/modules/KVER-ipfire-xen/kernel/net/atm/atm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm/br2684.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm/clip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/atm/pppoatm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bluetooth.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/l2cap.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/sco.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/bridge.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154 -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/af_802154.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/nl802154.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/wpan-class.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4 -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ah4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/esp4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/inet_diag.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ip_gre.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipcomp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_bic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_diag.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_lp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_veno.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tunnel4.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6 -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ah6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/esp6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipcomp6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipv6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/mip6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/sit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/tunnel6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda -#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm -#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irda.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan/irlan.ko -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet -#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet/irnet.ko -#lib/modules/KVER-ipfire-xen/kernel/net/key -#lib/modules/KVER-ipfire-xen/kernel/net/key/af_key.ko -#lib/modules/KVER-ipfire-xen/kernel/net/llc -#lib/modules/KVER-ipfire-xen/kernel/net/llc/llc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/mac80211 -#lib/modules/KVER-ipfire-xen/kernel/net/mac80211/mac80211.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/x_tables.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_HL.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_LED.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_MARK.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_cluster.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_comment.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connmark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dccp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dscp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_esp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_helper.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hl.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_iprange.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_layer7.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_length.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_limit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mac.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_multiport.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_osf.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_owner.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_physdev.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_policy.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_quota.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_rateest.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_realm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_recent.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_sctp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_socket.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_state.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_statistic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_string.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_time.ko -#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_u32.ko -#lib/modules/KVER-ipfire-xen/kernel/net/phonet -#lib/modules/KVER-ipfire-xen/kernel/net/phonet/phonet.ko -#lib/modules/KVER-ipfire-xen/kernel/net/phonet/pn_pep.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rds -#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds_tcp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rfkill -#lib/modules/KVER-ipfire-xen/kernel/net/rfkill/rfkill.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc -#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/rxkad.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_gact.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_ipt.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_mirred.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_nat.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_pedit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_police.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_skbedit.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_basic.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_flow.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_fw.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_route.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp6.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_tcindex.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_u32.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_cmp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_meta.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_nbyte.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_text.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_u32.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_atm.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_cbq.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_drr.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_dsmark.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_gred.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_hfsc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_htb.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_ingress.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_multiq.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_netem.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_prio.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_red.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_sfq.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_tbf.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_teql.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko -#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/sunrpc.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wimax -#lib/modules/KVER-ipfire-xen/kernel/net/wimax/wimax.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/cfg80211.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko -#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko -#lib/modules/KVER-ipfire-xen/kernel/net/xfrm -#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko -#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_user.ko -#lib/modules/KVER-ipfire-xen/kernel/sound -#lib/modules/KVER-ipfire-xen/kernel/sound/ac97_bus.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core -#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss -#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-hwdep.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-page-alloc.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-pcm.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-rawmidi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-timer.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401 -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3 -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-dummy.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mts64.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx -#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-i2c.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/isa -#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb -#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ad1889.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als300.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als4000.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-bt87x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cmipci.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs4281.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs5530.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1370.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1371.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1938.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1968.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-fm801.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-maestro3.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme32.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme96.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sis7019.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222 -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci -#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx -#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soc/snd-soc-core.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/soundcore.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/synth -#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux -#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/synth/snd-util-mem.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko -#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko -#lib/modules/KVER-ipfire-xen/modules.alias -#lib/modules/KVER-ipfire-xen/modules.alias.bin -#lib/modules/KVER-ipfire-xen/modules.ccwmap -#lib/modules/KVER-ipfire-xen/modules.dep -#lib/modules/KVER-ipfire-xen/modules.dep.bin -#lib/modules/KVER-ipfire-xen/modules.ieee1394map -#lib/modules/KVER-ipfire-xen/modules.inputmap -#lib/modules/KVER-ipfire-xen/modules.isapnpmap -#lib/modules/KVER-ipfire-xen/modules.ofmap -#lib/modules/KVER-ipfire-xen/modules.order -#lib/modules/KVER-ipfire-xen/modules.pcimap -#lib/modules/KVER-ipfire-xen/modules.seriomap -#lib/modules/KVER-ipfire-xen/modules.symbols -#lib/modules/KVER-ipfire-xen/modules.symbols.bin -#lib/modules/KVER-ipfire-xen/modules.usbmap -#lib/modules/KVER-ipfire-xen/source +lib/modules/2.6.32.60-ipfire-xen +#lib/modules/2.6.32.60-ipfire-xen/build +#lib/modules/2.6.32.60-ipfire-xen/kernel +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86 +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/microcode.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/msr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/arch/x86/kernel/scx200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/aes_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ansi_cprng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/anubis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/arc4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_pq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_tx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/async_tx/async_xor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/authenc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/blowfish.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/camellia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cast5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cast6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cbc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ccm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/crc32c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cryptd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ctr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/cts.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/des_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ecb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/fcrypt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/gcm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/gf128mul.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/ghash-generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/khazad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/lrw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/lzo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/md5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/michael_mic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/pcbc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd128.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd160.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd256.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/rmd320.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/salsa20_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/seed.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/seqiv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/serpent.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha1_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha256_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/sha512_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/tea.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/tgr192.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/twofish.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/twofish_common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/vmac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/wp512.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xcbc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/xts.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/crypto/zlib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/ac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/button.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/container.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/fan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/pci_slot.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/power_meter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/processor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/sbs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/sbshc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/thermal.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/acpi/video.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ahci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ata_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/ata_piix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/libata.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ali.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_amd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_artop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_cypress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_efar.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_it8213.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_it821x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_marvell.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_netcell.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_opti.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_optidma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_radisys.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_rdc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sil680.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_triflex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pata_via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/pdc_adma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_mv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_nv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_promise.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_qstor.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sil.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sil24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_svw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_sx4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_uli.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ata/sata_vsc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/ambassador.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/atmtcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/eni.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/firestream.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/fore_200e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/he.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/horizon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/idt77105.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/idt77252.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/iphase.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/lanai.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/nicstar.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/solos-pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/suni.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/uPD98402.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/atm/zatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/DAC960.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/aoe +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/aoe/aoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cciss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cpqarray.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/cryptoloop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/floppy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/nbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/osdblk.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/block/sx8.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/btusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/agpgart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/agp/via-agp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/i8k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/lp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nozomi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nsc_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/nvram.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/ppdev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/scx200_gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/char/toshiba.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/clocksource +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/connector +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/connector/cn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dca +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dca/dca.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/dmatest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/ioat +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-net.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firmware +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/drm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i810 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i830 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i915 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/mga +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/r128 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/radeon +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/savage +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/sis +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/tdfx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/ttm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/via +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-apple.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-belkin.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-cherry.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-chicony.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-cypress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-drff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-gaff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-gyration.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-kensington.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-kye.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-logitech.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-monterey.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-pl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-samsung.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sony.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-tmff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-topseed.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-wacom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/hid-zpff.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/usbhid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/abituguru.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ad7414.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ad7418.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1021.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1025.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1026.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1029.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm1031.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adm9240.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ads7828.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7462.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7470.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7473.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/adt7475.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/applesmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/asb100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/atxp1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/coretemp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/dme1737.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ds1621.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f71805f.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/f75375s.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/fschmd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/g760a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hdaps.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/hwmon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/it87.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/k8temp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm63.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm75.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm77.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm78.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm80.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm83.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm85.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm87.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm90.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm92.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm93.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/lm95241.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/max1619.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/max6650.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pc87360.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pc87427.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/sis5595.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/thmc50.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/tmp401.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/tmp421.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/via686a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/vt1211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/vt8231.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83781d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83791d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83792d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83793.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/i2c-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ieee802154 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/ff-memless.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/input-polldev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/apanel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/cm109.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/powermate.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/input/misc/yealink.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/capi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/divert +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hysdn +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/led-class.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-alix2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/leds-wrap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-crypt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-delay.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-log.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-mirror.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-multipath.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-queue-length.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-region-hash.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-round-robin.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-service-time.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-snapshot.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/dm-zero.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/linear.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/md-mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/multipath.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid0.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid10.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid456.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/md/raid6_pq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb/dvb-core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/media/video/videodev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core/memstick.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/mfd-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/sm501.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm831x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/c2port/core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/cb710 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/enclosure.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/hpilo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/ics932s401.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/isl29003.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/misc/tifm_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ar7part.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/chips +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/maps +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdblock.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdchar.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ubi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/3c59x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8139cp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8139too.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/8390.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/acenic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/amd8111e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1c +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1e +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx/atl1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atlx/atl2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/atp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/b44.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/benet +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/benet/be2net.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bnx2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bnx2x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bonding +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bonding/bonding.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/bsd_comp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cassini.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/chelsio +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cnic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cxgb3 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/de600.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/de620.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dl2k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dnet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/dummy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000/e1000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000e +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/enic +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/enic/enic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/epic100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/eql.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ethoc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/fealnx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/forcedeth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/hamachi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/hp100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ifb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igb/igb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igbvf +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/imq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ipg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/donauboe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/stir4200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgbe +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/jme.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ks8842.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ks8851_mll.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/macvlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mii.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/myri10ge +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/natsemi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ne2k-pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/netxen +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/niu.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ns83820.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pcnet32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/broadcom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/cicada.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/davicom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/et1011c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/icplus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/lxt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/marvell.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/national.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/qsemi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/realtek.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/smsc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/phy/vitesse.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_async.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_deflate.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_mppe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/ppp_synctty.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppol2tp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/pppox.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qla3xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qlge +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/qlge/qlge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/r6040.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/r8169.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/s2io.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sb1000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sc92031.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sis190.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sis900.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/skge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sky2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/slhc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/slip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/smsc9420.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/starfire.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sundance.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sungem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sungem_phy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/sunhme.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tehuti.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tg3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/tulip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/tun.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/typhoon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/asix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/catc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/dm9601.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/gl620a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/hso.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/int51x1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/kaweth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/net1080.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/pegasus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/plusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/usbnet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/usb/zaurus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/veth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/via-rhine.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/via-velocity.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/vxge +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/vxge/vxge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/airo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43legacy +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/prism54 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1211rw +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/net/yellowfin.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/parport/parport_pc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pci +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pci/pci-stub.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/i82092.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/platform/x86/wmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/ds2782_battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/max17040_battery.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/wm831x_power.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/power/wm8350_power.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pps +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/pps/pps_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-test.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/BusLogic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/a100u2w.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aacraid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/advansys.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic94xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/arcmsr +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/atp870u.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/be2iscsi +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bfa +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bnx2i +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/cxgb3i +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dc395x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/eata.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fdomain.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fnic +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/gdth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/hptiop.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/imm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/initio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ipr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ips.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libfc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libiscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libsas +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/lpfc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/mvsas +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/nsp32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/osd/osd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/pmcraid.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ppa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla1280.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla2xxx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla4xxx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sd_mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/ses.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sr_mod.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/stex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/scsi/tmscsim.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/jsm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/serial/serial_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ssb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/ssb/ssb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/et131x +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/slicoss +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_aec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_cif.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uio/uio_smx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/usblp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/core/usbcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/whci +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/host/xhci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/emi26.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/emi62.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/sisusbvga +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usbled.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/uss720.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/otg +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/aircable.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ch341.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/empeg.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ipw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/opticon.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/option.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/sierra.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/dfu +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/umc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/uwb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/whc-rc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/whci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/wlp +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/arkfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/atyfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/lcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/broadsheetfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/cirrusfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/cyber2000fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/display +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/display/display.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/fb_ddc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/gxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/geode/lxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/i810 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/i810/i810fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/kyro +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/macmodes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/mb862xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/metronomefb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/neofb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/nvidia +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/output.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/pm2fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/pm3fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/riva +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/riva/rivafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/s3fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/savage +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/savage/savagefb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sis +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sis/sisfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sm501fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sstfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/svgalib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/syscopyarea.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sysfillrect.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/sysimgblt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tdfxfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tmiofb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/tridentfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/uvesafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vgastate.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/via +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/via/viafb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/video/vt8623fb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/w1/wire.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/machzwd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/softdog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/blktap2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsiback +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsifront +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbback +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbfront +#lib/modules/2.6.32.60-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs/autofs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/autofs4/autofs4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/cifs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/cifs/cifs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ecryptfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/exportfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/exportfs/exportfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext2/ext2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext3 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext3/ext3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ext4/ext4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat/fat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fat/vfat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse/cuse.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/fuse/fuse.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/isofs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/isofs/isofs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd/jbd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jbd2/jbd2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jffs2 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jffs2/jffs2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/jfs/jfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/lockd +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/lockd/lockd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/mbcache.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs/nfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs_common +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfsd +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/nfsd/nfsd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_tree.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_v1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/quota/quota_v2.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiser4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiser4/reiser4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiserfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/smbfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/smbfs/smbfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/udf +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/udf/udf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ufs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/ufs/xfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/xfs +#lib/modules/2.6.32.60-ipfire-xen/kernel/fs/xfs/xfs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-ccitt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-itu-t.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc-t10dif.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc16.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/crc7.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/libcrc32c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo/lzo_compress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_bm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_fsm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/lib/ts_kmp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/garp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/p8022.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/psnap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/802/stp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/8021q +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/8021q/8021q.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/atm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/br2684.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/clip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/atm/pppoatm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bluetooth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bnep +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/cmtp +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/hidp +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/l2cap.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/rfcomm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bluetooth/sco.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/bridge.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/af_802154.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/nl802154.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ieee802154/wpan-class.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ah4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/esp4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/inet_diag.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ip_gre.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ipcomp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/ipip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_bic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_diag.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_lp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_veno.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/tunnel4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ah6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/esp6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ipcomp6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/ipv6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/mip6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/sit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/tunnel6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irlan +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irlan/irlan.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irnet +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/irda/irnet/irnet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/key +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/key/af_key.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/llc +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/llc/llc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/mac80211 +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/mac80211/mac80211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/ipvs +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/x_tables.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_HL.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_LED.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_MARK.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_cluster.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_comment.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_connmark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_dccp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_dscp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_esp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_helper.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_hl.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_iprange.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_layer7.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_length.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_limit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_mac.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_mark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_multiport.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_osf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_owner.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_physdev.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_policy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_quota.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_rateest.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_realm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_recent.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_sctp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_socket.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_state.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_statistic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_string.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_time.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/netfilter/xt_u32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet/phonet.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/phonet/pn_pep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds/rds.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rds/rds_tcp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rfkill +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rfkill/rfkill.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/rxrpc/rxkad.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_gact.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_ipt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_mirred.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_nat.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_pedit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_police.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/act_skbedit.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_basic.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_flow.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_fw.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_route.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_rsvp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_rsvp6.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_tcindex.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/cls_u32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_cmp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_meta.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_nbyte.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_text.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/em_u32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_atm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_cbq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_drr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_dsmark.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_gred.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_hfsc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_htb.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_ingress.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_multiq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_netem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_prio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_red.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_sfq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_tbf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sched/sch_teql.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/sunrpc/sunrpc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wimax +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wimax/wimax.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/cfg80211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/net/xfrm/xfrm_user.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/ac97_bus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/oss +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/seq/snd-seq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-hwdep.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-page-alloc.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-pcm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-rawmidi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd-timer.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/core/snd.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-dummy.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-mts64.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/vx +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/i2c/snd-i2c.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ac97 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ali5451 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ca0106 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs46xx +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs5535audio +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ctxfi +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/korg1212 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/lx6464es +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/mixart +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/nm256 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/pcxhr +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/riptide +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ad1889.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-als300.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-als4000.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-atiixp.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-bt87x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cmipci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cs4281.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-cs5530.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ens1370.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-ens1371.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-es1938.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-es1968.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-fm801.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-maestro3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-rme32.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-rme96.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-sis7019.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/snd-via82xx.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/trident +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/vx222 +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ymfpci +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/pdaudiocf +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/vx +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soc/snd-soc-core.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/soundcore.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/emux +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/synth/snd-util-mem.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/caiaq +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko +#lib/modules/2.6.32.60-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko +#lib/modules/2.6.32.60-ipfire-xen/modules.alias +#lib/modules/2.6.32.60-ipfire-xen/modules.alias.bin +#lib/modules/2.6.32.60-ipfire-xen/modules.ccwmap +#lib/modules/2.6.32.60-ipfire-xen/modules.dep +#lib/modules/2.6.32.60-ipfire-xen/modules.dep.bin +#lib/modules/2.6.32.60-ipfire-xen/modules.ieee1394map +#lib/modules/2.6.32.60-ipfire-xen/modules.inputmap +#lib/modules/2.6.32.60-ipfire-xen/modules.isapnpmap +#lib/modules/2.6.32.60-ipfire-xen/modules.ofmap +#lib/modules/2.6.32.60-ipfire-xen/modules.order +#lib/modules/2.6.32.60-ipfire-xen/modules.pcimap +#lib/modules/2.6.32.60-ipfire-xen/modules.seriomap +#lib/modules/2.6.32.60-ipfire-xen/modules.symbols +#lib/modules/2.6.32.60-ipfire-xen/modules.symbols.bin +#lib/modules/2.6.32.60-ipfire-xen/modules.usbmap +#lib/modules/2.6.32.60-ipfire-xen/source diff --git a/config/rootfiles/packages/mc b/config/rootfiles/packages/mc index bb7e6d7949..47109e9afa 100644 --- a/config/rootfiles/packages/mc +++ b/config/rootfiles/packages/mc @@ -1,22 +1,30 @@ +#etc/mc +etc/mc/edit.indent.rc +etc/mc/filehighlight.ini +etc/mc/mc.ext +etc/mc/mc.keymap +etc/mc/mc.keymap.default +etc/mc/mc.keymap.emacs +etc/mc/mc.menu +etc/mc/mc.menu.sr +etc/mc/mcedit.menu +etc/mc/sfs.ini usr/bin/mc usr/bin/mcdiff usr/bin/mcedit usr/bin/mcview -usr/etc -usr/etc/mc -usr/etc/mc/cedit.menu -usr/etc/mc/edit.indent.rc -usr/etc/mc/edit.spell.rc -usr/etc/mc/filehighlight.ini -usr/etc/mc/mc.ext -usr/etc/mc/mc.keymap -usr/etc/mc/mc.keymap.default -usr/etc/mc/mc.keymap.emacs -usr/etc/mc/mc.menu -usr/etc/mc/mc.menu.sr -usr/etc/mc/sfs.ini #usr/libexec/mc usr/libexec/mc/cons.saver +#usr/libexec/mc/ext.d +usr/libexec/mc/ext.d/archive.sh +usr/libexec/mc/ext.d/doc.sh +usr/libexec/mc/ext.d/image.sh +usr/libexec/mc/ext.d/misc.sh +usr/libexec/mc/ext.d/package.sh +usr/libexec/mc/ext.d/sound.sh +usr/libexec/mc/ext.d/text.sh +usr/libexec/mc/ext.d/video.sh +usr/libexec/mc/ext.d/web.sh #usr/libexec/mc/extfs.d #usr/libexec/mc/extfs.d/README #usr/libexec/mc/extfs.d/README.extfs @@ -24,15 +32,18 @@ usr/libexec/mc/extfs.d/a+ usr/libexec/mc/extfs.d/apt+ usr/libexec/mc/extfs.d/audio usr/libexec/mc/extfs.d/bpp +usr/libexec/mc/extfs.d/changesetfs usr/libexec/mc/extfs.d/deb usr/libexec/mc/extfs.d/deba usr/libexec/mc/extfs.d/debd usr/libexec/mc/extfs.d/dpkg+ +usr/libexec/mc/extfs.d/gitfs+ usr/libexec/mc/extfs.d/hp48+ usr/libexec/mc/extfs.d/iso9660 usr/libexec/mc/extfs.d/lslR usr/libexec/mc/extfs.d/mailfs usr/libexec/mc/extfs.d/patchfs +usr/libexec/mc/extfs.d/patchsetfs usr/libexec/mc/extfs.d/rpm usr/libexec/mc/extfs.d/rpms+ usr/libexec/mc/extfs.d/s3+ @@ -47,6 +58,7 @@ usr/libexec/mc/extfs.d/uc1541 usr/libexec/mc/extfs.d/ucab usr/libexec/mc/extfs.d/uha usr/libexec/mc/extfs.d/ulha +usr/libexec/mc/extfs.d/ulib usr/libexec/mc/extfs.d/urar usr/libexec/mc/extfs.d/uzip usr/libexec/mc/extfs.d/uzoo @@ -66,6 +78,7 @@ usr/libexec/mc/fish/mv usr/libexec/mc/fish/rmdir usr/libexec/mc/fish/send usr/libexec/mc/fish/unlink +usr/libexec/mc/fish/utime usr/libexec/mc/mc-wrapper.csh usr/libexec/mc/mc-wrapper.sh usr/libexec/mc/mc.csh @@ -74,6 +87,15 @@ usr/libexec/mc/mc.sh #usr/share/man/man1/mcedit.1 #usr/share/man/man1/mcview.1 #usr/share/mc +#usr/share/mc/examples +#usr/share/mc/examples/macros.d +#usr/share/mc/examples/macros.d/macro.0.sh +#usr/share/mc/examples/macros.d/macro.1.sh +#usr/share/mc/examples/macros.d/macro.3.sh +#usr/share/mc/examples/macros.d/macro.4.sh +#usr/share/mc/examples/macros.d/macro.5.sh +#usr/share/mc/examples/macros.d/macro.6.sh +#usr/share/mc/examples/macros.d/macro.7.sh #usr/share/mc/help usr/share/mc/help/mc.hlp #usr/share/mc/hints @@ -89,10 +111,13 @@ usr/share/mc/skins/featured.ini usr/share/mc/skins/gotar.ini usr/share/mc/skins/mc46.ini usr/share/mc/skins/nicedark.ini +usr/share/mc/skins/sand256.ini +usr/share/mc/skins/xoria256.ini #usr/share/mc/syntax usr/share/mc/syntax/PKGBUILD.syntax usr/share/mc/syntax/Syntax usr/share/mc/syntax/ada95.syntax +usr/share/mc/syntax/as.syntax usr/share/mc/syntax/aspx.syntax usr/share/mc/syntax/assembler.syntax usr/share/mc/syntax/awk.syntax diff --git a/config/rootfiles/packages/pakfire3 b/config/rootfiles/packages/pakfire3 new file mode 100644 index 0000000000..effabc805b --- /dev/null +++ b/config/rootfiles/packages/pakfire3 @@ -0,0 +1,118 @@ +#etc/pakfire +etc/pakfire/builder.conf +etc/pakfire/client.conf +etc/pakfire/daemon.conf +etc/pakfire/distros +etc/pakfire/distros/ipfire3.conf +etc/pakfire/general.conf +etc/pakfire/repos +usr/bin/pakfire-builder +usr/bin/pakfire-client +usr/bin/pakfire-daemon +usr/bin/pakfire-key +usr/bin/pakfire-server +usr/lib/libpakfire_preload.so +usr/lib/pakfire +usr/lib/pakfire/builder +usr/lib/pakfire/chroot-shell +usr/lib/pakfire/cleanup +usr/lib/pakfire/compress-man-pages +usr/lib/pakfire/extract-debuginfo +usr/lib/pakfire/find-common +usr/lib/pakfire/find-prerequires +usr/lib/pakfire/find-provides +usr/lib/pakfire/find-requires +usr/lib/pakfire/functions-common +usr/lib/pakfire/functions-constants +usr/lib/pakfire/functions-directories +usr/lib/pakfire/functions-files +usr/lib/pakfire/functions-lists +usr/lib/pakfire/functions-logging +usr/lib/pakfire/macros +usr/lib/pakfire/macros/arch.macro +usr/lib/pakfire/macros/build.macro +usr/lib/pakfire/macros/cflags.macro +usr/lib/pakfire/macros/constants.macro +usr/lib/pakfire/macros/package-default.macro +usr/lib/pakfire/macros/quality-agent.macro +usr/lib/pakfire/macros/systemd.macro +usr/lib/pakfire/macros/templates.macro +usr/lib/pakfire/pakfire-multicall.py +usr/lib/pakfire/patch +usr/lib/pakfire/perl.prov +usr/lib/pakfire/perl.req +usr/lib/pakfire/py-compile +usr/lib/pakfire/quality-agent +usr/lib/pakfire/remove-static-libs +usr/lib/python2.7/site-packages/pakfire +usr/lib/python2.7/site-packages/pakfire/__init__.py +usr/lib/python2.7/site-packages/pakfire/__version__.py +usr/lib/python2.7/site-packages/pakfire/_lzma.so +usr/lib/python2.7/site-packages/pakfire/_pakfire.so +usr/lib/python2.7/site-packages/pakfire/actions.py +usr/lib/python2.7/site-packages/pakfire/api.py +usr/lib/python2.7/site-packages/pakfire/base.py +usr/lib/python2.7/site-packages/pakfire/builder.py +usr/lib/python2.7/site-packages/pakfire/cgroup.py +usr/lib/python2.7/site-packages/pakfire/chroot.py +usr/lib/python2.7/site-packages/pakfire/cli.py +usr/lib/python2.7/site-packages/pakfire/client +usr/lib/python2.7/site-packages/pakfire/client/__init__.py +usr/lib/python2.7/site-packages/pakfire/client/base.py +usr/lib/python2.7/site-packages/pakfire/client/builder.py +usr/lib/python2.7/site-packages/pakfire/client/test.py +usr/lib/python2.7/site-packages/pakfire/client/transport.py +usr/lib/python2.7/site-packages/pakfire/compress.py +usr/lib/python2.7/site-packages/pakfire/config.py +usr/lib/python2.7/site-packages/pakfire/constants.py +usr/lib/python2.7/site-packages/pakfire/distro.py +usr/lib/python2.7/site-packages/pakfire/downloader.py +usr/lib/python2.7/site-packages/pakfire/errors.py +usr/lib/python2.7/site-packages/pakfire/filelist.py +usr/lib/python2.7/site-packages/pakfire/i18n.py +usr/lib/python2.7/site-packages/pakfire/keyring.py +usr/lib/python2.7/site-packages/pakfire/logger.py +usr/lib/python2.7/site-packages/pakfire/lzma.py +usr/lib/python2.7/site-packages/pakfire/packages +usr/lib/python2.7/site-packages/pakfire/packages/__init__.py +usr/lib/python2.7/site-packages/pakfire/packages/base.py +usr/lib/python2.7/site-packages/pakfire/packages/file.py +usr/lib/python2.7/site-packages/pakfire/packages/installed.py +usr/lib/python2.7/site-packages/pakfire/packages/lexer.py +usr/lib/python2.7/site-packages/pakfire/packages/make.py +usr/lib/python2.7/site-packages/pakfire/packages/packager.py +usr/lib/python2.7/site-packages/pakfire/packages/solv.py +usr/lib/python2.7/site-packages/pakfire/repository +usr/lib/python2.7/site-packages/pakfire/repository/__init__.py +usr/lib/python2.7/site-packages/pakfire/repository/base.py +usr/lib/python2.7/site-packages/pakfire/repository/cache.py +usr/lib/python2.7/site-packages/pakfire/repository/database.py +usr/lib/python2.7/site-packages/pakfire/repository/index.py +usr/lib/python2.7/site-packages/pakfire/repository/local.py +usr/lib/python2.7/site-packages/pakfire/repository/metadata.py +usr/lib/python2.7/site-packages/pakfire/repository/remote.py +usr/lib/python2.7/site-packages/pakfire/repository/system.py +usr/lib/python2.7/site-packages/pakfire/satsolver.py +usr/lib/python2.7/site-packages/pakfire/server.py +usr/lib/python2.7/site-packages/pakfire/system.py +usr/lib/python2.7/site-packages/pakfire/transaction.py +usr/lib/python2.7/site-packages/pakfire/util.py +usr/lib/quality-agent +usr/lib/quality-agent/001-include-files +usr/lib/quality-agent/001-remove-info-files +usr/lib/quality-agent/001-unsafe-files +usr/lib/quality-agent/002-bad-symlinks +usr/lib/quality-agent/003-libs-location +usr/lib/quality-agent/050-canary +usr/lib/quality-agent/050-execstacks +usr/lib/quality-agent/050-invalid-interpreters +usr/lib/quality-agent/050-libs-needed +usr/lib/quality-agent/050-libs-soname +usr/lib/quality-agent/050-libs-x86_64 +usr/lib/quality-agent/050-nx +usr/lib/quality-agent/050-relro +usr/lib/quality-agent/050-rpaths +usr/lib/quality-agent/090-python-hardlinks +usr/lib/quality-agent/095-directory-layout +usr/lib/quality-agent/qa-include +var/ipfire/backup/addons/includes/pakfire3 diff --git a/config/rootfiles/packages/pakfire3-deps b/config/rootfiles/packages/pakfire3-deps deleted file mode 100644 index 464f5cab9c..0000000000 --- a/config/rootfiles/packages/pakfire3-deps +++ /dev/null @@ -1 +0,0 @@ -var/ipfire/pakfire3-deps diff --git a/config/rootfiles/packages/pycurl b/config/rootfiles/packages/pycurl new file mode 100644 index 0000000000..ddbe585119 --- /dev/null +++ b/config/rootfiles/packages/pycurl @@ -0,0 +1,53 @@ +usr/lib/python2.7/site-packages/curl +usr/lib/python2.7/site-packages/curl/__init__.py +usr/lib/python2.7/site-packages/curl/__init__.pyc +#usr/lib/python2.7/site-packages/pycurl-7.19.0-py2.7.egg-info +usr/lib/python2.7/site-packages/pycurl.so +#usr/share/doc/pycurl +#usr/share/doc/pycurl/COPYING +#usr/share/doc/pycurl/COPYING2 +#usr/share/doc/pycurl/ChangeLog +#usr/share/doc/pycurl/INSTALL +#usr/share/doc/pycurl/README +#usr/share/doc/pycurl/TODO +#usr/share/doc/pycurl/examples +#usr/share/doc/pycurl/examples/basicfirst.py +#usr/share/doc/pycurl/examples/file_upload.py +#usr/share/doc/pycurl/examples/linksys.py +#usr/share/doc/pycurl/examples/retriever-multi.py +#usr/share/doc/pycurl/examples/retriever.py +#usr/share/doc/pycurl/examples/sfquery.py +#usr/share/doc/pycurl/examples/xmlrpc_curl.py +#usr/share/doc/pycurl/html +#usr/share/doc/pycurl/html/callbacks.html +#usr/share/doc/pycurl/html/curlmultiobject.html +#usr/share/doc/pycurl/html/curlobject.html +#usr/share/doc/pycurl/html/curlshareobject.html +#usr/share/doc/pycurl/html/pycurl.html +#usr/share/doc/pycurl/tests +#usr/share/doc/pycurl/tests/test.py +#usr/share/doc/pycurl/tests/test_cb.py +#usr/share/doc/pycurl/tests/test_debug.py +#usr/share/doc/pycurl/tests/test_ftp.py +#usr/share/doc/pycurl/tests/test_getinfo.py +#usr/share/doc/pycurl/tests/test_gtk.py +#usr/share/doc/pycurl/tests/test_internals.py +#usr/share/doc/pycurl/tests/test_memleak.py +#usr/share/doc/pycurl/tests/test_multi.py +#usr/share/doc/pycurl/tests/test_multi2.py +#usr/share/doc/pycurl/tests/test_multi3.py +#usr/share/doc/pycurl/tests/test_multi4.py +#usr/share/doc/pycurl/tests/test_multi5.py +#usr/share/doc/pycurl/tests/test_multi6.py +#usr/share/doc/pycurl/tests/test_multi_socket.py +#usr/share/doc/pycurl/tests/test_multi_socket_select.py +#usr/share/doc/pycurl/tests/test_multi_timer.py +#usr/share/doc/pycurl/tests/test_multi_vs_thread.py +#usr/share/doc/pycurl/tests/test_post.py +#usr/share/doc/pycurl/tests/test_post2.py +#usr/share/doc/pycurl/tests/test_post3.py +#usr/share/doc/pycurl/tests/test_share.py +#usr/share/doc/pycurl/tests/test_socketopen.py +#usr/share/doc/pycurl/tests/test_stringio.py +#usr/share/doc/pycurl/tests/test_xmlrpc.py +#usr/share/doc/pycurl/tests/util.py diff --git a/config/rootfiles/packages/pygpgme b/config/rootfiles/packages/pygpgme new file mode 100644 index 0000000000..83ffaf8395 --- /dev/null +++ b/config/rootfiles/packages/pygpgme @@ -0,0 +1,7 @@ +usr/lib/python2.7/site-packages/gpgme +usr/lib/python2.7/site-packages/gpgme/__init__.py +usr/lib/python2.7/site-packages/gpgme/__init__.pyc +usr/lib/python2.7/site-packages/gpgme/_gpgme.so +usr/lib/python2.7/site-packages/gpgme/editutil.py +usr/lib/python2.7/site-packages/gpgme/editutil.pyc +#usr/lib/python2.7/site-packages/pygpgme-0.3-py2.7.egg-info diff --git a/config/rootfiles/packages/python-rssdler b/config/rootfiles/packages/python-rssdler index 0c8bf8dc07..e5e3e3bdc6 100644 --- a/config/rootfiles/packages/python-rssdler +++ b/config/rootfiles/packages/python-rssdler @@ -1,4 +1,5 @@ usr/bin/rssdler +#usr/lib/python2.7/site-packages/drv_libxml2.pyc #usr/lib/python2.7/site-packages/rssdler-0.4.0-py2.7.egg-info usr/lib/python2.7/site-packages/rssdler.py -usr/lib/python2.7/site-packages/rssdler.pyc +#usr/lib/python2.7/site-packages/rssdler.pyc diff --git a/config/rootfiles/packages/qemu-kqemu b/config/rootfiles/packages/qemu-kqemu deleted file mode 100644 index 7a908f7611..0000000000 --- a/config/rootfiles/packages/qemu-kqemu +++ /dev/null @@ -1,2 +0,0 @@ -usr/bin/qemu-kqemu -usr/share/qemu/bios-kqemu.bin diff --git a/config/rootfiles/packages/samba b/config/rootfiles/packages/samba index 0616b4ba2e..fc8cc44fc2 100644 --- a/config/rootfiles/packages/samba +++ b/config/rootfiles/packages/samba @@ -1,11 +1,5 @@ usr/bin/eventlogadm usr/bin/findsmb -usr/bin/ldbadd -usr/bin/ldbdel -usr/bin/ldbedit -usr/bin/ldbmodify -usr/bin/ldbrename -usr/bin/ldbsearch usr/bin/net usr/bin/nmblookup usr/bin/ntlm_auth @@ -21,10 +15,12 @@ usr/bin/smbget usr/bin/smbpasswd usr/bin/smbspool usr/bin/smbstatus +usr/bin/smbta-util usr/bin/smbtar usr/bin/smbtree usr/bin/tdbbackup usr/bin/tdbdump +usr/bin/tdbrestore usr/bin/tdbtool usr/bin/testparm usr/bin/wbinfo @@ -33,7 +29,6 @@ usr/bin/wbinfo #usr/include/smb_share_modes.h #usr/include/talloc.h #usr/include/tdb.h -#usr/include/wbc_async.h #usr/include/wbclient.h usr/lib/libnetapi.so usr/lib/libnetapi.so.0 @@ -43,8 +38,10 @@ usr/lib/libsmbsharemodes.so usr/lib/libsmbsharemodes.so.0 usr/lib/libtalloc.so usr/lib/libtalloc.so.2 +usr/lib/libtalloc.so.2.0.5 usr/lib/libtdb.so usr/lib/libtdb.so.1 +usr/lib/libtdb.so.1.2.9 usr/lib/libwbclient.so usr/lib/libwbclient.so.0 #usr/lib/samba @@ -55,11 +52,11 @@ usr/lib/samba/charset/CP437.so usr/lib/samba/charset/CP850.so usr/lib/samba/gpext usr/lib/samba/idmap +usr/lib/samba/idmap/autorid.so usr/lib/samba/lowcase.dat usr/lib/samba/nss_info usr/lib/samba/pdb usr/lib/samba/perfcount -usr/lib/samba/rpc usr/lib/samba/upcase.dat usr/lib/samba/valid.dat #usr/lib/samba/vfs @@ -68,6 +65,7 @@ usr/lib/samba/vfs/acl_xattr.so usr/lib/samba/vfs/audit.so usr/lib/samba/vfs/cap.so usr/lib/samba/vfs/catia.so +usr/lib/samba/vfs/crossrename.so usr/lib/samba/vfs/default_quota.so usr/lib/samba/vfs/dirsort.so usr/lib/samba/vfs/expand_msdfs.so @@ -75,6 +73,7 @@ usr/lib/samba/vfs/extd_audit.so usr/lib/samba/vfs/fake_perms.so usr/lib/samba/vfs/fileid.so usr/lib/samba/vfs/full_audit.so +usr/lib/samba/vfs/linux_xfs_sgid.so usr/lib/samba/vfs/netatalk.so usr/lib/samba/vfs/preopen.so usr/lib/samba/vfs/readahead.so @@ -87,11 +86,11 @@ usr/lib/samba/vfs/smb_traffic_analyzer.so usr/lib/samba/vfs/streams_depot.so usr/lib/samba/vfs/streams_xattr.so usr/lib/samba/vfs/syncops.so +usr/lib/samba/vfs/time_audit.so usr/lib/samba/vfs/xattr_tdb.so usr/lib/security usr/lib/security/pam_smbpass.so usr/lib/security/pam_winbind.so -usr/sbin/mount.cifs usr/sbin/nmbd usr/sbin/smbd usr/sbin/winbindd @@ -116,12 +115,6 @@ usr/sbin/winbindd #usr/share/locale/zh_CN/LC_MESSAGES/pam_winbind.mo #usr/share/locale/zh_TW/LC_MESSAGES/pam_winbind.mo #usr/share/man/man1/findsmb.1 -#usr/share/man/man1/ldbadd.1 -#usr/share/man/man1/ldbdel.1 -#usr/share/man/man1/ldbedit.1 -#usr/share/man/man1/ldbmodify.1 -#usr/share/man/man1/ldbrename.1 -#usr/share/man/man1/ldbsearch.1 #usr/share/man/man1/log2pcap.1 #usr/share/man/man1/nmblookup.1 #usr/share/man/man1/ntlm_auth.1 @@ -150,13 +143,13 @@ usr/sbin/winbindd #usr/share/man/man8/eventlogadm.8 #usr/share/man/man8/idmap_ad.8 #usr/share/man/man8/idmap_adex.8 +#usr/share/man/man8/idmap_autorid.8 #usr/share/man/man8/idmap_hash.8 #usr/share/man/man8/idmap_ldap.8 #usr/share/man/man8/idmap_nss.8 #usr/share/man/man8/idmap_rid.8 #usr/share/man/man8/idmap_tdb.8 #usr/share/man/man8/idmap_tdb2.8 -#usr/share/man/man8/mount.cifs.8 #usr/share/man/man8/net.8 #usr/share/man/man8/nmbd.8 #usr/share/man/man8/pam_winbind.8 @@ -164,19 +157,21 @@ usr/sbin/winbindd #usr/share/man/man8/smbd.8 #usr/share/man/man8/smbpasswd.8 #usr/share/man/man8/smbspool.8 +#usr/share/man/man8/smbta-util.8 #usr/share/man/man8/swat.8 #usr/share/man/man8/tdbbackup.8 #usr/share/man/man8/tdbdump.8 #usr/share/man/man8/tdbtool.8 -#usr/share/man/man8/umount.cifs.8 #usr/share/man/man8/vfs_acl_tdb.8 #usr/share/man/man8/vfs_acl_xattr.8 #usr/share/man/man8/vfs_aio_fork.8 +#usr/share/man/man8/vfs_aio_pthread.8 #usr/share/man/man8/vfs_audit.8 #usr/share/man/man8/vfs_cacheprime.8 #usr/share/man/man8/vfs_cap.8 #usr/share/man/man8/vfs_catia.8 #usr/share/man/man8/vfs_commit.8 +#usr/share/man/man8/vfs_crossrename.8 #usr/share/man/man8/vfs_default_quota.8 #usr/share/man/man8/vfs_dirsort.8 #usr/share/man/man8/vfs_extd_audit.8 @@ -197,6 +192,7 @@ usr/sbin/winbindd #usr/share/man/man8/vfs_smb_traffic_analyzer.8 #usr/share/man/man8/vfs_streams_depot.8 #usr/share/man/man8/vfs_streams_xattr.8 +#usr/share/man/man8/vfs_time_audit.8 #usr/share/man/man8/vfs_xattr_tdb.8 #usr/share/man/man8/winbindd.8 var/ipfire/backup/addons/includes/samba @@ -218,6 +214,7 @@ var/ipfire/samba/smb.conf var/ipfire/samba/smb.conf.default var/lib/samba var/log/samba +var/nmbd etc/rc.d/init.d/samba etc/rc.d/init.d/winbind srv/web/ipfire/cgi-bin/samba.cgi diff --git a/config/rootfiles/packages/sarg b/config/rootfiles/packages/sarg new file mode 100644 index 0000000000..9a0672c788 --- /dev/null +++ b/config/rootfiles/packages/sarg @@ -0,0 +1,48 @@ +etc/fcron.daily/sarg-reports +etc/fcron.hourly/sarg-reports +etc/fcron.monthly/sarg-reports +etc/fcron.weekly/sarg-reports +etc/sarg +etc/sarg/css.tpl +etc/sarg/exclude_codes +etc/sarg/sarg.conf +#etc/sarg/sarg.conf.default +etc/sarg/user_limit_block +usr/bin/sarg +usr/sbin/update-sarg-reports +usr/share/locale/bg/LC_MESSAGES/sarg.mo +usr/share/locale/ca/LC_MESSAGES/sarg.mo +usr/share/locale/cs/LC_MESSAGES/sarg.mo +usr/share/locale/da/LC_MESSAGES/sarg.mo +usr/share/locale/de/LC_MESSAGES/sarg.mo +usr/share/locale/el/LC_MESSAGES/sarg.mo +usr/share/locale/es/LC_MESSAGES/sarg.mo +usr/share/locale/fr/LC_MESSAGES/sarg.mo +usr/share/locale/hu/LC_MESSAGES/sarg.mo +usr/share/locale/id/LC_MESSAGES/sarg.mo +usr/share/locale/it/LC_MESSAGES/sarg.mo +usr/share/locale/ja/LC_MESSAGES/sarg.mo +usr/share/locale/lv/LC_MESSAGES/sarg.mo +usr/share/locale/nl/LC_MESSAGES/sarg.mo +usr/share/locale/pl/LC_MESSAGES/sarg.mo +usr/share/locale/pt/LC_MESSAGES/sarg.mo +usr/share/locale/pt_BR/LC_MESSAGES/sarg.mo +usr/share/locale/ro/LC_MESSAGES/sarg.mo +usr/share/locale/ru/LC_MESSAGES/sarg.mo +usr/share/locale/sk/LC_MESSAGES/sarg.mo +usr/share/locale/sr/LC_MESSAGES/sarg.mo +usr/share/locale/tr/LC_MESSAGES/sarg.mo +usr/share/locale/uk/LC_MESSAGES/sarg.mo +usr/share/locale/zh_CN/LC_MESSAGES/sarg.mo +#usr/share/man/man1/sarg.1 +usr/share/sarg +usr/share/sarg/fonts +usr/share/sarg/fonts/DejaVuSans.ttf +usr/share/sarg/fonts/FreeSans.ttf +usr/share/sarg/fonts/README +usr/share/sarg/fonts/license +usr/share/sarg/images +usr/share/sarg/images/datetime.png +usr/share/sarg/images/graph.png +usr/share/sarg/images/sarg-squidguard-block.png +usr/share/sarg/images/sarg.png diff --git a/config/rootfiles/packages/sendEmail b/config/rootfiles/packages/sendEmail new file mode 100644 index 0000000000..ee206e288c --- /dev/null +++ b/config/rootfiles/packages/sendEmail @@ -0,0 +1 @@ +usr/local/bin/sendEmail diff --git a/config/rootfiles/packages/splix b/config/rootfiles/packages/splix deleted file mode 100644 index f9c75793ec..0000000000 --- a/config/rootfiles/packages/splix +++ /dev/null @@ -1,87 +0,0 @@ -usr/lib/cups/filter/pstoqpdl -usr/lib/cups/filter/rastertoqpdl -usr/share/cups/model/dell -usr/share/cups/model/dell/1100.ppd -usr/share/cups/model/dell/1100fr.ppd -usr/share/cups/model/dell/1110.ppd -usr/share/cups/model/dell/1110fr.ppd -usr/share/cups/model/samsung -usr/share/cups/model/samsung/clp200.ppd -usr/share/cups/model/samsung/clp200fr.ppd -usr/share/cups/model/samsung/clp300.ppd -usr/share/cups/model/samsung/clp300fr.ppd -usr/share/cups/model/samsung/clp500.ppd -usr/share/cups/model/samsung/clp500fr.ppd -usr/share/cups/model/samsung/clp510.ppd -usr/share/cups/model/samsung/clp510fr.ppd -usr/share/cups/model/samsung/clp550.ppd -usr/share/cups/model/samsung/clp550fr.ppd -usr/share/cups/model/samsung/clp600.ppd -usr/share/cups/model/samsung/clp600fr.ppd -usr/share/cups/model/samsung/clp610.ppd -usr/share/cups/model/samsung/clp610fr.ppd -usr/share/cups/model/samsung/clx216x.ppd -usr/share/cups/model/samsung/clx216xfr.ppd -usr/share/cups/model/samsung/clx2170.ppd -usr/share/cups/model/samsung/clx2170fr.ppd -usr/share/cups/model/samsung/clx3160.ppd -usr/share/cups/model/samsung/clx3160fr.ppd -usr/share/cups/model/samsung/ml1510.ppd -usr/share/cups/model/samsung/ml1510fr.ppd -usr/share/cups/model/samsung/ml1520.ppd -usr/share/cups/model/samsung/ml1520fr.ppd -usr/share/cups/model/samsung/ml1610.ppd -usr/share/cups/model/samsung/ml1610fr.ppd -usr/share/cups/model/samsung/ml1630.ppd -usr/share/cups/model/samsung/ml1630fr.ppd -usr/share/cups/model/samsung/ml1710.ppd -usr/share/cups/model/samsung/ml1710fr.ppd -usr/share/cups/model/samsung/ml1740.ppd -usr/share/cups/model/samsung/ml1740fr.ppd -usr/share/cups/model/samsung/ml1750.ppd -usr/share/cups/model/samsung/ml1750fr.ppd -usr/share/cups/model/samsung/ml2010.ppd -usr/share/cups/model/samsung/ml2010fr.ppd -usr/share/cups/model/samsung/ml2150.ppd -usr/share/cups/model/samsung/ml2150fr.ppd -usr/share/cups/model/samsung/ml2250.ppd -usr/share/cups/model/samsung/ml2250fr.ppd -usr/share/cups/model/samsung/ml2251.ppd -usr/share/cups/model/samsung/ml2251fr.ppd -usr/share/cups/model/samsung/ml2510.ppd -usr/share/cups/model/samsung/ml2510fr.ppd -usr/share/cups/model/samsung/ml2550.ppd -usr/share/cups/model/samsung/ml2550fr.ppd -usr/share/cups/model/samsung/ml3050.ppd -usr/share/cups/model/samsung/ml3050fr.ppd -usr/share/cups/model/samsung/ml3560.ppd -usr/share/cups/model/samsung/ml3560fr.ppd -usr/share/cups/model/xerox -usr/share/cups/model/xerox/ph3115.ppd -usr/share/cups/model/xerox/ph3115fr.ppd -usr/share/cups/model/xerox/ph3116.ppd -usr/share/cups/model/xerox/ph3116fr.ppd -usr/share/cups/model/xerox/ph3117.ppd -usr/share/cups/model/xerox/ph3117fr.ppd -usr/share/cups/model/xerox/ph3120.ppd -usr/share/cups/model/xerox/ph3120fr.ppd -usr/share/cups/model/xerox/ph3121.ppd -usr/share/cups/model/xerox/ph3121fr.ppd -usr/share/cups/model/xerox/ph3122.ppd -usr/share/cups/model/xerox/ph3122fr.ppd -usr/share/cups/model/xerox/ph3130.ppd -usr/share/cups/model/xerox/ph3130fr.ppd -usr/share/cups/model/xerox/ph3150.ppd -usr/share/cups/model/xerox/ph3150fr.ppd -usr/share/cups/model/xerox/ph3160.ppd -usr/share/cups/model/xerox/ph3160fr.ppd -usr/share/cups/model/xerox/ph3420.ppd -usr/share/cups/model/xerox/ph3420fr.ppd -usr/share/cups/model/xerox/ph3425.ppd -usr/share/cups/model/xerox/ph3425fr.ppd -usr/share/cups/model/xerox/ph5500.ppd -usr/share/cups/model/xerox/ph5500fr.ppd -usr/share/cups/model/xerox/ph6100.ppd -usr/share/cups/model/xerox/ph6100fr.ppd -usr/share/cups/model/xerox/ph6110.ppd -usr/share/cups/model/xerox/ph6110fr.ppd diff --git a/config/rootfiles/packages/stress b/config/rootfiles/packages/stress new file mode 100644 index 0000000000..2b0a0003a6 --- /dev/null +++ b/config/rootfiles/packages/stress @@ -0,0 +1,3 @@ +usr/bin/stress +#usr/share/info/stress.info +#usr/share/man/man1/stress.1 \ No newline at end of file diff --git a/config/rootfiles/packages/transmission b/config/rootfiles/packages/transmission index af8a68ab3e..3321b719fe 100644 --- a/config/rootfiles/packages/transmission +++ b/config/rootfiles/packages/transmission @@ -16,31 +16,8 @@ usr/share/transmission #usr/share/transmission/web #usr/share/transmission/web/LICENSE #usr/share/transmission/web/images -#usr/share/transmission/web/images/buttons -#usr/share/transmission/web/images/buttons/cancel.png -#usr/share/transmission/web/images/buttons/file_priority_buttons.png -#usr/share/transmission/web/images/buttons/file_wanted_buttons.png -#usr/share/transmission/web/images/buttons/info_activity.png -#usr/share/transmission/web/images/buttons/info_files.png -#usr/share/transmission/web/images/buttons/info_general.png -#usr/share/transmission/web/images/buttons/info_peers.png -#usr/share/transmission/web/images/buttons/info_trackers.png -#usr/share/transmission/web/images/buttons/tab_backgrounds.png -#usr/share/transmission/web/images/buttons/tab_backgrounds_highlight.png -#usr/share/transmission/web/images/buttons/toolbar_buttons.png -#usr/share/transmission/web/images/buttons/torrent_buttons.png #usr/share/transmission/web/images/favicon.ico #usr/share/transmission/web/images/favicon.png -#usr/share/transmission/web/images/graphics -#usr/share/transmission/web/images/graphics/blue-turtle.png -#usr/share/transmission/web/images/graphics/chrome.png -#usr/share/transmission/web/images/graphics/filter_bar.png -#usr/share/transmission/web/images/graphics/filter_icon.png -#usr/share/transmission/web/images/graphics/iphone_chrome.png -#usr/share/transmission/web/images/graphics/lock_icon.png -#usr/share/transmission/web/images/graphics/logo.png -#usr/share/transmission/web/images/progress -#usr/share/transmission/web/images/progress/progress.png #usr/share/transmission/web/images/webclip-icon.png #usr/share/transmission/web/index.html #usr/share/transmission/web/javascript @@ -53,17 +30,58 @@ usr/share/transmission #usr/share/transmission/web/javascript/jquery/jquery.contextmenu.min.js #usr/share/transmission/web/javascript/jquery/jquery.form.js #usr/share/transmission/web/javascript/jquery/jquery.form.min.js +#usr/share/transmission/web/javascript/jquery/jquery.min.js #usr/share/transmission/web/javascript/jquery/jquery.transmenu.min.js +#usr/share/transmission/web/javascript/jquery/jqueryui-1.8.16.min.js #usr/share/transmission/web/javascript/jquery/json2.min.js +#usr/share/transmission/web/javascript/notifications.js #usr/share/transmission/web/javascript/prefs-dialog.js #usr/share/transmission/web/javascript/remote.js #usr/share/transmission/web/javascript/torrent-row.js #usr/share/transmission/web/javascript/torrent.js #usr/share/transmission/web/javascript/transmission.js -#usr/share/transmission/web/stylesheets -#usr/share/transmission/web/stylesheets/common.css -#usr/share/transmission/web/stylesheets/ie7.css -#usr/share/transmission/web/stylesheets/ieAll.css -#usr/share/transmission/web/stylesheets/mobile.css +#usr/share/transmission/web/style +#usr/share/transmission/web/style/jqueryui +#usr/share/transmission/web/style/jqueryui/images +#usr/share/transmission/web/style/jqueryui/images/ui-bg_flat_75_ffffff_40x100.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_65_ffffff_1x400.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_75_dadada_1x400.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_75_e6e6e6_1x400.png +#usr/share/transmission/web/style/jqueryui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +#usr/share/transmission/web/style/jqueryui/images/ui-icons_222222_256x240.png +#usr/share/transmission/web/style/jqueryui/images/ui-icons_454545_256x240.png +#usr/share/transmission/web/style/jqueryui/jqueryui-1.8.16.css +#usr/share/transmission/web/style/transmission +#usr/share/transmission/web/style/transmission/common.css +#usr/share/transmission/web/style/transmission/images +#usr/share/transmission/web/style/transmission/images/arrow-down.png +#usr/share/transmission/web/style/transmission/images/arrow-up.png +#usr/share/transmission/web/style/transmission/images/blue-turtle.png +#usr/share/transmission/web/style/transmission/images/buttons +#usr/share/transmission/web/style/transmission/images/buttons/torrent_buttons.png +#usr/share/transmission/web/style/transmission/images/compact.png +#usr/share/transmission/web/style/transmission/images/file-priority-high.png +#usr/share/transmission/web/style/transmission/images/file-priority-low.png +#usr/share/transmission/web/style/transmission/images/file-priority-normal.png +#usr/share/transmission/web/style/transmission/images/filter_bar.png +#usr/share/transmission/web/style/transmission/images/filter_icon.png +#usr/share/transmission/web/style/transmission/images/inspector-files.png +#usr/share/transmission/web/style/transmission/images/inspector-info.png +#usr/share/transmission/web/style/transmission/images/inspector-peers.png +#usr/share/transmission/web/style/transmission/images/inspector-trackers.png +#usr/share/transmission/web/style/transmission/images/lock_icon.png +#usr/share/transmission/web/style/transmission/images/logo.png +#usr/share/transmission/web/style/transmission/images/progress.png +#usr/share/transmission/web/style/transmission/images/settings.png +#usr/share/transmission/web/style/transmission/images/toolbar-close.png +#usr/share/transmission/web/style/transmission/images/toolbar-folder.png +#usr/share/transmission/web/style/transmission/images/toolbar-info.png +#usr/share/transmission/web/style/transmission/images/toolbar-pause-all.png +#usr/share/transmission/web/style/transmission/images/toolbar-pause.png +#usr/share/transmission/web/style/transmission/images/toolbar-start-all.png +#usr/share/transmission/web/style/transmission/images/toolbar-start.png +#usr/share/transmission/web/style/transmission/images/turtle.png +#usr/share/transmission/web/style/transmission/images/wrench.png +#usr/share/transmission/web/style/transmission/mobile.css var/ipfire/backup/addons/includes/transmission etc/rc.d/init.d/transmission diff --git a/config/rootfiles/packages/urlgrabber b/config/rootfiles/packages/urlgrabber index 66b9bb263c..a98c7b14fa 100644 --- a/config/rootfiles/packages/urlgrabber +++ b/config/rootfiles/packages/urlgrabber @@ -1,22 +1,18 @@ usr/bin/urlgrabber -#usr/lib/python2.7/site-packages/urlgrabber -#usr/lib/python2.7/site-packages/urlgrabber-3.1.0-py2.7.egg-info -#usr/lib/python2.7/site-packages/urlgrabber/__init__.py +usr/lib/python2.7/site-packages/urlgrabber +#usr/lib/python2.7/site-packages/urlgrabber-3.9.1-py2.7.egg-info +usr/lib/python2.7/site-packages/urlgrabber/__init__.py usr/lib/python2.7/site-packages/urlgrabber/__init__.pyc -#usr/lib/python2.7/site-packages/urlgrabber/byterange.py +usr/lib/python2.7/site-packages/urlgrabber/byterange.py usr/lib/python2.7/site-packages/urlgrabber/byterange.pyc -#usr/lib/python2.7/site-packages/urlgrabber/grabber.py +usr/lib/python2.7/site-packages/urlgrabber/grabber.py usr/lib/python2.7/site-packages/urlgrabber/grabber.pyc -#usr/lib/python2.7/site-packages/urlgrabber/keepalive.py -usr/lib/python2.7/site-packages/urlgrabber/keepalive.pyc -#usr/lib/python2.7/site-packages/urlgrabber/mirror.py +usr/lib/python2.7/site-packages/urlgrabber/mirror.py usr/lib/python2.7/site-packages/urlgrabber/mirror.pyc -#usr/lib/python2.7/site-packages/urlgrabber/progress.py +usr/lib/python2.7/site-packages/urlgrabber/progress.py usr/lib/python2.7/site-packages/urlgrabber/progress.pyc -#usr/lib/python2.7/site-packages/urlgrabber/sslfactory.py -usr/lib/python2.7/site-packages/urlgrabber/sslfactory.pyc -#usr/share/doc/urlgrabber-3.1.0 -#usr/share/doc/urlgrabber-3.1.0/ChangeLog -#usr/share/doc/urlgrabber-3.1.0/LICENSE -#usr/share/doc/urlgrabber-3.1.0/README -#usr/share/doc/urlgrabber-3.1.0/TODO +#usr/share/doc/urlgrabber-3.9.1 +#usr/share/doc/urlgrabber-3.9.1/ChangeLog +#usr/share/doc/urlgrabber-3.9.1/LICENSE +#usr/share/doc/urlgrabber-3.9.1/README +#usr/share/doc/urlgrabber-3.9.1/TODO diff --git a/config/rootfiles/packages/videolan b/config/rootfiles/packages/videolan deleted file mode 100644 index 2b980f9b62..0000000000 --- a/config/rootfiles/packages/videolan +++ /dev/null @@ -1,415 +0,0 @@ -usr/bin/vlc -usr/bin/vlc-config -#usr/include/vlc -#usr/include/vlc/aout.h -#usr/include/vlc/decoder.h -#usr/include/vlc/input.h -#usr/include/vlc/intf.h -#usr/include/vlc/libvlc.h -#usr/include/vlc/mediacontrol.h -#usr/include/vlc/mediacontrol_structures.h -#usr/include/vlc/sout.h -#usr/include/vlc/vlc.h -#usr/include/vlc/vout.h -#usr/lib/libvlc.a -#usr/lib/vlc -#usr/lib/vlc/access -usr/lib/vlc/access/libaccess_directory_plugin.so -usr/lib/vlc/access/libaccess_fake_plugin.so -usr/lib/vlc/access/libaccess_file_plugin.so -usr/lib/vlc/access/libaccess_ftp_plugin.so -usr/lib/vlc/access/libaccess_http_plugin.so -usr/lib/vlc/access/libaccess_mms_plugin.so -usr/lib/vlc/access/libaccess_smb_plugin.so -usr/lib/vlc/access/libaccess_tcp_plugin.so -usr/lib/vlc/access/libaccess_udp_plugin.so -usr/lib/vlc/access/libcdda_plugin.so -usr/lib/vlc/access/libdvb_plugin.so -usr/lib/vlc/access/libv4l_plugin.so -usr/lib/vlc/access/libvcd_plugin.so -#usr/lib/vlc/access_filter -usr/lib/vlc/access_filter/libaccess_filter_dump_plugin.so -usr/lib/vlc/access_filter/libaccess_filter_record_plugin.so -usr/lib/vlc/access_filter/libaccess_filter_timeshift_plugin.so -#usr/lib/vlc/access_output -usr/lib/vlc/access_output/libaccess_output_dummy_plugin.so -usr/lib/vlc/access_output/libaccess_output_file_plugin.so -usr/lib/vlc/access_output/libaccess_output_http_plugin.so -usr/lib/vlc/access_output/libaccess_output_shout_plugin.so -usr/lib/vlc/access_output/libaccess_output_udp_plugin.so -#usr/lib/vlc/audio_filter -usr/lib/vlc/audio_filter/liba52tospdif_plugin.so -usr/lib/vlc/audio_filter/libaudio_format_plugin.so -usr/lib/vlc/audio_filter/libbandlimited_resampler_plugin.so -usr/lib/vlc/audio_filter/libdolby_surround_decoder_plugin.so -usr/lib/vlc/audio_filter/libdtstospdif_plugin.so -usr/lib/vlc/audio_filter/libequalizer_plugin.so -usr/lib/vlc/audio_filter/libfixed32tofloat32_plugin.so -usr/lib/vlc/audio_filter/libfixed32tos16_plugin.so -usr/lib/vlc/audio_filter/libfloat32tos16_plugin.so -usr/lib/vlc/audio_filter/libfloat32tos8_plugin.so -usr/lib/vlc/audio_filter/libfloat32tou16_plugin.so -usr/lib/vlc/audio_filter/libfloat32tou8_plugin.so -usr/lib/vlc/audio_filter/libheadphone_channel_mixer_plugin.so -usr/lib/vlc/audio_filter/liblinear_resampler_plugin.so -usr/lib/vlc/audio_filter/libmpgatofixed32_plugin.so -usr/lib/vlc/audio_filter/libnormvol_plugin.so -usr/lib/vlc/audio_filter/libparam_eq_plugin.so -usr/lib/vlc/audio_filter/libs16tofixed32_plugin.so -usr/lib/vlc/audio_filter/libs16tofloat32_plugin.so -usr/lib/vlc/audio_filter/libs16tofloat32swab_plugin.so -usr/lib/vlc/audio_filter/libs8tofloat32_plugin.so -usr/lib/vlc/audio_filter/libsimple_channel_mixer_plugin.so -usr/lib/vlc/audio_filter/libtrivial_channel_mixer_plugin.so -usr/lib/vlc/audio_filter/libtrivial_resampler_plugin.so -usr/lib/vlc/audio_filter/libu8tofixed32_plugin.so -usr/lib/vlc/audio_filter/libu8tofloat32_plugin.so -usr/lib/vlc/audio_filter/libugly_resampler_plugin.so -#usr/lib/vlc/audio_mixer -usr/lib/vlc/audio_mixer/libfloat32_mixer_plugin.so -usr/lib/vlc/audio_mixer/libspdif_mixer_plugin.so -usr/lib/vlc/audio_mixer/libtrivial_mixer_plugin.so -#usr/lib/vlc/audio_output -usr/lib/vlc/audio_output/libalsa_plugin.so -usr/lib/vlc/audio_output/libaout_file_plugin.so -usr/lib/vlc/audio_output/libaout_sdl_plugin.so -usr/lib/vlc/audio_output/liboss_plugin.so -#usr/lib/vlc/codec -usr/lib/vlc/codec/liba52_plugin.so -usr/lib/vlc/codec/libadpcm_plugin.so -usr/lib/vlc/codec/libaraw_plugin.so -usr/lib/vlc/codec/libcinepak_plugin.so -usr/lib/vlc/codec/libcmml_plugin.so -usr/lib/vlc/codec/libcvdsub_plugin.so -usr/lib/vlc/codec/libdts_plugin.so -usr/lib/vlc/codec/libdvbsub_plugin.so -usr/lib/vlc/codec/libfaad_plugin.so -usr/lib/vlc/codec/libfake_plugin.so -usr/lib/vlc/codec/libflacdec_plugin.so -usr/lib/vlc/codec/liblibmpeg2_plugin.so -usr/lib/vlc/codec/liblpcm_plugin.so -usr/lib/vlc/codec/libmpeg_audio_plugin.so -usr/lib/vlc/codec/libpng_plugin.so -usr/lib/vlc/codec/librawvideo_plugin.so -usr/lib/vlc/codec/libspudec_plugin.so -usr/lib/vlc/codec/libsubsdec_plugin.so -usr/lib/vlc/codec/libsvcdsub_plugin.so -usr/lib/vlc/codec/libtelx_plugin.so -usr/lib/vlc/codec/libvorbis_plugin.so -#usr/lib/vlc/control -usr/lib/vlc/control/libgestures_plugin.so -usr/lib/vlc/control/libhotkeys_plugin.so -usr/lib/vlc/control/libhttp_plugin.so -usr/lib/vlc/control/libnetsync_plugin.so -usr/lib/vlc/control/librc_plugin.so -usr/lib/vlc/control/libshowintf_plugin.so -usr/lib/vlc/control/libtelnet_plugin.so -#usr/lib/vlc/demux -usr/lib/vlc/demux/liba52sys_plugin.so -usr/lib/vlc/demux/libaiff_plugin.so -usr/lib/vlc/demux/libasf_plugin.so -usr/lib/vlc/demux/libau_plugin.so -usr/lib/vlc/demux/libavi_plugin.so -usr/lib/vlc/demux/libdemuxdump_plugin.so -usr/lib/vlc/demux/libdtssys_plugin.so -usr/lib/vlc/demux/libflac_plugin.so -usr/lib/vlc/demux/libh264_plugin.so -usr/lib/vlc/demux/libid3tag_plugin.so -usr/lib/vlc/demux/libm3u_plugin.so -usr/lib/vlc/demux/libm4a_plugin.so -usr/lib/vlc/demux/libm4v_plugin.so -usr/lib/vlc/demux/libmjpeg_plugin.so -usr/lib/vlc/demux/libmp4_plugin.so -usr/lib/vlc/demux/libmpga_plugin.so -usr/lib/vlc/demux/libmpgv_plugin.so -usr/lib/vlc/demux/libnsc_plugin.so -usr/lib/vlc/demux/libnsv_plugin.so -usr/lib/vlc/demux/libnuv_plugin.so -usr/lib/vlc/demux/libogg_plugin.so -usr/lib/vlc/demux/libplaylist_plugin.so -usr/lib/vlc/demux/libps_plugin.so -usr/lib/vlc/demux/libpva_plugin.so -usr/lib/vlc/demux/librawdv_plugin.so -usr/lib/vlc/demux/libreal_plugin.so -usr/lib/vlc/demux/libsgimb_plugin.so -usr/lib/vlc/demux/libsubtitle_plugin.so -usr/lib/vlc/demux/libts_plugin.so -usr/lib/vlc/demux/libtta_plugin.so -usr/lib/vlc/demux/libty_plugin.so -usr/lib/vlc/demux/libvobsub_plugin.so -usr/lib/vlc/demux/libvoc_plugin.so -usr/lib/vlc/demux/libwav_plugin.so -usr/lib/vlc/demux/libxa_plugin.so -#usr/lib/vlc/gui -usr/lib/vlc/gui/libncurses_plugin.so -#usr/lib/vlc/libffmpeg.a -#usr/lib/vlc/libi420_rgb_mmx.a -#usr/lib/vlc/libi420_ymga_mmx.a -#usr/lib/vlc/libi420_yuy2_mmx.a -#usr/lib/vlc/libi422_yuy2_mmx.a -#usr/lib/vlc/libmemcpy3dn.a -#usr/lib/vlc/libmemcpymmx.a -#usr/lib/vlc/libmemcpymmxext.a -#usr/lib/vlc/libmux_ts.a -#usr/lib/vlc/libstream_out_switcher.a -#usr/lib/vlc/misc -usr/lib/vlc/misc/libdummy_plugin.so -usr/lib/vlc/misc/libexport_plugin.so -usr/lib/vlc/misc/libfreetype_plugin.so -usr/lib/vlc/misc/libgrowl_plugin.so -usr/lib/vlc/misc/libipv4_plugin.so -usr/lib/vlc/misc/libipv6_plugin.so -usr/lib/vlc/misc/liblogger_plugin.so -usr/lib/vlc/misc/libmemcpy_plugin.so -usr/lib/vlc/misc/libscreensaver_plugin.so -usr/lib/vlc/misc/libvod_rtsp_plugin.so -usr/lib/vlc/misc/libxml_plugin.so -usr/lib/vlc/misc/libxtag_plugin.so -#usr/lib/vlc/mux -usr/lib/vlc/mux/libmux_asf_plugin.so -usr/lib/vlc/mux/libmux_avi_plugin.so -usr/lib/vlc/mux/libmux_dummy_plugin.so -usr/lib/vlc/mux/libmux_mp4_plugin.so -usr/lib/vlc/mux/libmux_mpjpeg_plugin.so -usr/lib/vlc/mux/libmux_ogg_plugin.so -usr/lib/vlc/mux/libmux_ps_plugin.so -usr/lib/vlc/mux/libmux_wav_plugin.so -#usr/lib/vlc/packetizer -usr/lib/vlc/packetizer/libpacketizer_copy_plugin.so -usr/lib/vlc/packetizer/libpacketizer_h264_plugin.so -usr/lib/vlc/packetizer/libpacketizer_mpeg4audio_plugin.so -usr/lib/vlc/packetizer/libpacketizer_mpeg4video_plugin.so -usr/lib/vlc/packetizer/libpacketizer_mpegvideo_plugin.so -#usr/lib/vlc/services_discovery -usr/lib/vlc/services_discovery/libpodcast_plugin.so -usr/lib/vlc/services_discovery/libsap_plugin.so -usr/lib/vlc/services_discovery/libshout_plugin.so -usr/lib/vlc/services_discovery/libupnp_intel_plugin.so -#usr/lib/vlc/stream_out -usr/lib/vlc/stream_out/libstream_out_bridge_plugin.so -usr/lib/vlc/stream_out/libstream_out_description_plugin.so -usr/lib/vlc/stream_out/libstream_out_display_plugin.so -usr/lib/vlc/stream_out/libstream_out_dummy_plugin.so -usr/lib/vlc/stream_out/libstream_out_duplicate_plugin.so -usr/lib/vlc/stream_out/libstream_out_es_plugin.so -usr/lib/vlc/stream_out/libstream_out_gather_plugin.so -usr/lib/vlc/stream_out/libstream_out_mosaic_bridge_plugin.so -usr/lib/vlc/stream_out/libstream_out_rtp_plugin.so -usr/lib/vlc/stream_out/libstream_out_standard_plugin.so -usr/lib/vlc/stream_out/libstream_out_transcode_plugin.so -#usr/lib/vlc/video_chroma -usr/lib/vlc/video_chroma/libi420_rgb_plugin.so -usr/lib/vlc/video_chroma/libi420_ymga_plugin.so -usr/lib/vlc/video_chroma/libi420_yuy2_plugin.so -usr/lib/vlc/video_chroma/libi422_yuy2_plugin.so -#usr/lib/vlc/video_filter -usr/lib/vlc/video_filter/libadjust_plugin.so -usr/lib/vlc/video_filter/libblend_plugin.so -usr/lib/vlc/video_filter/libclone_plugin.so -usr/lib/vlc/video_filter/libcrop_plugin.so -usr/lib/vlc/video_filter/libdeinterlace_plugin.so -usr/lib/vlc/video_filter/libdistort_plugin.so -usr/lib/vlc/video_filter/libinvert_plugin.so -usr/lib/vlc/video_filter/liblogo_plugin.so -usr/lib/vlc/video_filter/libmagnify_plugin.so -usr/lib/vlc/video_filter/libmarq_plugin.so -usr/lib/vlc/video_filter/libmosaic_plugin.so -usr/lib/vlc/video_filter/libmotionblur_plugin.so -usr/lib/vlc/video_filter/libmotiondetect_plugin.so -usr/lib/vlc/video_filter/libosdmenu_plugin.so -usr/lib/vlc/video_filter/librss_plugin.so -usr/lib/vlc/video_filter/librv32_plugin.so -usr/lib/vlc/video_filter/libscale_plugin.so -usr/lib/vlc/video_filter/libtime_plugin.so -usr/lib/vlc/video_filter/libtransform_plugin.so -usr/lib/vlc/video_filter/libwall_plugin.so -#usr/lib/vlc/video_output -usr/lib/vlc/video_output/libdirectfb_plugin.so -usr/lib/vlc/video_output/libfb_plugin.so -usr/lib/vlc/video_output/libimage_plugin.so -usr/lib/vlc/video_output/libvout_sdl_plugin.so -#usr/lib/vlc/visualization -usr/lib/vlc/visualization/libvisual_plugin.so -#usr/share/applications/vlc.desktop -#usr/share/doc/vlc -#usr/share/doc/vlc/bugreport-howto.txt -#usr/share/doc/vlc/fortunes.txt -#usr/share/doc/vlc/intf-cdda.txt -#usr/share/doc/vlc/intf-vcd.txt -#usr/share/vlc -#usr/share/vlc/http -usr/share/vlc/http/.hosts -#usr/share/vlc/http/dialogs -usr/share/vlc/http/dialogs/.hosts -usr/share/vlc/http/dialogs/browse -usr/share/vlc/http/dialogs/footer -usr/share/vlc/http/dialogs/input -usr/share/vlc/http/dialogs/main -usr/share/vlc/http/dialogs/mosaic -usr/share/vlc/http/dialogs/playlist -usr/share/vlc/http/dialogs/sout -usr/share/vlc/http/dialogs/vlm -usr/share/vlc/http/favicon.ico -usr/share/vlc/http/iehacks.css -#usr/share/vlc/http/images -usr/share/vlc/http/images/delete.png -usr/share/vlc/http/images/delete_small.png -usr/share/vlc/http/images/eject.png -usr/share/vlc/http/images/empty.png -usr/share/vlc/http/images/fullscreen.png -usr/share/vlc/http/images/help.png -usr/share/vlc/http/images/info.png -usr/share/vlc/http/images/loop.png -usr/share/vlc/http/images/minus.png -usr/share/vlc/http/images/next.png -usr/share/vlc/http/images/pause.png -usr/share/vlc/http/images/play.png -usr/share/vlc/http/images/playlist.png -usr/share/vlc/http/images/playlist_small.png -usr/share/vlc/http/images/plus.png -usr/share/vlc/http/images/prev.png -usr/share/vlc/http/images/refresh.png -usr/share/vlc/http/images/repeat.png -usr/share/vlc/http/images/sd.png -usr/share/vlc/http/images/shuffle.png -usr/share/vlc/http/images/slider_bar.png -usr/share/vlc/http/images/slider_left.png -usr/share/vlc/http/images/slider_point.png -usr/share/vlc/http/images/slider_right.png -usr/share/vlc/http/images/slow.png -usr/share/vlc/http/images/snapshot.png -usr/share/vlc/http/images/sort.png -usr/share/vlc/http/images/sout.png -usr/share/vlc/http/images/speaker.png -usr/share/vlc/http/images/speaker_mute.png -usr/share/vlc/http/images/stop.png -usr/share/vlc/http/images/vlc16x16.png -usr/share/vlc/http/images/volume_down.png -usr/share/vlc/http/images/volume_up.png -usr/share/vlc/http/images/white.png -usr/share/vlc/http/images/white_cross_small.png -usr/share/vlc/http/index.html -#usr/share/vlc/http/js -usr/share/vlc/http/js/functions.js -usr/share/vlc/http/js/mosaic.js -usr/share/vlc/http/js/vlm.js -usr/share/vlc/http/mosaic.html -#usr/share/vlc/http/old -usr/share/vlc/http/old/.hosts -#usr/share/vlc/http/old/admin -usr/share/vlc/http/old/admin/.access -usr/share/vlc/http/old/admin/browse.html -usr/share/vlc/http/old/admin/dboxfiles.html -usr/share/vlc/http/old/admin/index.html -usr/share/vlc/http/old/cone_minus.png -usr/share/vlc/http/old/cone_plus.png -usr/share/vlc/http/old/index.html -usr/share/vlc/http/old/info.html -usr/share/vlc/http/old/style.css -#usr/share/vlc/http/old/vlm -usr/share/vlc/http/old/vlm/edit.html -usr/share/vlc/http/old/vlm/index.html -usr/share/vlc/http/old/vlm/new.html -usr/share/vlc/http/old/vlm/show.html -usr/share/vlc/http/old/webcam.html -#usr/share/vlc/http/requests -usr/share/vlc/http/requests/browse.xml -usr/share/vlc/http/requests/playlist.xml -usr/share/vlc/http/requests/readme -usr/share/vlc/http/requests/status.xml -usr/share/vlc/http/requests/vlm.xml -usr/share/vlc/http/requests/vlm_cmd.xml -usr/share/vlc/http/style.css -usr/share/vlc/http/vlm.html -usr/share/vlc/http/vlm_export.html -#usr/share/vlc/osdmenu -#usr/share/vlc/osdmenu/default -usr/share/vlc/osdmenu/default.cfg -#usr/share/vlc/osdmenu/default/selected -usr/share/vlc/osdmenu/default/selected/bw.png -usr/share/vlc/osdmenu/default/selected/esc.png -usr/share/vlc/osdmenu/default/selected/fw.png -usr/share/vlc/osdmenu/default/selected/next.png -usr/share/vlc/osdmenu/default/selected/play_pause.png -usr/share/vlc/osdmenu/default/selected/previous.png -usr/share/vlc/osdmenu/default/selected/stop.png -usr/share/vlc/osdmenu/default/selected/volume.png -#usr/share/vlc/osdmenu/default/selection -usr/share/vlc/osdmenu/default/selection/bw.png -usr/share/vlc/osdmenu/default/selection/esc.png -usr/share/vlc/osdmenu/default/selection/fw.png -usr/share/vlc/osdmenu/default/selection/next.png -usr/share/vlc/osdmenu/default/selection/play_pause.png -usr/share/vlc/osdmenu/default/selection/previous.png -usr/share/vlc/osdmenu/default/selection/stop.png -usr/share/vlc/osdmenu/default/selection/volume.png -usr/share/vlc/osdmenu/default/unselected.png -#usr/share/vlc/osdmenu/default/volume -usr/share/vlc/osdmenu/default/volume/volume_00.png -usr/share/vlc/osdmenu/default/volume/volume_01.png -usr/share/vlc/osdmenu/default/volume/volume_02.png -usr/share/vlc/osdmenu/default/volume/volume_03.png -usr/share/vlc/osdmenu/default/volume/volume_04.png -usr/share/vlc/osdmenu/default/volume/volume_05.png -usr/share/vlc/osdmenu/default/volume/volume_06.png -usr/share/vlc/osdmenu/default/volume/volume_07.png -usr/share/vlc/osdmenu/default/volume/volume_08.png -usr/share/vlc/osdmenu/default/volume/volume_09.png -usr/share/vlc/osdmenu/default/volume/volume_10.png -#usr/share/vlc/osdmenu/dvd -usr/share/vlc/osdmenu/dvd.cfg -#usr/share/vlc/osdmenu/dvd/selected -usr/share/vlc/osdmenu/dvd/selected/bw.png -usr/share/vlc/osdmenu/dvd/selected/esc.png -usr/share/vlc/osdmenu/dvd/selected/fw.png -usr/share/vlc/osdmenu/dvd/selected/mute.png -usr/share/vlc/osdmenu/dvd/selected/next.png -usr/share/vlc/osdmenu/dvd/selected/pause.png -usr/share/vlc/osdmenu/dvd/selected/play.png -usr/share/vlc/osdmenu/dvd/selected/previous.png -usr/share/vlc/osdmenu/dvd/selected/slow.png -usr/share/vlc/osdmenu/dvd/selected/stop.png -usr/share/vlc/osdmenu/dvd/selected/volume.png -#usr/share/vlc/osdmenu/dvd/selection -usr/share/vlc/osdmenu/dvd/selection/bw.png -usr/share/vlc/osdmenu/dvd/selection/esc.png -usr/share/vlc/osdmenu/dvd/selection/fw.png -usr/share/vlc/osdmenu/dvd/selection/mute.png -usr/share/vlc/osdmenu/dvd/selection/next.png -usr/share/vlc/osdmenu/dvd/selection/pause.png -usr/share/vlc/osdmenu/dvd/selection/play.png -usr/share/vlc/osdmenu/dvd/selection/previous.png -usr/share/vlc/osdmenu/dvd/selection/slow.png -usr/share/vlc/osdmenu/dvd/selection/stop.png -#usr/share/vlc/osdmenu/dvd/unselect -usr/share/vlc/osdmenu/dvd/unselect/barroff.png -#usr/share/vlc/osdmenu/dvd/volume -usr/share/vlc/osdmenu/dvd/volume/volume00.png -usr/share/vlc/osdmenu/dvd/volume/volume01.png -usr/share/vlc/osdmenu/dvd/volume/volume02.png -usr/share/vlc/osdmenu/dvd/volume/volume03.png -usr/share/vlc/osdmenu/dvd/volume/volume04.png -usr/share/vlc/osdmenu/dvd/volume/volume05.png -usr/share/vlc/pda-forwardb16x16.xpm -usr/share/vlc/pda-openb16x16.xpm -usr/share/vlc/pda-pauseb16x16.xpm -usr/share/vlc/pda-playb16x16.xpm -usr/share/vlc/pda-playlistb16x16.xpm -usr/share/vlc/pda-preferencesb16x16.xpm -usr/share/vlc/pda-rewindb16x16.xpm -usr/share/vlc/pda-stopb16x16.xpm -#usr/share/vlc/skins2 -usr/share/vlc/skins2/default.vlt -#usr/share/vlc/skins2/fonts -usr/share/vlc/skins2/fonts/FreeSans.ttf -usr/share/vlc/skins2/fonts/FreeSansBold.ttf -usr/share/vlc/skins2/skin.catalog -usr/share/vlc/skins2/skin.dtd -usr/share/vlc/skins2/winamp2.xml -usr/share/vlc/vlc128x128.png -usr/share/vlc/vlc16x16.png -usr/share/vlc/vlc16x16.xpm -usr/share/vlc/vlc32x32.png -usr/share/vlc/vlc32x32.xpm -usr/share/vlc/vlc48x48.ico -usr/share/vlc/vlc48x48.png diff --git a/config/rootfiles/packages/w_scan b/config/rootfiles/packages/w_scan index 40d3546d31..b0744c261c 100644 --- a/config/rootfiles/packages/w_scan +++ b/config/rootfiles/packages/w_scan @@ -1,2 +1,3 @@ -opt/vdr/bin/w_scan -opt/vdr/bin/w_scan_start +usr/bin/w_scan +usr/bin/w_scan_start +#usr/share/man/man1/w_scan.1 diff --git a/config/rpi-firmware/config.txt b/config/rpi-firmware/config.txt new file mode 100644 index 0000000000..47bfc802d5 --- /dev/null +++ b/config/rpi-firmware/config.txt @@ -0,0 +1,36 @@ +############################################################################### +# +# Raspberry Pi - Videocore configuration file +# +############################################################################### + +############################################################################### +# +# GPU Memory Settings (16,32,64 ... ) +# 16MB has a issue at reboot so we use 32MB memory split +############################################################################### +gpu_mem_256=32 +gpu_mem_512=32 + +############################################################################### +# +# Turbo Mode (cpufreq) Settings ... +# default clocks are arm=700, core=250 and sdram=400 +# +############################################################################### +# +# underclock at idle +#arm_freq_min=500 +#sdram_freq_min=250 +# +# use following paramters to overclock at load +#arm_freq=1000 +#core_freq=450 +#sdram_freq=450 +#over_voltage=3 + +################################################################################ +# +# end +# +################################################################################ diff --git a/config/sarg/cron.daily b/config/sarg/cron.daily new file mode 100644 index 0000000000..8ae1b1b19a --- /dev/null +++ b/config/sarg/cron.daily @@ -0,0 +1,5 @@ +#!/bin/bash + +/usr/sbin/update-sarg-reports daily >/dev/null 2>&1 + +exit 0 diff --git a/config/sarg/cron.hourly b/config/sarg/cron.hourly new file mode 100644 index 0000000000..1e7b5ff309 --- /dev/null +++ b/config/sarg/cron.hourly @@ -0,0 +1,5 @@ +#!/bin/bash + +/usr/sbin/update-sarg-reports today >/dev/null 2>&1 + +exit 0 diff --git a/config/sarg/cron.monthly b/config/sarg/cron.monthly new file mode 100644 index 0000000000..07b9efc4e4 --- /dev/null +++ b/config/sarg/cron.monthly @@ -0,0 +1,5 @@ +#!/bin/bash + +/usr/sbin/update-sarg-reports monthly >/dev/null 2>&1 + +exit 0 diff --git a/config/sarg/cron.weekly b/config/sarg/cron.weekly new file mode 100644 index 0000000000..1f8287c855 --- /dev/null +++ b/config/sarg/cron.weekly @@ -0,0 +1,5 @@ +#!/bin/bash + +/usr/sbin/update-sarg-reports weekly >/dev/null 2>&1 + +exit 0 diff --git a/config/sarg/sarg.conf b/config/sarg/sarg.conf new file mode 100644 index 0000000000..6331aaf531 --- /dev/null +++ b/config/sarg/sarg.conf @@ -0,0 +1,696 @@ +# sarg.conf +# +# TAG: access_log file +# Where is the access.log file +# sarg -l file +# +access_log /var/log/squid/access.log + +# TAG: graphs yes|no +# Use graphics where is possible. +# graph_days_bytes_bar_color blue|green|yellow|orange|brown|red +# +graphs yes +graph_days_bytes_bar_color orange + +# TAG: graph_font +# The full path to the TTF font file to use to create the graphs. It is required +# if graphs is set to yes. +# +graph_font /usr/share/sarg/fonts/DejaVuSans.ttf + +# TAG: title +# Especify the title for html page. +# +title "Squid User Access Reports" + +# TAG: font_face +# Especify the font for html page. +# +font_face Tahoma,Verdana,Arial + +# TAG: header_color +# Especify the header color +# +header_color darkblue + +# TAG: header_bgcolor +# Especify the header bgcolor +# +header_bgcolor blanchedalmond + +# TAG: font_size +# Especify the text font size +# +font_size 12px + +# TAG: header_font_size +# Especify the header font size +# +header_font_size 12px + +# TAG: title_font_size +# Especify the title font size +# +title_font_size 12px + +# TAG: background_color +# TAG: background_color +# Html page background color +# +# background_color white + +# TAG: text_color +# Html page text color +# +text_color #000000 + +# TAG: text_bgcolor +# Html page text background color +# +text_bgcolor lavender + +# TAG: title_color +# Html page title color +# +#title_color green + +# TAG: logo_image +# Html page logo. +# +#logo_image none + +# TAG: logo_text +# Html page logo text. +# +#logo_text "" + +# TAG: logo_text_color +# Html page logo texti color. +# +#logo_text_color #000000 + +# TAG: logo_image_size +# Html page logo image size. +# width height +# +#image_size 80 45 + +# TAG: background_image +# Html page background image +# +#background_image none + +# TAG: password +# User password file used by Squid authentication scheme +# If used, generate reports just for that users. +# +#password none + +# TAG: temporary_dir +# Temporary directory name for work files +# sarg -w dir +# +#temporary_dir /tmp + +# TAG: output_dir +# The reports will be saved in that directory +# sarg -o dir +# +output_dir /srv/web/ipfire/html/sarg + +# TAG: output_email +# Email address to send the reports. If you use this tag, no html reports will be generated. +# sarg -e email +# +#output_email none + +# TAG: resolve_ip yes/no +# Convert ip address to dns name +# sarg -n +resolve_ip no + +# TAG: user_ip yes/no +# Use Ip Address instead userid in reports. +# sarg -p +#user_ip no + +# TAG: topuser_sort_field field normal/reverse +# Sort field for the Topuser Report. +# Allowed fields: USER CONNECT BYTES TIME +# +#topuser_sort_field BYTES reverse + +# TAG: user_sort_field field normal/reverse +# Sort field for the User Report. +# Allowed fields: SITE CONNECT BYTES TIME +# +#user_sort_field BYTES reverse + +# TAG: exclude_users file +# users within the file will be excluded from reports. +# you can use indexonly to have only index.html file. +# +#exclude_users none + +# TAG: exclude_hosts file +# Hosts, domains or subnets will be excluded from reports. +# +# Eg.: 192.168.10.10 - exclude ip address only +# 192.168.10.0/24 - exclude full C class +# s1.acme.foo - exclude hostname only +# *.acme.foo - exclude full domain name +# +#exclude_hosts none + +# TAG: useragent_log file +# useragent.log file patch to generate useragent report. +# +#useragent_log /var/log/squid/user_agent.log + +# TAG: date_format +# Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww) +# +date_format e + +# TAG: per_user_limit file MB +# Saves userid on file if download exceed n MB. +# This option allow you to disable user access if user exceed a download limit. +# +#per_user_limit none + +# TAG: lastlog n +# How many reports files must be keept in reports directory. +# The oldest report file will be automatically removed. +# 0 - no limit. +# +#lastlog 0 + +# TAG: remove_temp_files yes +# Remove temporary files: geral, usuarios, top, periodo from root report directory. +# +#remove_temp_files yes + +# TAG: index yes|no|only +# Generate the main index.html. +# only - generate only the main index.html +# +#index yes + +# TAG: index_tree date|file +# How to generate the index. +# +#index_tree file + +# TAG: overwrite_report yes|no +# yes - if report date already exist then will be overwrited. +# no - if report date already exist then will be renamed to filename.n, filename.n+1 +# +overwrite_report yes + +# TAG: records_without_userid ignore|ip|everybody +# What can I do with records without user id (no authentication) in access.log file ? +# +# ignore - This record will be ignored. +# ip - Use ip address instead. (default) +# everybody - Use "everybody" instead. +# +#records_without_userid ip + +# TAG: use_comma no|yes +# Use comma instead point in reports. +# Eg.: use_comma yes => 23,450,110 +# use_comma no => 23.450.110 +# +#use_comma no + +# TAG: mail_utility +# Mail command to use to send reports via SMTP. Sarg calls it like this: +# mail_utility -s "SARG report, date" "output_email" <"mail_content" +# +# Therefore, it is possible to add more arguments to the command by specifying them +# here. +# +# If you need too, you can use a shell script to process the content of /dev/stdin +# (/dev/stdin is the mail_content passed by sarg to the script) and call whatever +# command you like. It is not limited to mailing the report via SMTP. +# +# Don't forget to quote the command if necessary (i.e. if the path contains +# characters that must be quoted). +# +#mail_utility mailx + +# TAG: topsites_num n +# How many sites in topsites report. +# +#topsites_num 100 + +# TAG: topsites_sort_order CONNECT|BYTES A|D +# Sort for topsites report, where A=Ascendent, D=Descendent +# +#topsites_sort_order CONNECT D + +# TAG: index_sort_order A/D +# Sort for index.html, where A=Ascendent, D=Descendent +# +#index_sort_order D + +# TAG: exclude_codes file +# Ignore records with these codes. Eg.: NONE/400 +# Write one code per line. Lines starting with a # are ignored. +# Only codes matching exactly one of the line is rejected. The +# comparison is not case sensitive. +# +#exclude_codes /usr/local/sarg/exclude_codes + +# TAG: replace_index string +# Replace "index.html" in the main index file with this string +# If null "index.html" is used +# +#replace_index + +# TAG: max_elapsed milliseconds +# If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time. +# Use 0 for no checking +# +#max_elapsed 28800000 +# 8 Hours + +# TAG: report_type type +# What kind of reports to generate. +# topusers - users, sites, times, bytes, connects, links to accessed sites, etc +# topsites - site, connect and bytes report +# sites_users - users and sites report +# users_sites - accessed sites by the user report +# date_time - bytes used per day and hour report +# denied - denied sites with full URL report +# auth_failures - autentication failures report +# site_user_time_date - sites, dates, times and bytes report +# downloads - downloads per user report +# +# Eg.: report_type topsites denied +# +report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads + +# TAG: usertab filename +# You can change the "userid" or the "ip address" to be a real user name on the reports. +# If resolve_ip is active, the ip address is resolved before being looked up into this +# file. That is, if you want to map the ip address, be sure to set resolv_ip to no or +# the resolved name will be looked into the file instead of the ip address. Note that +# it can be used to resolve any ip address known to the dns and then map the unresolved +# ip addresses to a name found in the usertab file. +# Table syntax: +# userid name or ip address name +# Eg: +# SirIsaac Isaac Newton +# vinci Leonardo da Vinci +# 192.168.10.1 Karol Wojtyla +# +# Each line must be terminated with '\n' +# If usertab have value "ldap" (case ignoring), user names +# will be taken from LDAP server. This method as approaches for reception +# of usernames from Active Didectory +# +#usertab none + +# TAG: LDAPHost hostname +# FQDN or IP address of host with LDAP service or AD DC +# default is '127.0.0.1' +#LDAPHost 127.0.0.1 + +# TAG: LDAPPort port +# LDAP service port number +# default is '389' +#LDAPPort 389 + +# TAG: LDAPBindDN CN=username,OU=group,DC=mydomain,DC=com +# DN of LDAP user, who is authorized to read user's names from LDAP base +# default is empty line +#LDAPBindDN cn=proxy,dc=mydomain,dc=local + +# TAG: LDAPBindPW secret +# Password of DN, who is authorized to read user's names from LDAP base +# default is empty line +#LDAPBindPW secret + +# TAG: LDAPBaseSearch OU=users,DC=mydomain,DC=com +# LDAP search base +# default is empty line +#LDAPBaseSearch ou=users,dc=mydomain,dc=local + +# TAG: LDAPFilterSearch (uid=%s) +# User search filter by user's logins in LDAP +# First founded record will be used +# %s - will be changed to userlogins from access.log file +# filter string can have up to 5 '%s' tags +# default value is '(uid=%s)' +#LDAPFilterSearch (uid=%s) + +# TAG: LDAPTargetAttr attributename +# Name of the attribute containing a name of the user +# default value is 'cn' +#LDAPTargetAttr cn + +# TAG: long_url yes|no +# If yes, the full url is showed in report. +# If no, only the site will be showed +# +# YES option generate very big sort files and reports. +# +#long_url no + +# TAG: date_time_by bytes|elap +# Date/Time reports show the downloaded volume or the elapsed time or both. +# +#date_time_by bytes + +# TAG: charset name +# ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit) +# graphic character sets for writing in alphabetic languages +# You can use the following charsets: +# Latin1 - West European +# Latin2 - East European +# Latin3 - South European +# Latin4 - North European +# Cyrillic +# Arabic +# Greek +# Hebrew +# Latin5 - Turkish +# Latin6 +# Windows-1251 +# Japan +# Koi8-r +# UTF-8 +# +#charset Latin1 + +# TAG: user_invalid_char "&/" +# Records that contain invalid characters in userid will be ignored by Sarg. +# +#user_invalid_char "&/" + +# TAG: privacy yes|no +# privacy_string "***.***.***.***" +# privacy_string_color blue +# In some countries the sysadm cannot see the visited sites by a restrictive law. +# Using privacy yes the visited url will be changes by privacy_string and the link +# will be removed from reports. +# +#privacy no +#privacy_string "***.***.***.***" +#privacy_string_color blue + +# TAG: include_users "user1:user2:...:usern" +# Reports will be generated only for listed users. +# +#include_users none + +# TAG: exclude_string "string1:string2:...:stringn" +# Records from access.log file that contain one of listed strings will be ignored. +# +#exclude_string none + +# TAG: show_successful_message yes|no +# Shows "Successful report generated on dir" at end of process. +# +#show_successful_message yes + +# TAG: show_read_statistics yes|no +# Shows some reading statistics. +# +show_read_statistics yes + +# TAG: topuser_fields +# Which fields must be in Topuser report. +# +#topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE + +# TAG: user_report_fields +# Which fields must be in User report. +# +#user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE + +# TAG: bytes_in_sites_users_report yes|no +# Bytes field must be in Site & Users Report ? +# +#bytes_in_sites_users_report no + +# TAG: topuser_num n +# How many users in topsites report. 0 = no limit +# +#topuser_num 0 + +# TAG: datafile file +# Save the report results in a file to populate some database +# +#datafile none + +# TAG: datafile_delimiter ";" +# ascii character to use as a field separator in datafile +# +#datafile_delimiter ";" + +# TAG: datafile_fields all +# Which data fields must be in datafile +# user;date;time;url;connect;bytes;in_cache;out_cache;elapsed +# +#datafile_fields user;date;time;url;connect;bytes;in_cache;out_cache;elapsed + +# TAG: datafile_url ip|name +# Saves the URL as ip or name in datafile +# +#datafile_url ip + +# TAG: weekdays +# The weekdays to take into account ( Sunday->0, Saturday->6 ) +# Example: +#weekdays 1-3,5 +# Default: +#weekdays 0-6 + +# TAG: hours +# The hours to take into account +# Example: +#hours 7-12,14,16,18-20 +# Default: +#hours 0-23 + +# TAG: dansguardian_conf file +# DansGuardian.conf file path +# Generate reports from DansGuardian logs. +# Use 'none' to disable it. +# dansguardian_conf /usr/dansguardian/dansguardian.conf +# +#dansguardian_conf none + +# TAG: dansguardian_filter_out_date on|off +# This option replaces dansguardian_ignore_date whose name was not appropriate with respect to its action. +# Note the change of parameter value compared with the old option. +# 'off' use the record even if its date is outside of the range found in the input log file. +# 'on' use the record only if its date is in the range found in the input log file. +# +#dansguardian_filter_out_date on + +# TAG: squidguard_conf file +# path to squidGuard.conf file +# Generate reports from SquidGuard logs. +# Use 'none' to disable. +# You can use sarg -L filename to use an alternate squidGuard log. +# squidguard_conf /usr/local/squidGuard/squidGuard.conf +# +#squidguard_conf none + +# TAG: redirector_log file +# the location of the web proxy redirector log such as one created by squidGuard or Rejik. The option +# may be repeated up to 64 times to read multiple files. +# If this option is specified, it takes precedence over squidguard_conf. +# The command line option -L override this option. +# +#redirector_log /usr/local/squidGuard/var/logs/urls.log + +# TAG: redirector_filter_out_date on|off +# This option replaces squidguard_ignore_date and redirector_ignore_date whose names were not +# appropriate with respect to their action. +# Note the change of parameter value compared with the old options. +# 'off' use the record even if its date is outside of the range found in the input log file. +# 'on' use the record only if its date is in the range found in the input log file. +# +#redirector_filter_out_date on + +# TAG: redirector_log_format +# Format string for web proxy redirector logs. +# This option was named squidguard_log_format before sarg 2.3. +# REJIK #year#-#mon#-#day# #hour# #list#:#tmp# #ip# #user# #tmp#/#tmp#/#url#/#end# +# SQUIDGUARD #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end# +#redirector_log_format #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end# + +# TAG: show_sarg_info yes|no +# shows sarg information and site path on each report bottom +# +#show_sarg_info yes + +# TAG: show_sarg_logo yes|no +# shows sarg logo +# +#show_sarg_logo yes + +# TAG: parsed_output_log directory +# Saves the processed log in a sarg format after parsing the squid log file. +# This is a way to dump all of the data structures out, after parsing from +# the logs (presumably this data will be much smaller than the log files themselves), +# and pull them back in for later processing and merging with data from previous logs. +# +#parsed_output_log none + +# TAG: parsed_output_log_compress /bin/gzip|/usr/bin/bzip2|nocompress +# Command to run to compress sarg parsed output log. It may contain +# options (such as -f to overwrite existing target file). The name of +# the file to compresse is provided at the end of this +# command line. Don't forget to quote things appropriately. +# +#parsed_output_log_compress /bin/gzip + +# TAG: displayed_values bytes|abbreviation +# how the values will be displayed in reports. +# eg. bytes - 209.526 +# abbreviation - 210K +# +#displayed_values bytes + +# Report limits +# TAG: authfail_report_limit n +# TAG: denied_report_limit n +# TAG: siteusers_report_limit n +# TAG: squidguard_report_limit n +# TAG: user_report_limit n +# TAG: dansguardian_report_limit n +# TAG: download_report_limit n +# report limits (lines). +# '0' no limit +# +#authfail_report_limit 10 +#denied_report_limit 10 +#siteusers_report_limit 0 +#squidguard_report_limit 10 +#dansguardian_report_limit 10 +#user_report_limit 10 +#user_report_limit 50 + +# TAG: www_document_root dir +# Where is your Web DocumentRoot +# Sarg will create sarg-php directory with some PHP modules: +# - sarg-squidguard-block.php - add urls from user reports to squidGuard DB +# +#www_document_root /var/www/html + +# TAG: block_it module_url +# This tag allow you to pass urls from user reports to a cgi or php module, +# to be blocked by some Squid acl +# +# Eg.: block_it /sarg-php/sarg-block-it.php +# sarg-block-it is a php that will append a url to a flat file. +# You must change /var/www/html/sarg-php/sarg-block-it to point to your file +# in $filename variable, and chown to a httpd owner. +# +# sarg will pass http://module_url?url=url +# +#block_it none + +# TAG: external_css_file path +# Provide the path to an external css file to link into the HTML reports instead of +# the inline css written by sarg when this option is not set. +# +# In versions prior to 2.3, this used to be an absolute file name to +# a file to include verbatim in each HTML page but, as it takes a lot of +# space, version 2.3 switched to a link to an external css file. +# Therefore, this option must contain the HTTP server path on which a client +# browser may find the css file. +# +# Sarg use theses style classes: +# .logo logo class +# .info sarg information class, align=center +# .title_c title class, align=center +# .header_c header class, align:center +# .header_l header class, align:left +# .header_r header class, align:right +# .text text class, align:right +# .data table text class, align:right +# .data2 table text class, align:left +# .data3 table text class, align:center +# .link link class +# +# Sarg can be instructed to output the internal css it inline +# into the reports with this command: +# +# sarg --css +# +# You can redirect the output to a file of your choice and edit +# it to your liking. +# +#external_css_file none + +# TAG: user_authentication yes|no +# Allow user authentication in User Reports using .htaccess +# Parameters: +# AuthUserTemplateFile - The template to use to create the +# .htaccess file. In the template, %u is replaced by the +# user's ID for which the report is generated. The path of the +# template is relative to the directory containing sarg +# configuration file. +# +# user_authentication no +# AuthUserTemplateFile sarg_htaccess + +# TAG: download_suffix "suffix,suffix,...,suffix" +# file suffix to be considered as "download" in Download report. +# Use 'none' to disable. +# +download_suffix "zip,arj,bzip,gz,ace,doc,iso,adt,bin,cab,com,dot,drv$,lha,lzh,mdb,mso,ppt,rtf,src,shs,sys,exe,dll,mp3,avi,mpg,mpeg" + +# TAG: ulimit n +# The maximum number of open file descriptors to avoid "Too many open files" error message. +# You need to run sarg as root to use ulimit tag. +# If you run sarg with a low privilege user, set to 'none' to disable ulimit +# +#ulimit 20000 + +# TAG: ntlm_user_format username|domainname+username +# NTLM users format. +# +#ntlm_user_format domainname+username + +# TAG: realtime_refresh_time num sec +# How many time to auto refresh the realtime report +# 0 = disable +# +# realtime_refresh_time 3 + +# TAG: realtime_access_log_lines num +# How many last lines to get from access.log file +# +# realtime_access_log_lines 1000 + +# TAG: realtime_types: GET,PUT,CONNECT,ICP_QUERY,POST +# Which records must be in realtime report. +# +# realtime_types GET,PUT,CONNECT + +# TAG: realtime_unauthenticated_records: ignore|show +# What to do with unauthenticated records in realtime report. +# +# realtime_unauthenticated_records: show + +# TAG: byte_cost value no_cost_limit +# Cost per byte. +# Eg. byte_cost 0.01 100000000 +# per byte cost = 0.01 +# bytes with no cost = 100 Mb +# 0 = disable +# +# byte_cost 0.01 50000000 + +# TAG: squid24 on|off +# Compatilibity with squid version <= 2.4 when using emulate_http_log on +# +# squid24 off diff --git a/config/sarg/update-sarg-reports b/config/sarg/update-sarg-reports new file mode 100644 index 0000000000..9f2ab4c8cd --- /dev/null +++ b/config/sarg/update-sarg-reports @@ -0,0 +1,188 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - An Open Source Firewall Solution # +# Copyright (C) 2012 Michael Tremer # +# # +# 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 . # +# # +############################################################################### + +export LC_ALL=C + +SARG_CONFIG="/etc/sarg/sarg.conf" +SQUID_LOG="/var/log/squid/access.log" +REPORTS_PATH="/var/log/sarg" + +function date_calc() { + local when + local range="false" + + case "${1}" in + month) + when="1 month ago" + range="true" + ;; + week) + when="1 week ago" + ;; + yesterday) + when="1 day ago" + ;; + today) + when="today" + ;; + *) + return 1 + ;; + esac + + if [ "${range}" = "true" ]; then + echo "$(date --date "${when}" +01/%m/%Y)-$(date --date "${when}" +31/%m/%Y)" + else + date --date "${when}" +%d/%m/%Y + fi + + return 0 +} + +function compile_report() { + local interval=${1} + + local date + case "${interval}" in + today) + date=$(date_calc today) + ;; + daily) + date=$(date_calc yesterday) + ;; + weekly) + date="$(date_calc week)-$(date_calc yesterday)" + ;; + monthly) + date="$(date_calc month)" + ;; + esac + [ -n "${date}" ] || return 1 + + # Determine max. number of archived log files to search. + local max_logs + case "${interval}" in + today|daily) + max_logs=3 + ;; + weekly) + max_logs=14 + ;; + monthly) + max_logs=40 + ;; + esac + + # Create reports_path, if not exists. + local reports_path="${REPORTS_PATH}/${interval}" + mkdir -p ${reports_path} + + # Remove already existant data on today's reports. + case "${interval}" in + today) + rm -rf ${reports_path}/* + ;; + esac + + # Run SARG. + get_logs ${max_logs} | sarg -f ${SARG_CONFIG} -l - -d ${date} -o ${reports_path} +} + +function get_logs() { + local max=${1} + + if [ -z "${max}" ]; then + max=10000 + fi + + local idx=0 + while [ ${idx} -le ${max} ]; do + file=$(search_log_file ${idx}) + + # If no log file could be opened, we are done. + [ -z "${file}" ] && break + + case "${file}" in + # Logs in plain text. + *.log) + cat ${file} + ;; + + # GZip compressed log files. + *.gz) + gzip -d < ${file} + ;; + + # XZ compressed log files. + *.xz) + xz -d < ${file} + ;; + + # Unhandled stuff. + *) + echo "Unhandled file type: ${file}" >&2 + ;; + esac + + idx=$(( ${idx} + 1 )) + done + + return 0 +} + +function search_log_file() { + local idx=${1} + + if [ "${idx}" = "0" ] && [ -e "${SQUID_LOG}" ]; then + echo "${SQUID_LOG}" + return 0 + fi + + local algo + for algo in gz xz; do + file="${SQUID_LOG}.${idx}.${algo}" + + if [ -e "${file}" ]; then + echo "${file}" + return 0 + fi + done + + return 1 +} + +# Main. + +case "${1}" in + today|daily|weekly|monthly) + compile_report ${1} + ;; + *) + echo "${0} - Squid proxy reports creation tool" + echo + echo "Usage: ${0} [interval]" + echo " interval: today, daily, weekly, monthly" + echo + exit 0 + ;; +esac + +exit 0 diff --git a/config/syslinux/syslinux.cfg b/config/syslinux/syslinux.cfg index 68ad82afd7..5a6a975a20 100644 --- a/config/syslinux/syslinux.cfg +++ b/config/syslinux/syslinux.cfg @@ -3,6 +3,9 @@ DISPLAY boot.msg PROMPT 1 DEFAULT vmlinuz APPEND initrd=instroot vga=791 splash=silent ro +LABEL ipfire + KERNEL vmlinuz + APPEND initrd=instroot vga=791 splash=silent ro LABEL novga KERNEL vmlinuz APPEND initrd=instroot ro diff --git a/config/u-boot/boot.scr b/config/u-boot/boot.scr new file mode 100755 index 0000000000..aad40aead5 Binary files /dev/null and b/config/u-boot/boot.scr differ diff --git a/config/u-boot/boot.script b/config/u-boot/boot.script new file mode 100755 index 0000000000..0f7181535e --- /dev/null +++ b/config/u-boot/boot.script @@ -0,0 +1,4 @@ +fatload mmc 0:1 0x80000000 uImage-ipfire-omap +fatload mmc 0:1 0x81600000 uInit-ipfire-omap +setenv bootargs vram=32M console=tty1 rootwait smsc95xx.macaddr=$usbethaddr root=/dev/mmcblk0p3 ro +bootm 0x80000000 0x81600000 diff --git a/config/u-boot/convert_bootscript b/config/u-boot/convert_bootscript new file mode 100755 index 0000000000..962191f142 --- /dev/null +++ b/config/u-boot/convert_bootscript @@ -0,0 +1 @@ +mkimage -A arm -T script -C none -d boot.script boot.scr diff --git a/config/uClibc/busybox.config b/config/uClibc/busybox.config deleted file mode 100644 index 9682385133..0000000000 --- a/config/uClibc/busybox.config +++ /dev/null @@ -1,643 +0,0 @@ -# -# Automatically generated make config: don't edit -# -HAVE_DOT_CONFIG=y - -# -# Busybox Settings -# - -# -# General Configuration -# -# CONFIG_NITPICK is not set -# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set -CONFIG_SHOW_USAGE=y -CONFIG_FEATURE_VERBOSE_USAGE=y -CONFIG_FEATURE_COMPRESS_USAGE=y -# CONFIG_FEATURE_INSTALLER is not set -# CONFIG_LOCALE_SUPPORT is not set -CONFIG_GETOPT_LONG=y -# CONFIG_FEATURE_DEVPTS is not set -# CONFIG_FEATURE_CLEAN_UP is not set -# CONFIG_FEATURE_SUID is not set -# CONFIG_FEATURE_SUID_CONFIG is not set -# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set -# CONFIG_SELINUX is not set -CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" - -# -# Build Options -# -# CONFIG_STATIC is not set -# CONFIG_BUILD_LIBBUSYBOX is not set -# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set -# CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y -USING_CROSS_COMPILER=y -CROSS_COMPILER_PREFIX="/opt/i586-uClibc/bin/i586-linux-" -# CONFIG_BUILD_AT_ONCE is not set - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_NO_DEBUG_LIB is not set -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set -# CONFIG_DEBUG_YANK_SUSv2 is not set - -# -# Installation Options -# -CONFIG_INSTALL_NO_USR=y -CONFIG_INSTALL_APPLET_SYMLINKS=y -# CONFIG_INSTALL_APPLET_HARDLINKS is not set -# CONFIG_INSTALL_APPLET_DONT is not set -PREFIX="/install/initrd" - -# -# Busybox Library Tuning -# -CONFIG_MD5_SIZE_VS_SPEED=3 - -# -# Applets -# - -# -# Archival Utilities -# -# CONFIG_AR is not set -# CONFIG_FEATURE_AR_LONG_FILENAMES is not set -# CONFIG_BUNZIP2 is not set -# CONFIG_CPIO is not set -# CONFIG_DPKG is not set -# CONFIG_DPKG_DEB is not set -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set -# CONFIG_GUNZIP is not set -# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set -CONFIG_GZIP=y -# CONFIG_RPM2CPIO is not set -# CONFIG_RPM is not set -CONFIG_TAR=y -# CONFIG_FEATURE_TAR_CREATE is not set -CONFIG_FEATURE_TAR_BZIP2=y -CONFIG_FEATURE_TAR_LZMA=y -# CONFIG_FEATURE_TAR_FROM is not set -CONFIG_FEATURE_TAR_GZIP=y -# CONFIG_FEATURE_TAR_COMPRESS is not set -CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y -CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y -# CONFIG_UNCOMPRESS is not set -# CONFIG_UNLZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set -CONFIG_UNZIP=y - -# -# Common options for cpio and tar -# -# CONFIG_FEATURE_UNARCHIVE_TAPE is not set -# CONFIG_FEATURE_DEB_TAR_GZ is not set -# CONFIG_FEATURE_DEB_TAR_BZ2 is not set -# CONFIG_FEATURE_DEB_TAR_LZMA is not set - -# -# Coreutils -# -CONFIG_BASENAME=y -# CONFIG_CAL is not set -CONFIG_CAT=y -# CONFIG_CATV is not set -# CONFIG_CHGRP is not set -CONFIG_CHMOD=y -CONFIG_CHOWN=y -CONFIG_CHROOT=y -# CONFIG_CKSUM is not set -# CONFIG_CMP is not set -# CONFIG_COMM is not set -CONFIG_CP=y -CONFIG_CUT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -# CONFIG_FEATURE_DD_IBS_OBS is not set -CONFIG_DF=y -# CONFIG_DIFF is not set -# CONFIG_FEATURE_DIFF_BINARY is not set -# CONFIG_FEATURE_DIFF_DIR is not set -# CONFIG_FEATURE_DIFF_MINIMAL is not set -# CONFIG_DIRNAME is not set -# CONFIG_DOS2UNIX is not set -# CONFIG_UNIX2DOS is not set -CONFIG_DU=y -CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y -CONFIG_ECHO=y -CONFIG_FEATURE_FANCY_ECHO=y -# CONFIG_ENV is not set -# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set -# CONFIG_EXPR is not set -# CONFIG_EXPR_MATH_SUPPORT_64 is not set -# CONFIG_FALSE is not set -# CONFIG_FOLD is not set -CONFIG_HEAD=y -# CONFIG_FEATURE_FANCY_HEAD is not set -# CONFIG_HOSTID is not set -# CONFIG_ID is not set -# CONFIG_INSTALL is not set -# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set -# CONFIG_LENGTH is not set -CONFIG_LN=y -# CONFIG_LOGNAME is not set -CONFIG_LS=y -CONFIG_FEATURE_LS_FILETYPES=y -CONFIG_FEATURE_LS_FOLLOWLINKS=y -CONFIG_FEATURE_LS_RECURSIVE=y -CONFIG_FEATURE_LS_SORTFILES=y -CONFIG_FEATURE_LS_TIMESTAMPS=y -CONFIG_FEATURE_LS_USERNAME=y -CONFIG_FEATURE_LS_COLOR=y -# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set -CONFIG_MD5SUM=y -CONFIG_MKDIR=y -# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set -CONFIG_MKFIFO=y -CONFIG_MKNOD=y -CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y -CONFIG_NICE=y -# CONFIG_NOHUP is not set -# CONFIG_OD is not set -# CONFIG_PRINTENV is not set -# CONFIG_PRINTF is not set -# CONFIG_PWD is not set -# CONFIG_REALPATH is not set -CONFIG_RM=y -# CONFIG_RMDIR is not set -CONFIG_SEQ=y -# CONFIG_SHA1SUM is not set -CONFIG_SLEEP=y -# CONFIG_FEATURE_FANCY_SLEEP is not set -CONFIG_SORT=y -CONFIG_FEATURE_SORT_BIG=y -# CONFIG_STAT is not set -# CONFIG_FEATURE_STAT_FORMAT is not set -# CONFIG_STTY is not set -# CONFIG_SUM is not set -CONFIG_SYNC=y -CONFIG_TAIL=y -CONFIG_FEATURE_FANCY_TAIL=y -CONFIG_TEE=y -# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set -CONFIG_TEST=y -# CONFIG_FEATURE_TEST_64 is not set -CONFIG_TOUCH=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -CONFIG_TRUE=y -# CONFIG_TTY is not set -CONFIG_UNAME=y -CONFIG_UNIQ=y -# CONFIG_USLEEP is not set -# CONFIG_UUDECODE is not set -# CONFIG_UUENCODE is not set -# CONFIG_WATCH is not set -CONFIG_WC=y -# CONFIG_WHO is not set -# CONFIG_WHOAMI is not set -CONFIG_YES=y - -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum -# -# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set - -# -# Console Utilities -# -CONFIG_CHVT=y -CONFIG_CLEAR=y -# CONFIG_DEALLOCVT is not set -# CONFIG_DUMPKMAP is not set -CONFIG_LOADFONT=y -CONFIG_LOADKMAP=y -# CONFIG_OPENVT is not set -# CONFIG_RESET is not set -CONFIG_SETCONSOLE=y -# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -CONFIG_SETKEYCODES=y -# CONFIG_SETLOGCONS is not set - -# -# Debian Utilities -# -# CONFIG_MKTEMP is not set -# CONFIG_PIPE_PROGRESS is not set -# CONFIG_READLINK is not set -# CONFIG_FEATURE_READLINK_FOLLOW is not set -# CONFIG_RUN_PARTS is not set -# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set -# CONFIG_START_STOP_DAEMON is not set -# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set -# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set -CONFIG_WHICH=y - -# -# Editors -# -CONFIG_AWK=y -# CONFIG_FEATURE_AWK_MATH is not set -# CONFIG_ED is not set -# CONFIG_PATCH is not set -CONFIG_SED=y -CONFIG_VI=y -CONFIG_FEATURE_VI_COLON=y -CONFIG_FEATURE_VI_YANKMARK=y -CONFIG_FEATURE_VI_SEARCH=y -CONFIG_FEATURE_VI_USE_SIGNALS=y -CONFIG_FEATURE_VI_DOT_CMD=y -CONFIG_FEATURE_VI_READONLY=y -CONFIG_FEATURE_VI_SETOPTS=y -CONFIG_FEATURE_VI_SET=y -CONFIG_FEATURE_VI_WIN_RESIZE=y -CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y - -# -# Finding Utilities -# -CONFIG_FIND=y -CONFIG_FEATURE_FIND_PRINT0=y -CONFIG_FEATURE_FIND_MTIME=y -CONFIG_FEATURE_FIND_MMIN=y -CONFIG_FEATURE_FIND_PERM=y -CONFIG_FEATURE_FIND_TYPE=y -CONFIG_FEATURE_FIND_XDEV=y -CONFIG_FEATURE_FIND_NEWER=y -CONFIG_FEATURE_FIND_INUM=y -CONFIG_FEATURE_FIND_EXEC=y -CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y -CONFIG_FEATURE_GREP_CONTEXT=y -CONFIG_XARGS=y -# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set -# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set -# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set -# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set - -# -# Init Utilities -# -CONFIG_INIT=y -# CONFIG_DEBUG_INIT is not set -CONFIG_FEATURE_USE_INITTAB=y -# CONFIG_FEATURE_INIT_SCTTY is not set -CONFIG_FEATURE_EXTRA_QUIET=y -# CONFIG_FEATURE_INIT_COREDUMPS is not set -CONFIG_FEATURE_INITRD=y -CONFIG_HALT=y -# CONFIG_MESG is not set - -# -# Login/Password Management Utilities -# -# CONFIG_FEATURE_SHADOWPASSWDS is not set -# CONFIG_USE_BB_SHADOW is not set -# CONFIG_USE_BB_PWD_GRP is not set -# CONFIG_ADDGROUP is not set -# CONFIG_DELGROUP is not set -# CONFIG_ADDUSER is not set -# CONFIG_DELUSER is not set -CONFIG_GETTY=y -# CONFIG_FEATURE_UTMP is not set -# CONFIG_FEATURE_WTMP is not set -# CONFIG_LOGIN is not set -# CONFIG_FEATURE_SECURETTY is not set -# CONFIG_PASSWD is not set -# CONFIG_SU is not set -# CONFIG_SULOGIN is not set -# CONFIG_VLOCK is not set - -# -# Linux Ext2 FS Progs -# -# CONFIG_CHATTR is not set -CONFIG_E2FSCK=y -CONFIG_FSCK=y -# CONFIG_LSATTR is not set -CONFIG_MKE2FS=y -CONFIG_TUNE2FS=y -CONFIG_E2LABEL=y -# CONFIG_FINDFS is not set - -# -# Linux Module Utilities -# -CONFIG_INSMOD=y -# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set -# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set -# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set -# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set -CONFIG_RMMOD=y -CONFIG_LSMOD=y -CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y -CONFIG_MODPROBE=y -CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y - -# -# Options common to multiple modutils -# -# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set -# CONFIG_FEATURE_2_4_MODULES is not set -CONFIG_FEATURE_2_6_MODULES=y -# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set - -# -# Linux System Utilities -# -CONFIG_DMESG=y -# CONFIG_FBSET is not set -# CONFIG_FEATURE_FBSET_FANCY is not set -# CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set -# CONFIG_FDFORMAT is not set -CONFIG_FDISK=y -FDISK_SUPPORT_LARGE_DISKS=y -CONFIG_FEATURE_FDISK_WRITABLE=y -# CONFIG_FEATURE_AIX_LABEL is not set -# CONFIG_FEATURE_SGI_LABEL is not set -# CONFIG_FEATURE_SUN_LABEL is not set -# CONFIG_FEATURE_OSF_LABEL is not set -# CONFIG_FEATURE_FDISK_ADVANCED is not set -# CONFIG_FREERAMDISK is not set -# CONFIG_FSCK_MINIX is not set -# CONFIG_MKFS_MINIX is not set -# CONFIG_FEATURE_MINIX2 is not set -# CONFIG_GETOPT is not set -# CONFIG_HEXDUMP is not set -# CONFIG_HWCLOCK is not set -# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set -# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set -# CONFIG_IPCRM is not set -# CONFIG_IPCS is not set -CONFIG_LOSETUP=y -# CONFIG_MDEV is not set -# CONFIG_FEATURE_MDEV_CONF is not set -# CONFIG_FEATURE_MDEV_EXEC is not set -CONFIG_MKSWAP=y -# CONFIG_FEATURE_MKSWAP_V0 is not set -CONFIG_MORE=y -CONFIG_FEATURE_USE_TERMIOS=y -CONFIG_MOUNT=y -# CONFIG_FEATURE_MOUNT_NFS is not set -CONFIG_PIVOT_ROOT=y -# CONFIG_RDATE is not set -# CONFIG_READPROFILE is not set -# CONFIG_SETARCH is not set -CONFIG_SWAPONOFF=y -# CONFIG_SWITCH_ROOT is not set -CONFIG_UMOUNT=y -CONFIG_FEATURE_UMOUNT_ALL=y - -# -# Common options for mount/umount -# -CONFIG_FEATURE_MOUNT_LOOP=y -# CONFIG_FEATURE_MTAB_SUPPORT is not set - -# -# Miscellaneous Utilities -# -# CONFIG_ADJTIMEX is not set -# CONFIG_BBCONFIG is not set -# CONFIG_CROND is not set -# CONFIG_DEBUG_CROND_OPTION is not set -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -# CONFIG_CRONTAB is not set -# CONFIG_DC is not set -# CONFIG_DEVFSD is not set -# CONFIG_DEVFSD_MODLOAD is not set -# CONFIG_DEVFSD_FG_NP is not set -# CONFIG_DEVFSD_VERBOSE is not set -# CONFIG_FEATURE_DEVFS is not set -CONFIG_EJECT=y -# CONFIG_LAST is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -# CONFIG_FEATURE_LESS_FLAGCS is not set -# CONFIG_FEATURE_LESS_MARKS is not set -# CONFIG_FEATURE_LESS_REGEXP is not set -# CONFIG_HDPARM is not set -# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set -# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set -# CONFIG_MAKEDEVS is not set -# CONFIG_FEATURE_MAKEDEVS_LEAF is not set -# CONFIG_FEATURE_MAKEDEVS_TABLE is not set -# CONFIG_MOUNTPOINT is not set -# CONFIG_MT is not set -# CONFIG_RUNLEVEL is not set -# CONFIG_RX is not set -# CONFIG_STRINGS is not set -# CONFIG_SETSID is not set -# CONFIG_TASKSET is not set -# CONFIG_TIME is not set -# CONFIG_WATCHDOG is not set - -# -# Networking Utilities -# -# CONFIG_FEATURE_IPV6 is not set -# CONFIG_ARPING is not set -# CONFIG_DNSD is not set -# CONFIG_ETHER_WAKE is not set -# CONFIG_FAKEIDENTD is not set -# CONFIG_FTPGET is not set -# CONFIG_FTPPUT is not set -# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set -CONFIG_HOSTNAME=y -# CONFIG_HTTPD is not set -# CONFIG_FEATURE_HTTPD_WITHOUT_INETD is not set -# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set -# CONFIG_FEATURE_HTTPD_SETUID is not set -# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set -# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set -# CONFIG_FEATURE_HTTPD_CGI is not set -# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set -# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set -# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set -CONFIG_IFCONFIG=y -CONFIG_FEATURE_IFCONFIG_STATUS=y -# CONFIG_FEATURE_IFCONFIG_SLIP is not set -# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set -# CONFIG_FEATURE_IFCONFIG_HW is not set -CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y -# CONFIG_IFUPDOWN is not set -# CONFIG_FEATURE_IFUPDOWN_IP is not set -# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set -# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set -# CONFIG_FEATURE_IFUPDOWN_IPX is not set -# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set -# CONFIG_INETD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set -# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set -# CONFIG_FEATURE_INETD_RPC is not set -CONFIG_IP=y -CONFIG_FEATURE_IP_ADDRESS=y -CONFIG_FEATURE_IP_LINK=y -CONFIG_FEATURE_IP_ROUTE=y -# CONFIG_FEATURE_IP_TUNNEL is not set -CONFIG_FEATURE_IP_SHORT_FORMS=y -CONFIG_IPADDR=y -CONFIG_IPLINK=y -CONFIG_IPROUTE=y -# CONFIG_IPTUNNEL is not set -# CONFIG_IPCALC is not set -# CONFIG_FEATURE_IPCALC_FANCY is not set -# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set -# CONFIG_NAMEIF is not set -# CONFIG_NC is not set -# CONFIG_NC_GAPING_SECURITY_HOLE is not set -# CONFIG_NETSTAT is not set -# CONFIG_NSLOOKUP is not set -CONFIG_PING=y -# CONFIG_FEATURE_FANCY_PING is not set -# CONFIG_PING6 is not set -# CONFIG_FEATURE_FANCY_PING6 is not set -CONFIG_ROUTE=y -# CONFIG_TELNET is not set -# CONFIG_FEATURE_TELNET_TTYPE is not set -# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set -# CONFIG_TELNETD is not set -# CONFIG_FEATURE_TELNETD_INETD is not set -# CONFIG_TFTP is not set -# CONFIG_FEATURE_TFTP_GET is not set -# CONFIG_FEATURE_TFTP_PUT is not set -# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set -# CONFIG_DEBUG_TFTP is not set -# CONFIG_TRACEROUTE is not set -# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set -# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set - -# -# udhcp Server/Client -# -# CONFIG_APP_UDHCPD is not set -CONFIG_APP_UDHCPC=y -# CONFIG_APP_DUMPLEASES is not set -CONFIG_FEATURE_UDHCP_SYSLOG=y -# CONFIG_FEATURE_UDHCP_DEBUG is not set -CONFIG_VCONFIG=y -# CONFIG_WGET is not set -# CONFIG_FEATURE_WGET_STATUSBAR is not set -# CONFIG_FEATURE_WGET_AUTHENTICATION is not set -# CONFIG_FEATURE_WGET_IP6_LITERAL is not set -# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set -# CONFIG_ZCIP is not set - -# -# Process Utilities -# -CONFIG_FREE=y -# CONFIG_FUSER is not set -CONFIG_KILL=y -CONFIG_KILLALL=y -# CONFIG_PIDOF is not set -# CONFIG_FEATURE_PIDOF_SINGLE is not set -# CONFIG_FEATURE_PIDOF_OMIT is not set -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -CONFIG_RENICE=y -# CONFIG_BB_SYSCTL is not set -CONFIG_TOP=y -CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y -CONFIG_UPTIME=y - -# -# Shells -# -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_LASH is not set -# CONFIG_FEATURE_SH_IS_MSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -CONFIG_ASH=y - -# -# Ash Shell Options -# -CONFIG_ASH_JOB_CONTROL=y -# CONFIG_ASH_READ_NCHARS is not set -# CONFIG_ASH_READ_TIMEOUT is not set -CONFIG_ASH_ALIAS=y -CONFIG_ASH_MATH_SUPPORT=y -# CONFIG_ASH_MATH_SUPPORT_64 is not set -CONFIG_ASH_GETOPTS=y -CONFIG_ASH_BUILTIN_ECHO=y -CONFIG_ASH_BUILTIN_TEST=y -# CONFIG_ASH_CMDCMD is not set -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y -# CONFIG_ASH_RANDOM_SUPPORT is not set -CONFIG_ASH_EXPAND_PRMT=y -# CONFIG_HUSH is not set -# CONFIG_LASH is not set -# CONFIG_MSH is not set - -# -# Bourne Shell Options -# -# CONFIG_FEATURE_SH_EXTRA_QUIET is not set -# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set -CONFIG_FEATURE_COMMAND_EDITING=y -# CONFIG_FEATURE_COMMAND_EDITING_VI is not set -CONFIG_FEATURE_COMMAND_HISTORY=15 -CONFIG_FEATURE_COMMAND_SAVEHISTORY=y -CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y -# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set -CONFIG_FEATURE_SH_FANCY_PROMPT=y - -# -# System Logging Utilities -# -CONFIG_SYSLOGD=y -# CONFIG_FEATURE_ROTATE_LOGFILE is not set -# CONFIG_FEATURE_REMOTE_LOG is not set -# CONFIG_FEATURE_IPC_SYSLOG is not set -CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0 -# CONFIG_LOGREAD is not set -# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set -CONFIG_KLOGD=y -CONFIG_LOGGER=y diff --git a/config/uClibc/codesets.txt b/config/uClibc/codesets.txt deleted file mode 100644 index 98530d35cf..0000000000 --- a/config/uClibc/codesets.txt +++ /dev/null @@ -1,2 +0,0 @@ -./charmaps/ASCII.pairs -./charmaps/ISO-8859-1.pairs diff --git a/config/uClibc/locales.txt b/config/uClibc/locales.txt deleted file mode 100644 index a3100ecc79..0000000000 --- a/config/uClibc/locales.txt +++ /dev/null @@ -1,8 +0,0 @@ -@euro e -@cyrillic c -#--------------------------------------------------------------------------- -UTF-8 yes -8-BIT yes -#--------------------------------------------------------------------------- -en_US ISO-8859-1 -en_US.UTF-8 UTF-8 diff --git a/config/uClibc/uClibc.config-i586 b/config/uClibc/uClibc.config-i586 deleted file mode 100644 index f46b1febf0..0000000000 --- a/config/uClibc/uClibc.config-i586 +++ /dev/null @@ -1,175 +0,0 @@ -# -# Automatically generated make config: don't edit -# -# TARGET_alpha is not set -# TARGET_arm is not set -# TARGET_bfin is not set -# TARGET_cris is not set -# TARGET_e1 is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -TARGET_i386=y -# TARGET_i960 is not set -# TARGET_m68k is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nios is not set -# TARGET_nios2 is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sh64 is not set -# TARGET_sparc is not set -# TARGET_v850 is not set -# TARGET_x86_64 is not set - -# -# Target Architecture Features and Options -# -HAVE_ELF=y -ARCH_SUPPORTS_LITTLE_ENDIAN=y -TARGET_ARCH="i386" -# CONFIG_GENERIC_386 is not set -# CONFIG_386 is not set -# CONFIG_486 is not set -CONFIG_586=y -# CONFIG_586MMX is not set -# CONFIG_686 is not set -# CONFIG_PENTIUMII is not set -# CONFIG_PENTIUMIII is not set -# CONFIG_PENTIUM4 is not set -# CONFIG_K6 is not set -# CONFIG_K7 is not set -# CONFIG_ELAN is not set -# CONFIG_CRUSOE is not set -# CONFIG_WINCHIPC6 is not set -# CONFIG_WINCHIP2 is not set -# CONFIG_CYRIXIII is not set -# CONFIG_NEHEMIAH is not set -ARCH_LITTLE_ENDIAN=y -# ARCH_BIG_ENDIAN is not set -# ARCH_HAS_NO_MMU is not set -ARCH_HAS_MMU=y -UCLIBC_HAS_FLOATS=y -HAS_FPU=y -DO_C99_MATH=y -KERNEL_SOURCE="/usr" -C_SYMBOL_PREFIX="" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -# HAVE_NO_PIC is not set -DOPIC=y -# HAVE_NO_SHARED is not set -HAVE_SHARED=y -# ARCH_HAS_NO_LDSO is not set -BUILD_UCLIBC_LDSO=y -FORCE_SHAREABLE_TEXT_SEGMENTS=y -LDSO_LDD_SUPPORT=y -LDSO_CACHE_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_BASE_FILENAME="ld.so" -LDSO_RUNPATH=y -# DL_FINI_CRT_COMPAT is not set -UCLIBC_CTOR_DTOR=y -# HAS_NO_THREADS is not set -UCLIBC_HAS_THREADS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_LFS=y -# UCLIBC_STATIC_LDCONFIG is not set -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -MALLOC_GLIBC_COMPAT=y -UCLIBC_DYNAMIC_ATEXIT=y -HAS_SHADOW=y -UNIX98PTY_ONLY=y -ASSUME_DEVPTS=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" - -# -# Networking Support -# -# UCLIBC_HAS_IPV6 is not set -# UCLIBC_HAS_RPC is not set - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LOCALE=y -UCLIBC_PREGENERATED_LOCALE_DATA=y -# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set -UCLIBC_HAS_XLOCALE=y -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set -UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set -# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -UCLIBC_HAS_SYS_SIGLIST=y -UCLIBC_HAS_GNU_GETOPT=y - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_FTW=y -UCLIBC_HAS_GLOB=y - -# -# Library Installation Options -# -SHARED_LIB_LOADER_PREFIX="/lib" -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr/" - -# -# uClibc security related options -# -# UCLIBC_SECURITY is not set - -# -# uClibc development/debugging options -# -CROSS_COMPILER_PREFIX="" -# DODEBUG is not set -# DODEBUG_PT is not set -# DOASSERTS is not set -# SUPPORT_LD_DEBUG is not set -# SUPPORT_LD_DEBUG_EARLY is not set -WARNINGS="-Wall" -# UCLIBC_MJN3_ONLY is not set diff --git a/config/udev/10-dvb.rules b/config/udev/10-dvb.rules deleted file mode 100644 index 5bcd40ec95..0000000000 --- a/config/udev/10-dvb.rules +++ /dev/null @@ -1,2 +0,0 @@ -# Create DVB Devices -KERNEL=="dvb*", PROGRAM="/etc/udev/dvb.sh %k", NAME="%c" diff --git a/config/udev/25-alsa.rules b/config/udev/25-alsa.rules new file mode 100644 index 0000000000..3e930cdb6f --- /dev/null +++ b/config/udev/25-alsa.rules @@ -0,0 +1,8 @@ +# alsa device go in their own subdirectory + +KERNEL=="controlC[0-9]*", NAME="snd/%k", GROUP="audio" +KERNEL=="hw[CD0-9]*", NAME="snd/%k", GROUP="audio" +KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k", GROUP="audio" +KERNEL=="midiC[D0-9]*", NAME="snd/%k", GROUP="audio" +KERNEL=="timer", NAME="snd/%k", GROUP="audio" +KERNEL=="seq", NAME="snd/%k", GROUP="audio" diff --git a/config/udev/55-scsi-cdrom.rules b/config/udev/55-scsi-cdrom.rules deleted file mode 100644 index f7ad37d582..0000000000 --- a/config/udev/55-scsi-cdrom.rules +++ /dev/null @@ -1,2 +0,0 @@ -# SCSI devices -BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n" diff --git a/config/udev/99-codel.rules b/config/udev/99-codel.rules new file mode 100644 index 0000000000..d6747ba04e --- /dev/null +++ b/config/udev/99-codel.rules @@ -0,0 +1,2 @@ +# Call the enable codel script. +SUBSYSTEM=="net", RUN+="/lib/udev/enable_codel" diff --git a/config/udev/dvb.sh b/config/udev/dvb.sh deleted file mode 100755 index 5405ffae78..0000000000 --- a/config/udev/dvb.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -/bin/echo $1 | /bin/sed -e 's,dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\),dvb/adapter\1/\2\3,' diff --git a/config/udev/enable_codel b/config/udev/enable_codel new file mode 100644 index 0000000000..6cafd9b268 --- /dev/null +++ b/config/udev/enable_codel @@ -0,0 +1,57 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire 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 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire 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 IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2012 IPFire Team . # +# # +############################################################################ + +LOG_FACILITY="codel" + +function log() { + logger -t "${LOG_FACILITY}" $@ +} + +if [ -z "${INTERFACE}" ]; then + echo "INTERFACE variable was not set." >&2 + exit 1 +fi + +# Do nothing for the loopback device. +[ "${INTERFACE}" = "lo" ] && exit 0 + +case "${ACTION}" in + add|register) + # Change root qdisc to use fq_codel. + /sbin/tc qdisc add root dev ${INTERFACE} fq_codel + ret=$? + + if [ ${ret} -eq 0 ]; then + log "Codel AQM has been enabled on '${INTERFACE}'." + else + log "Codel AQM could not be enabled on '${INTERFACE}'. Error code: ${ret}" + exit ${ret} + fi + ;; + + remove|unregister) + # Nothing to do here. + ;; +esac + +exit 0 diff --git a/config/updxlrator/download b/config/updxlrator/download index 6744d9c6e9..1624609f4e 100644 --- a/config/updxlrator/download +++ b/config/updxlrator/download @@ -49,7 +49,7 @@ $vendorid =~ tr/A-Z/a-z/; unless (-d "$repository/download/$vendorid") { system("mkdir -p $repository/download/$vendorid"); - system("chmod 775 $repository/download/$vendorid"); + chmod 0775, "$repository/download/$vendorid"; } if($restartdl == 0) @@ -159,13 +159,13 @@ if ($_ == 0) unless (-d "$repository/$vendorid") { system("mkdir -p $repository/$vendorid"); - system("chmod 775 $repository/$vendorid"); + chmod 0775, "$repository/$vendorid"; } unless (-d "$repository/$vendorid/$uuid") { system("mkdir -p $repository/$vendorid/$uuid"); - system("chmod 775 $repository/$vendorid/$uuid"); + chmod 0775, "$repository/$vendorid/$uuid"; } &writelog("Moving file to the cache directory: $vendorid/$uuid"); @@ -180,8 +180,15 @@ if ($_ == 0) &UPDXLT::setcachestatus("$repository/$vendorid/$uuid/checkup.log",time); &UPDXLT::setcachestatus("$repository/$vendorid/$uuid/access.log",time); - system("/usr/local/bin/updxsetperms"); - system("chmod 775 $repository/$vendorid/$uuid/*"); + # Update permissions of all files in the download directory. + my @files = ( + "$repository/$vendorid/$uuid/source.url", + "$repository/$vendorid/$uuid/status", + "$repository/$vendorid/$uuid/checkup.log", + "$repository/$vendorid/$uuid/access.log", + "$repository/$vendorid/$uuid/$updatefile" + ); + chmod 0664, @files; unlink ("$repository/download/$vendorid/$updatefile.info"); diff --git a/config/updxlrator/updxlrator b/config/updxlrator/updxlrator index 4aaa38938c..d72677ceef 100644 --- a/config/updxlrator/updxlrator +++ b/config/updxlrator/updxlrator @@ -8,6 +8,11 @@ # # $Id: updxlrator,v 2.1 2009/01/10 00:00:00 marco.s Exp $ # +# ChangeLog: +# +# 2012-10-26: nightshift - move curly bracket to capture AVG download source. +# - Adding BIG HINT for new update source# +# use strict; use HTTP::Date; @@ -75,8 +80,8 @@ while (<>) { # ----------------------------------------------------------- if ( - (($source_url =~ m@^http://[^/]*\.microsoft\.com/.*\.(exe|psf|msi|msp|cab)$@i) || - ($source_url =~ m@^http://[^/]*\.windowsupdate\.com/.*\.(exe|psf|msi|msp|cab)$@i)) + (($source_url =~ m@^http://[^/]*\.microsoft\.com/.*\.(exe|psf|msi|msp|msu|cab)$@i) || + ($source_url =~ m@^http://[^/]*\.windowsupdate\.com/.*\.(exe|psf|msi|msp|msu|cab)$@i)) && ($source_url !~ m@^http://[^/]*\.microsoft\.com/.*(/autoupd|selfupdate/).*\.cab@i) && ($source_url !~ m@\&@) ) @@ -88,6 +93,7 @@ while (<>) { # Section: Adobe Downloads # ----------------------------------------------------------- + if ( ($source_url =~ m@^http://(ar)?download\.adobe\.com/.*\.(exe|msi|bin|dmg|idx|gz)$@i) || ($source_url =~ m@^http://swupdl\.adobe\.com/updates/.*\.(exe|msi|bin|dmg|idx|gz|[a-z][a-z]_[A-Z][A-Z])$@i) || @@ -178,8 +184,6 @@ while (<>) { $xlrator_url = &check_cache($source_url,$hostaddr,$username,"IPFire",$mirror); } - } - # ----------------------------------------------------------- # Section: AVG Downloads # ----------------------------------------------------------- @@ -189,6 +193,9 @@ while (<>) { # $xlrator_url = &check_cache($source_url,$hostaddr,$username,"AVG",$mirror); # } +# ----------- ADD NEW SOURCES BEFORE THIS LINE !!! ------------------ + } + $request="$xlrator_url $hostaddr $username $method\n"; print $request; diff --git a/config/w_scan/w_scan_start b/config/w_scan/w_scan_start new file mode 100755 index 0000000000..0f624ac68e --- /dev/null +++ b/config/w_scan/w_scan_start @@ -0,0 +1,136 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2012 IPFire Team # +# # +# 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 . # +# # +############################################################################### +############################################################################### +# w_scan_start for IPFire v 1.00 - 2012-11-15 Arne Fitzenreiter - inital vers.# +############################################################################### + +err_msg () +{ + whiptail --msgbox "$1" 8 70 --title "Error" + clear + exit 1 +} + +chk_cancel () +{ + if [ ! "${?}" == 0 ];then + clear + echo "Terminated by user!" + exit 0 + fi +} + +yes_no () +{ + whiptail --yesno "$1" 8 70 + chk_cancel +} + +WSCAN=$(which w_scan) + +# Whiptail does not like en_US.UTF-8 +LANG=c + +# Some initial checks... +if [ -z $WSCAN ];then + err_msg "w_scan not found!"; +fi +if [ ! -e /dev/dvb/adapter[0-9]/frontend[0-9] ];then + err_msg "No dvb tuner frontend found!"; +fi + +# Is vdr running? +if [ "$(ps -A | grep " runvdr$")" != "" ] ;then + yes_no "VDR is running. Cannot scan with active VDR. Should I stop it?" + clear + /etc/init.d/vdr stop +fi + +# Select DVB type +whiptail --checklist "\nSelect DVB type" 12 40 3 \ + DVB-T "Terrestrial" yes \ + DVB-C "Cable" no \ + DVB-S "Satellite" no \ + 2>/tmp/w_scan_type +chk_cancel +W_SCAN_TYPE=$(cat /tmp/w_scan_type) +rm /tmp/w_scan_type + +if [[ "$W_SCAN_TYPE" == *DVB-T* ]] || [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then + # Generate and run separate country menubox and default germany + echo '#!/bin/bash' > /tmp/w_scan_countryselect.sh + echo 'whiptail --radiolist "\nSelect country" 19 70 10 \' >> /tmp/w_scan_countryselect.sh + $WSCAN -c? 2>&1 | cut -f2,4 | sed 's|[ ]| "|g' | sed 's|$|" off \\|g' | sed 's|"GERMANY" off |"GERMANY" on |g' >> /tmp/w_scan_countryselect.sh + echo ' 2>/tmp/w_scan_country' >> /tmp/w_scan_countryselect.sh + sh /tmp/w_scan_countryselect.sh + chk_cancel + rm /tmp/w_scan_countryselect.sh + W_SCAN_COUNTRY=$(cat /tmp/w_scan_country) + rm /tmp/w_scan_country +fi + +if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then + # Generate and run separate satelite menubox and default astra + echo '#!/bin/bash' > /tmp/w_scan_satselect.sh + echo 'whiptail --checklist "\nSelect satellites" 19 70 10 \' >> /tmp/w_scan_satselect.sh + $WSCAN -s? 2>&1 | cut -f2,4 | sed 's|[ ]| "|g' | sed 's|$|" off \\|g' | sed 's|19.2 east.*|19.2 east Astra 1F/1G/1H/1KR/1L" on \\|g' >> /tmp/w_scan_satselect.sh + echo ' 2>/tmp/w_scan_satellite' >> /tmp/w_scan_satselect.sh + sh /tmp/w_scan_satselect.sh + chk_cancel + rm /tmp/w_scan_satselect.sh + W_SCAN_SATELLITE=$(cat /tmp/w_scan_satellite | sed 's|"||g') + rm /tmp/w_scan_satellite +fi + +# Now start the scan ... +clear +rm -rf /tmp/channels.conf +if [[ "$W_SCAN_TYPE" == *DVB-T* ]]; then + echo ":->W-SCAN DVB-T $(date +%Y%m%d%H%M)" >>/tmp/channels.conf + $WSCAN -f t -c $W_SCAN_COUNTRY -C UTF-8 >>/tmp/channels.conf +fi +if [[ "$W_SCAN_TYPE" == *DVB-C* ]]; then + echo ":->W-SCAN DVB-C $(date +%Y%m%d%H%M)" >>/tmp/channels.conf + $WSCAN -f c -c $W_SCAN_COUNTRY -C UTF-8 >>/tmp/channels.conf +fi +if [[ "$W_SCAN_TYPE" == *DVB-S* ]]; then + for SATELLITE in $W_SCAN_SATELLITE; + do + echo ":->W-SCAN DVB-S $SATELLITE $(date +%Y%m%d%H%M)" >>/tmp/channels.conf + $WSCAN -f s -s $SATELLITE -C UTF-8 >>/tmp/channels.conf + done +fi + +# Save result to current dir. +cp /tmp/channels.conf w_scan-$(date +%Y%m%d%H%M).channels.conf +echo Results saved to w_scan-$(date +%Y%m%d%H%M).channels.conf + +# Do this only if vdr is installed ... +if [ -e /opt/pakfire/db/installed/meta-vdr ]; then + yes_no "Install new channels-conf for VDR." + # Backup old channels conf... + cp -f /opt/vdr/etc/channels.conf \ + /opt/vdr/etc/channels.conf.backup$(date +%Y%m%d%H%M) + cp -f /tmp/channels.conf /opt/vdr/etc/ + yes_no "Should i start the VDR?" + clear + /etc/init.d/vdr start +fi diff --git a/config/wpa_supplicant/config b/config/wpa_supplicant/config index 65f8b46f8d..f3e114bfd9 100644 --- a/config/wpa_supplicant/config +++ b/config/wpa_supplicant/config @@ -50,9 +50,9 @@ CONFIG_DRIVER_HOSTAP=y #CFLAGS += -I../../include/wireless # Driver interface for madwifi driver -CONFIG_DRIVER_MADWIFI=y +#CONFIG_DRIVER_MADWIFI=y # Set include directory to the madwifi source tree -CFLAGS += -I/usr/src/madwifi +#CFLAGS += -I/usr/src/madwifi # Driver interface for Prism54 driver # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is diff --git a/doc/language_issues.de b/doc/language_issues.de index 5a42ae50e9..e3c8842488 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -5,6 +5,7 @@ WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv @@ -68,6 +69,9 @@ WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes WARNING: translation string unused: capsinactive +WARNING: translation string unused: ccd err iroute +WARNING: translation string unused: ccd err netadr +WARNING: translation string unused: ccd maxclients WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update WARNING: translation string unused: choose config @@ -143,6 +147,7 @@ WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey WARNING: translation string unused: external access rule changed WARNING: translation string unused: extrahd unable to read @@ -254,6 +259,7 @@ WARNING: translation string unused: monthly volume WARNING: translation string unused: monthly volume start day WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal WARNING: translation string unused: net address WARNING: translation string unused: net config type @@ -290,6 +296,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -454,9 +461,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -473,3 +483,4 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.en b/doc/language_issues.en index 6d6a2a66df..6c1fc21c36 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -5,6 +5,7 @@ WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv @@ -87,6 +88,8 @@ WARNING: translation string unused: cache size WARNING: translation string unused: calamaris report interval (in minutes) WARNING: translation string unused: calc traffic all x minutes WARNING: translation string unused: capsinactive +WARNING: translation string unused: ccd err iroute +WARNING: translation string unused: ccd err netadr WARNING: translation string unused: cfg restart WARNING: translation string unused: check for net traffic update WARNING: translation string unused: choose config @@ -167,6 +170,7 @@ WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey WARNING: translation string unused: external access rule changed WARNING: translation string unused: extrahd unable to read @@ -281,6 +285,7 @@ WARNING: translation string unused: monthly volume WARNING: translation string unused: monthly volume start day WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal WARNING: translation string unused: net address WARNING: translation string unused: net config type @@ -318,6 +323,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -487,9 +493,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph diff --git a/doc/language_issues.es b/doc/language_issues.es index 6bcbf86217..78a0222668 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -5,6 +5,7 @@ WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv @@ -167,6 +168,7 @@ WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey WARNING: translation string unused: external access rule changed WARNING: translation string unused: extrahd unable to read @@ -281,6 +283,7 @@ WARNING: translation string unused: monthly volume WARNING: translation string unused: monthly volume start day WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal WARNING: translation string unused: net address WARNING: translation string unused: net config type @@ -317,6 +320,7 @@ WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -486,9 +490,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -499,8 +506,45 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy +WARNING: untranslated string: attention WARNING: untranslated string: bytes +WARNING: untranslated string: ccd add +WARNING: untranslated string: ccd choose net +WARNING: untranslated string: ccd client options +WARNING: untranslated string: ccd clientip +WARNING: untranslated string: ccd dynrange +WARNING: untranslated string: ccd err blue +WARNING: untranslated string: ccd err green +WARNING: untranslated string: ccd err hostinnet +WARNING: untranslated string: ccd err inuse +WARNING: untranslated string: ccd err invalidname +WARNING: untranslated string: ccd err invalidnet +WARNING: untranslated string: ccd err irouteexist +WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isovpnnet +WARNING: untranslated string: ccd err issubnet +WARNING: untranslated string: ccd err name +WARNING: untranslated string: ccd err nameexist +WARNING: untranslated string: ccd err netadrexist +WARNING: untranslated string: ccd err orange +WARNING: untranslated string: ccd err red +WARNING: untranslated string: ccd err routeovpn +WARNING: untranslated string: ccd err routeovpn2 +WARNING: untranslated string: ccd hint +WARNING: untranslated string: ccd invalid +WARNING: untranslated string: ccd iroute +WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: ccd iroutehint +WARNING: untranslated string: ccd modify +WARNING: untranslated string: ccd name +WARNING: untranslated string: ccd net +WARNING: untranslated string: ccd noaddnet +WARNING: untranslated string: ccd none +WARNING: untranslated string: ccd routes +WARNING: untranslated string: ccd subnet +WARNING: untranslated string: ccd used WARNING: untranslated string: deprecated fs warn WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled @@ -546,12 +590,31 @@ WARNING: untranslated string: outgoing firewall p2p description 2 WARNING: untranslated string: outgoing firewall p2p description 3 WARNING: untranslated string: outgoing firewall reserved groupname WARNING: untranslated string: outgoing firewall view group +WARNING: untranslated string: ovpn errmsg green already pushed +WARNING: untranslated string: ovpn errmsg invalid ip or mask +WARNING: untranslated string: ovpn mtu-disc +WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 +WARNING: untranslated string: ovpn mtu-disc maybe +WARNING: untranslated string: ovpn mtu-disc no +WARNING: untranslated string: ovpn mtu-disc off +WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment +WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: ovpn routes push +WARNING: untranslated string: ovpn routes push options WARNING: untranslated string: pakfire ago +WARNING: untranslated string: proxy reports +WARNING: untranslated string: proxy reports daily +WARNING: untranslated string: proxy reports monthly +WARNING: untranslated string: proxy reports today +WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: server restart WARNING: untranslated string: static routes WARNING: untranslated string: system information WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange +WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 189932fab1..4c185286cc 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -5,6 +5,7 @@ WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv @@ -167,6 +168,7 @@ WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey WARNING: translation string unused: external access rule changed WARNING: translation string unused: extrahd unable to read @@ -281,6 +283,7 @@ WARNING: translation string unused: monthly volume WARNING: translation string unused: monthly volume start day WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal WARNING: translation string unused: net address WARNING: translation string unused: net config type @@ -316,6 +319,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -487,9 +491,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -498,8 +505,45 @@ WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy +WARNING: untranslated string: attention WARNING: untranslated string: bytes +WARNING: untranslated string: ccd add +WARNING: untranslated string: ccd choose net +WARNING: untranslated string: ccd client options +WARNING: untranslated string: ccd clientip +WARNING: untranslated string: ccd dynrange +WARNING: untranslated string: ccd err blue +WARNING: untranslated string: ccd err green +WARNING: untranslated string: ccd err hostinnet +WARNING: untranslated string: ccd err inuse +WARNING: untranslated string: ccd err invalidname +WARNING: untranslated string: ccd err invalidnet +WARNING: untranslated string: ccd err irouteexist +WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isovpnnet +WARNING: untranslated string: ccd err issubnet +WARNING: untranslated string: ccd err name +WARNING: untranslated string: ccd err nameexist +WARNING: untranslated string: ccd err netadrexist +WARNING: untranslated string: ccd err orange +WARNING: untranslated string: ccd err red +WARNING: untranslated string: ccd err routeovpn +WARNING: untranslated string: ccd err routeovpn2 +WARNING: untranslated string: ccd hint +WARNING: untranslated string: ccd invalid +WARNING: untranslated string: ccd iroute +WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: ccd iroutehint +WARNING: untranslated string: ccd modify +WARNING: untranslated string: ccd name +WARNING: untranslated string: ccd net +WARNING: untranslated string: ccd noaddnet +WARNING: untranslated string: ccd none +WARNING: untranslated string: ccd routes +WARNING: untranslated string: ccd subnet +WARNING: untranslated string: ccd used WARNING: untranslated string: deprecated fs warn WARNING: untranslated string: dns address deleted txt WARNING: untranslated string: fireinfo ipfire version @@ -534,11 +578,25 @@ WARNING: untranslated string: openvpn subnet is used WARNING: untranslated string: other WARNING: untranslated string: our donors WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: ovpn mtu-disc +WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 +WARNING: untranslated string: ovpn mtu-disc maybe +WARNING: untranslated string: ovpn mtu-disc no +WARNING: untranslated string: ovpn mtu-disc off +WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment +WARNING: untranslated string: ovpn mtu-disc yes WARNING: untranslated string: pakfire ago +WARNING: untranslated string: proxy reports +WARNING: untranslated string: proxy reports daily +WARNING: untranslated string: proxy reports monthly +WARNING: untranslated string: proxy reports today +WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: server restart WARNING: untranslated string: snort working WARNING: untranslated string: static routes WARNING: untranslated string: system information @@ -549,6 +607,7 @@ WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange WARNING: untranslated string: wlanap access point WARNING: untranslated string: wlanap channel +WARNING: untranslated string: wlanap country WARNING: untranslated string: wlanap debugging WARNING: untranslated string: wlanap del interface WARNING: untranslated string: wlanap encryption diff --git a/doc/language_issues.nl b/doc/language_issues.nl new file mode 100644 index 0000000000..5a23c69c6a --- /dev/null +++ b/doc/language_issues.nl @@ -0,0 +1,518 @@ +WARNING: translation string unused: Client status and controlc +WARNING: translation string unused: ConnSched scheduler +WARNING: translation string unused: ConnSched select profile +WARNING: translation string unused: HDD temperature +WARNING: translation string unused: Level7 rule +WARNING: translation string unused: Local VPN IP +WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght +WARNING: translation string unused: Remote IP +WARNING: translation string unused: Remote VPN IP +WARNING: translation string unused: Resolv +WARNING: translation string unused: TOS Bits +WARNING: translation string unused: Verbose +WARNING: translation string unused: access refused with this oinkcode +WARNING: translation string unused: add network +WARNING: translation string unused: add new ovpn +WARNING: translation string unused: add service +WARNING: translation string unused: add-route +WARNING: translation string unused: admin user password has been changed +WARNING: translation string unused: administrator user password +WARNING: translation string unused: advproxy LDAP auth +WARNING: translation string unused: advproxy NTLM auth +WARNING: translation string unused: advproxy advanced proxy +WARNING: translation string unused: advproxy chgwebpwd ERROR +WARNING: translation string unused: advproxy chgwebpwd SUCCESS +WARNING: translation string unused: advproxy chgwebpwd change password +WARNING: translation string unused: advproxy chgwebpwd change web password +WARNING: translation string unused: advproxy chgwebpwd new password +WARNING: translation string unused: advproxy chgwebpwd new password confirm +WARNING: translation string unused: advproxy chgwebpwd old password +WARNING: translation string unused: advproxy chgwebpwd username +WARNING: translation string unused: advproxy cre disabled +WARNING: translation string unused: advproxy errmsg change fail +WARNING: translation string unused: advproxy errmsg change success +WARNING: translation string unused: advproxy errmsg invalid user +WARNING: translation string unused: advproxy errmsg no password +WARNING: translation string unused: advproxy errmsg password incorrect +WARNING: translation string unused: advproxy no cre groups +WARNING: translation string unused: advproxy ssadvanced proxy +WARNING: translation string unused: advproxy update information +WARNING: translation string unused: advproxy update notification +WARNING: translation string unused: alcatelusb help +WARNING: translation string unused: alcatelusb upload +WARNING: translation string unused: all interfaces +WARNING: translation string unused: all updates installed +WARNING: translation string unused: allmsg +WARNING: translation string unused: alt information +WARNING: translation string unused: alt ovpn +WARNING: translation string unused: and +WARNING: translation string unused: ansi t1.483 +WARNING: translation string unused: apply +WARNING: translation string unused: archive not exist +WARNING: translation string unused: available updates +WARNING: translation string unused: backup archive +WARNING: translation string unused: backup clear archive +WARNING: translation string unused: backup config floppy +WARNING: translation string unused: backup configuration +WARNING: translation string unused: backup erase key +WARNING: translation string unused: backup explain key +WARNING: translation string unused: backup explain key li1 +WARNING: translation string unused: backup explain key li2 +WARNING: translation string unused: backup explain key li3 +WARNING: translation string unused: backup explain key no1 +WARNING: translation string unused: backup explain key no2 +WARNING: translation string unused: backup export key +WARNING: translation string unused: backup extract key +WARNING: translation string unused: backup generate key +WARNING: translation string unused: backup import dat file +WARNING: translation string unused: backup import key +WARNING: translation string unused: backup key +WARNING: translation string unused: backup key file +WARNING: translation string unused: backup key info +WARNING: translation string unused: backup media info +WARNING: translation string unused: backup missing key +WARNING: translation string unused: backup password +WARNING: translation string unused: backup protect key password +WARNING: translation string unused: backup sets +WARNING: translation string unused: backup to floppy +WARNING: translation string unused: bad characters in +WARNING: translation string unused: bewan adsl pci st +WARNING: translation string unused: bewan adsl usb +WARNING: translation string unused: bitrate +WARNING: translation string unused: bleeding rules +WARNING: translation string unused: blue access use hint +WARNING: translation string unused: blue interface +WARNING: translation string unused: cache management +WARNING: translation string unused: cache size +WARNING: translation string unused: calamaris report interval (in minutes) +WARNING: translation string unused: calc traffic all x minutes +WARNING: translation string unused: capsinactive +WARNING: translation string unused: ccd err iroute +WARNING: translation string unused: ccd err netadr +WARNING: translation string unused: cfg restart +WARNING: translation string unused: check for net traffic update +WARNING: translation string unused: choose config +WARNING: translation string unused: choose media +WARNING: translation string unused: clear cache +WARNING: translation string unused: compression +WARNING: translation string unused: connect +WARNING: translation string unused: connect the modem +WARNING: translation string unused: core notice 1 +WARNING: translation string unused: core notice 2 +WARNING: translation string unused: core notice 3 +WARNING: translation string unused: could not connect to +WARNING: translation string unused: could not connect to www ipcop org +WARNING: translation string unused: could not connect to www ipfire org +WARNING: translation string unused: could not create directory +WARNING: translation string unused: could not download latest patch list +WARNING: translation string unused: could not download the available updates list +WARNING: translation string unused: could not open available updates file +WARNING: translation string unused: could not open installed updates file +WARNING: translation string unused: could not open update information file +WARNING: translation string unused: create +WARNING: translation string unused: create new backup +WARNING: translation string unused: current dynamic leases +WARNING: translation string unused: current media +WARNING: translation string unused: current ovpn +WARNING: translation string unused: current profile +WARNING: translation string unused: custom networks +WARNING: translation string unused: custom services +WARNING: translation string unused: daily firewallhits +WARNING: translation string unused: dat without key +WARNING: translation string unused: day-graph +WARNING: translation string unused: dbfile +WARNING: translation string unused: ddns help dnsmadeeasy +WARNING: translation string unused: ddns help freedns +WARNING: translation string unused: ddns help plus +WARNING: translation string unused: debugme +WARNING: translation string unused: deep scan directories +WARNING: translation string unused: default networks +WARNING: translation string unused: default services +WARNING: translation string unused: dhcp base ip fixed lease +WARNING: translation string unused: dhcp create fixed leases +WARNING: translation string unused: dhcp fixed lease err1 +WARNING: translation string unused: dhcp fixed lease help1 +WARNING: translation string unused: dhcp mode +WARNING: translation string unused: dhcp server disabled on blue interface +WARNING: translation string unused: dhcp server enabled on blue interface +WARNING: translation string unused: dial user password +WARNING: translation string unused: dial user password has been changed +WARNING: translation string unused: dialup settings +WARNING: translation string unused: disconnect +WARNING: translation string unused: display traffic at home +WARNING: translation string unused: dns server +WARNING: translation string unused: do not log this port list +WARNING: translation string unused: donation-link +WARNING: translation string unused: done +WARNING: translation string unused: driver +WARNING: translation string unused: dynamic dns client +WARNING: translation string unused: eciadsl help +WARNING: translation string unused: eciadsl upload +WARNING: translation string unused: edit network +WARNING: translation string unused: edit service +WARNING: translation string unused: editor +WARNING: translation string unused: email server can not be empty +WARNING: translation string unused: enable javascript +WARNING: translation string unused: enabled on +WARNING: translation string unused: enabledtitle +WARNING: translation string unused: encrypted +WARNING: translation string unused: err bk 1 +WARNING: translation string unused: err bk 10 password +WARNING: translation string unused: err bk 2 key +WARNING: translation string unused: err bk 3 tar +WARNING: translation string unused: err bk 4 gz +WARNING: translation string unused: err bk 5 encrypt +WARNING: translation string unused: err rs 1 +WARNING: translation string unused: err rs 6 decrypt +WARNING: translation string unused: err rs 7 untartst +WARNING: translation string unused: err rs 8 untar +WARNING: translation string unused: error config +WARNING: translation string unused: error external access +WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions +WARNING: translation string unused: exportkey +WARNING: translation string unused: external access rule changed +WARNING: translation string unused: extrahd unable to read +WARNING: translation string unused: extrahd unable to write +WARNING: translation string unused: filename +WARNING: translation string unused: firewall graphs +WARNING: translation string unused: firewall log viewer +WARNING: translation string unused: firmware +WARNING: translation string unused: firmware upload +WARNING: translation string unused: force update +WARNING: translation string unused: frequency +WARNING: translation string unused: fritzdsl help +WARNING: translation string unused: fritzdsl upload +WARNING: translation string unused: from email adr +WARNING: translation string unused: from email pw +WARNING: translation string unused: from email server +WARNING: translation string unused: from email user +WARNING: translation string unused: from warn email bad +WARNING: translation string unused: g.dtm +WARNING: translation string unused: g.lite +WARNING: translation string unused: gen static key +WARNING: translation string unused: generate +WARNING: translation string unused: genkey +WARNING: translation string unused: green interface +WARNING: translation string unused: gz with key +WARNING: translation string unused: hint +WARNING: translation string unused: host +WARNING: translation string unused: host configuration +WARNING: translation string unused: hostname and domain already in use +WARNING: translation string unused: hour-graph +WARNING: translation string unused: hours2 +WARNING: translation string unused: ibod for dual isdn only +WARNING: translation string unused: icmp selected but no type +WARNING: translation string unused: icmp type +WARNING: translation string unused: id +WARNING: translation string unused: ids preprocessor +WARNING: translation string unused: import +WARNING: translation string unused: importkey +WARNING: translation string unused: in +WARNING: translation string unused: incorrect password +WARNING: translation string unused: insert floppy +WARNING: translation string unused: insert removable device +WARNING: translation string unused: install new update +WARNING: translation string unused: installed +WARNING: translation string unused: installed updates +WARNING: translation string unused: intrusion detection system log viewer +WARNING: translation string unused: invalid cache size +WARNING: translation string unused: invalid date entered +WARNING: translation string unused: invalid downlink speed +WARNING: translation string unused: invalid loaded file +WARNING: translation string unused: invalid md5sum +WARNING: translation string unused: invalid port list +WARNING: translation string unused: invalid time entered +WARNING: translation string unused: invalid uplink speed +WARNING: translation string unused: invalid upstream proxy username or password setting +WARNING: translation string unused: invert +WARNING: translation string unused: ip address in use +WARNING: translation string unused: ipfire side +WARNING: translation string unused: iptable rules +WARNING: translation string unused: isdn +WARNING: translation string unused: isdn settings +WARNING: translation string unused: isdn1 +WARNING: translation string unused: isdn2 +WARNING: translation string unused: javascript menu error1 +WARNING: translation string unused: javascript menu error2 +WARNING: translation string unused: kernel version +WARNING: translation string unused: key stuff +WARNING: translation string unused: lateprompting +WARNING: translation string unused: length +WARNING: translation string unused: line +WARNING: translation string unused: loaded modules +WARNING: translation string unused: local hard disk +WARNING: translation string unused: localkeyfile +WARNING: translation string unused: log enabled +WARNING: translation string unused: log viewer +WARNING: translation string unused: loosedirectorychecking +WARNING: translation string unused: ls_dhcpd +WARNING: translation string unused: ls_disk space +WARNING: translation string unused: ls_free/swan +WARNING: translation string unused: ls_httpd +WARNING: translation string unused: ls_init +WARNING: translation string unused: ls_kernel +WARNING: translation string unused: ls_modprobe +WARNING: translation string unused: ls_pam_unix +WARNING: translation string unused: ls_sshd +WARNING: translation string unused: ls_syslogd +WARNING: translation string unused: mac address error not 00 +WARNING: translation string unused: manage ovpn +WARNING: translation string unused: manual control and status +WARNING: translation string unused: marked +WARNING: translation string unused: max incoming size +WARNING: translation string unused: max outgoing size +WARNING: translation string unused: max size +WARNING: translation string unused: mbmon fan in +WARNING: translation string unused: mbmon graphs +WARNING: translation string unused: mbmon temp in +WARNING: translation string unused: mbmon value +WARNING: translation string unused: min size +WARNING: translation string unused: missing dat +WARNING: translation string unused: missing gz +WARNING: translation string unused: modem on com1 +WARNING: translation string unused: modem on com2 +WARNING: translation string unused: modem on com3 +WARNING: translation string unused: modem on com4 +WARNING: translation string unused: modem on com5 +WARNING: translation string unused: modulation +WARNING: translation string unused: month-graph +WARNING: translation string unused: monthly firewallhits +WARNING: translation string unused: monthly start day bad +WARNING: translation string unused: monthly traffic bad +WARNING: translation string unused: monthly volume +WARNING: translation string unused: monthly volume start day +WARNING: translation string unused: monthly volume start day short +WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS +WARNING: translation string unused: nat-traversal +WARNING: translation string unused: net address +WARNING: translation string unused: net config type +WARNING: translation string unused: net config type help +WARNING: translation string unused: net-traffic configuration +WARNING: translation string unused: network added +WARNING: translation string unused: network configuration +WARNING: translation string unused: network removed +WARNING: translation string unused: network status information +WARNING: translation string unused: network traffic graphs +WARNING: translation string unused: network updated +WARNING: translation string unused: networks settings +WARNING: translation string unused: new optionsfw must boot +WARNING: translation string unused: no alcatelusb firmware +WARNING: translation string unused: no cfg upload +WARNING: translation string unused: no eciadsl synch.bin file +WARNING: translation string unused: no fritzdsl driver +WARNING: translation string unused: no information available +WARNING: translation string unused: no modem selected +WARNING: translation string unused: no set selected +WARNING: translation string unused: nonetworkname +WARNING: translation string unused: noservicename +WARNING: translation string unused: notes +WARNING: translation string unused: o-no +WARNING: translation string unused: o-yes +WARNING: translation string unused: online help en +WARNING: translation string unused: only red +WARNING: translation string unused: openvpn disabled +WARNING: translation string unused: openvpn enabled +WARNING: translation string unused: optional data +WARNING: translation string unused: optionsfw portlist hint +WARNING: translation string unused: optionsfw warning +WARNING: translation string unused: or +WARNING: translation string unused: original +WARNING: translation string unused: other countries +WARNING: translation string unused: out +WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu +WARNING: translation string unused: ovpn +WARNING: translation string unused: ovpn config +WARNING: translation string unused: ovpn dl +WARNING: translation string unused: ovpn log +WARNING: translation string unused: ovpn_fastio +WARNING: translation string unused: ovpn_fragment +WARNING: translation string unused: ovpn_mssfix +WARNING: translation string unused: ovpn_mtudisc +WARNING: translation string unused: ovpn_processprio +WARNING: translation string unused: ovpn_processprioD +WARNING: translation string unused: ovpn_processprioED +WARNING: translation string unused: ovpn_processprioEH +WARNING: translation string unused: ovpn_processprioEN +WARNING: translation string unused: ovpn_processprioH +WARNING: translation string unused: ovpn_processprioLN +WARNING: translation string unused: ovpn_processprioN +WARNING: translation string unused: ovpn_processprioVD +WARNING: translation string unused: ovpn_processprioVH +WARNING: translation string unused: ovpnstatus log +WARNING: translation string unused: ovpnsys log +WARNING: translation string unused: package failed to install +WARNING: translation string unused: pakfire core update auto +WARNING: translation string unused: pakfire updates +WARNING: translation string unused: password contains illegal characters +WARNING: translation string unused: password crypting key +WARNING: translation string unused: passwords must be at least 6 characters in length +WARNING: translation string unused: phonebook entry +WARNING: translation string unused: ping disabled +WARNING: translation string unused: polfile +WARNING: translation string unused: ports +WARNING: translation string unused: pots +WARNING: translation string unused: pppoe +WARNING: translation string unused: present +WARNING: translation string unused: profiles +WARNING: translation string unused: proxy access graphs +WARNING: translation string unused: proxy no proxy extend +WARNING: translation string unused: proxy no proxy local +WARNING: translation string unused: proxy port +WARNING: translation string unused: psk +WARNING: translation string unused: quick control +WARNING: translation string unused: reboot schedule +WARNING: translation string unused: rebooting +WARNING: translation string unused: refresh update list +WARNING: translation string unused: released +WARNING: translation string unused: removable device advice +WARNING: translation string unused: reportfile +WARNING: translation string unused: requested data +WARNING: translation string unused: restore hardware settings +WARNING: translation string unused: root +WARNING: translation string unused: root path +WARNING: translation string unused: root user password +WARNING: translation string unused: route subnet is invalid +WARNING: translation string unused: router ip +WARNING: translation string unused: rules already up to date +WARNING: translation string unused: safe removal of umounted device +WARNING: translation string unused: save error +WARNING: translation string unused: select media +WARNING: translation string unused: selecttraffic +WARNING: translation string unused: send email notification +WARNING: translation string unused: send test mail +WARNING: translation string unused: server reserved +WARNING: translation string unused: service added +WARNING: translation string unused: service removed +WARNING: translation string unused: service updated +WARNING: translation string unused: servicename +WARNING: translation string unused: services settings +WARNING: translation string unused: shaping add options +WARNING: translation string unused: shaping list options +WARNING: translation string unused: show areas +WARNING: translation string unused: show lines +WARNING: translation string unused: shutdown control +WARNING: translation string unused: shutdown2 +WARNING: translation string unused: shutting down +WARNING: translation string unused: sitekeyfile +WARNING: translation string unused: smbreload +WARNING: translation string unused: sort ascending +WARNING: translation string unused: sort descending +WARNING: translation string unused: squid extension methods +WARNING: translation string unused: squid extension methods invalid +WARNING: translation string unused: squid fix cache +WARNING: translation string unused: ssh access tip +WARNING: translation string unused: ssh1 disabled +WARNING: translation string unused: ssh1 enabled +WARNING: translation string unused: ssh1 support +WARNING: translation string unused: ssnetwork status +WARNING: translation string unused: sspasswords +WARNING: translation string unused: ssproxy graphs +WARNING: translation string unused: sssystem status +WARNING: translation string unused: sstraffic graphs +WARNING: translation string unused: subject test +WARNING: translation string unused: subject warn +WARNING: translation string unused: subnet +WARNING: translation string unused: subnet is invalid +WARNING: translation string unused: successfully refreshed updates list +WARNING: translation string unused: system graphs +WARNING: translation string unused: system log viewer +WARNING: translation string unused: system status information +WARNING: translation string unused: test +WARNING: translation string unused: test email could not be sent +WARNING: translation string unused: test email was sent +WARNING: translation string unused: the following update was successfully installed +WARNING: translation string unused: there are updates +WARNING: translation string unused: there are updates available +WARNING: translation string unused: this feature has been sponsored by +WARNING: translation string unused: this is not a valid archive +WARNING: translation string unused: this is not an authorised update +WARNING: translation string unused: this months volume +WARNING: translation string unused: this update is already installed +WARNING: translation string unused: this weeks volume +WARNING: translation string unused: time date manually reset +WARNING: translation string unused: to email adr +WARNING: translation string unused: to install an update +WARNING: translation string unused: to warn email bad +WARNING: translation string unused: too long 80 char max +WARNING: translation string unused: traffic back +WARNING: translation string unused: traffic calc time +WARNING: translation string unused: traffic calc time bad +WARNING: translation string unused: traffic info messages +WARNING: translation string unused: traffic monitor +WARNING: translation string unused: traffic shaping +WARNING: translation string unused: traffic shaping settings +WARNING: translation string unused: traffic warn level bad +WARNING: translation string unused: trafficblue +WARNING: translation string unused: trafficdate +WARNING: translation string unused: trafficfrom +WARNING: translation string unused: trafficgreen +WARNING: translation string unused: trafficin +WARNING: translation string unused: trafficorange +WARNING: translation string unused: trafficout +WARNING: translation string unused: trafficred +WARNING: translation string unused: trafficsum +WARNING: translation string unused: trafficto +WARNING: translation string unused: transfer limits +WARNING: translation string unused: transparent on +WARNING: translation string unused: umount +WARNING: translation string unused: umount removable media before to unplug +WARNING: translation string unused: unencrypted +WARNING: translation string unused: unknown +WARNING: translation string unused: update transcript +WARNING: translation string unused: updates +WARNING: translation string unused: updates is old1 +WARNING: translation string unused: updates is old2 +WARNING: translation string unused: updxlrtr children +WARNING: translation string unused: updxlrtr invalid num of children +WARNING: translation string unused: updxlrtr unknown +WARNING: translation string unused: updxlrtr update information +WARNING: translation string unused: updxlrtr update notification +WARNING: translation string unused: upload fcdsl.o +WARNING: translation string unused: upload file +WARNING: translation string unused: upload static key +WARNING: translation string unused: upload successful +WARNING: translation string unused: upload synch.bin +WARNING: translation string unused: upload update file +WARNING: translation string unused: upstream password +WARNING: translation string unused: upstream proxy host:port +WARNING: translation string unused: upstream username +WARNING: translation string unused: uptime and users +WARNING: translation string unused: urlfilter background image +WARNING: translation string unused: urlfilter background text +WARNING: translation string unused: urlfilter enable jpeg +WARNING: translation string unused: urlfilter update information +WARNING: translation string unused: urlfilter update notification +WARNING: translation string unused: urlfilter update results +WARNING: translation string unused: urlfilter upload background +WARNING: translation string unused: use +WARNING: translation string unused: use dov +WARNING: translation string unused: use ibod +WARNING: translation string unused: view log +WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid +WARNING: translation string unused: vpn on blue +WARNING: translation string unused: vpn on green +WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch +WARNING: translation string unused: warn when traffic reaches +WARNING: translation string unused: web proxy configuration +WARNING: translation string unused: week-graph +WARNING: translation string unused: weekly firewallhits +WARNING: translation string unused: xtaccess bad transfert +WARNING: translation string unused: year-graph +WARNING: translation string unused: yearly firewallhits +WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: bytes +WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: new +WARNING: untranslated string: outgoing firewall reserved groupname +WARNING: untranslated string: qos enter bandwidths +WARNING: untranslated string: route config changed +WARNING: untranslated string: routing config added +WARNING: untranslated string: routing config changed +WARNING: untranslated string: routing table diff --git a/doc/language_issues.pl b/doc/language_issues.pl index 6bcbf86217..78a0222668 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -5,6 +5,7 @@ WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv @@ -167,6 +168,7 @@ WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey WARNING: translation string unused: external access rule changed WARNING: translation string unused: extrahd unable to read @@ -281,6 +283,7 @@ WARNING: translation string unused: monthly volume WARNING: translation string unused: monthly volume start day WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal WARNING: translation string unused: net address WARNING: translation string unused: net config type @@ -317,6 +320,7 @@ WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname WARNING: translation string unused: outgoing firewall p2p description +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -486,9 +490,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: week-graph @@ -499,8 +506,45 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Async logging enabled WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy +WARNING: untranslated string: attention WARNING: untranslated string: bytes +WARNING: untranslated string: ccd add +WARNING: untranslated string: ccd choose net +WARNING: untranslated string: ccd client options +WARNING: untranslated string: ccd clientip +WARNING: untranslated string: ccd dynrange +WARNING: untranslated string: ccd err blue +WARNING: untranslated string: ccd err green +WARNING: untranslated string: ccd err hostinnet +WARNING: untranslated string: ccd err inuse +WARNING: untranslated string: ccd err invalidname +WARNING: untranslated string: ccd err invalidnet +WARNING: untranslated string: ccd err irouteexist +WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isovpnnet +WARNING: untranslated string: ccd err issubnet +WARNING: untranslated string: ccd err name +WARNING: untranslated string: ccd err nameexist +WARNING: untranslated string: ccd err netadrexist +WARNING: untranslated string: ccd err orange +WARNING: untranslated string: ccd err red +WARNING: untranslated string: ccd err routeovpn +WARNING: untranslated string: ccd err routeovpn2 +WARNING: untranslated string: ccd hint +WARNING: untranslated string: ccd invalid +WARNING: untranslated string: ccd iroute +WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: ccd iroutehint +WARNING: untranslated string: ccd modify +WARNING: untranslated string: ccd name +WARNING: untranslated string: ccd net +WARNING: untranslated string: ccd noaddnet +WARNING: untranslated string: ccd none +WARNING: untranslated string: ccd routes +WARNING: untranslated string: ccd subnet +WARNING: untranslated string: ccd used WARNING: untranslated string: deprecated fs warn WARNING: untranslated string: fireinfo ipfire version WARNING: untranslated string: fireinfo is disabled @@ -546,12 +590,31 @@ WARNING: untranslated string: outgoing firewall p2p description 2 WARNING: untranslated string: outgoing firewall p2p description 3 WARNING: untranslated string: outgoing firewall reserved groupname WARNING: untranslated string: outgoing firewall view group +WARNING: untranslated string: ovpn errmsg green already pushed +WARNING: untranslated string: ovpn errmsg invalid ip or mask +WARNING: untranslated string: ovpn mtu-disc +WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 +WARNING: untranslated string: ovpn mtu-disc maybe +WARNING: untranslated string: ovpn mtu-disc no +WARNING: untranslated string: ovpn mtu-disc off +WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment +WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: ovpn routes push +WARNING: untranslated string: ovpn routes push options WARNING: untranslated string: pakfire ago +WARNING: untranslated string: proxy reports +WARNING: untranslated string: proxy reports daily +WARNING: untranslated string: proxy reports monthly +WARNING: untranslated string: proxy reports today +WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: server restart WARNING: untranslated string: static routes WARNING: untranslated string: system information WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange +WARNING: untranslated string: wlanap country diff --git a/doc/language_issues.ru b/doc/language_issues.ru index e25d81de4a..0196084cb4 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -5,6 +5,7 @@ WARNING: translation string unused: HDD temperature WARNING: translation string unused: Level7 rule WARNING: translation string unused: Local VPN IP WARNING: translation string unused: Ping +WARNING: translation string unused: Queuelenght WARNING: translation string unused: Remote IP WARNING: translation string unused: Remote VPN IP WARNING: translation string unused: Resolv @@ -166,6 +167,7 @@ WARNING: translation string unused: err rs 8 untar WARNING: translation string unused: error config WARNING: translation string unused: error external access WARNING: translation string unused: expected +WARNING: translation string unused: expertoptions WARNING: translation string unused: exportkey WARNING: translation string unused: external access rule changed WARNING: translation string unused: filename @@ -275,6 +277,7 @@ WARNING: translation string unused: monthly volume WARNING: translation string unused: monthly volume start day WARNING: translation string unused: monthly volume start day short WARNING: translation string unused: mount +WARNING: translation string unused: mtu QoS WARNING: translation string unused: nat-traversal WARNING: translation string unused: net address WARNING: translation string unused: net config type @@ -310,6 +313,7 @@ WARNING: translation string unused: original WARNING: translation string unused: other countries WARNING: translation string unused: out WARNING: translation string unused: outgoing firewall outgoing firewall reserved groupname +WARNING: translation string unused: override mtu WARNING: translation string unused: ovpn WARNING: translation string unused: ovpn config WARNING: translation string unused: ovpn dl @@ -479,9 +483,12 @@ WARNING: translation string unused: use dov WARNING: translation string unused: use ibod WARNING: translation string unused: view log WARNING: translation string unused: vpn aggrmode +WARNING: translation string unused: vpn incompatible use of defaultroute +WARNING: translation string unused: vpn mtu invalid WARNING: translation string unused: vpn on blue WARNING: translation string unused: vpn on green WARNING: translation string unused: vpn on orange +WARNING: translation string unused: vpn watch WARNING: translation string unused: warn when traffic reaches WARNING: translation string unused: web proxy configuration WARNING: translation string unused: weekly firewallhits @@ -490,8 +497,45 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Add a route WARNING: untranslated string: Edit an existing route WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy +WARNING: untranslated string: attention WARNING: untranslated string: bytes +WARNING: untranslated string: ccd add +WARNING: untranslated string: ccd choose net +WARNING: untranslated string: ccd client options +WARNING: untranslated string: ccd clientip +WARNING: untranslated string: ccd dynrange +WARNING: untranslated string: ccd err blue +WARNING: untranslated string: ccd err green +WARNING: untranslated string: ccd err hostinnet +WARNING: untranslated string: ccd err inuse +WARNING: untranslated string: ccd err invalidname +WARNING: untranslated string: ccd err invalidnet +WARNING: untranslated string: ccd err irouteexist +WARNING: untranslated string: ccd err isipsecnet +WARNING: untranslated string: ccd err isovpnnet +WARNING: untranslated string: ccd err issubnet +WARNING: untranslated string: ccd err name +WARNING: untranslated string: ccd err nameexist +WARNING: untranslated string: ccd err netadrexist +WARNING: untranslated string: ccd err orange +WARNING: untranslated string: ccd err red +WARNING: untranslated string: ccd err routeovpn +WARNING: untranslated string: ccd err routeovpn2 +WARNING: untranslated string: ccd hint +WARNING: untranslated string: ccd invalid +WARNING: untranslated string: ccd iroute +WARNING: untranslated string: ccd iroute2 +WARNING: untranslated string: ccd iroutehint +WARNING: untranslated string: ccd modify +WARNING: untranslated string: ccd name +WARNING: untranslated string: ccd net +WARNING: untranslated string: ccd noaddnet +WARNING: untranslated string: ccd none +WARNING: untranslated string: ccd routes +WARNING: untranslated string: ccd subnet +WARNING: untranslated string: ccd used WARNING: untranslated string: deprecated fs warn WARNING: untranslated string: disk access per WARNING: untranslated string: extrahd because there is already a device mounted @@ -516,10 +560,25 @@ WARNING: untranslated string: other WARNING: untranslated string: our donors WARNING: untranslated string: outgoing firewall reserved groupname WARNING: untranslated string: outgoing traffic in bytes per second +WARNING: untranslated string: ovpn mtu-disc +WARNING: untranslated string: ovpn mtu-disc and mtu not 1500 +WARNING: untranslated string: ovpn mtu-disc maybe +WARNING: untranslated string: ovpn mtu-disc no +WARNING: untranslated string: ovpn mtu-disc off +WARNING: untranslated string: ovpn mtu-disc with mssfix or fragment +WARNING: untranslated string: ovpn mtu-disc yes +WARNING: untranslated string: proxy reports +WARNING: untranslated string: proxy reports daily +WARNING: untranslated string: proxy reports monthly +WARNING: untranslated string: proxy reports today +WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: server restart WARNING: untranslated string: static routes WARNING: untranslated string: visit us at WARNING: untranslated string: vpn keyexchange +WARNING: untranslated string: wlanap country diff --git a/doc/language_missings b/doc/language_missings index 55e0e407b5..a4eebcd70a 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -4,13 +4,54 @@ ############################################################################ # Checking cgi-bin translations for language: en # ############################################################################ +< ccd maxclients ############################################################################ # Checking install/setup translations for language: fr # ############################################################################ ############################################################################ # Checking cgi-bin translations for language: fr # ############################################################################ +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy +< attention +< ccd add +< ccd choose net +< ccd clientip +< ccd client options +< ccd dynrange +< ccd err blue +< ccd err green +< ccd err hostinnet +< ccd err inuse +< ccd err invalidname +< ccd err invalidnet +< ccd err iroute +< ccd err irouteexist +< ccd err isipsecnet +< ccd err isovpnnet +< ccd err issubnet +< ccd err name +< ccd err nameexist +< ccd err netadr +< ccd err netadrexist +< ccd err orange +< ccd err red +< ccd err routeovpn +< ccd err routeovpn2 +< ccd hint +< ccd invalid +< ccd iroute +< ccd iroute2 +< ccd iroutehint +< ccd maxclients +< ccd modify +< ccd name +< ccd net +< ccd noaddnet +< ccd none +< ccd routes +< ccd subnet +< ccd used < deprecated fs warn < dns address deleted txt < fireinfo ipfire version @@ -45,6 +86,20 @@ < openvpn subnet is used < other < our donors +< ovpn mtu-disc +< ovpn mtu-disc and mtu not 1500 +< ovpn mtu-disc maybe +< ovpn mtu-disc no +< ovpn mtu-disc off +< ovpn mtu-disc with mssfix or fragment +< ovpn mtu-disc yes +< proxy reports +< proxy reports daily +< proxy reports monthly +< proxy reports today +< proxy reports weekly +< qos enter bandwidths +< server restart < snort working < static routes < system information @@ -79,8 +134,48 @@ ############################################################################ # Checking cgi-bin translations for language: es # ############################################################################ +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy < Async logging enabled +< attention +< ccd add +< ccd choose net +< ccd clientip +< ccd client options +< ccd dynrange +< ccd err blue +< ccd err green +< ccd err hostinnet +< ccd err inuse +< ccd err invalidname +< ccd err invalidnet +< ccd err iroute +< ccd err irouteexist +< ccd err isipsecnet +< ccd err isovpnnet +< ccd err issubnet +< ccd err name +< ccd err nameexist +< ccd err netadr +< ccd err netadrexist +< ccd err orange +< ccd err red +< ccd err routeovpn +< ccd err routeovpn2 +< ccd hint +< ccd invalid +< ccd iroute +< ccd iroute2 +< ccd iroutehint +< ccd maxclients +< ccd modify +< ccd name +< ccd net +< ccd noaddnet +< ccd none +< ccd routes +< ccd subnet +< ccd used < deprecated fs warn < fireinfo ipfire version < fireinfo is disabled @@ -126,6 +221,24 @@ < outgoing firewall p2p description 2 < outgoing firewall p2p description 3 < outgoing firewall view group +< ovpn errmsg green already pushed +< ovpn errmsg invalid ip or mask +< ovpn mtu-disc +< ovpn mtu-disc and mtu not 1500 +< ovpn mtu-disc maybe +< ovpn mtu-disc no +< ovpn mtu-disc off +< ovpn mtu-disc with mssfix or fragment +< ovpn mtu-disc yes +< ovpn routes push +< ovpn routes push options +< proxy reports +< proxy reports daily +< proxy reports monthly +< proxy reports today +< proxy reports weekly +< qos enter bandwidths +< server restart < Set time on boot < static routes < system information @@ -137,7 +250,47 @@ ############################################################################ # Checking cgi-bin translations for language: pl # ############################################################################ +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy +< attention +< ccd add +< ccd choose net +< ccd clientip +< ccd client options +< ccd dynrange +< ccd err blue +< ccd err green +< ccd err hostinnet +< ccd err inuse +< ccd err invalidname +< ccd err invalidnet +< ccd err iroute +< ccd err irouteexist +< ccd err isipsecnet +< ccd err isovpnnet +< ccd err issubnet +< ccd err name +< ccd err nameexist +< ccd err netadr +< ccd err netadrexist +< ccd err orange +< ccd err red +< ccd err routeovpn +< ccd err routeovpn2 +< ccd hint +< ccd invalid +< ccd iroute +< ccd iroute2 +< ccd iroutehint +< ccd maxclients +< ccd modify +< ccd name +< ccd net +< ccd noaddnet +< ccd none +< ccd routes +< ccd subnet +< ccd used < deprecated fs warn < extrahd because there is already a device mounted < extrahd cant umount @@ -161,6 +314,24 @@ < openvpn subnet is used < other < our donors +< ovpn errmsg green already pushed +< ovpn errmsg invalid ip or mask +< ovpn mtu-disc +< ovpn mtu-disc and mtu not 1500 +< ovpn mtu-disc maybe +< ovpn mtu-disc no +< ovpn mtu-disc off +< ovpn mtu-disc with mssfix or fragment +< ovpn mtu-disc yes +< ovpn routes push +< ovpn routes push options +< proxy reports +< proxy reports daily +< proxy reports monthly +< proxy reports today +< proxy reports weekly +< qos enter bandwidths +< server restart < static routes < visit us at < vpn keyexchange @@ -171,7 +342,47 @@ # Checking cgi-bin translations for language: ru # ############################################################################ < Add a route +< advproxy errmsg cache < advproxy errmsg invalid upstream proxy +< attention +< ccd add +< ccd choose net +< ccd clientip +< ccd client options +< ccd dynrange +< ccd err blue +< ccd err green +< ccd err hostinnet +< ccd err inuse +< ccd err invalidname +< ccd err invalidnet +< ccd err iroute +< ccd err irouteexist +< ccd err isipsecnet +< ccd err isovpnnet +< ccd err issubnet +< ccd err name +< ccd err nameexist +< ccd err netadr +< ccd err netadrexist +< ccd err orange +< ccd err red +< ccd err routeovpn +< ccd err routeovpn2 +< ccd hint +< ccd invalid +< ccd iroute +< ccd iroute2 +< ccd iroutehint +< ccd maxclients +< ccd modify +< ccd name +< ccd net +< ccd noaddnet +< ccd none +< ccd routes +< ccd subnet +< ccd used < day-graph < deprecated fs warn < disk access per @@ -203,6 +414,20 @@ < other < our donors < outgoing traffic in bytes per second +< ovpn mtu-disc +< ovpn mtu-disc and mtu not 1500 +< ovpn mtu-disc maybe +< ovpn mtu-disc no +< ovpn mtu-disc off +< ovpn mtu-disc with mssfix or fragment +< ovpn mtu-disc yes +< proxy reports +< proxy reports daily +< proxy reports monthly +< proxy reports today +< proxy reports weekly +< qos enter bandwidths +< server restart < static routes < visit us at < vpn keyexchange diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi index 8c93814964..830775ddf5 100644 --- a/html/cgi-bin/backup.cgi +++ b/html/cgi-bin/backup.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team # +# Copyright (C) 2005-2013 IPFire Team # # # # 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 # @@ -176,7 +176,13 @@ print < $Lang::tr{'include logfiles'}
$Lang::tr{'exclude logfiles'}
- $Lang::tr{'generate iso'} +END +; +my $MACHINE=`uname -m`; +if ( ! ( $MACHINE =~ "arm" )) { + print" $Lang::tr{'generate iso'}
" +} +print < diff --git a/html/cgi-bin/ids.cgi b/html/cgi-bin/ids.cgi index efbc3dedcd..5c0bcffe3f 100644 --- a/html/cgi-bin/ids.cgi +++ b/html/cgi-bin/ids.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2011 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -263,9 +263,9 @@ if (-e "/etc/snort/snort.conf") { ####################### End added for snort rules control ################################# if ($snortsettings{'RULES'} eq 'subscripted') { - $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2931_s.tar.gz/$snortsettings{'OINKCODE'}"; + $url=" http://www.snort.org/sub-rules/snortrules-snapshot-2940.tar.gz/$snortsettings{'OINKCODE'}"; } elsif ($snortsettings{'RULES'} eq 'registered') { - $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2931.tar.gz/$snortsettings{'OINKCODE'}"; + $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2940.tar.gz/$snortsettings{'OINKCODE'}"; } else { $url="http://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz"; } diff --git a/html/cgi-bin/logs.cgi/calamaris.dat b/html/cgi-bin/logs.cgi/calamaris.dat index 19a3693999..07fdf8a880 100644 --- a/html/cgi-bin/logs.cgi/calamaris.dat +++ b/html/cgi-bin/logs.cgi/calamaris.dat @@ -24,6 +24,7 @@ my $unique=time; my $squidlogdir = "/var/log/squid"; my $reportdir = "${General::swroot}/proxy/calamaris/reports"; +my $sargdir = "/var/log/sarg"; unless (-e $reportdir) { mkdir($reportdir) } @@ -98,6 +99,7 @@ if ($reportsettings{'ACTION'} eq $Lang::tr{'calamaris create report'}) delete $reportsettings{'DAY_END'}; delete $reportsettings{'MONTH_END'}; delete $reportsettings{'YEAR_END'}; + delete $reportsettings{'REPORT'}; &General::writehash("${General::swroot}/proxy/calamaris/settings", \%reportsettings); @@ -240,6 +242,86 @@ if ($errormessage) { &Header::closebox(); } +# Link sarg reports. +if (-e $sargdir) { + &Header::openbox('100%', 'left', "$Lang::tr{'proxy reports'}:"); + + print < + +END + + # Today. + if (-e "$sargdir/today") { + print < + $Lang::tr{'proxy reports today'} + +END + } else { + print < + $Lang::tr{'proxy reports today'} + +END + } + + # Daily. + if (-e "$sargdir/daily") { + print < + $Lang::tr{'proxy reports daily'} + +END + } else { + print < + $Lang::tr{'proxy reports daily'} + +END + } + + # Weekly. + if (-e "$sargdir/weekly") { + print < + $Lang::tr{'proxy reports weekly'} + +END + } else { + print < + $Lang::tr{'proxy reports weekly'} + +END + } + + # Monthly. + if (-e "$sargdir/monthly") { + print < + $Lang::tr{'proxy reports monthly'} + +END + } else { + print < + $Lang::tr{'proxy reports monthly'} + +END + } + + print < + + +

+END + + &Header::closebox(); +} + + &Header::openbox('100%', 'left', "$Lang::tr{'settings'}:"); print <\n"; diff --git a/html/cgi-bin/media.cgi b/html/cgi-bin/media.cgi index f67c1787ad..52d9337eb8 100644 --- a/html/cgi-bin/media.cgi +++ b/html/cgi-bin/media.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -45,9 +45,9 @@ my @querry = split(/\?/,$ENV{'QUERY_STRING'}); $querry[0] = '' unless defined $querry[0]; $querry[1] = 'hour' unless defined $querry[1]; -my @devices = `ls -1 /sys/block | grep -E '^sd|^xvd|^vd|^md' | sort | uniq`; +my @devices = `ls -1 /sys/block | grep -E '^sd|^mmcblk|^xvd|^vd|^md' | sort | uniq`; -if ( $querry[0] =~ "sd?" || $querry[0] =~ "xvd??" || $querry[0] =~ "vd?" || $querry[0] =~ "md*" ){ +if ( $querry[0] =~ "sd?" || $querry[0] =~ "mmcblk?" || $querry[0] =~ "xvd??" || $querry[0] =~ "vd?" || $querry[0] =~ "md*" ){ print "Content-type: image/png\n\n"; binmode(STDOUT); diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index 990fe6600b..cbaecd9aab 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -36,10 +36,10 @@ require "${General::swroot}/header.pl"; require "${General::swroot}/countries.pl"; # enable only the following on debugging purpose -use warnings; -use CGI::Carp 'fatalsToBrowser'; +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; #workaround to suppress a warning when a variable is used only once -my @dummy = ( ${Header::colourgreen} ); +my @dummy = ( ${Header::colourgreen}, ${Header::colourblue} ); undef (@dummy); my %color = (); @@ -50,6 +50,9 @@ my %mainsettings = (); ### ### Initialize variables ### +my %ccdconfhash=(); +my %ccdroutehash=(); +my %ccdroute2hash=(); my %netsettings=(); my %cgiparams=(); my %vpnsettings=(); @@ -61,6 +64,10 @@ my $warnmessage = ''; my $errormessage = ''; my %settings=(); my $routes_push_file = ''; +my $confighost="${General::swroot}/fwhosts/customhosts"; +my $configgrp="${General::swroot}/fwhosts/customgroups"; +my $customnet="${General::swroot}/fwhosts/customnetworks"; +my $name; &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); $cgiparams{'ENABLED'} = 'off'; $cgiparams{'ENABLED_BLUE'} = 'off'; @@ -77,8 +84,13 @@ $cgiparams{'DHCP_WINS'} = ''; $cgiparams{'ROUTES_PUSH'} = ''; $cgiparams{'DCOMPLZO'} = 'off'; $cgiparams{'MSSFIX'} = ''; +$cgiparams{'number'} = ''; +$cgiparams{'PMTU_DISCOVERY'} = ''; $routes_push_file = "${General::swroot}/ovpn/routes_push"; unless (-e $routes_push_file) { system("touch $routes_push_file"); } +unless (-e "${General::swroot}/ovpn/ccd.conf") { system("touch ${General::swroot}/ovpn/ccd.conf"); } +unless (-e "${General::swroot}/ovpn/ccdroute") { system("touch ${General::swroot}/ovpn/ccdroute"); } +unless (-e "${General::swroot}/ovpn/ccdroute2") { system("touch ${General::swroot}/ovpn/ccdroute2"); } &Header::getcgihash(\%cgiparams, {'wantfile' => 1, 'filevar' => 'FH'}); @@ -313,7 +325,6 @@ sub disallowreserved return; } - sub writeserverconf { my %sovpnsettings = (); my @temp = (); @@ -329,7 +340,6 @@ sub writeserverconf { print CONF "#DAN prepare OpenVPN for listening on blue and orange\n"; print CONF ";local $sovpnsettings{'VPN_IP'}\n"; print CONF "dev $sovpnsettings{'DDEVICE'}\n"; - print CONF "$sovpnsettings{'DDEVICE'}-mtu $sovpnsettings{'DMTU'}\n"; print CONF "proto $sovpnsettings{'DPROTOCOL'}\n"; print CONF "port $sovpnsettings{'DDEST_PORT'}\n"; print CONF "script-security 3 system\n"; @@ -342,18 +352,48 @@ sub writeserverconf { print CONF "dh /var/ipfire/ovpn/ca/dh1024.pem\n"; my @tempovpnsubnet = split("\/",$sovpnsettings{'DOVPN_SUBNET'}); print CONF "server $tempovpnsubnet[0] $tempovpnsubnet[1]\n"; - print CONF "push \"route $netsettings{'GREEN_NETADDRESS'} $netsettings{'GREEN_NETMASK'}\"\n"; - + #print CONF "push \"route $netsettings{'GREEN_NETADDRESS'} $netsettings{'GREEN_NETMASK'}\"\n"; + + # Check if we are using mssfix, fragment or mtu-disc and set the corretct mtu of 1500. + # If we doesn't use one of them, we can use the configured mtu value. + if ($sovpnsettings{'MSSFIX'} eq 'on') + { print CONF "$sovpnsettings{'DDEVICE'}-mtu 1500\n"; } + elsif ($sovpnsettings{'FRAGMENT'} ne '' && $sovpnsettings{'DPROTOCOL'} ne 'tcp') + { print CONF "$sovpnsettings{'DDEVICE'}-mtu 1500\n"; } + elsif (($sovpnsettings{'PMTU_DISCOVERY'} eq 'yes') || + ($sovpnsettings{'PMTU_DISCOVERY'} eq 'maybe') || + ($sovpnsettings{'PMTU_DISCOVERY'} eq 'no' )) + { print CONF "$sovpnsettings{'DDEVICE'}-mtu 1500\n"; } + else + { print CONF "$sovpnsettings{'DDEVICE'}-mtu $sovpnsettings{'DMTU'}\n"; } + if ($vpnsettings{'ROUTES_PUSH'} ne '') { - @temp = split(/\n/,$vpnsettings{'ROUTES_PUSH'}); - foreach (@temp) - { - @tempovpnsubnet = split("\/",&General::ipcidr2msk($_)); - print CONF "push \"route " . $tempovpnsubnet[0]. " " . $tempovpnsubnet[1] . "\"\n"; + @temp = split(/\n/,$vpnsettings{'ROUTES_PUSH'}); + foreach (@temp) + { + @tempovpnsubnet = split("\/",&General::ipcidr2msk($_)); + print CONF "push \"route " . $tempovpnsubnet[0]. " " . $tempovpnsubnet[1] . "\"\n"; + } } - } +# a.marx ccd + my %ccdconfhash=(); + &General::readhasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + foreach my $key (keys %ccdconfhash) { + my $a=$ccdconfhash{$key}[1]; + my ($b,$c) = split (/\//, $a); + print CONF "route $b ".&General::cidrtosub($c)."\n"; + } + my %ccdroutehash=(); + &General::readhasharray("${General::swroot}/ovpn/ccdroute", \%ccdroutehash); + foreach my $key (keys %ccdroutehash) { + foreach my $i ( 1 .. $#{$ccdroutehash{$key}}){ + my ($a,$b)=split (/\//,$ccdroutehash{$key}[$i]); + print CONF "route $a $b\n"; + } + } +# ccd end - if ($sovpnsettings{CLIENT2CLIENT} eq 'on') { + if ($sovpnsettings{CLIENT2CLIENT} eq 'on') { print CONF "client-to-client\n"; } if ($sovpnsettings{MSSFIX} eq 'on') { @@ -362,6 +402,14 @@ sub writeserverconf { if ($sovpnsettings{FRAGMENT} ne '' && $sovpnsettings{'DPROTOCOL'} ne 'tcp') { print CONF "fragment $sovpnsettings{'FRAGMENT'}\n"; } + + # Check if a valid operating mode has been choosen and use it. + if (($sovpnsettings{'PMTU_DISCOVERY'} eq 'yes') || + ($sovpnsettings{'PMTU_DISCOVERY'} eq 'maybe') || + ($sovpnsettings{'PMTU_DISCOVERY'} eq 'no' )) { + print CONF "mtu-disc $sovpnsettings{'PMTU_DISCOVERY'}\n"; + } + if ($sovpnsettings{KEEPALIVE_1} > 0 && $sovpnsettings{KEEPALIVE_2} > 0) { print CONF "keepalive $sovpnsettings{'KEEPALIVE_1'} $sovpnsettings{'KEEPALIVE_2'}\n"; } @@ -407,7 +455,7 @@ sub writeserverconf { close(CONF); } -# + sub emptyserverlog{ if (open(FILE, ">/var/log/ovpnserver.log")) { flock FILE, 2; @@ -417,6 +465,274 @@ sub emptyserverlog{ } +sub delccdnet +{ + my %ccdconfhash = (); + my %ccdhash = (); + my $ccdnetname=$_[0]; + if (-f "${General::swroot}/ovpn/ovpnconfig"){ + &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%ccdhash); + foreach my $key (keys %ccdhash) { + if ($ccdhash{$key}[32] eq $ccdnetname) { + $errormessage=$Lang::tr{'ccd err hostinnet'}; + return; + } + } + } + &General::readhasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + foreach my $key (keys %ccdconfhash) { + if ($ccdconfhash{$key}[0] eq $ccdnetname){ + delete $ccdconfhash{$key}; + } + } + &General::writehasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + + &writeserverconf; + return 0; +} + +sub addccdnet +{ + my %ccdconfhash=(); + my @ccdconf=(); + my $ccdname=$_[0]; + my $ccdnet=$_[1]; + my $subcidr; + my @ip2=(); + my $checkup; + my $ccdip; + my $baseaddress; + + + #check name + if ($ccdname eq '') + { + $errormessage=$errormessage.$Lang::tr{'ccd err name'}."
"; + return + } + + if(!&General::validhostname($ccdname)) + { + $errormessage=$Lang::tr{'ccd err invalidname'}; + return; + } + + ($ccdip,$subcidr) = split (/\//,$ccdnet); + $subcidr=&General::iporsubtocidr($subcidr); + #check subnet + if ($subcidr > 30) + { + $errormessage=$Lang::tr{'ccd err invalidnet'}; + return; + } + #check ip + if (!&General::validipandmask($ccdnet)){ + $errormessage=$Lang::tr{'ccd err invalidnet'}; + return; + } + + $errormessage=&General::checksubnets($ccdname,$ccdnet); + + + if (!$errormessage) { + my %ccdconfhash=(); + $baseaddress=&General::getnetworkip($ccdip,$subcidr); + &General::readhasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + my $key = &General::findhasharraykey (\%ccdconfhash); + foreach my $i (0 .. 1) { $ccdconfhash{$key}[$i] = "";} + $ccdconfhash{$key}[0] = $ccdname; + $ccdconfhash{$key}[1] = $baseaddress."/".$subcidr; + &General::writehasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + &writeserverconf; + $cgiparams{'ccdname'}=''; + $cgiparams{'ccdsubnet'}=''; + return 1; + } +} + +sub modccdnet +{ + + my $newname=$_[0]; + my $oldname=$_[1]; + my %ccdconfhash=(); + my %ccdhash=(); + &General::readhasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + foreach my $key (keys %ccdconfhash) { + if ($ccdconfhash{$key}[0] eq $oldname) { + foreach my $key1 (keys %ccdconfhash) { + if ($ccdconfhash{$key1}[0] eq $newname){ + $errormessage=$errormessage.$Lang::tr{'ccd err netadrexist'}; + return; + }else{ + $ccdconfhash{$key}[0]= $newname; + &General::writehasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + last; + } + } + } + } + + &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%ccdhash); + foreach my $key (keys %ccdhash) { + if ($ccdhash{$key}[32] eq $oldname) { + $ccdhash{$key}[32]=$newname; + &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%ccdhash); + last; + } + } + + return 0; +} +sub ccdmaxclients +{ + my $ccdnetwork=$_[0]; + my @octets=(); + my @subnet=(); + @octets=split("\/",$ccdnetwork); + @subnet= split /\./, &General::cidrtosub($octets[1]); + my ($a,$b,$c,$d,$e); + $a=256-$subnet[0]; + $b=256-$subnet[1]; + $c=256-$subnet[2]; + $d=256-$subnet[3]; + $e=($a*$b*$c*$d)/4; + return $e-1; +} + +sub getccdadresses +{ + my $ipin=$_[0]; + my ($ip1,$ip2,$ip3,$ip4)=split /\./, $ipin; + my $cidr=$_[1]; + chomp($cidr); + my $count=$_[2]; + my $hasip=$_[3]; + chomp($hasip); + my @iprange=(); + my %ccdhash=(); + &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%ccdhash); + $iprange[0]=$ip1.".".$ip2.".".$ip3.".".2; + for (my $i=1;$i<=$count;$i++) { + my $tmpip=$iprange[$i-1]; + my $stepper=$i*4; + $iprange[$i]= &General::getnextip($tmpip,4); + } + my $r=0; + foreach my $key (keys %ccdhash) { + $r=0; + foreach my $tmp (@iprange){ + my ($net,$sub) = split (/\//,$ccdhash{$key}[33]); + if ($net eq $tmp) { + if ( $hasip ne $ccdhash{$key}[33] ){ + splice (@iprange,$r,1); + } + } + $r++; + } + } + return @iprange; +} + +sub fillselectbox +{ + my $boxname=$_[1]; + my ($ccdip,$subcidr) = split("/",$_[0]); + my $tz=$_[2]; + my @allccdips=&getccdadresses($ccdip,$subcidr,&ccdmaxclients($ccdip."/".$subcidr),$tz); + print""; +} + +sub hostsinnet +{ + my $name=$_[0]; + my %ccdhash=(); + my $i=0; + &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%ccdhash); + foreach my $key (keys %ccdhash) { + if ($ccdhash{$key}[32] eq $name){ $i++;} + } + return $i; +} + +sub check_routes_push +{ + my $val=$_[0]; + my ($ip,$cidr) = split (/\//, $val); + ##check for existing routes in routes_push + if (-e "${General::swroot}/ovpn/routes_push") { + open(FILE,"${General::swroot}/ovpn/routes_push"); + while () { + $_=~s/\s*$//g; + + my ($ip2,$cidr2) = split (/\//,"$_"); + my $val2=$ip2."/".&General::iporsubtodec($cidr2); + + if($val eq $val2){ + return 0; + } + #subnetcheck + if (&General::IpInSubnet ($ip,$ip2,&General::iporsubtodec($cidr2))){ + return 0; + } + }; + close(FILE); + } + return 1; +} + +sub check_ccdroute +{ + my %ccdroutehash=(); + my $val=$_[0]; + my ($ip,$cidr) = split (/\//, $val); + #check for existing routes in ccdroute + &General::readhasharray("${General::swroot}/ovpn/ccdroute", \%ccdroutehash); + foreach my $key (keys %ccdroutehash) { + foreach my $i (1 .. $#{$ccdroutehash{$key}}) { + if (&General::iporsubtodec($val) eq $ccdroutehash{$key}[$i] && $ccdroutehash{$key}[0] ne $cgiparams{'NAME'}){ + return 0; + } + my ($ip2,$cidr2) = split (/\//,$ccdroutehash{$key}[$i]); + #subnetcheck + if (&General::IpInSubnet ($ip,$ip2,$cidr2)&& $ccdroutehash{$key}[0] ne $cgiparams{'NAME'} ){ + return 0; + } + } + } + return 1; +} +sub check_ccdconf +{ + my %ccdconfhash=(); + my $val=$_[0]; + my ($ip,$cidr) = split (/\//, $val); + #check for existing routes in ccdroute + &General::readhasharray("${General::swroot}/ovpn/ccd.conf", \%ccdconfhash); + foreach my $key (keys %ccdconfhash) { + if (&General::iporsubtocidr($val) eq $ccdconfhash{$key}[1]){ + return 0; + } + my ($ip2,$cidr2) = split (/\//,$ccdconfhash{$key}[1]); + #subnetcheck + if (&General::IpInSubnet ($ip,$ip2,&General::cidrtosub($cidr2))){ + return 0; + } + + } + return 1; +} + ### # m.a.d net2net ### @@ -451,6 +767,7 @@ sub read_routepushfile while () { $vpnsettings{'ROUTES_PUSH'} .= $_ }; close(FILE); $cgiparams{'ROUTES_PUSH'} = $vpnsettings{'ROUTES_PUSH'}; + } } @@ -490,11 +807,11 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'start ovpn server'} || &emptyserverlog(); } # #restart openvpn server - if ($cgiparams{'ACTION'} eq $Lang::tr{'restart ovpn server'}){ +# if ($cgiparams{'ACTION'} eq $Lang::tr{'restart ovpn server'}){ #workarund, till SIGHUP also works when running as nobody - system('/usr/local/bin/openvpnctrl', '-r'); - &emptyserverlog(); - } +# system('/usr/local/bin/openvpnctrl', '-r'); +# &emptyserverlog(); +# } } ### @@ -516,6 +833,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) { $vpnsettings{'DHCP_DNS'} = $cgiparams{'DHCP_DNS'}; $vpnsettings{'DHCP_WINS'} = $cgiparams{'DHCP_WINS'}; $vpnsettings{'ROUTES_PUSH'} = $cgiparams{'ROUTES_PUSH'}; + $vpnsettings{'PMTU_DISCOVERY'} = $cgiparams{'PMTU_DISCOVERY'}; my @temp=(); if ($cgiparams{'FRAGMENT'} eq '') { @@ -533,8 +851,19 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) { } else { $vpnsettings{'MSSFIX'} = $cgiparams{'MSSFIX'}; } + + if (($cgiparams{'PMTU_DISCOVERY'} eq 'yes') || + ($cgiparams{'PMTU_DISCOVERY'} eq 'maybe') || + ($cgiparams{'PMTU_DISCOVERY'} eq 'no' )) { + + if (($cgiparams{'MSSFIX'} eq 'on') || ($cgiparams{'FRAGMENT'} ne '')) { + $errormessage = $Lang::tr{'ovpn mtu-disc with mssfix or fragment'}; + goto ADV_ERROR; + } + } + if ($cgiparams{'DHCP_DOMAIN'} ne ''){ - unless (&General::validfqdn($cgiparams{'DHCP_DOMAIN'}) || &General::validip($cgiparams{'DHCP_DOMAIN'})) { + unless (&General::validdomainname($cgiparams{'DHCP_DOMAIN'}) || &General::validip($cgiparams{'DHCP_DOMAIN'})) { $errormessage = $Lang::tr{'invalid input for dhcp domain'}; goto ADV_ERROR; } @@ -554,24 +883,47 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) { if ($cgiparams{'ROUTES_PUSH'} ne ''){ @temp = split(/\n/,$cgiparams{'ROUTES_PUSH'}); undef $vpnsettings{'ROUTES_PUSH'}; - foreach (@temp) + + foreach my $tmpip (@temp) { s/^\s+//g; s/\s+$//g; - if ($_) + + if ($tmpip) { - unless (&General::validipandmask($_)) { - $errormessage = $Lang::tr{'ovpn errmsg invalid ip or mask'}; - goto ADV_ERROR; + $tmpip=~s/\s*$//g; + unless (&General::validipandmask($tmpip)) { + $errormessage = "$tmpip ".$Lang::tr{'ovpn errmsg invalid ip or mask'}; + goto ADV_ERROR; } - my ($ip, $cidr) = split("\/",&General::ipcidr2msk($_)); + my ($ip, $cidr) = split("\/",&General::ipcidr2msk($tmpip)); + if ($ip eq $netsettings{'GREEN_NETADDRESS'} && $cidr eq $netsettings{'GREEN_NETMASK'}) { $errormessage = $Lang::tr{'ovpn errmsg green already pushed'}; - goto ADV_ERROR; + goto ADV_ERROR; + } +# a.marx ccd + my %ccdroutehash=(); + &General::readhasharray("${General::swroot}/ovpn/ccdroute", \%ccdroutehash); + foreach my $key (keys %ccdroutehash) { + foreach my $i (1 .. $#{$ccdroutehash{$key}}) { + if ( $ip."/".$cidr eq $ccdroutehash{$key}[$i] ){ + $errormessage="Route $ip\/$cidr ".$Lang::tr{'ccd err inuse'}." $ccdroutehash{$key}[0]" ; + goto ADV_ERROR; + } + my ($ip2,$cidr2) = split(/\//,$ccdroutehash{$key}[$i]); + if (&General::IpInSubnet ($ip,$ip2,$cidr2)){ + $errormessage="Route $ip\/$cidr ".$Lang::tr{'ccd err inuse'}." $ccdroutehash{$key}[0]" ; + goto ADV_ERROR; + } + } } - $vpnsettings{'ROUTES_PUSH'} .= $_."\n"; + +# ccd end + + $vpnsettings{'ROUTES_PUSH'} .= $tmpip."\n"; } - } - &write_routepushfile; + } + &write_routepushfile; undef $vpnsettings{'ROUTES_PUSH'}; } else { @@ -656,6 +1008,17 @@ unless(-d "${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}"){mkdir "${General if ($cgiparams{'FRAGMENT'} ne '') {print SERVERCONF "fragment $cgiparams{'FRAGMENT'}\n";} if ($cgiparams{'MSSFIX'} eq 'on') {print SERVERCONF "mssfix\n"; }; } + + # Check if a valid operating mode has been choosen and use it. + if (($cgiparams{'PMTU_DISCOVERY'} eq 'yes') || + ($cgiparams{'PMTU_DISCOVERY'} eq 'maybe') || + ($cgiparams{'PMTU_DISCOVERY'} eq 'no' )) { + if(($cgiparams{'MSSFIX'} ne 'on') || ($cgiparams{'FRAGMENT'} eq '')) { + if($cgiparams{'MTU'} eq '1500') { + print SERVERCONF "mtu-disc $cgiparams{'PMTU_DISCOVERY'}\n"; + } + } + } print SERVERCONF "# Auth. Server\n"; print SERVERCONF "tls-server\n"; print SERVERCONF "ca ${General::swroot}/ovpn/ca/cacert.pem\n"; @@ -734,6 +1097,17 @@ unless(-d "${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}"){mkdir "${General if ($cgiparams{'FRAGMENT'} ne '') {print CLIENTCONF "fragment $cgiparams{'FRAGMENT'}\n";} if ($cgiparams{'MSSFIX'} eq 'on') {print CLIENTCONF "mssfix\n"; }; } + + # Check if a valid operating mode has been choosen and use it. + if (($cgiparams{'PMTU_DISCOVERY'} eq 'yes') || + ($cgiparams{'PMTU_DISCOVERY'} eq 'maybe') || + ($cgiparams{'PMTU_DISCOVERY'} eq 'no' )) { + if(($cgiparams{'MSSFIX'} ne 'on') || ($cgiparams{'FRAGMENT'} eq '')) { + if ($cgiparams{'MTU'} eq '1500') { + print CLIENTCONF "mtu-disc $cgiparams{'PMTU_DISCOVERY'}\n"; + } + } + } print CLIENTCONF "ns-cert-type server\n"; print CLIENTCONF "# Auth. Client\n"; @@ -1571,29 +1945,26 @@ END my $n2nactive = `/bin/ps ax|grep $confighash{$cgiparams{'KEY'}}[1]|grep -v grep|awk \'{print \$1}\'`; if ($confighash{$cgiparams{'KEY'}}) { + if ($confighash{$cgiparams{'KEY'}}[0] eq 'off') { + $confighash{$cgiparams{'KEY'}}[0] = 'on'; + &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); - - if ($confighash{$cgiparams{'KEY'}}[0] eq 'off') { - $confighash{$cgiparams{'KEY'}}[0] = 'on'; - &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); - - if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ + if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ system('/usr/local/bin/openvpnctrl', '-sn2n', $confighash{$cgiparams{'KEY'}}[1]); - } - - } else { + } + } else { - $confighash{$cgiparams{'KEY'}}[0] = 'off'; - &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); + $confighash{$cgiparams{'KEY'}}[0] = 'off'; + &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); - if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ + if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ if ($n2nactive ne ''){ - system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]); - } + system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]); + } - } else { + } else { $errormessage = $Lang::tr{'invalid key'}; - } + } } } @@ -1665,6 +2036,15 @@ if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ if ($confighash{$cgiparams{'KEY'}}[24] ne '') {print CLIENTCONF "fragment $confighash{$cgiparams{'KEY'}}[24]\n";} if ($confighash{$cgiparams{'KEY'}}[23] eq 'on') {print CLIENTCONF "mssfix\n";} } + if (($confighash{$cgiparams{'KEY'}}[38] eq 'yes') || + ($confighash{$cgiparams{'KEY'}}[38] eq 'maybe') || + ($confighash{$cgiparams{'KEY'}}[38] eq 'no' )) { + if (($confighash{$cgiparams{'KEY'}}[23] ne 'on') || ($confighash{$cgiparams{'KEY'}}[24] eq '')) { + if ($tunmtu eq '1500' ) { + print CLIENTCONF "mtu-disc $confighash{$cgiparams{'KEY'}}[38]\n"; + } + } + } print CLIENTCONF "ns-cert-type server\n"; print CLIENTCONF "# Auth. Client\n"; print CLIENTCONF "tls-client\n"; @@ -1718,12 +2098,26 @@ else my $zip = Archive::Zip->new(); - print CLIENTCONF "#OpenVPN Server conf\r\n"; + print CLIENTCONF "#OpenVPN Client conf\r\n"; print CLIENTCONF "tls-client\r\n"; print CLIENTCONF "client\r\n"; + print CLIENTCONF "nobind\r\n"; print CLIENTCONF "dev $vpnsettings{'DDEVICE'}\r\n"; print CLIENTCONF "proto $vpnsettings{'DPROTOCOL'}\r\n"; - print CLIENTCONF "$vpnsettings{'DDEVICE'}-mtu $vpnsettings{'DMTU'}\r\n"; + + # Check if we are using fragment, mssfix or mtu-disc and set MTU to 1500 + # or use configured value. + if ($vpnsettings{FRAGMENT} ne '' && $vpnsettings{DPROTOCOL} ne 'tcp' ) + { print CLIENTCONF "$vpnsettings{'DDEVICE'}-mtu 1500\r\n"; } + elsif ($vpnsettings{MSSFIX} eq 'on') + { print CLIENTCONF "$vpnsettings{'DDEVICE'}-mtu 1500\r\n"; } + elsif (($vpnsettings{'PMTU_DISCOVERY'} eq 'yes') || + ($vpnsettings{'PMTU_DISCOVERY'} eq 'maybe') || + ($vpnsettings{'PMTU_DISCOVERY'} eq 'no' )) + { print CLIENTCONF "$vpnsettings{'DDEVICE'}-mtu 1500\r\n"; } + else + { print CLIENTCONF "$vpnsettings{'DDEVICE'}-mtu $vpnsettings{'DMTU'}\r\n"; } + if ( $vpnsettings{'ENABLED'} eq 'on'){ print CLIENTCONF "remote $vpnsettings{'VPN_IP'} $vpnsettings{'DDEST_PORT'}\r\n"; if ( $vpnsettings{'ENABLED_BLUE'} eq 'on' && (&haveBlueNet())){ @@ -1767,6 +2161,15 @@ else if ($vpnsettings{FRAGMENT} ne '' && $vpnsettings{DPROTOCOL} ne 'tcp' ) { print CLIENTCONF "fragment $vpnsettings{'FRAGMENT'}\r\n"; } + + # Check if a valid operating mode has been choosen and use it. + if (($vpnsettings{'PMTU_DISCOVERY'} eq 'yes') || + ($vpnsettings{'PMTU_DISCOVERY'} eq 'maybe') || + ($vpnsettings{'PMTU_DISCOVERY'} eq 'no' )) { + if(($vpnsettings{MSSFIX} ne 'on') || ($vpnsettings{FRAGMENT} eq '')) { + print CLIENTCONF "mtu-disc $vpnsettings{'PMTU_DISCOVERY'}\r\n"; + } + } close(CLIENTCONF); $zip->addFile( "$tempdir/$clientovpn", $clientovpn) or die "Can't add file $clientovpn\n"; @@ -1814,10 +2217,41 @@ else } unlink ("${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem"); - unlink ("${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12"); + unlink ("${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12"); + +# A.Marx CCD delete ccd files and routes + + + if (-f "${General::swroot}/ovpn/ccd/$confighash{$cgiparams{'KEY'}}[2]") + { + unlink "${General::swroot}/ovpn/ccd/$confighash{$cgiparams{'KEY'}}[2]"; + } + + &General::readhasharray("${General::swroot}/ovpn/ccdroute", \%ccdroutehash); + foreach my $key (keys %ccdroutehash) { + if ($ccdroutehash{$key}[0] eq $confighash{$cgiparams{'KEY'}}[1]){ + delete $ccdroutehash{$key}; + } + } + &General::writehasharray("${General::swroot}/ovpn/ccdroute", \%ccdroutehash); + + &General::readhasharray("${General::swroot}/ovpn/ccdroute2", \%ccdroute2hash); + foreach my $key (keys %ccdroute2hash) { + if ($ccdroute2hash{$key}[0] eq $confighash{$cgiparams{'KEY'}}[1]){ + delete $ccdroute2hash{$key}; + } + } + &General::writehasharray("${General::swroot}/ovpn/ccdroute2", \%ccdroute2hash); + &writeserverconf; + + +# CCD end + + delete $confighash{$cgiparams{'KEY'}}; my $temp2 = `/usr/bin/openssl ca -gencrl -out ${General::swroot}/ovpn/crls/cacrl.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`; &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); + #&writeserverconf(); } else { $errormessage = $Lang::tr{'invalid key'}; @@ -1884,9 +2318,11 @@ else %cgiparams = (); %cahash = (); %confighash = (); + my $disabled; &General::readhash("${General::swroot}/ovpn/settings", \%cgiparams); read_routepushfile; - + + # if ($cgiparams{'CLIENT2CLIENT'} eq '') { # $cgiparams{'CLIENT2CLIENT'} = 'on'; # } @@ -1913,6 +2349,7 @@ ADV_ERROR: $checked{'MSSFIX'}{'off'} = ''; $checked{'MSSFIX'}{'on'} = ''; $checked{'MSSFIX'}{$cgiparams{'MSSFIX'}} = 'CHECKED'; + $checked{'PMTU_DISCOVERY'}{$cgiparams{'PMTU_DISCOVERY'}} = 'checked=\'checked\''; $selected{'LOG_VERB'}{'1'} = ''; $selected{'LOG_VERB'}{'2'} = ''; $selected{'LOG_VERB'}{'3'} = ''; @@ -1926,9 +2363,7 @@ ADV_ERROR: $selected{'LOG_VERB'}{'11'} = ''; $selected{'LOG_VERB'}{'0'} = ''; $selected{'LOG_VERB'}{$cgiparams{'LOG_VERB'}} = 'SELECTED'; - - - + &Header::showhttpheaders(); &Header::openpage($Lang::tr{'status ovpn'}, 1, ''); &Header::openbigbox('100%', 'LEFT', '', $errormessage); @@ -1940,8 +2375,8 @@ ADV_ERROR: } &Header::openbox('100%', 'LEFT', $Lang::tr{'advanced server'}); print < - + +
@@ -1950,7 +2385,7 @@ ADV_ERROR: - + @@ -1975,7 +2410,7 @@ if ($cgiparams{'ROUTES_PUSH'} ne '') print $cgiparams{'ROUTES_PUSH'}; } -print < @@ -1986,7 +2421,7 @@ print <$Lang::tr{'misc-options'} - + @@ -2001,7 +2436,7 @@ print < - @@ -2015,7 +2450,15 @@ print <mssfix - + + + + + + + + +
$Lang::tr{'dhcp-options'}
Domain
DNS
Client-To-Client
Keppalive
+
Keepalive
(ping/ping-restart)
Default: on
$Lang::tr{'ovpn mtu-disc'} $Lang::tr{'ovpn mtu-disc yes'} $Lang::tr{'ovpn mtu-disc maybe'} $Lang::tr{'ovpn mtu-disc no'} $Lang::tr{'ovpn mtu-disc off'}
$Lang::tr{'remark title'} * @@ -2038,8 +1987,6 @@ END ; &Header::closebox(); } elsif (! $cgiparams{'KEY'}) { - my $pskdisabled = ($vpnsettings{'VPN_IP'} eq '%defaultroute') ? "disabled='disabled'" : '' ; - $cgiparams{'PSK'} = $Lang::tr{'vpn incompatible use of defaultroute'} if ($pskdisabled); my $cakeydisabled = ( ! -f "${General::swroot}/private/cakey.pem" ) ? "disabled='disabled'" : ''; $cgiparams{'CERT_NAME'} = $Lang::tr{'vpn no full pki'} if ($cakeydisabled); my $cacrtdisabled = ( ! -f "${General::swroot}/ca/cacert.pem" ) ? "disabled='disabled'" : ''; @@ -2047,9 +1994,9 @@ END &Header::openbox('100%', 'left', $Lang::tr{'authentication'}); print < - + $Lang::tr{'use a pre-shared key'} - +
$Lang::tr{'upload a certificate request'} @@ -2145,7 +2092,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2156,7 +2103,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(sha2_512|sha2_256|sha|md5)$/) { + if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha|md5|aesxcbc)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2186,7 +2133,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(aes256|aes128|3des)$/) { + if ($val !~ /^(aes256|aes192|aes128|3des)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2197,13 +2144,13 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || goto ADVANCED_ERROR; } foreach my $val (@temp) { - if ($val !~ /^(sha2_512|sha2_256|sha1|md5)$/) { + if ($val !~ /^(sha2_512|sha2_384|sha2_256|sha1|md5|aesxcbc)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } } if ($cgiparams{'ESP_GROUPTYPE'} ne '' && - $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|3072|4096)$/) { + $cgiparams{'ESP_GROUPTYPE'} !~ /^modp(1024|1536|2048|3072|4096|6144|8192)$/) { $errormessage = $Lang::tr{'invalid input'}; goto ADVANCED_ERROR; } @@ -2268,14 +2215,17 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || ADVANCED_ERROR: $checked{'IKE_ENCRYPTION'}{'aes256'} = ''; + $checked{'IKE_ENCRYPTION'}{'aes192'} = ''; $checked{'IKE_ENCRYPTION'}{'aes128'} = ''; $checked{'IKE_ENCRYPTION'}{'3des'} = ''; my @temp = split('\|', $cgiparams{'IKE_ENCRYPTION'}); foreach my $key (@temp) {$checked{'IKE_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'IKE_INTEGRITY'}{'sha2_512'} = ''; + $checked{'IKE_INTEGRITY'}{'sha2_384'} = ''; $checked{'IKE_INTEGRITY'}{'sha2_256'} = ''; $checked{'IKE_INTEGRITY'}{'sha'} = ''; $checked{'IKE_INTEGRITY'}{'md5'} = ''; + $checked{'IKE_INTEGRITY'}{'aesxcbc'} = ''; @temp = split('\|', $cgiparams{'IKE_INTEGRITY'}); foreach my $key (@temp) {$checked{'IKE_INTEGRITY'}{$key} = "selected='selected'"; } $checked{'IKE_GROUPTYPE'}{'768'} = ''; @@ -2292,16 +2242,18 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || # 768 is not supported by strongswan $checked{'IKE_GROUPTYPE'}{'768'} = ''; - $checked{'ESP_ENCRYPTION'}{'aes256'} = ''; + $checked{'ESP_ENCRYPTION'}{'aes192'} = ''; $checked{'ESP_ENCRYPTION'}{'aes128'} = ''; $checked{'ESP_ENCRYPTION'}{'3des'} = ''; @temp = split('\|', $cgiparams{'ESP_ENCRYPTION'}); foreach my $key (@temp) {$checked{'ESP_ENCRYPTION'}{$key} = "selected='selected'"; } $checked{'ESP_INTEGRITY'}{'sha2_512'} = ''; + $checked{'ESP_INTEGRITY'}{'sha2_384'} = ''; $checked{'ESP_INTEGRITY'}{'sha2_256'} = ''; $checked{'ESP_INTEGRITY'}{'sha1'} = ''; $checked{'ESP_INTEGRITY'}{'md5'} = ''; + $checked{'ESP_INTEGRITY'}{'aesxcbc'} = ''; @temp = split('\|', $cgiparams{'ESP_INTEGRITY'}); foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; } $checked{'ESP_GROUPTYPE'}{$cgiparams{'ESP_GROUPTYPE'}} = "selected='selected'"; @@ -2339,14 +2291,19 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $Lang::tr{'ike encryption'} $Lang::tr{'ike integrity'} $Lang::tr{'ike grouptype'} @@ -2369,13 +2326,19 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || $Lang::tr{'esp encryption'} + + + - + + + $Lang::tr{'esp grouptype'} $Lang::tr{'enabled'} -END - ; - print < - $Lang::tr{'override mtu'}: * - - END ; print < -

$Lang::tr{'vpn watch'}:

-

PLUTO DEBUG = -crypt:,  -parsing:,  -emitting:,  -control:,  -dns: 


diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 0bb42ae312..83d65dbdb4 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2011 IPFire Team # +# Copyright (C) 2005-2012 IPFire Team # # # # 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 # @@ -49,6 +49,7 @@ my %mainsettings = (); my %netsettings=(); my %wlanapsettings=(); my $channel = ''; +my $country = ''; my $txpower = ''; &General::readhash("${General::swroot}/main/settings", \%mainsettings); @@ -64,6 +65,7 @@ $wlanapsettings{'HIDESSID'} = 'off'; $wlanapsettings{'ENC'} = 'wpa2'; # none / wpa1 /wpa2 $wlanapsettings{'TXPOWER'} = 'auto'; $wlanapsettings{'CHANNEL'} = '05'; +$wlanapsettings{'COUNTRY'} = '00'; $wlanapsettings{'HW_MODE'} = 'g'; $wlanapsettings{'PWD'} = 'IPFire-2.x'; $wlanapsettings{'SYSLOGLEVEL'} = '0'; @@ -123,7 +125,7 @@ if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'wlanap del interface'}" ){ if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'save'}" ){ # verify WPA Passphrase, must be 8 .. 63 characters - only wiht enabled enc - if (($wlanapsettings{'ENC'} eq "wpa1") || ($wlanapsettings{'ENC'} eq "wpa2")){ + if (($wlanapsettings{'ENC'} eq "wpa1") || ($wlanapsettings{'ENC'} eq "wpa2") || ($wlanapsettings{'ENC'} eq "wpa1+2")){ if ( (length($wlanapsettings{'PWD'}) < 8) || (length($wlanapsettings{'PWD'}) > 63)){ $errormessage .= "$Lang::tr{'wlanap invalid wpa'}
"; } @@ -232,17 +234,28 @@ END } } +# Change old "n" to "gn" +if ( $wlanapsettings{'HW_MODE'} eq 'n' ) { + $wlanapsettings{'HW_MODE'}='gn'; +} + $checked{'HIDESSID'}{'off'} = ''; $checked{'HIDESSID'}{'on'} = ''; $checked{'HIDESSID'}{$wlanapsettings{'HIDESSID'}} = "checked='checked'"; $selected{'ENC'}{$wlanapsettings{'ENC'}} = "selected='selected'"; $selected{'CHANNEL'}{$wlanapsettings{'CHANNEL'}} = "selected='selected'"; +$selected{'COUNTRY'}{$wlanapsettings{'COUNTRY'}} = "selected='selected'"; $selected{'TXPOWER'}{$wlanapsettings{'TXPOWER'}} = "selected='selected'"; $selected{'HW_MODE'}{$wlanapsettings{'HW_MODE'}} = "selected='selected'"; $selected{'MACMODE'}{$wlanapsettings{'MACMODE'}} = "selected='selected'"; -my @channellist_cmd = `iwlist $wlanapsettings{'INTERFACE'} channel 2>/dev/null`; +my $monwlaninterface = $wlanapsettings{'INTERFACE'}; +if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ + $monwlaninterface = 'mon.'.$wlanapsettings{'INTERFACE'}; +} + +my @channellist_cmd = `iwlist $monwlaninterface channel 2>/dev/null`; # get available channels my @temp; @@ -253,8 +266,23 @@ if ( $channel =~ /\d+/ ){push(@temp,$channel);} } my @channellist = @temp; -my @txpower_cmd = `iwlist $wlanapsettings{'INTERFACE'} txpower 2>/dev/null`; -# get available channels +my @countrylist_cmd = `regdbdump /usr/lib/crda/regulatory.bin 2>/dev/null`; +# get available country codes + +my @temp; +foreach (@countrylist_cmd){ +$_ =~ /country (.*):/; +$country = $1;chomp $country; +if ( $country =~ /[0,A-Z][0,A-Z]/ ) {push(@temp,$country);} +} +my @countrylist = @temp; + +my @txpower_cmd = `iwlist $monwlaninterface txpower 2>/dev/null`; +if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){ + # There is a bug with NL80211 only all devices can displayed + @txpower_cmd = `iwlist txpower 2>/dev/null | sed -e "s|unknown transmit-power information.||g"`; +} +# get available power my @temp; foreach (@txpower_cmd){ @@ -350,7 +378,8 @@ print <802.11a - + +
@@ -359,6 +388,7 @@ print <$Lang::tr{'wlanap none'} + +
$Lang::tr{'wlanap channel'}:  @@ -369,6 +399,16 @@ foreach $channel (@channellist){ print ""; } +print <
$Lang::tr{'wlanap country'}:  +
Tx Power:  @@ -478,7 +518,16 @@ driver=$wlanapsettings{'DRIVER_HOSTAPD'} channel=$wlanapsettings{'CHANNEL'} END ; - if ( $wlanapsettings{'HW_MODE'} eq 'n' ){ + if ( $wlanapsettings{'HW_MODE'} eq 'an' ){ + print CONFIGFILE < 'Konfiguriert als', 'Add Level7 rule' => 'Level7-Regel hinzufügen', -'Add Port Rule' => 'Port Regel hinzufügen', +'Add Port Rule' => 'Port-Regel hinzufügen', 'Add Rule' => 'Regel hinzufügen', 'Add a route' => 'Eine Route hinzufügen', -'Async logging enabled' => 'Aktiviere asynchrones schreiben des Syslogs', -'Choose Rule' => 'Wählen sie eine der untenstehenden Regeln aus.', +'Async logging enabled' => 'Aktiviere asynchrones Schreiben des Syslogs', +'Choose Rule' => 'Wählen Sie eine der untenstehenden Regeln aus.', 'Class' => 'Klasse', 'Class was deleted' => 'wurde mit eventuell vorhandenen Unterklassen gelöscht', -'Client status and controlc' => 'Client Status und Kontrolle', +'Client status and controlc' => 'Client-Status und -Kontrolle', 'ConnSched action' => 'Aktion:', 'ConnSched add action' => 'Aktion hinzufügen', 'ConnSched change profile title' => 'Wechsle zu Profil:', @@ -26,7 +26,7 @@ 'ConnSched up' => 'Hoch', 'ConnSched weekdays' => 'Wochentage:', 'Edit an existing route' => 'Eine existierende Route editieren', -'Enter TOS' => 'Aktivieren oder deaktivieren sie die TOS-Bits
und klicken Sie danach auf Speichern.', +'Enter TOS' => 'Aktivieren oder deaktivieren Sie die TOS-Bits
und klicken Sie danach auf Speichern.', 'Existing Files' => 'Dateien in der Datenbank', 'HDD temperature' => 'HDD-Temperatur', 'Level7 Protocol' => 'Level7-Protokoll', @@ -80,7 +80,7 @@ 'add network' => 'Netzwerk hinzufügen', 'add new alias' => 'Neue Alias-Adresse hinzufügen:', 'add new lease' => 'Neue Zuordnung definieren', -'add new ovpn' => 'OpenVPN Einstellungen', +'add new ovpn' => 'OpenVPN-Einstellungen', 'add printer' => 'Drucker hinzufügen', 'add service' => 'Dienst hinzufügen', 'add share' => 'Freigabe anlegen', @@ -88,13 +88,13 @@ 'add user' => 'Benutzer anlegen', 'add xtaccess' => 'Externen Zugang hinzugefügt', 'add-route' => 'Additional push route', -'added from dhcp lease list' => 'hinzugefügt von der DHCP Zuordnungsliste', +'added from dhcp lease list' => 'hinzugefügt von der DHCP-Zuordnungsliste', 'admin user password has been changed' => 'Passwort für Benutzer admin wurde geändert.', 'admin users' => 'Liste der Benutzer mit Super User Rechten', 'administrator user password' => 'Passwort für Benutzer "admin":', 'adsl settings' => 'ADSL-Einstellungen', 'advanced' => 'Erweitert', -'advanced server' => 'Erweiterte Server Optionen', +'advanced server' => 'Erweiterte Server-Optionen', 'advproxy AUTH always required' => 'Authentifizierung für uneingeschränkte Quelladressen erforderlich', 'advproxy AUTH auth cache TTL' => 'Authentifizierungscache TTL (in Minuten)', 'advproxy AUTH global settings' => 'Globale Authentifizierungseinstellungen', @@ -112,7 +112,7 @@ 'advproxy AUTH user IP cache TTL' => 'Benutzer/IP-Cache TTL (in Minuten)', 'advproxy IDENT authorized users' => 'Autorisierte Benutzer (einer pro Zeile)', 'advproxy IDENT aware hosts' => 'Ident-fähige Hosts (einer pro Zeile)', -'advproxy IDENT identd settings' => 'Allgemeine identd Einstellungen', +'advproxy IDENT identd settings' => 'Allgemeine identd-Einstellungen', 'advproxy IDENT required' => 'Identd-Authentifizierung erforderlich', 'advproxy IDENT timeout' => 'Timeout für ident (in Sekunden)', 'advproxy IDENT unauthorized users' => 'Unautorisierte Benutzer (einer pro Zeile)', @@ -123,7 +123,7 @@ 'advproxy LDAP NDS' => 'Novell eDirectory', 'advproxy LDAP V2' => 'LDAP Version 2', 'advproxy LDAP V3' => 'LDAP Version 3', -'advproxy LDAP auth' => 'LDAP Authentifizierung', +'advproxy LDAP auth' => 'LDAP-Authentifizierung', 'advproxy LDAP basedn' => 'Base DN', 'advproxy LDAP binddn password' => 'Bind DN Passwort', 'advproxy LDAP binddn settings' => 'Bind DN Einstellungen', @@ -176,7 +176,7 @@ 'advproxy RADIUS user based access restrictions' => 'Benutzerbasierte Zugriffsbeschränkungen', 'advproxy UA enable filter' => 'Aktiviere Web-Browser-Prüfung', 'advproxy access' => 'Zugriff', -'advproxy admin mail' => 'Cache Administrator E-Mail', +'advproxy admin mail' => 'Cache-Administrator E-Mail', 'advproxy advanced proxy' => 'Advanced Proxy', 'advproxy advanced web proxy' => 'Advanced Web Proxy', 'advproxy advanced web proxy configuration' => 'Proxy-Konfiguration', @@ -212,30 +212,31 @@ 'advproxy errmsg auth children' => 'Ungültige Anzahl Authentifizierungsprozesse', 'advproxy errmsg auth ipcache may not be null' => 'Authentifizierungscache TTL darf nicht 0 sein wenn IP-Adressbeschränkungen verwendet werden', 'advproxy errmsg auth ipcache ttl' => 'Ungültiger Wert für Benutzer/IP-Cache TTL', +'advproxy errmsg cache' => 'Der RAM-Cache-Größe ist größer als die Festplatten-Cache-Größe:', 'advproxy errmsg change fail' => 'Passwort konnte nicht geändert werden', 'advproxy errmsg change success' => 'Passwort für Webzugriff erfolgreich geändert', 'advproxy errmsg hdd cache size' => 'Ungültiger Wert für die Größe des Festplatten-Cachespeichers (min. 10 MB erforderlich)', -'advproxy errmsg ident timeout' => 'Ungültiger ident Timeout', +'advproxy errmsg ident timeout' => 'Ungültiger ident-Timeout', 'advproxy errmsg invalid bdc' => 'Ungültiger Hostname für den Backup Domain Controller', 'advproxy errmsg invalid destination port' => 'Ungültiger Ziel-Port', 'advproxy errmsg invalid ip or mask' => 'Ungültige IP-Adresse oder Subnetzmaske', 'advproxy errmsg invalid mac' => 'Ungültige MAC-Adresse', 'advproxy errmsg invalid pdc' => 'Ungültiger Hostname für den Primary Domain Controller', 'advproxy errmsg invalid proxy port' => 'Ungültiger Proxy-Port', -'advproxy errmsg invalid upstream proxy' => 'Ungültige IP für Upstream-Proxy', +'advproxy errmsg invalid upstream proxy' => 'Ungültige IP/Hostname für Upstream-Proxy', 'advproxy errmsg invalid upstream proxy username or password setting' => 'Ungültiger Benutzername oder ungültiges Kennwort für Upstream Proxy', 'advproxy errmsg invalid user' => 'Benutzername existiert nicht', 'advproxy errmsg ldap base dn' => 'LDAP base DN erforderlich', 'advproxy errmsg ldap bind dn' => 'LDAP bind DN Benutzername und Passwort erforderlich', -'advproxy errmsg ldap port' => 'Ungültige LDAP Portnummer', -'advproxy errmsg ldap server' => 'Ungültige IP-Adresse für den LDAP-Server', +'advproxy errmsg ldap port' => 'Ungültige LDAP-Portnummer', +'advproxy errmsg ldap server' => 'Ungültige IP-Adresse/Hostname für den LDAP-Server', 'advproxy errmsg max userip' => 'Ungültige Anzahl von IP-Adressen pro Benutzer', 'advproxy errmsg mem cache size' => 'Ungültiger Wert für die Größe des RAM-Cachespeichers', 'advproxy errmsg no browser' => 'Mindestens ein Browser oder Client muss für den Web-Zugriff zugelassen sein', 'advproxy errmsg no password' => 'Passwort kann nicht leer sein', 'advproxy errmsg no username' => 'Benutzername darf nicht leer sein', 'advproxy errmsg non-transparent proxy required' => 'Web Proxy muss für die Authentifizierung im Nicht-transparenten Modus laufen', -'advproxy errmsg ntlm domain' => 'Windows Domänenname erforderlich', +'advproxy errmsg ntlm domain' => 'Windows-Domänenname erforderlich', 'advproxy errmsg ntlm pdc' => 'Hostname der Primary Domain Controllers erforderlich', 'advproxy errmsg password incorrect' => 'Falsches Passwort', 'advproxy errmsg password length' => 'Ungültiger Wert für Passwortlänge', @@ -278,7 +279,7 @@ 'advproxy offline mode' => 'Aktiviere Offline-Modus', 'advproxy on' => 'Proxy an', 'advproxy privacy' => 'Datenschutz', -'advproxy proxy port' => 'Proxy Port', +'advproxy proxy port' => 'Proxy-Port', 'advproxy ram cache size' => 'Cachegröße im Arbeitsspeicher (MB)', 'advproxy redirector children' => 'Anzahl der Filterprozesse', 'advproxy reset' => 'Zurücksetzen', @@ -323,8 +324,8 @@ 'again' => 'Wiederholung:', 'aktiv' => 'aktiv', 'album' => 'Album', -'alcatelusb help' => 'Um das Speedtouch USB Modem zu verwenden, müssen Sie die Firmware in Ihre IPFire Box hochladen. Bitte laden sie das Embedded Firmware Paket von speedtouch.com herunter, entpacken es und laden dann die passende Datei für Ihr Modem hoch: KQD6_3.xxx für Revisionsnummern <4 oder ZZZL_3.xxx für Rev.=4 mittels des unten angegebenen Formulars.', -'alcatelusb upload' => 'Speedtouch USB Firmware hochladen', +'alcatelusb help' => 'Um das Speedtouch-USB-Modem zu verwenden, müssen Sie die Firmware in Ihre IPFire Box hochladen. Bitte laden Sie das Embedded Firmware Paket von speedtouch.com herunter, entpacken es und laden dann die passende Datei für Ihr Modem hoch: KQD6_3.xxx für Revisionsnummern <4 oder ZZZL_3.xxx für Rev.=4 mittels des unten angegebenen Formulars.', +'alcatelusb upload' => 'Speedtouch-USB-Firmware hochladen', 'alias ip' => 'Alias-IP-Adresse', 'aliases' => 'Aliase', 'aliases not active' => 'Aliase-Adresse wird erst aktiviert, wenn Ihr ROTES Interface STATISCH ist', @@ -351,12 +352,13 @@ 'arp table entries' => 'Einträge der ARP-Tabelle:', 'artist' => 'Künstler', 'attemps' => 'Versuche', +'attention' => 'ACHTUNG', 'august' => 'August', 'authentication' => 'Authentifizierung:', 'automatic' => 'Automatisch', 'available updates' => 'Verfügbare Updates:', 'average' => 'Durchschnitt', -'avoid dod' => 'Benutzen Sie diese Option nicht mit Dial on Demand! Wird hautpsächlich verwendet, wenn ihr IPFire sich hinter einem Router befindet. Ihre ROTE IP muß sich innerhalb eines der drei reservierten Netzwerkbereiche befinden z.B. 10/8, 172.16/12, 192.168/16.', +'avoid dod' => 'Benutzen Sie diese Option nicht mit Dial on Demand! Wird hauptsächlich verwendet, wenn Ihr IPFire sich hinter einem Router befindet. Ihre ROTE IP muß sich innerhalb eines der drei reservierten Netzwerkbereiche befinden z.B. 10/8, 172.16/12, 192.168/16.', 'back' => 'ZURÜCK', 'backup' => 'Datensicherung', 'backup config floppy' => 'Backup-Konfiguration - Diskette', @@ -366,14 +368,14 @@ 'backup generate key' => 'Erzeuge Schlüssel', 'backup import dat file' => 'Importiere eine Backup- (.dat) Datei', 'backup key' => 'Chriffrierungs-Schlüssel sichern', -'backup missing key' => 'Benötige den Backup-Schlüssel um einen Sicherungssatz wiederherzustellen', +'backup missing key' => 'Benötige den Backup-Schlüssel, um einen Sicherungssatz wiederherzustellen', 'backup password' => 'Datensicherungs-Passwort', 'backup sets' => 'Datensicherungssätze', 'backup to floppy' => 'Datensicherung auf Diskette', 'backupaddon' => 'Addonsicherung', 'backupprofile' => 'Falls die Wiederverbindung scheitert, auf Profil umschalten', 'backups' => 'Sicherungen', -'backupwarning' => 'Bitte stellen Sie zuerst Ihre Hauptsicherung wieder her und anschließend die Addons. Achten Sie darauf, dass die Sicherungen ihre orginal Dateinamen behalten.', +'backupwarning' => 'Bitte stellen Sie zuerst Ihre Hauptsicherung wieder her und anschließend die Addons. Achten Sie darauf, dass die Sicherungen ihre originalen Dateinamen behalten.', 'bad characters in' => 'Ungültige Zeichen in ', 'bad characters in script field' => 'Nicht erlaubte Zeichen im Skriptnamen', 'bad characters in the telephone number field' => 'Nicht erlaubte(s) Zeichen im Feld Telefonnummer.', @@ -382,7 +384,7 @@ 'bad return code' => 'Das Hilfsprogramm hat einen Fehlercode gemeldet', 'bad source range' => 'Der erste Wert des Quellportbereich ist größer oder gleich dem zweiten Wert.', 'bandwidth usage' => 'Bandbreitenauslastung (extern)', -'bandwitherror' => 'Sie können die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten sie es zuerst dazu aus.

', +'bandwitherror' => 'Sie können die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten Sie es erst aus.

', 'bandwithsettings' => 'Bandbreiteneinstellungen', 'basic options' => 'Basisoptionen', 'beep when ppp connects or disconnects' => 'Piepen, wenn IPFire verbindet oder trennt', @@ -391,24 +393,24 @@ 'bleeding rules' => 'Bleeding Edge Snort Rules', 'blue' => 'BLAU', 'blue access' => 'Zugriff auf Blau', -'blue access use hint' => 'Sie müssen mindestens die MAC oder die IP Adresse für ein Gerät angeben. Optional können sie sowohl MAC als auch IP Adresse angeben.', +'blue access use hint' => 'Sie müssen mindestens die MAC- oder die IP-Adresse für ein Gerät angeben. Optional können Sie sowohl MAC- als auch IP-Adresse angeben.', 'blue interface' => 'Blaues Interface', 'broadcast' => 'Broadcast', 'broken pipe' => 'Zerbrochene Pipe', 'buffered memory' => 'Gepuff. Speicher ', 'buffers' => 'Puffer', 'bytes per second' => 'Bytes pro Sekunde', -'bytes received' => 'Bytes Empfangen', -'bytes sent' => 'Bytes Gesendet', -'ca certificate' => 'CA Zertifikat', -'ca name' => 'CA Name', -'cache management' => 'Cache Verwaltung', +'bytes received' => 'Bytes empfangen', +'bytes sent' => 'Bytes gesendet', +'ca certificate' => 'CA-Zertifikat', +'ca name' => 'CA-Name', +'cache management' => 'Cache-Verwaltung', 'cache size' => 'Cache-Größe (MB):', 'cached' => 'zwischengespeichert', -'cached memory' => 'Cache Speicher ', +'cached memory' => 'Cache-Speicher ', 'cached swap' => 'Gecachter Swap', 'calamaris available reports' => 'Verfügbare Berichte', -'calamaris byte unit' => 'Byte Einheit', +'calamaris byte unit' => 'Byte-Einheit', 'calamaris create report' => 'Bericht erstellen', 'calamaris enable content report' => 'Aktiviere Inhaltsbericht', 'calamaris enable distribution histogram' => 'Aktiviere Verteilungshistogramm', @@ -417,7 +419,7 @@ 'calamaris enable requester report' => 'Aktiviere Abfragebericht', 'calamaris enable verbose reporting' => 'Aktiviere ausführlichen Bericht', 'calamaris high' => 'hoch', -'calamaris histogram resolution' => 'Histogramm Auflösung', +'calamaris histogram resolution' => 'Histogramm-Auflösung', 'calamaris low' => 'gering', 'calamaris medium' => 'mittel', 'calamaris no reports available' => 'Keine Berichte verfügbar', @@ -444,7 +446,7 @@ 'cannot enable both nat traversal and compression' => 'NAT Traversal und Kompression können nicht gleichzeitig aktiviert sein.', 'cannot enable ntp without specifying primary' => 'NTP kann nicht aktiviert werden, ohne vorherige Eingabe in \'primär\'.', 'cannot specify secondary dns without specifying primary' => 'Sekundärer DNS kann nicht ohne primären angegeben werden.', -'cannot specify secondary ntp without specifying primary' => 'Kann ohne ersten NTP Server keinen zweiten spezifizieren', +'cannot specify secondary ntp without specifying primary' => 'Kann ohne ersten NTP-Server keinen zweiten spezifizieren', 'cannot specify secondary wins without specifying primary' => 'Sekundärer WINS kann ohne einen primären nicht angegeben werden.', 'cant change certificates' => 'Kann Zertifikate nicht ändern.', 'cant enable xtaccess' => 'Die zugehörige Port-Weiterleitungsregel ist deaktiviert, daher können Sie den externen Zugang für diese Regel nicht aktivieren.', @@ -455,6 +457,44 @@ 'capsopen' => 'VERBUNDEN', 'capswarning' => 'WARNUNG', 'caption' => 'Legende', +'ccd add' => 'Netzwerk hinzufügen', +'ccd choose net' => 'Netzwerk auswählen', +'ccd client options' => 'Erweiterte Client-Optionen', +'ccd clientip' => 'Hostadresse', +'ccd dynrange' => 'Dynamischer OpenVPN-IP-Addressen-Pool', +'ccd err blue' => 'Das ist das BLAUE Subnetz.', +'ccd err green' => 'Das ist das GRÜNE Subnetz.', +'ccd err hostinnet' => 'Das Netzwerk kann nicht gelöscht werden, da sich in ihm noch Clients befinden.', +'ccd err inuse' => 'Wird bereits von einem anderen Client genutzt.', +'ccd err invalidname' => 'Ungültiger Name. Erlaubte Zeichen: A-Z, a-z, Bindestrich und Leerzeichen.', +'ccd err invalidnet' => 'Ungültige IP-Addresse. Format: 192.168.0.0/24 oder 192.168.0.0/255.255.255.0.', +'ccd err iroute' => 'Netzadresse für Route ungültig.', +'ccd err irouteexist' => 'Diese Route wird bereits verwendet.', +'ccd err isipsecnet' => 'Diese Subnetzadresse wird bereits für ein IPsec-Netzwerk verwendet.', +'ccd err isovpnnet' => 'Subnetzadresse wird für bereits für den OpenVPN-Server verwendet!', +'ccd err issubnet' => 'Subnetzadresse wird bereits verwendet.', +'ccd err name' => 'Es muss ein Name angegeben werden.', +'ccd err nameexist' => 'Name existiert bereits.', +'ccd err netadr' => 'Subnetzadresse ist ungültig oder Bereich zu groß.', +'ccd err netadrexist' => 'Netwerk existiert bereits.', +'ccd err orange' => 'Das ist das ORANGE Subnetz.', +'ccd err red' => 'Das ist das ROTE Subnetz.', +'ccd err routeovpn' => 'Wird vom OpenVPN-Server genutzt.', +'ccd err routeovpn2' => 'Wird bereits vom OpenVPN-Server verteilt.', +'ccd hint' => 'Auf dieser Seite können statische Netzwerke definiert werden, von denen Roadwarrior-Clients feste Adressen zugewiesen bekommen können.', +'ccd invalid' => 'ist ungültig.', +'ccd iroute' => 'IPFire hat Zugriff auf diese Netzwerke auf Clientseite: ', +'ccd iroute2' => 'Client hat Zugriff auf diese Netzwerke auf IPFire-Seite: ', +'ccd iroutehint' => 'Achtung! Wenn Sie diese Einstellungen ändern, muss der OpenVPN-Server neu gestartet werden!', +'ccd maxclients' => 'Mögliche Adressen', +'ccd modify' => 'Netzwerk ändern', +'ccd name' => 'Name', +'ccd net' => 'Statische IP-Adressen-Pools', +'ccd noaddnet' => 'Neue statische Netze können erst erstellt werden, wenn der OpenVPN-Server gestoppt wurde.', +'ccd none' => 'Keine', +'ccd routes' => 'Routen:', +'ccd subnet' => 'Subnetz', +'ccd used' => 'Genutzte Adressen', 'cert' => 'Zertifikat', 'certificate' => 'Zertifikat', 'certificate authorities' => 'Zertifizierungsstellen (CAs)', @@ -464,7 +504,7 @@ 'chain' => 'Verknüpfung', 'change passwords' => 'Passwörter Ã¤ndern', 'change share' => 'Freigabeeinstellungen ändern', -'check for net traffic update' => 'Prüfe auf Net-Traffic Updates', +'check for net traffic update' => 'Prüfe auf Net-Traffic-Updates', 'check vpn lr' => 'Überprüfen', 'choose config' => 'Konfiguration auswählen', 'cipher' => 'Verschlüsselung', @@ -475,7 +515,7 @@ 'clenabled' => 'Uhrzeit dem lokalen Netzwerk zur Verfügung stellen', 'click to disable' => 'Aktiviert (klicken, um zu deaktivieren)', 'click to enable' => 'Deaktiviert (klicken, um zu aktivieren)', -'client' => 'PC Name', +'client' => 'PC-Name', 'clock has not been synchronized' => 'Die Uhr wurde nicht synchronisiert', 'clock last synchronized at' => 'Die Uhr wurde zuletzt synchronisiert um', 'comment' => 'Kommentar', @@ -509,23 +549,23 @@ 'could not connect to www ipcop org' => 'Keine Verbindung zu www.ipcop.org möglich', 'could not create directory' => 'Verzeichnis konnte nicht erzeugt werden.', 'could not download latest patch list' => 'Die neueste Update-Liste konnte nicht heruntergeladen werden (keine Verbindung).', -'could not download latest updates' => 'Konnte die neuesten Updates nicht downloaden.', +'could not download latest updates' => 'Konnte die neuesten Updates nicht herunterladen.', 'could not download the available updates list' => 'Die Update-Liste konnte nicht heruntergeladen werden.', 'could not open available updates file' => 'Die vorhandene Update-Datei konnte nicht geöffnet werden.', 'could not open installed updates file' => 'Datei mit Update-Liste konnte nicht geöffnet werden', 'could not open update information file' => 'Datei mit den Update-Information konnte nicht geöffnet werden. Die Update-Datei ist beschädigt.', 'could not retrieve common name from certificate' => 'Der Gemeinsame Name (CN) konnte nicht aus dem Zertifikat gelesen werden.', 'country' => 'Land', -'cpu frequency per' => 'CPU Frequenz pro', -'cpu idle usage' => 'Leerlauf CPU Nutzung', -'cpu interrupt usage' => 'Interrupt CPU Nutzung', +'cpu frequency per' => 'CPU-Frequenz pro', +'cpu idle usage' => 'Leerlauf CPU-Nutzung', +'cpu interrupt usage' => 'Interrupt CPU-Nutzung', 'cpu iowait usage' => 'CPU wartet auf IO', -'cpu irq usage' => 'IRQ CPU Nutzung', -'cpu nice usage' => 'Nice CPU Nutzung', -'cpu steal usage' => 'Steal CPU Nutzung', -'cpu system usage' => 'System CPU Nutzung', +'cpu irq usage' => 'IRQ CPU-Nutzung', +'cpu nice usage' => 'Nice CPU-Nutzung', +'cpu steal usage' => 'Steal CPU-Nutzung', +'cpu system usage' => 'System CPU-Nutzung', 'cpu usage per' => 'CPU-Nutzung pro', -'cpu user usage' => 'Benutzer CPU Nutzung', +'cpu user usage' => 'Benutzer CPU-Nutzung', 'create' => 'Erzeuge', 'create mask' => 'UNIX Rechte für neue Dateien', 'create new backup' => 'Einen neuen Sicherungssatz anlegen', @@ -536,7 +576,7 @@ 'current aliases' => 'Aktuelle Alias-Adresse:', 'current class' => 'Aktuelle Klasse', 'current devices' => 'Schnittstellen', -'current dhcp leases on blue' => 'Aktuelle DHCP Zuordnungen auf Blau', +'current dhcp leases on blue' => 'Aktuelle DHCP-Zuordnungen auf Blau', 'current dynamic leases' => 'Aktuelle dynamische Zuordnungen', 'current fixed leases' => 'Aktuelle feste Zuordnungen', 'current hosts' => 'Aktuelle Hosts:', @@ -655,9 +695,9 @@ 'dns address done' => 'Die DNS-Server Adressen Einstellungen werden übernommen.', 'dns address recon' => 'Es wird neu Verbunden!', 'dns check failed' => 'Fehler bei DNS-Überprüfung', -'dns desc' => 'Wenn auf Schnittstelle red0 die IP-Adressinformationen über DHCP vom Provider kommen, werden automatisch die DNS Server Adressen des Providers gesetzt. Hier können Sie nun diese mit den eigenen DNS Server IP Adressen überschrieben.', +'dns desc' => 'Wenn auf Schnittstelle red0 die IP-Adressinformationen über DHCP vom Provider kommen, werden automatisch die DNS-Server-Adressen des Providers gesetzt. Hier können Sie nun diese mit den eigenen DNS-Server-IP-Adressen überschreiben.', 'dns error 0' => 'Die IP Adresse vom primären DNS Server ist nicht gültig, bitte überprüfen Sie Ihre Eingabe!
Die eingegebene sekundären DNS Server Adresse ist jedoch gültig.
', -'dns error 01' => 'Die eingegebene IP Adresse des primären wie auch des sekundären DNS Servers sind nicht gültig, bitte überprüfen Sie Ihre Eingaben!', +'dns error 01' => 'Die eingegebene IP Adresse des primären wie auch des sekundären DNS-Servers sind nicht gültig, bitte überprüfen Sie Ihre Eingaben!', 'dns error 1' => 'Die IP Adresse vom sekundären DNS Server ist nicht gültig, bitte überprüfen Sie Ihre Eingabe!
Die eingegebene primäre DNS Server Adresse ist jedoch gültig.', 'dns header' => 'DNS Server Adressen zuweisen nur mit DHCP an red0', 'dns list' => 'Liste von freien öffentlichen DNS Servern', @@ -666,14 +706,14 @@ 'dns new 1' => 'Neue sekundäre DNS Server IP:', 'dns proxy server' => 'DNS-Proxyserver', 'dns saved' => 'Erfolgreich gespeichert!', -'dns saved txt' => 'Die beiden eingegebenen DNS Server Adressen wurde erfolgreich gespeichert.
Um die Änderung wirksarm zu machen müssen Sie neustarten oder wiederverbinden!', +'dns saved txt' => 'Die beiden eingegebenen DNS-Server-Adressen wurde erfolgreich gespeichert.
Um die Änderung wirksam zu machen, müssen Sie neustarten oder wiederverbinden!', 'dns server' => 'DNS Server', 'dns title' => 'Domain Name System', 'do not log this port list' => 'Verwerfe diese Port-Liste kurz bevor sie protokolliert werden (reduziert Protokollgröße)', 'dod' => 'Dial-on-Demand-Modus', 'dod for dns' => 'Dial-on-Demand für DNS:', -'dod not compatible with ddns' => 'Dial on Demand ist nicht kompatibel mit dynamischen DNS Diensten', -'dod waiting' => 'Dial On Demand wartet', +'dod not compatible with ddns' => 'Dial-on-Demand ist nicht kompatibel mit dynamischen DNS-Diensten', +'dod waiting' => 'Dial-On-Demand wartet', 'domain' => 'Domain', 'domain master' => 'Domain Master', 'domain name' => 'Domainname', @@ -681,26 +721,26 @@ 'domain not set' => 'Domain nicht eingegeben.', 'donation' => 'Spenden', 'donation-link' => 'https://www.paypal.com/de_DE/DE/i/btn/btn_donateCC_LG.gif', -'donation-text' => 'IPFire wird von Freiwilligen in ihrer Freizeit betrieben und auch betreut. Um dieses Projekt am laufen zu halten entstehen uns natürlich auch Kosten, wenn sie uns unterstützen wollen würden wir uns über eine kleine Spende sehr freuen.', +'donation-text' => 'IPFire wird von Freiwilligen in ihrer Freizeit betrieben und auch betreut. Um dieses Projekt am Laufen zu halten, entstehen uns natürlich auch Kosten. Wenn Sie uns unterstützen wollen, würden wir uns über eine kleine Spende sehr freuen.', 'dos charset' => 'DOS Charset', 'down and up speed' => 'Geben Sie bitte hier ihre Download- bzw. Upload-Geschwindigkeit ein
und klicken Sie danach auf Speichern.', 'downlink speed' => 'Downlink-Geschwindigkeit (kBit/sek)', 'downlink std class' => 'Downloadstandardklasse', 'download' => 'herunterladen', -'download ca certificate' => 'CA Zertifikat herunterladen', +'download ca certificate' => 'CA-Zertifikat herunterladen', 'download certificate' => 'Zertifikate herunterladen', -'download host certificate' => 'Host Zertifikat herunterladen', +'download host certificate' => 'Host-Zertifikat herunterladen', 'download new ruleset' => 'Neuen Regelsatz herunterladen', -'download pkcs12 file' => 'PKCS12 Datei herunterladen', -'download root certificate' => 'Root Zertifikat herunterladen', +'download pkcs12 file' => 'PKCS12-Datei herunterladen', +'download root certificate' => 'Root-Zertifikat herunterladen', 'dpd action' => 'Aktion für Dead Peer Detection', 'driver' => 'Treiber', -'drop input' => 'Verworfene Input Pakete loggen', +'drop input' => 'Verworfene Input-Pakete loggen', 'drop newnotsyn' => 'Verworfene New Not Syn Pakete loggen', -'drop output' => 'Verworfene Output Pakete loggen', -'drop portscan' => 'Verworfene Portscan Pakete loggen', -'drop proxy' => 'Alle Pakete verwerfen die nicht direkt an den Proxy gerichtet sind', -'drop samba' => 'Alle Microsoft Pakete verwerfen, Ports 135,137,138,139,445,1025', +'drop output' => 'Verworfene Output-Pakete loggen', +'drop portscan' => 'Verworfene Portscan-Pakete loggen', +'drop proxy' => 'Alle Pakete verwerfen, die nicht direkt an den Proxy gerichtet sind', +'drop samba' => 'Alle Microsoft-Pakete verwerfen, Ports 135,137,138,139,445,1025', 'drop wirelessforward' => 'Verworfene Wireless Forward Pakete loggen', 'drop wirelessinput' => 'Verworfene Wireless Input Pakete loggen', 'dst port' => 'Ziel-Port', @@ -713,7 +753,7 @@ 'dyn dns source choice' => 'Dynamic DNS Anbieter werden eine IP-Adresse für diesen IPFire erhalten von:', 'dynamic dns' => 'Dynamischer DNS', 'dynamic dns client' => 'Dynamischer DNS-Client', -'e-mail address too long' => 'E-mail Adresse ist zu lang; sie sollte nicht länger als 40 Zeichen sein.', +'e-mail address too long' => 'E-mail-Adresse ist zu lang; sie sollte nicht länger als 40 Zeichen sein.', 'eciadsl help' => 'Um ein ECI PCI-Modem nutzen zu können, müssen Sie zuerst die Treiber-Software zur IPFire-Box hochladen. Laden Sie zuerst den Tarball von ECIADSL herunter und laden Sie dann die Datei synch.bin über das untenstehende Formblatt zu IPFire hoch.', 'eciadsl upload' => 'Hochladen der ECI ADSL Datei synch.bin', 'edit' => 'Bearbeiten', @@ -730,8 +770,8 @@ 'edit share' => 'Freigabe bearbeiten', 'editor' => 'Editor', 'eg' => 'z.B.:', -'email server can not be empty' => 'Email Server darf nicht leer sein', -'emailreportlevel' => 'Email Reportlevel', +'email server can not be empty' => 'Email-Server darf nicht leer sein', +'emailreportlevel' => 'Email-Reportlevel', 'empty' => 'Dieses Feld kann leer bleiben', 'empty profile' => 'Unbenannt', 'enable ignore filter' => '"Ignorieren"-Filter ein', @@ -743,8 +783,8 @@ 'encapsulation' => 'Encapsulation', 'encrypted' => 'Verschlüsselt', 'end address' => 'Endadresse:', -'enter ack class' => 'Legen sie hier die ACK-Klasse fest
und klicken Sie danach auf Speichern.', -'enter data' => 'Geben sie die Daten ein
und klicken Sie danach auf Speichern.', +'enter ack class' => 'Legen Sie hier die ACK-Klasse fest
und klicken Sie danach auf Speichern.', +'enter data' => 'Geben Sie die Daten ein
und klicken Sie danach auf Speichern.', 'err bk 1' => 'Fehler beim Erzeugen des Archivs', 'err bk 10 password' => 'Fehler beim Datensicherungs-Passwort', 'err bk 2 key' => 'Fehler beim Erzeugen der Schlüsseldatei', @@ -779,10 +819,10 @@ 'external access rule removed' => ' Regel für externen Zugang entfernt; Starte Zugangskontroller neu', 'external aliases configuration' => 'Externe Alias-Konfiguration', 'extrahd' => 'ExtraHD', -'extrahd because there is already a device mounted' => ' mounten, weil bereits ein Geräte gemountet ist', +'extrahd because there is already a device mounted' => ' mounten, weil bereits ein Gerät gemountet ist', 'extrahd cant umount' => 'Konnte', 'extrahd detected drives' => 'gefundene Laufwerke', -'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, müssen Sie zuerst den Treiber laden oder ggf. auch nach installieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, müssen diese erst angelegt werden.', +'extrahd install or load driver' => 'Wenn Ihre Festplatte nicht angezeigt wird, müssen Sie zuerst den Treiber laden oder ggf. auch nachinstallieren. Wenn diese jedoch angezeigt wird, aber keine Partitionen zu sehen sind, müssen diese erst angelegt werden.', 'extrahd maybe the device is in use' => 'nicht mounten. Vielleicht wird das Gerät bereits verwendet', 'extrahd to' => 'nicht nach', 'extrahd to root' => 'nicht nach root mounten', @@ -808,13 +848,13 @@ 'fireinfo please enable' => 'Bitte schalten Sie den Fireinfo-Dienst ein.', 'fireinfo settings' => 'Fireinfo-Einstellungen', 'fireinfo system version' => 'Systemversionen', -'fireinfo why descr1' => 'Es ist sehr wichtig für die Entwicklung von IPFire, das dieser Dienst', +'fireinfo why descr1' => 'Es ist sehr wichtig für die Entwicklung von IPFire, dass dieser Dienst', 'fireinfo why descr2' => 'eingeschaltet ist. ', 'fireinfo why enable' => 'Warum sollte man Fireinfo einschalten?', 'fireinfo why read more' => 'Mehr über die Gründe.', 'fireinfo your profile id' => 'Profil-ID', 'firewall' => 'Firewall', -'firewall graphs' => 'Firewall Diagramme', +'firewall graphs' => 'Firewall-Diagramme', 'firewall hits' => 'Gesamtanzahl der Firewall-Treffer für', 'firewall hits per' => 'Firewalltreffer pro', 'firewall log' => 'Firewall-Protokoll', @@ -829,7 +869,7 @@ 'fixed ip lease modified' => 'Feste IP-Zuordnung geändert', 'fixed ip lease removed' => 'Feste IP-Zuordnung gelöscht', 'force update' => 'Aktualisierung erzwingen', -'force user' => 'Standartbenutzer für das UNIX Dateisystem', +'force user' => 'Standardbenutzer für das UNIX Dateisystem', 'forwarding rule added' => 'Weiterleitungsregel hinzugefügt. Starte Weiterleitung neu', 'forwarding rule removed' => 'Weiterleitungsregel entfernt. Starte Weiterleitung neu', 'forwarding rule updated' => 'Weiterleitungsregel aktualisiert; starte Weiterleitung neu', @@ -846,25 +886,25 @@ 'from email server' => 'Von Email Server', 'from email user' => 'Von Email Benutzer', 'from warn email bad' => 'Von Email Adresse ist nicht gültig', -'fw blue' => 'Firewall Optionen für das Blaue Interface', -'fw logging' => 'Firewall Logging', +'fw blue' => 'Firewall-Optionen für das Blaue Interface', +'fw logging' => 'Firewall-Logging', 'gateway' => 'Gateway', 'gateway ip' => 'Gateway-IP', 'gen static key' => 'Statischen Schlüssel erzeugen', -'generate' => 'Root/Host Zertifikate generieren', +'generate' => 'Root/Host-Zertifikate generieren', 'generate a certificate' => 'Erzeuge ein Zertifikat:', 'generate iso' => 'ISO erstellen', -'generate root/host certificates' => 'Erzeuge Root/Host Zertifikate', +'generate root/host certificates' => 'Erzeuge Root/Host-Zertifikate', 'generate tripwire keys and init' => 'Tripwire Initalisierung', 'generatekeys' => 'Neue Schlüssel erzeugen', 'generatepolicy' => 'Neue Policy erstellen', 'generatereport' => 'Neuen Report erstellen', -'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Die Erzeugung der Root und Host Zertifikate kann lange Zeit dauern. Auf älterer Hardware kann es mehrere Minuten lang dauern. Bitte haben Sie etwas Geduld.', +'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Die Erzeugung der Root- und Host-Zertifikate kann lange Zeit dauern. Auf älterer Hardware kann es mehrere Minuten lang dauern. Bitte haben Sie etwas Geduld.', 'genkey' => 'PSK erzeugen', 'genre' => 'Genre', 'global settings' => 'Globale Einstellungen', 'gpl i accept these terms and conditions' => 'Ich akzeptiere diese Bedingungen und Konditionen', -'gpl license agreement' => 'Lizenz Vereinbarung', +'gpl license agreement' => 'Lizenz-Vereinbarung', 'gpl please read carefully the general public license and accept it below' => 'Bitte die General Public License genau lesen und diese unten akzeptieren.', 'gpl unofficial translation of the general public license v3' => 'Inoffizielle Übersetzung der General Public License v3', 'graph' => 'Diagramm', @@ -894,13 +934,13 @@ 'holdoff' => 'Holdoff-Zeit in (Sekunden)', 'host' => 'Host', 'host allow' => 'Liste der Zugriffsberechtigten', -'host certificate' => 'Host Zertifikat', +'host certificate' => 'Host-Zertifikat', 'host configuration' => 'Host-Konfiguration', 'host deny' => 'Liste der nicht Zugriffsberechtigten', 'host ip' => 'Host IP-Adresse', 'host to net vpn' => 'Host-zu-Netz Virtual Private Network (RoadWarrior)', 'hostname' => 'Hostname', -'hostname and domain already in use' => 'Hostname und Domain sind werden bereits benutzt.', +'hostname and domain already in use' => 'Hostname und Domain werden bereits benutzt.', 'hostname cant be empty' => 'Hostname darf nicht leer bleiben.', 'hostname not set' => 'Hostname nicht eingegeben.', 'hosts config added' => 'Hosts-Konfiguration hinzugefügt', @@ -918,10 +958,10 @@ 'idle timeout not set' => 'Leerlauf-Wartezeit nicht angegeben.', 'ids log viewer' => 'Ansicht IDS-Log', 'ids logs' => 'IDS-Logdateien', -'ids preprocessor' => 'IDS Präprozessor', +'ids preprocessor' => 'IDS-Präprozessor', 'ids rules license' => 'Um Sourcefire VRT Zertifizierte Regeln zu nutzen, müssen Sie sich unter', 'ids rules license1' => ' registrieren.', -'ids rules license2' => 'Bestätigen Sie die Lizenz, aktivieren Sie Ihren Account in dem Sie auf den Link, den Sie per Mail erhalten haben klicken. Gehen Sie dann zu', +'ids rules license2' => 'Bestätigen Sie die Lizenz; aktivieren Sie Ihren Account, indem Sie auf den Link, den Sie per Mail erhalten haben, klicken. Gehen Sie dann zu', 'ids rules license3' => 'klicken Sie den "Generate code"-Knopf und kopieren Sie den 40-Zeichen Oinkcode in das untere Feld.', 'ids rules update' => 'Snort Regeln Update', 'iface' => 'Iface', @@ -1246,7 +1286,7 @@ 'no cfg upload' => 'Keine Daten wurden hochgeladen', 'no dhcp lease' => 'Eine DHCP-Zuordnung konnte nicht empfangen werden', 'no eciadsl synch.bin file' => 'Keine ECI ADSL Datei synch.bin vorhanden. Bitte hochladen.', -'no filter pass' => 'Legen sie hier die Standardklassen fest durch die nicht-gefilterte Pakete gehen.', +'no filter pass' => 'Legen Sie hier die Standardklassen fest durch die nicht-gefilterte Pakete gehen.', 'no fritzdsl driver' => 'Kein Fritz!DSL-Treiber vorhanden. Bitte hochladen.', 'no information available' => 'Keine Informationen verfügbar.', 'no log selected' => 'kein Log ausgewählt', @@ -1345,23 +1385,30 @@ 'ovpn' => 'OpenVPN', 'ovpn con stat' => 'OpenVPN Verbindungs-Statistik', 'ovpn config' => 'OVPN-Konfiguration', -'ovpn device' => 'OpenVPN Gerät', +'ovpn device' => 'OpenVPN-Gerät', 'ovpn dl' => 'OVPN-Konfiguration downloaden', 'ovpn errmsg green already pushed' => 'Route für grünes Netzwerk wird immer gesetzt', 'ovpn errmsg invalid ip or mask' => 'Ungültige Netzwerk-Adresse oder Subnetzmaske', 'ovpn log' => 'OVPN-Log', +'ovpn mtu-disc' => 'Path MTU Discovery', +'ovpn mtu-disc and mtu not 1500' => 'Path MTU Discovery benötigt eine MTU von 1500.', +'ovpn mtu-disc maybe' => 'Optional', +'ovpn mtu-disc no' => 'Niemals', +'ovpn mtu-disc off' => 'Deaktiviert', +'ovpn mtu-disc with mssfix or fragment' => 'Path MTU Discovery kann nicht gemeinsam mit mssfix oder fragment verwendet werden.', +'ovpn mtu-disc yes' => 'Forciert', 'ovpn on blue' => 'OpenVPN auf BLAU', 'ovpn on orange' => 'OpenVPN auf ORANGE', 'ovpn on red' => 'OpenVPN auf ROT', -'ovpn routes push' => 'Routen (eine pro Zeile)', +'ovpn routes push' => 'Routen (eine pro Zeile) z.b. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push Optionen', -'ovpn server status' => 'OpenVPN Server Status', -'ovpn subnet' => 'OpenVPN Subnetz (z.B. 10.0.10.0/255.255.255.0)', -'ovpn subnet is invalid' => 'Das OpenVPN Subnetz ist ungültig.', -'ovpn subnet overlap' => 'OpenVPN Subnetz überschneidet sich mit ', +'ovpn server status' => 'OpenVPN-Server-Status', +'ovpn subnet' => 'OpenVPN-Subnetz (z.B. 10.0.10.0/255.255.255.0)', +'ovpn subnet is invalid' => 'Das OpenVPN-Subnetz ist ungültig.', +'ovpn subnet overlap' => 'OpenVPNSubnetz überschneidet sich mit ', 'ovpn_fastio' => 'Fast-IO', 'ovpn_fragment' => 'Fragmentgrösse', -'ovpn_mssfix' => 'MSSFIX Grösse', +'ovpn_mssfix' => 'MSSFIX-Grösse', 'ovpn_mtudisc' => 'MTU-Discovery', 'ovpn_processprio' => 'Prozesspriorität', 'ovpn_processprioD' => 'Tief', @@ -1391,14 +1438,14 @@ 'pakfire last package update' => 'Letztes Paketlisten Update ist', 'pakfire last serverlist update' => 'Letztes Serverlisten Update ist', 'pakfire last update' => 'Letzes Update ist', -'pakfire possible dependency' => ' Möglicherweise haben diese Pakete Abhängigkeiten, d.h. andere Pakete müssen zusätzlich installiert werden. Dazu sehen sie unten eine Liste.', +'pakfire possible dependency' => ' Möglicherweise haben diese Pakete Abhängigkeiten, d.h. andere Pakete müssen zusätzlich installiert werden. Dazu sehen Sie unten eine Liste.', 'pakfire register' => 'Registrierung am Pakfire-Server:', 'pakfire system state' => 'System Status', 'pakfire uninstall description' => 'Wählen Sie ein oder mehrere Pakete zur Deinstallation aus und drücken Sie auf das minus Symbol.', 'pakfire uninstall package' => 'Sie möchten folgende Pakete deinstallieren: ', 'pakfire update daily' => 'Täglich nach Updates suchen:', 'pakfire updates' => 'Zur Verfügung stehende Updates:', -'pakfire working' => 'Pakfire führt gerade eine Aufgabe aus... Bitte warten sie, bis diese erfolgreich beendet wurde.', +'pakfire working' => 'Pakfire führt gerade eine Aufgabe aus... Bitte warten Sie, bis diese erfolgreich beendet wurde.', 'pap or chap' => 'PAP oder CHAP', 'parentclass' => 'Parentklasse', 'parentclass add' => 'Parentklasse hinzufügen', @@ -1468,9 +1515,15 @@ 'proxy no proxy local' => 'Lokalen Proxy auf blauen/grünen Netzwerken verhindern', 'proxy port' => 'Proxy-Port', 'proxy reconfigure' => 'Speichern und Laden', +'proxy reports' => 'Proxyberichte', +'proxy reports daily' => 'Tägliche Berichte', +'proxy reports monthly' => 'Monatliche Berichte', +'proxy reports today' => 'Heute', +'proxy reports weekly' => 'Wöchentliche Berichte', 'psk' => 'PSK', 'pulse' => 'Puls', 'pulse dial' => 'Pulswahl:', +'qos enter bandwidths' => 'Bitte geben Sie ihre Downstream- und Upstream-Bandbreite an!', 'qos graphs' => 'Qos Diagramme', 'qos warning' => 'Die Regel muss wieder gespeichert werden, ansonsten wird sie verworfen!', 'quick playlist' => 'Quick Playlist', @@ -1504,7 +1557,7 @@ 'remote logging' => 'Remote logging', 'remote subnet' => 'Remote Subnetz:', 'remote subnet is invalid' => 'Remote Subnetz ist ungültig.', -'removable device advice' => 'Stecken Sie ein Gerät an, aktualisieren Sie und binden Sie es vor der Benutzung ein. Melden Sie das Gerät vorm Entfernen ab.', +'removable device advice' => 'Stecken Sie ein Gerät an, aktualisieren Sie und binden Sie es vor der Benutzung ein. Melden Sie das Gerät vorm Entfernen ab.', 'remove' => 'Löschen', 'remove ca certificate' => 'CA-Zertifikat entfernen', 'remove x509' => 'Lösche x509', @@ -1512,17 +1565,17 @@ 'reportfile' => 'Reportfile', 'reportlevel' => 'Report Level', 'request' => 'Abfrage', -'requested data' => '1. Verbindungs Einstellungen', +'requested data' => '1. Verbindungs-Einstellungen', 'reserved dst port' => 'Dieser Zielport ist für die ausschließliche Benutzung durch IPFire reserviert:', 'reserved src port' => 'Dieser Quellport ist für die ausschließliche Benutzung durch IPFire reserviert:', -'reset' => 'Zurück setzen', +'reset' => 'Zurücksetzen', 'reset shares' => 'Freigaben zurücksetzen', 'resetglobals' => 'Globale Einstellungen zurücksetzen', -'resetpolicy' => 'Policy zurück setzen', +'resetpolicy' => 'Policy zurücksetzen', 'resetshares' => 'Shares zurücksetzen?', 'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'Das Zurücksetzen der VPN-Konfiguration wird die Root-CA, die Host-Zertifikate und alle weiteren Zertifikate und alle zertifikatsbasierten Verbindungen entfernen', 'restart' => 'Neustart', -'restart ovpn server' => 'OpenVPN Server neu starten', +'restart ovpn server' => 'OpenVPN-Server neu starten', 'restore' => 'Wiederherstellen', 'restore defaults' => 'Voreinstellungen wiederherstellen', 'restore hardware settings' => 'Hardware-Einstellungen wiederherstellen', @@ -1568,6 +1621,7 @@ 'september' => 'September', 'serial' => 'serielle', 'server reserved' => 'The connection name server is reserved and not allowed', +'server restart' => 'Änderungen können nicht gespeichert werden, solange der OpenVPN-Server läuft.', 'server string' => 'Server String', 'service' => 'Dienst', 'service added' => 'Benutzerdefinierter Netzwerkdienst wurde hinzugefügt', @@ -1579,7 +1633,7 @@ 'services settings' => 'Firewall - Diensteeinstellungen', 'set' => 'gesetzt', 'set time now' => 'Stelle jetzt die Uhrzeit ein', -'set time now help' => 'Um ein Synchronisationsereignis zu jeder Zeit in die Warteschlange zu stellen, drücken Sie die Stelle jetzt die Uhrzeit ein Schaltfläche. Bitte beachten Sie, daß Sie 5 Minuten, oder länger, warten müssen, bevor ein Sync-Ereignis eintritt.', +'set time now help' => 'Um ein Synchronisationsereignis zu jeder Zeit in die Warteschlange zu stellen, drücken Sie die Stelle jetzt die Uhrzeit ein Schaltfläche. Bitte beachten Sie, daß Sie 5 Minuten oder länger warten müssen, bevor ein Sync-Ereignis eintritt.', 'settings' => 'Konfiguration', 'shaping list options' => 'Datenflußkontrolldienste', 'shared' => 'shared', @@ -1615,7 +1669,7 @@ 'smtphost' => 'Smtp Host', 'smtpport' => 'Smtp Port', 'snort hits' => 'Gesamtanzahl der aktivierten Intrusion-Regeln für', -'snort working' => 'Snort führt gerade eine Aufgabe aus... Bitte warten sie, bis diese erfolgreich beendet wurde.', +'snort working' => 'Snort führt gerade eine Aufgabe aus... Bitte warten Sie, bis diese erfolgreich beendet wurde.', 'socket options' => 'Socket Options', 'sort ascending' => 'Sortiere aufsteigend', 'sort descending' => 'Sortiere absteigend', @@ -1669,7 +1723,7 @@ 'standard login script' => 'Standard-Anmeldeskript', 'start' => 'Starten', 'start address' => 'Anfangsadresse:', -'start ovpn server' => 'Starte OpenVPN Server', +'start ovpn server' => 'Starte OpenVPN-Server', 'state or province' => 'Bundesstat oder Provinz', 'static ip' => 'Statisch IP', 'static routes' => 'Statische Routen', @@ -1678,7 +1732,7 @@ 'status ovpn' => 'OpenVPN', 'std classes' => 'Standardklassen', 'stop' => 'Stop', -'stop ovpn server' => 'Stoppe OpenVPN Server', +'stop ovpn server' => 'Stoppe OpenVPN-Server', 'stopped' => 'ANGEHALTEN', 'subject' => 'Betreff', 'subject test' => 'Testemail', @@ -1699,7 +1753,7 @@ 'system status information' => 'System-Statusinformationen', 'telephone not set' => 'Telefonnummer nicht angegeben.', 'template' => 'Vorlage', -'template warning' => 'Zur Einrichtung von QoS stehen Ihnen 2 Möglichkeiten zur Auswahl. Erstens Sie wählen speichern und erstellen Klassen und Regeln nach Ihren Wünschen, oder Sie wählen Vorlage, dann werden die Klassen und Regeln durch ein Template generiert.', +'template warning' => 'Zur Einrichtung von QoS stehen Ihnen 2 Möglichkeiten zur Auswahl. Entweder Sie wählen speichern und erstellen Klassen und Regeln nach Ihren Wünschen, oder Sie wählen Vorlage, dann werden die Klassen und Regeln durch ein Template generiert.', 'test' => 'test', 'test email could not be sent' => 'Könnte Testemail nicht senden', 'test email was sent' => 'Testemail wurde erfolgreich versand', @@ -1759,9 +1813,9 @@ 'tripwire cronjob' => 'Tripwire Cronjob', 'tripwire functions' => 'Tripwire Funktionen', 'tripwire reports' => 'Tripwire Reports', -'tripwireoperating' => 'Der Prozess wurde gestartet. Dies kann einige Minuten in Anspruch nehmen, bitte haben Sie Geduld, das Fenster wird sich automatisch aktualisieren sobald der Vorgang beendet ist.', -'tripwirewarningdatabase' => 'ACHTUNG - Ihre Datenbank wird auf den Stand des letzten Reports gesetzt, bitte versichern sie sich, dass keine unautorisiertend Änderungen vorgenommen wurden. Hierfür wird der Local-Key benötigt.', -'tripwirewarningkeys' => 'ACHTUNG - Sie löschen hiermit ihre bestehenden Schlüssel, ihre Konfiguration und Datenbank und legen Alles neu an.', +'tripwireoperating' => 'Der Prozess wurde gestartet. Dies kann einige Minuten in Anspruch nehmen, bitte haben Sie Geduld. Das Fenster wird sich automatisch aktualisieren, sobald der Vorgang beendet ist.', +'tripwirewarningdatabase' => 'ACHTUNG - Ihre Datenbank wird auf den Stand des letzten Reports gesetzt, bitte versichern Sie sich, dass keine unautorisierten Änderungen vorgenommen wurden. Hierfür wird der Local-Key benötigt.', +'tripwirewarningkeys' => 'ACHTUNG - Sie löschen hiermit ihre bestehenden Schlüssel, ihre Konfiguration und Datenbank und legen alles neu an.', 'tripwirewarningpolicy' => 'ACHTUNG - Ihr Policy wird neu erzeugt, anschließen wird die Datenbank neu initialisiert. Hierfür wird der Site-Key und Local-Key benötigt.', 'tuesday' => 'Dienstag', 'type' => 'Typ', @@ -1769,12 +1823,12 @@ 'umount removable media before to unplug' => 'Wechselmedien vor dem Entfernen unbedingt abmelden', 'unable to alter profiles while red is active' => 'Profile können nicht geändert werden, solange ROT aktiv ist.', 'unable to contact' => 'Kann nicht erreicht werden', -'unencrypted' => 'Nichtverschlüsselt', +'unencrypted' => 'Nicht verschlüsselt', 'uninstall' => 'Deinstallieren', -'unix charset' => 'UNIX Charset', -'unix group' => ' UNIX Benutzergruppe', +'unix charset' => 'UNIX-Charset', +'unix group' => ' UNIX-Benutzergruppe', 'unix password sync' => 'Unix Password Sync', -'unix shell' => 'UNIX Shell', +'unix shell' => 'UNIX-Shell', 'unknown' => 'Unbekannt', 'unnamed' => 'Unbenannt', 'update' => 'Aktualisieren', @@ -1802,7 +1856,7 @@ 'updxlrtr condition outdated' => 'Veraltet', 'updxlrtr condition suspended' => 'Ausgesetzt', 'updxlrtr condition unknown' => 'Unbekannt', -'updxlrtr configuration' => 'Update-Accelerator Konfiguration', +'updxlrtr configuration' => 'Update-Accelerator-Konfiguration', 'updxlrtr current downloads' => 'Dateien beim Download in den lokalen Cache', 'updxlrtr current files' => 'Aktuelle Dateien im lokalen Cache', 'updxlrtr daily' => 'täglich', @@ -1851,7 +1905,7 @@ 'updxlrtr update accelerator' => 'Update-Accelerator', 'updxlrtr update information' => 'Eine aktualisierte Version steht zum Download bereit. Besuchen Sie http://update-accelerator.advproxy.net für weitere Informationen.', 'updxlrtr update notification' => 'Update-Benachrichtigung!', -'updxlrtr web proxy service required' => 'Der Web-Proxy muss aktiviert sein um den Update-Accelerator zu verwenden', +'updxlrtr web proxy service required' => 'Der Web-Proxy muss aktiviert sein, um den Update-Accelerator zu verwenden', 'updxlrtr week' => 'einer Woche', 'updxlrtr weekly' => 'wöchentlich', 'updxlrtr year' => 'einem Jahr', @@ -1861,10 +1915,10 @@ 'upload' => 'Hochladen', 'upload a certificate' => 'Ein Zertifikat hochladen:', 'upload a certificate request' => 'Eine Zertifikatsanfrage hochladen:', -'upload ca certificate' => 'CA Zertifikat hochladen', +'upload ca certificate' => 'CA-Zertifikat hochladen', 'upload file' => 'Datei zum hochladen', 'upload new ruleset' => 'Neuen Regelsatz hochladen', -'upload p12 file' => 'PKCS12 Datei hochladen', +'upload p12 file' => 'PKCS12-Datei hochladen', 'upload static key' => 'Statischen Schlüssel hochladen', 'upload successful' => 'Erfolgreich hochgeladen.', 'upload synch.bin' => 'Synch.bin hochladen', @@ -1889,17 +1943,17 @@ 'urlfilter automatic blacklist update' => 'Automatisches Blacklist-Update', 'urlfilter automatic update schedule' => 'Zeitplan für Automatische Updates', 'urlfilter back to main page' => 'Zurück zur Hauptseite', -'urlfilter background image' => 'Urlfilter Hintergrundbild', -'urlfilter background text' => 'Um ein angepasstes Hintergrundbild für die Sperrseite zu verwenden kann hier eine .jpg-Datei hochgeladen werden', +'urlfilter background image' => 'Urlfilter-Hintergrundbild', +'urlfilter background text' => 'Um ein angepasstes Hintergrundbild für die Sperrseite zu verwenden, kann hier eine .jpg-Datei hochgeladen werden', 'urlfilter backup' => 'Sicherungsdatei erstellen', 'urlfilter backup error' => 'Sicherungsdatei kann nicht erstellt werden', -'urlfilter backup settings' => 'Sicherung der URL-Filter Einstellungen', +'urlfilter backup settings' => 'Sicherung der URL-Filter-Einstellungen', 'urlfilter banned clients' => 'Gesperrte IP-Adressen', 'urlfilter blacklist age 1' => 'Letztes erfolgreiches Blacklist-Update war vor', 'urlfilter blacklist age 2' => 'Tagen', -'urlfilter blacklist category name' => 'Blacklist Kategoriename', +'urlfilter blacklist category name' => 'Blacklist-Kategoriename', 'urlfilter blacklist editor' => 'Blacklist-Editor', -'urlfilter blacklist editor info' => 'Erstellen und editieren von eigenen Blacklistdateien', +'urlfilter blacklist editor info' => 'Erstellen und Editieren von eigenen Blacklistdateien', 'urlfilter blacklist name' => 'Name der Blacklist', 'urlfilter blacklist update' => 'Aktualisierung der Blacklist', 'urlfilter block' => 'Sperren', @@ -1918,7 +1972,7 @@ 'urlfilter category all' => 'alle', 'urlfilter category data error' => 'Blacklist ist leer', 'urlfilter category log' => 'Protokoll in Kategorien aufteilen', -'urlfilter category name error' => 'Blacklist Kategoriename erforderlich', +'urlfilter category name error' => 'Blacklist-Kategoriename erforderlich', 'urlfilter client' => 'Client', 'urlfilter configuration' => 'URL-Filter Konfiguration', 'urlfilter constraint definition' => 'Definition', @@ -1966,13 +2020,13 @@ 'urlfilter from' => 'Von', 'urlfilter hourly' => 'stündlich', 'urlfilter import blacklist' => 'Blacklist importieren', -'urlfilter import text' => 'Um eine vorher gespeicherte Blacklist-Editor Datei zu installieren kann hier die .tar.gz-Datei hochgeladen werden', +'urlfilter import text' => 'Um eine vorher gespeicherte Blacklist-Editor Datei zu installieren, kann hier die .tar.gz-Datei hochgeladen werden', 'urlfilter install blacklist' => 'Blacklist installieren', 'urlfilter install information' => 'Die neue Blacklist wird automatisch in vorgefertigte Datenbanken übersetzt. Abhängig von der Größe der Blacklist kann dies einige Minuten dauern.', 'urlfilter invalid content' => 'Datei ist keine squidGuard-kompatible Blacklist', -'urlfilter invalid import file' => 'Datei ist keine gültige URL-Filter Blacklist-Editor Datei', +'urlfilter invalid import file' => 'Datei ist keine gültige URL-Filter-Blacklist-Editor-Datei', 'urlfilter invalid ip or mask error' => 'Ungültige IP-Adresse oder Subnetzmaske', -'urlfilter invalid restore file' => 'Datei ist keine gültige URL-Filter Sicherungsdatei', +'urlfilter invalid restore file' => 'Datei ist keine gültige URL-Filter-Sicherungsdatei', 'urlfilter invalid user error' => 'Ungültiger Benutzername', 'urlfilter load blacklist' => 'Blacklist laden', 'urlfilter local file redirection' => 'Lokale Dateiumleitung', @@ -1980,7 +2034,7 @@ 'urlfilter log summary' => 'Gesamtanzahl der URL-Filter-Treffer für', 'urlfilter log viewer' => 'Ansicht URL-Filter-Log', 'urlfilter logs' => 'URL-Filter-Logdateien', -'urlfilter maintenance' => 'URL-Filter Wartung', +'urlfilter maintenance' => 'URL-Filter-Wartung', 'urlfilter manage local file repository' => 'Lokale Dateiablage verwalten', 'urlfilter manage repository' => 'Ablage verwalten', 'urlfilter minutes' => 'Minuten', @@ -2005,13 +2059,13 @@ 'urlfilter repository information' => 'Downloadanforderungen für diese Dateien werden von der ursprünglichen Quelle auf die lokale Dateiablage umgeleitet.', 'urlfilter reset' => 'Zurücksetzen', 'urlfilter restart' => 'URL-Filter neu starten', -'urlfilter restart message' => 'Um die geänderten Regeln zu aktivieren muss der URL-Filter neu gestartet werden', +'urlfilter restart message' => 'Um die geänderten Regeln zu aktivieren, muss der URL-Filter neu gestartet werden', 'urlfilter restart notification' => 'Geänderte Regeln aktivieren', 'urlfilter restore' => 'Sicherungsdatei importieren', 'urlfilter restore results' => 'Ergebnisse der Wiederherstellung', -'urlfilter restore settings' => 'Wiederherstellung der URL-Filter Einstellungen', -'urlfilter restore success' => 'Die URL-Filter Konfiguration wurde wieder hergestellt. Um die neuen Einstellungen zu aktivieren muss der URL-Filter neu gestartet werden.', -'urlfilter restore text' => 'Um eine vorher gesicherte Konfiguration wieder herzustellen kann hier eine .tar.gz-Sicherungsdatei hochgeladen werden', +'urlfilter restore settings' => 'Wiederherstellung der URL-Filter-Einstellungen', +'urlfilter restore success' => 'Die URL-Filter-Konfiguration wurde wiederhergestellt. Um die neuen Einstellungen zu aktivieren, muss der URL-Filter neu gestartet werden.', +'urlfilter restore text' => 'Um eine vorher gesicherte Konfiguration wieder herzustellen, kann hier eine .tar.gz-Sicherungsdatei hochgeladen werden', 'urlfilter safesearch' => 'Aktiviere SafeSearch', 'urlfilter sat' => 'S', 'urlfilter saturday' => 'Sam', @@ -2046,24 +2100,24 @@ 'urlfilter update information' => 'Eine aktualisierte Version steht zum Download bereit. Besuchen Sie http://www.urlfilter.net für weitere Informationen.', 'urlfilter update notification' => 'Update-Benachrichtigung!', 'urlfilter update now' => 'Jetzt updaten', -'urlfilter update results' => 'Blacklist Aktualisierungsergebnisse', +'urlfilter update results' => 'Blacklist-Aktualisierungsergebnisse', 'urlfilter update rule' => 'Aktualisieren', 'urlfilter upload background' => 'Bild hochladen', 'urlfilter upload blacklist' => 'Blacklist hochladen', 'urlfilter upload file' => 'Datei hochladen', 'urlfilter upload file information 1' => 'Hinweis', 'urlfilter upload file information 2' => 'Der URL-Filter muss neu gestartet werden, damit die geänderte Dateiablage wirksam wird.', -'urlfilter upload file text' => 'Um eine Datei der lokalen Dateiablage hinzuzufügen kann die Datei hier hochgeladen werden', +'urlfilter upload file text' => 'Um eine Datei der lokalen Dateiablage hinzuzufügen, kann die Datei hier hochgeladen werden', 'urlfilter upload information' => 'Die neue Blacklist wird automatisch in vorgefertigte Datenbanken übersetzt. Abhängig von der Größe der Blacklist kann dies einige Minuten dauern. Der URL-Filter sollte erst nach Abschluss der Konvertierung neu gestartet werden.', 'urlfilter upload success' => 'Blacklist erfolgreich hochgeladen.', -'urlfilter upload text' => 'Um eine aktualisierte Blacklist zu installieren kann hier die .tar.gz-Datei hochgeladen werden', +'urlfilter upload text' => 'Um eine aktualisierte Blacklist zu installieren, kann hier die .tar.gz-Datei hochgeladen werden', 'urlfilter url filter' => 'URL-Filter', 'urlfilter urlfilter blacklist editor' => 'URL-Filter Blacklist-Editor', 'urlfilter urls' => 'URLs (eine pro Zeile)', 'urlfilter user time quota' => 'Zeitkontingent (in Minuten)', 'urlfilter username' => 'Benutzername', 'urlfilter username log' => 'Protokolliere Benutzername', -'urlfilter web proxy service required' => 'Um der URL-Filter zu verwenden muss der Web-Proxy-Dienst aktiviert sein', +'urlfilter web proxy service required' => 'Um den URL-Filter zu verwenden, muss der Web-Proxy-Dienst aktiviert sein', 'urlfilter wed' => 'M', 'urlfilter wednesday' => 'Mit', 'urlfilter weekday error' => 'Es muss mindestens ein Tag ausgewählt werden', @@ -2089,8 +2143,8 @@ 'username' => 'Benutzername:', 'username not set' => 'Benutzername nicht angegeben.', 'users department' => 'Abteilung des Benutzers', -'users email' => 'E-mail Adresse des Benutzers', -'users fullname or system hostname' => 'Voller Name oder System Hostname des Benutzers', +'users email' => 'E-mail-Adresse des Benutzers', +'users fullname or system hostname' => 'Voller Name oder System-Hostname des Benutzers', 'valid root certificate already exists' => 'Ein gültiges Root-Zertifikat existiert bereits.', 'valid till' => 'Gültig bis', 'vci number' => 'VCI-Nummer:', @@ -2110,7 +2164,7 @@ 'vpn auth-dn' => 'Peer wird identifiziert durch entweder ein IPV4_ADDR, FQDN, USER_FQDN oder DER_ASN1_DN string in Remote ID Feld', 'vpn configuration main' => 'VPN-Konfiguration - Übersicht', 'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)', -'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic DNS Updates ordnungsgemäß anzuwenden. 60 ist ein gängiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.', +'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic-DNS-Updates ordnungsgemäß anzuwenden. 60 ist ein gängiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.', 'vpn incompatible use of defaultroute' => 'Hostname=%defaultroute nicht zulässig', 'vpn keyexchange' => 'Schlüsseltausch', 'vpn local id' => 'Lokale ID', @@ -2120,7 +2174,7 @@ 'vpn on blue' => 'VPN auf BLAU', 'vpn on green' => 'VPN auf GRÜN', 'vpn on orange' => 'VPN auf ORANGE', -'vpn payload compression' => 'Datennutzlast Kompression aushandeln', +'vpn payload compression' => 'Datennutzlast-Kompression aushandeln', 'vpn red name' => 'Öffentliche IP oder FQDN für das rote Interface oder <%defaultroute>', 'vpn remote id' => 'Remote ID', 'vpn subjectaltname' => 'Subjekt Alternativer Name', @@ -2134,7 +2188,7 @@ 'web proxy' => 'Web-Proxy', 'web proxy configuration' => 'Web-Proxy-Konfiguration', 'web server' => 'Web-Server', -'webradio playlist' => 'Webradio Playlist', +'webradio playlist' => 'Webradio-Playlist', 'website' => 'Website', 'wednesday' => 'Mittwoch', 'week' => 'Woche', @@ -2142,11 +2196,11 @@ 'weekly firewallhits' => 'wöchentliche Firewalltreffer', 'weeks' => 'Wochen', 'wildcards' => 'Wildcards', -'wins server' => 'Wins Server', -'wins support' => 'Wins Support', +'wins server' => 'Wins-Server', +'wins support' => 'Wins-Support', 'wireless' => 'Wireless', -'wireless config added' => 'Wireless Konfiguration hinzugefügt', -'wireless config changed' => 'Wireless Konfiguration geändert', +'wireless config added' => 'Wireless-Konfiguration hinzugefügt', +'wireless config changed' => 'Wireless-Konfiguration geändert', 'wireless configuration' => 'Wireless-Konfiguration', 'wlanap access point' => 'Access Point', 'wlanap channel' => 'Kanal', @@ -2156,28 +2210,28 @@ 'wlanap informations' => 'Informationen', 'wlanap interface' => 'Interface übernehmen', 'wlanap invalid wpa' => 'Ungültige Länge in WPA-Passphrase. Muss zwischen 8 und 63 Zeichen lang sein.', -'wlanap link dhcp' => 'Wireless Lan DHCP Einstellungen', +'wlanap link dhcp' => 'Wireless Lan DHCP-Einstellungen', 'wlanap link wireless' => 'Wireless Lan Clients freischalten', -'wlanap no interface' => 'Ausgewählte Interface ist keine WLan Karte!', +'wlanap no interface' => 'Ausgewähltes Interface ist keine WLAN-Karte!', 'wlanap none' => 'keine', 'wlanap notifications' => 'Hinweise', -'wlanap select interface' => 'Bitte das WLan Interface auswählen.', +'wlanap select interface' => 'Bitte das WLAN-Interface auswählen.', 'wlanap verbose' => 'Alle Informationen', 'wlanap warnings' => 'Warnungen', -'wlanap wlan card' => 'WLan Karte', -'wlanap wlan services' => 'WLan Dienste', -'wlanap wlan settings' => 'WLan Einstellungen', -'wlanap wlan status' => 'WLan Status', +'wlanap wlan card' => 'WLAN-Karte', +'wlanap wlan services' => 'WLAN-Dienste', +'wlanap wlan settings' => 'WLAN-Einstellungen', +'wlanap wlan status' => 'WLAN-Status', 'wol wakeup' => 'WakeUp', 'workgroup' => 'Arbeitsgruppe', 'written bytes' => 'Geschriebene Bytes', 'xtaccess all error' => 'Sie können einen externen Zugang nicht auf \'ALL\' setzen - dies erfolgt in den Port-Weiterleitungsregeln.', -'xtaccess bad transfert' => 'Wenn Sie einen Port Zielbereich angeben, muss der Quellbereich identisch sein!', +'xtaccess bad transfert' => 'Wenn Sie einen Port-Zielbereich angeben, muss der Quellbereich identisch sein!', 'year' => 'Jahr', 'year-graph' => 'Jahr', 'yearly firewallhits' => 'jährliche Firewalltreffer', 'yes' => 'Ja', -'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Sie können nur eine Roadwarrior Verbindung definieren, wenn die Pre-shared Schlüsselauthentifizierung verwendet wird.
Entweder haben Sie bereits eine Roadwarrior Verbindung mit Pre-shared Schlüsselauthentifizierung, oder Sie versuchen gerade eine hinzuzufügen.', +'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Sie können nur eine Roadwarrior-Verbindung definieren, wenn die Pre-shared-Schlüsselauthentifizierung verwendet wird.
Entweder haben Sie bereits eine Roadwarrior-Verbindung mit Pre-shared-Schlüsselauthentifizierung, oder Sie versuchen gerade, eine hinzuzufügen.', 'your department' => 'Ihre Abteilung', 'your e-mail' => 'Ihre E-mail Adresse', ); diff --git a/langs/de/install/lang_de.c b/langs/de/install/lang_de.c index 6c8c7e5b0d..85db8677d8 100644 --- a/langs/de/install/lang_de.c +++ b/langs/de/install/lang_de.c @@ -358,7 +358,7 @@ char *de_tr[] = { /* TR_PHONENUMBER_CANNOT_BE_EMPTY */ "Die Telefonnummer darf nicht leer sein.", /* TR_PREPARE_HARDDISK */ -"Das Installationsprogramm wird jetzt die Festplatte %s vorbereiten. Zunächst wird die Festplatte partitioniert. Danach wird auf den Partitionen ein Dateisystem erstellt.", +"Das Installationsprogramm wird jetzt die Festplatte %s vorbereiten. Zunächst wird die Festplatte partitioniert. Danach wird auf den Partitionen ein Dateisystem erstellt.\n\nALLE DATEN AUF DEM LAUFWERK WERDEN GELÖSCHT. Einverstanden?", /* TR_PRESS_OK_TO_REBOOT */ "Drücken Sie Ok, um neu zu starten.", /* TR_PRIMARY_DNS */ diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 5fe239123d..46076fd6c2 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -212,6 +212,7 @@ 'advproxy errmsg auth children' => 'Invalid number of authentication processes', 'advproxy errmsg auth ipcache may not be null' => 'Authentication cache TTL may not be 0 when using IP address limits', 'advproxy errmsg auth ipcache ttl' => 'Invalid value for user/IP cache TTL', +'advproxy errmsg cache' => 'The RAM cache size is greater than the harddisk cache size:', 'advproxy errmsg change fail' => 'Password could not be changed', 'advproxy errmsg change success' => 'Password for web access sucessfully changed', 'advproxy errmsg hdd cache size' => 'Invalid value for harddisk cache size (min 10 MB required)', @@ -222,13 +223,13 @@ 'advproxy errmsg invalid mac' => 'Invalid MAC address', 'advproxy errmsg invalid pdc' => 'Invalid hostname for primary domain controller', 'advproxy errmsg invalid proxy port' => 'Invalid proxy port', -'advproxy errmsg invalid upstream proxy' => 'Invalid upstream proxy IP', +'advproxy errmsg invalid upstream proxy' => 'Invalid upstream proxy IP/hostname', 'advproxy errmsg invalid upstream proxy username or password setting' => 'Invalid upstream proxy username or password setting', 'advproxy errmsg invalid user' => 'Username does not exist', 'advproxy errmsg ldap base dn' => 'LDAP base DN required', 'advproxy errmsg ldap bind dn' => 'LDAP bind DN username and password required', 'advproxy errmsg ldap port' => 'Invalid LDAP port number', -'advproxy errmsg ldap server' => 'Invalid IP address for LDAP Server', +'advproxy errmsg ldap server' => 'Invalid IP address/hostname for LDAP Server', 'advproxy errmsg max userip' => 'Invalid number of IP addresses per user', 'advproxy errmsg mem cache size' => 'Invalid value for memory cache size', 'advproxy errmsg no browser' => 'At least one browser or client must be selected for web access', @@ -353,6 +354,7 @@ 'arp table entries' => 'ARP Table Entries:', 'artist' => 'Artist', 'attemps' => 'Attempts', +'attention' => 'ATTENTION', 'august' => 'August', 'authentication' => 'Authentication:', 'automatic' => 'Automatic', @@ -474,6 +476,43 @@ 'capsopen' => 'CONNECTED', 'capswarning' => 'WARNING', 'caption' => 'Caption', +'ccd add' => 'Add network', +'ccd choose net' => 'Choose network', +'ccd client options' => 'Advanced client options', +'ccd clientip' => 'Host address', +'ccd dynrange' => 'Dynamic OpenVPN IP address pool', +'ccd err blue' => 'This is the BLUE subnet.', +'ccd err green' => 'This is the GREEN subnet.', +'ccd err hostinnet' => 'You are not able to delete this network, while it still contains clients.', +'ccd err inuse' => 'Already used by another client.', +'ccd err invalidname' => 'Invalid name. Allowed characters are A-Z, a-z, dash and space.', +'ccd err invalidnet' => 'Invalid IP address. Format: 192.168.0.0/24 or 192.168.0.0/255.255.255.0.', +'ccd err iroute' => 'Network address for route is invalid.', +'ccd err irouteexist' => 'This route is already in use.', +'ccd err isipsecnet' => 'The given subnet address already used by an IPsec network.', +'ccd err isovpnnet' => 'Subnet address already in use for OpenVPN Server.', +'ccd err issubnet' => 'Subnet address already in use.', +'ccd err name' => 'Please choose a name.', +'ccd err nameexist' => 'Name already exists.', +'ccd err netadr' => 'Subnet address is invalid or range is too large.', +'ccd err netadrexist' => 'Network already exists.', +'ccd err orange' => 'This is the ORANGE subnet.', +'ccd err red' => 'This is the RED subnet.', +'ccd err routeovpn' => 'Already used by OpenVPN server.', +'ccd err routeovpn2' => 'Already pushed from OpenVPN server.', +'ccd hint' => 'On this page you are able to define static networks from which the roadwarrior clients can get fixed IP address assignments.', +'ccd invalid' => 'Invalid.', +'ccd iroute' => 'IPFire has access to these networks on the client\'s site', +'ccd iroute2' => 'Client has access to these networks on IPFire\'s site', +'ccd iroutehint' => 'Attention! If you change these settings, you have to restart the OpenVPN server that the changes take effect!', +'ccd modify' => 'Change network', +'ccd name' => 'Name', +'ccd net' => 'Static IP address pools', +'ccd noaddnet' => 'You can only add new static networks when OpenVPN server is stopped.', +'ccd none' => 'None', +'ccd routes' => 'Routing:', +'ccd subnet' => 'Subnet', +'ccd used' => 'Used addresses', 'cert' => 'Certificate', 'certificate' => 'Certificate', 'certificate authorities' => 'Certificate Authorities', @@ -719,14 +758,14 @@ 'download root certificate' => 'Download root certificate', 'dpd action' => 'Dead Peer Detection action', 'driver' => 'Driver', -'drop input' => 'Log dropped input pakets', -'drop newnotsyn' => 'Log dropped new not syn pakets', -'drop output' => 'Log dropped output pakets', -'drop portscan' => 'Log dropped portscan pakets', +'drop input' => 'Log dropped input packets', +'drop newnotsyn' => 'Log dropped new not syn packets', +'drop output' => 'Log dropped output packets', +'drop portscan' => 'Log dropped portscan packets', 'drop proxy' => 'Drop all packets not addressed to proxy', 'drop samba' => 'Drop all Microsoft ports 135,137,138,139,445,1025', -'drop wirelessforward' => 'Log dropped wireless forward pakets', -'drop wirelessinput' => 'Log dropped wireless input pakets', +'drop wirelessforward' => 'Log dropped wireless forward packets', +'drop wirelessinput' => 'Log dropped wireless input packets', 'dst port' => 'Dst Port', 'dstprt range overlaps' => 'Destination port range overlaps an already defined port.', 'dstprt within existing' => 'Destination port is within an already defined port range.', @@ -895,7 +934,7 @@ 'gpl unofficial translation of the general public license v3' => 'Unofficial translation of the General Public License v3', 'graph' => 'Graph', 'graph per' => 'per', -'green' => 'Green', +'green' => 'GREEN', 'green interface' => 'Green Interface', 'guaranteed bandwith' => 'Guaranteed bandwith', 'guardian alertfile' => 'Alertfile', @@ -1378,10 +1417,17 @@ 'ovpn errmsg green already pushed' => 'Route for green network is always set', 'ovpn errmsg invalid ip or mask' => 'Invalid network-address or subnetmask', 'ovpn log' => 'OVPN-Log', +'ovpn mtu-disc' => 'Path MTU Discovery', +'ovpn mtu-disc and mtu not 1500' => 'Path MTU Discovery requires a MTU of 1500.', +'ovpn mtu-disc maybe' => 'Optionally', +'ovpn mtu-disc no' => 'Never', +'ovpn mtu-disc off' => 'Disabled', +'ovpn mtu-disc with mssfix or fragment' => 'Path MTU Discovery cannot be used with mssfix or fragment.', +'ovpn mtu-disc yes' => 'Forced', 'ovpn on blue' => 'OpenVPN on BLUE', 'ovpn on orange' => 'OpenVPN on ORANGE', 'ovpn on red' => 'OpenVPN on RED', -'ovpn routes push' => 'Routes (one per line):', +'ovpn routes push' => 'Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24', 'ovpn routes push options' => 'Route push options', 'ovpn server status' => 'Current OpenVPN server status:', 'ovpn subnet' => 'OpenVPN subnet (e.g. 10.0.10.0/255.255.255.0)', @@ -1496,10 +1542,16 @@ 'proxy no proxy local' => 'Disallow local proxying on BLUE/GREEN networks', 'proxy port' => 'Proxy Port', 'proxy reconfigure' => 'Save and Reload', +'proxy reports' => 'Proxy Reports', +'proxy reports daily' => 'Daily reports', +'proxy reports monthly' => 'Monthly reports', +'proxy reports today' => 'Today', +'proxy reports weekly' => 'Weekly reports', 'psk' => 'PSK', 'pulse' => 'Pulse', 'pulse dial' => 'Pulse dial:', 'qos add subclass' => 'Add subclass', +'qos enter bandwidths' => 'You will need to enter your downstream and upstream bandwidth!', 'qos graphs' => 'Qos Graphs', 'qos warning' => 'The rule must be saved, otherwise it will be discarded!', 'quick control' => 'Quick Control', @@ -1598,6 +1650,7 @@ 'september' => 'September', 'serial' => 'Serial', 'server reserved' => 'The connection name server is reserved and not allowed', +'server restart' => 'You are not able to save any changes while the OpenVPN server is running.', 'server string' => 'Server String', 'service' => 'Service', 'service added' => 'Custom network service added', @@ -2184,6 +2237,7 @@ 'wireless configuration' => 'Wireless Configuration', 'wlanap access point' => 'Access Point', 'wlanap channel' => 'Channel', +'wlanap country' => 'Country Code', 'wlanap debugging' => 'Debugging', 'wlanap del interface' => 'Remove selected interface?', 'wlanap encryption' => 'Encryption', diff --git a/langs/en/install/lang_en.c b/langs/en/install/lang_en.c index 4415205b19..87f8d2fa91 100644 --- a/langs/en/install/lang_en.c +++ b/langs/en/install/lang_en.c @@ -354,7 +354,7 @@ char *en_tr[] = { /* TR_PHONENUMBER_CANNOT_BE_EMPTY */ "Phone number cannot be empty.", /* TR_PREPARE_HARDDISK */ -"The installation program will now prepare the harddisk on %s. First the disk will be partitioned, and then the partitions will have a filesystem put on them.", +"The installation program will now prepare the harddisk on %s. First the disk will be partitioned, and then the partitions will have a filesystem put on them.\n\nALL DATA ON THE DISK WILL BE DESTROYED. Do you agree to continue?", /* TR_PRESS_OK_TO_REBOOT */ "Press Ok to reboot.", /* TR_PRIMARY_DNS */ diff --git a/langs/list b/langs/list index 94828cd509..d7ea4e84c2 100644 --- a/langs/list +++ b/langs/list @@ -4,3 +4,4 @@ fr:Français:French es:Español:Spanish pl:Polski:Polish ru:Русский:Russian +nl:Nederlands:Dutch diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl new file mode 100644 index 0000000000..462cdfa9ff --- /dev/null +++ b/langs/nl/cgi-bin/nl.pl @@ -0,0 +1,2271 @@ +%tr = ( +%tr, + +'Act as' => 'Fungeren als:', +'Add Level7 rule' => 'Voeg Level7 regel toe', +'Add Port Rule' => 'Voeg poortregel toe', +'Add Rule' => 'Voeg regel toe', +'Add a route' => 'Voeg een route toe', +'Async logging enabled' => 'Inschakelen a-synchroon schrijven van het syslogbestand', +'Choose Rule' => 'Kies een van de volgende regels.', +'Class' => 'Klasse', +'Class was deleted' => 'met mogelijke sub-klasse is verwijderd', +'Client status and controlc' => 'Client status en controle:', +'ConnSched action' => 'Actie:', +'ConnSched add action' => 'Voeg actie toe', +'ConnSched change profile title' => 'Gebruik profiel:', +'ConnSched days' => 'Dagen:', +'ConnSched down' => 'Omlaag', +'ConnSched ipsecstart' => 'IPSec (her)starten', +'ConnSched ipsecstop' => 'IPSec stoppen', +'ConnSched reconnect' => 'Opnieuw verbinden', +'ConnSched scheduled actions' => 'Ingeplande acties', +'ConnSched scheduler' => 'Scheduler', +'ConnSched select profile' => 'Selecteer profiel', +'ConnSched time' => 'Tijd:', +'ConnSched up' => 'Omhoog', +'ConnSched weekdays' => 'Dagen van de week:', +'Edit an existing route' => 'Wijzig een bestaande route', +'Enter TOS' => 'Activeer of deactiveer TOS-bits
en klik dan op Save.', +'Existing Files' => 'Bestanden in database', +'HDD temperature' => 'HDD temperatuur', +'Level7 Protocol' => 'Level7-Protocol', +'Level7 Rule' => 'Level7-Regel', +'Level7 rule' => 'Level7 regel', +'Local VPN IP' => 'Intern Netwerk (GROEN):', +'MTU' => 'MTU grootte:', +'Number of IPs for the pie chart' => 'Aantal IPs voor de taartdiagram', +'Number of Ports for the pie chart' => 'Aantal poorten voor de taartdiagram', +'OVPN' => 'OpenVPN', +'OpenVPN' => 'OpenVPN', +'Pages' => 'Pagina\'s', +'Ping' => 'Ping:', +'Port Rule' => 'Poort-Regel', +'QoS not enabled' => 'QoS is niet ingeschakeld!', +'Queuelenght' => 'Wachtrijlengte', +'Remote IP' => 'Remote IP / Hostnaam (DynDNS):', +'Remote VPN IP' => 'VPN Subnet (bijv. 10.0.10.0/255.255.255.0):', +'Resolv' => 'Resolv-Retry:', +'Scan for Files' => 'Scan voor bestanden', +'Scan from Directory' => 'Scan vanuit directory', +'Set time on boot' => 'Stel de tijd van de systeemklok in tijdens opstarten', +'Subclass' => 'Sub-klasse', +'TOS Bits' => 'TOS-Bits', +'TOS Rule' => 'TOS-Regel', +'TOS rule' => 'TOS-regel', +'The class number does not match the specified interface.' => 'Het klasse-nummer komt niet overeen met de gespecificeerde interface.', +'The destination IP address is invalid.' => 'Het doel IP-adres is ongeldig.', +'The source IP address is invalid.' => 'Het bron IP-adres is ongeldig.', +'Utilization on' => 'Verbruik op', +'Verbose' => 'Uitgebreid:', +'WakeOnLan' => 'Wake On Lan', +'a ca certificate with this name already exists' => 'Een CA-certificaat met deze naam bestaat al.', +'a connection with this common name already exists' => 'Een verbinding met deze algemene naam bestaat al.', +'a connection with this name already exists' => 'Een verbinding met deze naam bestaat al.', +'abort' => 'afbreken', +'access allowed' => 'Toegang toegestaan van:', +'access refused with this oinkcode' => 'Toegang geweigerd met deze Oink code.', +'accounting' => 'Boekhouding', +'accounting user nonpdc' => 'Boekhouding - niet-PDC Modus', +'accounting user pdc' => 'Boekhouding - PDC-Modus', +'action' => 'Actie', +'activate' => 'Activeren', +'activate user' => 'Activeer gebruiker', +'active' => 'Actief', +'add' => 'Toevoegen', +'add a host' => 'Voeg een host toe:', +'add a new rule' => 'Voeg een nieuwe regel toe:', +'add cron' => 'Voeg een cronjob toe', +'add device' => 'Voeg een apparaat toe', +'add network' => 'Voeg een netwerk toe', +'add new alias' => 'Voeg een nieuwe alias toe:', +'add new lease' => 'Voeg een nieuwe vaste-lease toe', +'add new ovpn' => 'OpenVPN Instellingen:', +'add printer' => 'Voeg een printer toe', +'add service' => 'Voeg een dienst toe', +'add share' => 'Voeg een gedeelde schijf toe', +'add subclass' => 'Voeg een sub-klasse toe', +'add user' => 'Voeg gebruiker toe', +'add xtaccess' => 'Voeg een externe toegang toe', +'add-route' => 'Extra push route', +'added from dhcp lease list' => 'Toegevoegd van DHCP lease-lijst.', +'admin user password has been changed' => 'Beheerderswachtwoord is gewijzigd.', +'admin users' => 'Gebruiker met beheerdersrechten.', +'administrator user password' => 'Beheerderswachtwoord:', +'adsl settings' => 'ADSL instellingen', +'advanced' => 'Geavanceerd', +'advanced server' => 'Geavanceerde server opties', +'advproxy AUTH always required' => 'Authenticatie vereist voor ongelimiteerde bronadressen.', +'advproxy AUTH auth cache TTL' => 'Authenticatie cache TTL (in minuten)', +'advproxy AUTH global settings' => 'Globale authenticatie instellingen', +'advproxy AUTH limit of IP addresses' => 'Limiet van aantal IP-adressen per gebruiker', +'advproxy AUTH method' => 'Authenticatiemethode', +'advproxy AUTH method ident' => 'identd', +'advproxy AUTH method ldap' => 'LDAP', +'advproxy AUTH method ncsa' => 'Lokaal', +'advproxy AUTH method none' => 'Geen', +'advproxy AUTH method ntlm' => 'Windows', +'advproxy AUTH method radius' => 'RADIUS', +'advproxy AUTH no auth' => 'Domeinen zonder authenticatie (een per regel)', +'advproxy AUTH number of auth processes' => 'Aantal authenticatieprocessen', +'advproxy AUTH realm' => 'Authenticatie domeinmelding', +'advproxy AUTH user IP cache TTL' => 'Gebruiker/IP cache TTL (in minuten)', +'advproxy IDENT authorized users' => 'Geautoriseerde gebruikers (een per regel)', +'advproxy IDENT aware hosts' => 'Hosts die Ident ondersteunen (een per regel)', +'advproxy IDENT identd settings' => 'Algemene identd instellingen', +'advproxy IDENT required' => 'Vereist identd authenticatie', +'advproxy IDENT timeout' => 'Ident time-out (in seconden)', +'advproxy IDENT unauthorized users' => 'Ongeautoriseerde gebruikers (een per regel)', +'advproxy IDENT use negative access list' => 'Gebruik negatieve toegangscontrole', +'advproxy IDENT use positive access list' => 'Gebruik positieve toegangscontrole', +'advproxy IDENT user based access restrictions' => 'Gebruikersgebaseerde toegangsrestricties', +'advproxy LDAP ADS' => 'Active Directory', +'advproxy LDAP NDS' => 'Novell eDirectory', +'advproxy LDAP V2' => 'LDAP versie 2', +'advproxy LDAP V3' => 'LDAP versie 3', +'advproxy LDAP auth' => 'LDAP authenticatie', +'advproxy LDAP basedn' => 'Base DN', +'advproxy LDAP binddn password' => 'Bind DN wachtwoord', +'advproxy LDAP binddn settings' => 'Bind DN instellingen', +'advproxy LDAP binddn username' => 'Bind DN gebruikersnaam', +'advproxy LDAP common settings' => 'Algemene LDAP instellingen', +'advproxy LDAP group access control' => 'Groepsgebaseerde toegangscontrole', +'advproxy LDAP group required' => 'Vereiste groep', +'advproxy LDAP port' => 'Poort', +'advproxy LDAP server' => 'LDAP Server', +'advproxy LDAP type' => 'LDAP type', +'advproxy MIME block types' => ' Blokkeer deze MIME types (een per regel)', +'advproxy MIME filter' => 'MIME type filter', +'advproxy NCSA auth' => 'Lokale gebruiker authenticatie', +'advproxy NCSA create user' => 'Aanmaken gebruiker', +'advproxy NCSA group' => 'Groep', +'advproxy NCSA group membership' => 'Groepslidmaatschap', +'advproxy NCSA grp disabled' => 'Uitgeschakeld', +'advproxy NCSA grp extended' => 'Uitgebreid', +'advproxy NCSA grp standard' => 'Standaard', +'advproxy NCSA min password length' => 'Minimale wachtwoordlengte', +'advproxy NCSA no accounts' => 'Geen gebruikersaccounts beschikbaar', +'advproxy NCSA password' => 'Wachtwoord', +'advproxy NCSA password confirm' => 'Wachtwoord (bevestig)', +'advproxy NCSA redirector bypass' => 'Omzeil omleidingen voor leden van de groep', +'advproxy NCSA update user' => 'Bijwerken gebruiker', +'advproxy NCSA user accounts' => 'Gebruikersaccounts', +'advproxy NCSA user management' => 'Gebruikersbeheer', +'advproxy NCSA username' => 'Gebruikersnaam', +'advproxy NTLM BDC hostname' => 'BDC hostnaam', +'advproxy NTLM PDC hostname' => 'PDC hostnaam', +'advproxy NTLM auth' => 'Windows NT/2003 authenticatie', +'advproxy NTLM auth mode' => 'Authenticatie modus', +'advproxy NTLM authorized users' => 'Geautoriseerde domeingebruikers (een per regel)', +'advproxy NTLM domain' => 'Domein', +'advproxy NTLM domain settings' => 'Algemene domeininstellingen', +'advproxy NTLM unauthorized users' => 'Ongeautoriseerde domeingebruikers (een per regel)', +'advproxy NTLM use integrated auth' => 'Gebruik Windows geïntegreerde authenticatie', +'advproxy NTLM use negative access list' => 'Gebruik negatieve toegangscontrole', +'advproxy NTLM use positive access list' => 'Gebruik positieve toegangscontrole', +'advproxy NTLM user based access restrictions' => 'Gebruikersgebaseerde toegangsrestrictie', +'advproxy RADIUS authorized users' => 'Geautoriseerde gebruikers (een per regel)', +'advproxy RADIUS identifier' => 'Identificatie', +'advproxy RADIUS port' => 'Poort', +'advproxy RADIUS radius settings' => 'Algemene RADIUS instellingen', +'advproxy RADIUS secret' => 'Gedeeld geheim', +'advproxy RADIUS server' => 'RADIUS Server', +'advproxy RADIUS unauthorized users' => 'Ongeautoriseerde gebruikers (een per regel)', +'advproxy RADIUS use negative access list' => 'Gebruik negatieve toegangscontrole', +'advproxy RADIUS use positive access list' => 'Gebruik positieve toegangscontrole', +'advproxy RADIUS user based access restrictions' => 'Gebruikersgebaseerde toegangsrestrictie', +'advproxy UA enable filter' => 'Gebruik browsercontrole', +'advproxy access' => 'Toegang', +'advproxy admin mail' => 'Cache beheerder e-mail', +'advproxy advanced proxy' => 'Geavanceerde Proxy', +'advproxy advanced web proxy' => 'Geavanceerde Web Proxy', +'advproxy advanced web proxy configuration' => 'Geavanceerde web proxy configuratie', +'advproxy allowed subnets' => 'Toegestane subnets (een per regel)', +'advproxy allowed web browsers' => 'Toegestane clients voor web toegang', +'advproxy back to main page' => 'Terug naar hoofdpagina', +'advproxy banned ip clients' => 'Verboden IP-adressen (een per regel)', +'advproxy banned mac clients' => 'Verboden MAC-adressen (een per regel)', +'advproxy cache management' => 'Cache beheer', +'advproxy cache replacement policy' => 'Cache vervangingsbeleid', +'advproxy chgwebpwd ERROR' => 'F O U T :', +'advproxy chgwebpwd SUCCESS' => 'S U C C E S V O L :', +'advproxy chgwebpwd change password' => 'Wijzig wachtwoord', +'advproxy chgwebpwd change web password' => 'W i j z i g   w e b t o e g a n g   w a c h t w o o r d', +'advproxy chgwebpwd new password' => 'Nieuw wachtwoord', +'advproxy chgwebpwd new password confirm' => 'Nieuw wachtwoord (bevestig)', +'advproxy chgwebpwd old password' => 'Huidig wachtwoord', +'advproxy chgwebpwd username' => 'Gebruikersnaam', +'advproxy classroom extensions' => 'Klaslokaal uitbreidingen', +'advproxy clear cache' => 'Cache opschonen', +'advproxy client IP forwarding' => 'Client IP-adres doorsturen', +'advproxy common settings' => 'Algemene instellingen', +'advproxy content based throttling' => 'Gebruik bandbreedtebeperking op basis van inhoud', +'advproxy cre disabled' => 'De beheerinterface is uitgeschakeld door de beheerder', +'advproxy cre group definitions' => 'Klaslokaal groepsdefinities', +'advproxy cre supervisors' => 'Supervisor IP-adressen (een per regel)', +'advproxy destination ports' => 'Bestemmingspoorten', +'advproxy download throttling' => 'Downloadbeperkingen', +'advproxy enabled' => 'Ingeschakeld', +'advproxy enabled on' => 'Ingeschakeld op', +'advproxy errmsg acl cannot be empty' => 'De toegangscontrolelijst kan niet leeg zijn', +'advproxy errmsg auth cache ttl' => 'Ongeldige waarde voor authenticatie cache TTL', +'advproxy errmsg auth children' => 'Ongeldig aantal authenticatieprocessen', +'advproxy errmsg auth ipcache may not be null' => 'Authenticatie cache mag niet 0 zijn als IP-adres beperkingen gebruikt worden', +'advproxy errmsg auth ipcache ttl' => 'Ongeldige waarde voor gebruiker/IP cache TTL', +'advproxy errmsg cache' => 'De RAM cache-grootte is groter dan de harddisk cache-grootte:', +'advproxy errmsg change fail' => 'Wachtwoord kon niet worden gewijzigd', +'advproxy errmsg change success' => 'Wachtwoord voor webtoegang succesvol gewijzigd', +'advproxy errmsg hdd cache size' => 'Ongeldige waarde voor harddisk cache-grootte (min 10 MB vereist)', +'advproxy errmsg ident timeout' => 'Ongeldige ident time-out', +'advproxy errmsg invalid bdc' => 'Ongeldige hostnaam voor back-up domeincontroller', +'advproxy errmsg invalid destination port' => 'Ongeldige bestemmingspoort', +'advproxy errmsg invalid ip or mask' => 'Ongeldig IP-adres of netwerkmasker', +'advproxy errmsg invalid mac' => 'Ongeldig MAC-adres', +'advproxy errmsg invalid pdc' => 'Ongeldige hostnaam voor primaire domeincontroller', +'advproxy errmsg invalid proxy port' => 'Ongeldige proxy poort', +'advproxy errmsg invalid upstream proxy' => 'Ongeldig upstream proxy IP-adres', +'advproxy errmsg invalid upstream proxy username or password setting' => 'Ongeldige upstream proxy gebruikersnaam of wachtwoord instelling', +'advproxy errmsg invalid user' => 'Gebruikersnaam bestaat niet', +'advproxy errmsg ldap base dn' => 'LDAP base DN vereist', +'advproxy errmsg ldap bind dn' => 'LDAP bind DN gebruikersnaam en wachtwoord zijn vereist', +'advproxy errmsg ldap port' => 'Ongeldig LDAP poortnummer', +'advproxy errmsg ldap server' => 'Ongeldig IP-adres voor LDAP Server', +'advproxy errmsg max userip' => 'Ongeldig aantal IP-adressen per gebruiker', +'advproxy errmsg mem cache size' => 'Ongeldige waarde voor de geheugen cache-grootte', +'advproxy errmsg no browser' => 'Tenminste één browser of client moet geselecteerd worden voor webtoegang', +'advproxy errmsg no password' => 'Wachtwoord mag niet leeg zijn', +'advproxy errmsg no username' => 'Gebruikersnaam mag niet leeg zijn', +'advproxy errmsg non-transparent proxy required' => 'Web proxy moet in niet-transparante modus draaien voor authenticatie', +'advproxy errmsg ntlm domain' => 'Windows domeinnaam vereist', +'advproxy errmsg ntlm pdc' => 'Hostnaam voor primaire domeincontroller vereist', +'advproxy errmsg password incorrect' => 'Wachtwoord onjuist', +'advproxy errmsg password length' => 'Ongeldige waarde voor wachtwoordlengte', +'advproxy errmsg password length 1' => 'Wachtwoord moet tenminste ', +'advproxy errmsg password length 2' => ' tekens bevatten', +'advproxy errmsg passwords different' => 'Wachtwoorden zijn niet gelijk', +'advproxy errmsg radius port' => 'Ongeldig RADIUS poortnummer', +'advproxy errmsg radius secret' => 'RADIUS gedeeld geheim vereist', +'advproxy errmsg radius server' => 'Ongeldig IP-adres voor RADIUS server', +'advproxy errmsg time restriction' => 'Ongeldige tijdsbeperking', +'advproxy error design' => 'Opmaak foutmeldingen', +'advproxy error language' => 'Taal foutmeldingen', +'advproxy fake referer' => 'Nepverwijzing die wordt gestuurd naar externe sites', +'advproxy fake useragent' => 'Nep useragent die wordt gestuurd naar externe sites', +'advproxy friday' => 'Vri', +'advproxy from' => 'Van', +'advproxy hdd cache size' => 'Harddisk cache-grootte (MB)', +'advproxy invalid num of children' => 'Ongeldig aantal filterprocessen', +'advproxy log enabled' => 'Log ingeschakeld', +'advproxy log query' => 'Log zoektermen', +'advproxy log settings' => 'Log instellingen', +'advproxy log useragent' => 'Log useragents', +'advproxy max download size' => 'Max. downloadgrootte (KB)', +'advproxy max size' => 'Max. objectgrootte (KB)', +'advproxy max upload size' => 'Max. uploadgrootte (KB)', +'advproxy memory replacement policy' => 'Geheugen vervangingsbeleid', +'advproxy min size' => 'Min. objectgrootte (KB)', +'advproxy mode allow' => 'sta toe', +'advproxy mode deny' => 'sta niet toe', +'advproxy monday' => 'Maa', +'advproxy network based access' => 'Netwerkgebaseerde toegangscontrole', +'advproxy no cache sites' => 'Cache deze domeinen niet (een per regel)', +'advproxy no clients defined' => 'Geen clients gedefinieerd', +'advproxy no connection auth' => 'Geen verbindingsgerichte authenticatie doorsturen', +'advproxy no cre groups' => 'Er zijn geen toegangsgroepen beschikbaar', +'advproxy no internal proxy on blue' => 'Schakel interne proxytoegang uit van BLAUW naar andere subnetten', +'advproxy no internal proxy on green' => 'Schakel interne proxytoegang uit naar GROEN vanaf andere subnetten', +'advproxy number of L1 dirs' => 'Aantal nivo-1 subdirectory\'s', +'advproxy off' => 'Proxy uit', +'advproxy offline mode' => 'Schakel offline modus in', +'advproxy on' => 'Proxy aan', +'advproxy privacy' => 'Privacy', +'advproxy proxy port' => 'Proxy poort', +'advproxy ram cache size' => 'Geheugen cache-grootte (MB)', +'advproxy redirector children' => 'Aantal filterprocessen', +'advproxy reset' => 'Reset', +'advproxy saturday' => 'Zat', +'advproxy save and restart' => 'Opslaan en herstarten', +'advproxy squid version' => 'Squid cache versie', +'advproxy squidclamav' => 'SquidClamav', +'advproxy ssadvanced proxy' => 'geavanceerde proxy', +'advproxy ssl ports' => 'Toegestane SSL poorten (een per regel)', +'advproxy standard' => 'Standaard', +'advproxy standard ports' => 'Toegestane standaard poorten (een per regel)', +'advproxy sunday' => 'Zon', +'advproxy supervisor password' => 'Beheerderswachtwoord', +'advproxy suppress version' => 'Onderdruk versie-informatie', +'advproxy throttle binary' => 'Binaire bestanden', +'advproxy throttle dskimg' => 'CD images', +'advproxy throttle mmedia' => 'Multimedia', +'advproxy throttling per host on' => 'Limiet per host op', +'advproxy throttling total on' => 'Overall limiet op', +'advproxy throttling unlimited' => 'ongelimiteerd', +'advproxy thursday' => 'Don', +'advproxy time restrictions' => 'Tijdrestricties', +'advproxy to' => 'Tot', +'advproxy transfer limits' => 'Transfer limieten', +'advproxy transparent on' => 'Transparant op', +'advproxy tuesday' => 'Din', +'advproxy unknown' => 'Onbekend', +'advproxy unrestricted ip clients' => 'Onbeperkte IP-adressen (een per regel)', +'advproxy unrestricted mac clients' => 'Onbeperkte MAC-adressen (een per regel)', +'advproxy update accelerator' => 'Update versneller', +'advproxy update information' => 'Er is een geüpdatete versie beschikbaar. Bezoek http://www.advproxy.net voor meer informatie.', +'advproxy update notification' => 'Update notificatie!', +'advproxy upstream password' => 'Upstream wachtwoord', +'advproxy upstream proxy' => 'Upstream proxy', +'advproxy upstream proxy host:port' => 'Upstream proxy (host:poort)', +'advproxy upstream username' => 'Upstream gebruikersnaam', +'advproxy url filter' => 'URL filter', +'advproxy username forwarding' => 'Gebruikersnaam doorsturen', +'advproxy via forwarding' => 'Proxy-adres doorsturen', +'advproxy visible hostname' => 'Zichtbare hostnaam', +'advproxy web browser' => 'Webbrowser', +'advproxy wednesday' => 'Woe', +'again' => 'Nogmaals:', +'aktiv' => 'Actief', +'album' => 'Album', +'alcatelusb help' => 'Om gebruik te kunnen maken van de SpeedTouch 330 of SpeedTouch USB modem moet u eerst de firmware naar uw IPFire machine uploaden. U kunt de Embedded Firmware voor de SpeedTouch 330 downloaden van speedtouch.com. Pak het uit en upload het juiste bestand naar uw modem: KQD6_3.xxx als Rev<4 of ZZZL_3.xxx, voor Rev=4 gebruik het formulier hieronder.', +'alcatelusb upload' => 'Upload Speedtouch USB firmware', +'alias ip' => 'Alias IP', +'aliases' => 'Aliassen', +'aliases not active' => 'Aliassen zullen niet worden geactiveerd tenzij uw RODE interface STATISCH is.', +'all' => 'Alle', +'all interfaces' => 'Alle Interfaces', +'all services' => 'Alle Diensten', +'all updates installed' => 'Alle updates zijn geinstalleerd', +'allmsg' => 'toon alles', +'alt dialup' => 'Inbellen', +'alt home' => 'Home', +'alt information' => 'Informatie', +'alt logs' => 'Logs', +'alt ovpn' => 'OpenVPN', +'alt proxy' => 'Proxy', +'alt services' => 'Diensten', +'alt system' => 'Systeem', +'alt vpn' => 'VPN\'s', +'and' => 'En', +'ansi t1.483' => 'WORDT VERWIJDERD', +'apcupsd' => 'APC-UPS status', +'apply' => 'Nu toepassen', +'april' => 'April', +'archive not exist' => 'Configuratie archief bestaat niet', +'are you sure' => 'Weet u het zeker?', +'arp table entries' => 'ARP Tabelingangen:', +'artist' => 'Artiest', +'attemps' => 'Pogingen', +'attention' => 'LET OP', +'august' => 'Augustus', +'authentication' => 'Authenticatie:', +'automatic' => 'Automatisch', +'available updates' => 'Beschikbare updates:', +'average' => 'Gemiddeld', +'avoid dod' => 'Gebruik deze optie niet met inbellen op afroep! Wordt voornamelijk gebruikt als IPFire achter een router staat. Uw RODE IP moet dan binnen het bereik vallen van een van de drie gereserveerde netwerken, bijv. 10/8, 172.16/12, 192.168/16', +'back' => 'TERUG', +'backup' => 'Back-up', +'backup archive' => 'Back-up bestand (.dat)', +'backup clear archive' => 'Opschonen Back-up bestand (.gz)', +'backup config floppy' => 'Back-up configuratie - Floppy Disk', +'backup configuration' => 'Back-up configuratie:', +'backup erase key' => 'Wis sleutel', +'backup explain key' => 'Back-ups zijn gecodeerd m.b.v. een sleutel. Om illegale manipulatie te voorkomen, zal IPFire alleen back-ups terugzetten die zijn gecodeerd met de sleutel die u hier opgeeft. Er zijn drie opties beschikbaar', +'backup explain key li1' => 'Laat IPFire een sleutel voor u aanmaken.', +'backup explain key li2' => 'Importeer een opgeslagen sleutel (mogelijk beveiligd met wachtwoord).', +'backup explain key li3' => 'Extraheer een sleutel uit een niet-gecodeerde 1.4.10 back-up.', +'backup explain key no1' => 'U moet deze sleutel bewaren als u van plan bent om nieuwe machines terug te zetten, IPFire accepteert slechts eenmaal het aanmaken/importeren van een sleutel', +'backup explain key no2' => 'oude floppy back-ups zijn niet te gebruiken met deze sleutel.', +'backup export key' => 'Exporteer sleutel', +'backup extract key' => 'Extraheer sleutel', +'backup from' => 'Back-up van', +'backup generate key' => 'Genereer sleutel', +'backup import dat file' => 'Importeer een back-up (.dat) bestand', +'backup import key' => 'Importeer sleutel', +'backup key' => 'Back-up encryptiesleutel', +'backup key file' => 'Back-up sleutelbestand', +'backup key info' => 'IPFire beperkt de toegang tot de back-upsleutel, dus u moet het root wachtwoord kennen. U heeft de mogelijkheid om deze sleutel buiten IPFire te beveiligen met een wachtwoord.', +'backup media info' => 'Floppy\'s en/of ongeformateerde media kunnen vreemde partitie-groottes weergeven. In dit geval selecteert u het gehele apparaat. Vergeet niet de harddisk te ontkoppelen alvorens het apparaat te verwijderen. Let op: floppy\'s die hier worden aangemaakt kunnen niet worden gebruikt met het IPFire installatieprogramma!', +'backup missing key' => 'De back-up sleutel is nodig om een set te herstellen', +'backup password' => 'Back-up wachtwoord', +'backup protect key password' => 'Back-up sleutelwachtwoord', +'backup sets' => 'Back-up sets', +'backup to floppy' => 'Back-up naar floppy', +'backupaddon' => 'Back-up toevoeging', +'backupprofile' => 'In geval het opnieuw verbinden mislukt, schakel dan over naar profiel', +'backups' => 'back-ups', +'backupwarning' => 'Zet a.u.b. eerst uw hoofdback-ups terug en daarna de toevoegde back-ups. Gebruik de originele bestandsnaam die u gebruikt heeft voor de download.', +'bad characters in' => 'Ongeldige tekens in ', +'bad characters in script field' => 'Ongeldige tekens in scriptveld', +'bad characters in the telephone number field' => 'Ongeldige tekens in telefoonnummerveld', +'bad destination range' => 'De bestemmingspoort heeft een eerste waarde die groter dan of gelijk is aan de tweede waarde.', +'bad ignore filter' => 'Ongeldig negeer-filter:', +'bad return code' => 'Helper-programma gaf een foutcode terug', +'bad source range' => 'De bronpoort heeft een eerste waarde die groter dan of gelijk is aan de tweede waarde', +'bandwidth usage' => 'bandbreedtegebruik (extern)', +'bandwitherror' => 'U kunt de bandbreedte-instellingen niet wijzigen als QoS aanstaat. Zet QoS eerst uit.

', +'bandwithsettings' => 'Bandbreedte-instellingen', +'basic options' => 'Basis opties', +'beep when ppp connects or disconnects' => 'Geef pieptoon als IPFire verbinding maakt of verbreekt.', +'behind a proxy' => 'Achter een proxy:', +'bewan adsl pci st' => 'WORDT VERWIJDERD', +'bewan adsl usb' => 'WORDT VERWIJDERD', +'bitrate' => 'Bitsnelheid', +'bleeding rules' => 'Nieuwste Snort regels', +'blue' => 'BLAUW', +'blue access' => 'Blauwe toegang', +'blue access use hint' => 'U moet een MAC-adres of een IP-adres invoeren voor een apparaat. U kunt ook beide invoeren.', +'blue interface' => 'Blauwe Interface', +'broadcast' => 'Broadcast', +'broken pipe' => 'Broken pipe', +'buffered memory' => 'Gebufferd geheugen', +'buffers' => 'buffers', +'bytes per second' => 'Bytes per seconde', +'bytes received' => 'Bytes ontvangen', +'bytes sent' => 'Bytes verzonden', +'ca certificate' => 'CA Certificaat', +'ca name' => 'CA naam', +'cache management' => 'Cache beheer', +'cache size' => 'Cache-grootte (MB):', +'cached' => 'gecached', +'cached memory' => 'Gecached geheugen ', +'cached swap' => 'Gecached Swap', +'calamaris available reports' => 'Beschikbare rapporten', +'calamaris byte unit' => 'Byte unit', +'calamaris create report' => 'Aanmaken rapport', +'calamaris enable content report' => 'Gebruik content rapport', +'calamaris enable distribution histogram' => 'Gebruik distributie histogram', +'calamaris enable domain report' => 'Gebruik domein rapport', +'calamaris enable performance report' => 'Gebruik performance rapport', +'calamaris enable requester report' => 'Gebruik aanvrager rapport', +'calamaris enable verbose reporting' => 'Gebruik uitgebreide rapportage', +'calamaris high' => 'hoog', +'calamaris histogram resolution' => 'Histogram resolutie', +'calamaris low' => 'laag', +'calamaris medium' => 'gemiddeld', +'calamaris no reports available' => 'Geen rapporten beschikbaar', +'calamaris none' => 'geen', +'calamaris number of content types' => 'Aantal content types', +'calamaris number of domains' => 'Aantal domeinen', +'calamaris number of requested urls' => 'Aantal gevraagde URL\'s', +'calamaris number of requesting hosts' => 'Aantal aanvragen hosts', +'calamaris performance options' => 'Performance opties', +'calamaris proxy reports' => 'Proxy Rapporten', +'calamaris refresh list' => 'Ververs lijst', +'calamaris report interval (in minutes)' => 'Rapportinterval (in minuten)', +'calamaris report options' => 'Rapportopties', +'calamaris report period' => 'Rapportage periode', +'calamaris run as background task' => 'Draai als achtergrond taak', +'calamaris show usernames' => 'Toon gebruikersnamen', +'calamaris skip archived logfiles' => 'Gearchiveerde logbestanden overslaan', +'calamaris unlimited' => 'ongelimiteerd', +'calamaris view' => 'Bekijk', +'calamaris view report' => 'Bekijk rapport', +'calc traffic all x minutes' => 'Bereken verkeer van alle x minuten', +'cancel' => 'Annuleren', +'cancel-adv-options' => 'Annuleren', +'cannot enable both nat traversal and compression' => 'Kan niet zowel NAT traversal als compressie inschakelen.', +'cannot enable ntp without specifying primary' => 'Kan NTP niet gebruiken zonder primaire server.', +'cannot specify secondary dns without specifying primary' => 'Kan geen tweede DNS server specificeren zonder primaire server.', +'cannot specify secondary ntp without specifying primary' => 'Kan geen tweede NTP server specificeren zonder primaire server.', +'cannot specify secondary wins without specifying primary' => 'Kan geen tweede WINS server specificeren zonder primaire server', +'cant change certificates' => 'Kan certificaten niet veranderen.', +'cant enable xtaccess' => 'De bijbehorende port-doorstuur regel is uitgeschakeld, daarom kunt u de externe toegang voor deze regel niet inschakelen.', +'cant start openssl' => 'Kan OpenSSL niet starten', +'caps all' => 'ALLE', +'capsclosed' => 'VERBROKEN', +'capsinactive' => 'INACTIEF', +'capsopen' => 'VERBONDEN', +'capswarning' => 'WAARSCHUWING', +'caption' => 'Onderschrift', +'ccd add' => 'Voeg netwerk toe', +'ccd choose net' => 'Kies netwerk', +'ccd client options' => 'Geavanceerde client opties', +'ccd clientip' => 'Hostadres', +'ccd dynrange' => 'Dynamische OpenVPN IP-adrespool', +'ccd err blue' => 'Dit is het BLAUWE subnet.', +'ccd err green' => 'Dit is het GROENE subnet.', +'ccd err hostinnet' => 'U kunt dit netwerk niet verwijderen zolang het nog clients bevat.', +'ccd err inuse' => 'Al in gebruik door een andere client.', +'ccd err invalidname' => 'Ongeldige naam. Toegestane tekens zijn A-Z, a-z, koppelteken en spatie.', +'ccd err invalidnet' => 'Ongeldig IP-adres. Formaat: 192.168.0.0/24 of 192.168.0.0/255.255.255.0.', +'ccd err iroute' => 'Netwerkadres voor route is ongeldig.', +'ccd err irouteexist' => 'Deze route is al in gebruik.', +'ccd err isipsecnet' => 'Het gegeven subnet-adres is al in gebruik door een IPsec netwerk.', +'ccd err isovpnnet' => 'Subnet-adres is al in gebruik voor OpenVPN Server.', +'ccd err issubnet' => 'Subnet-adres is al in gebruik.', +'ccd err name' => 'Kies een naam.', +'ccd err nameexist' => 'Naam bestaat al.', +'ccd err netadr' => 'Subnet-adres is ongeldig of bereik is te groot.', +'ccd err netadrexist' => 'Netwerk bestaat al.', +'ccd err orange' => 'Dit is het ORANJE subnet.', +'ccd err red' => 'Dit is het RODE subnet.', +'ccd err routeovpn' => 'Al in gebruik door OpenVPN server.', +'ccd err routeovpn2' => 'Al verstuurd van OpenVPN server.', +'ccd hint' => 'Op deze pagina kunt u statische netwerken definiëren vanwaar de roadwarrior clients vaste IP-adressen toegewezen kunnen krijgen.', +'ccd invalid' => 'Ongeldig.', +'ccd iroute' => 'IPFire heeft toegang tot deze netwerken aan de klant-site.', +'ccd iroutehint' => 'Attentie! Als u deze instellingen wijzigt, moet u de OpenVPN server herstarten om deze instellingen actief te laten worden!', +'ccd modify' => 'Wijzig netwerk', +'ccd name' => 'Naam', +'ccd net' => 'Statische IP-adrespools', +'ccd noaddnet' => 'U kunt alleen nieuwe statische netwerken toevoegen als de OpenVPN server is gestopt.', +'ccd none' => 'Geen', +'ccd routes' => 'Routering:', +'ccd subnet' => 'Subnet', +'ccd used' => 'Gebruikte adressen', +'cert' => 'Certificaat', +'certificate' => 'Certificaat', +'certificate authorities' => 'Certificaatinstanties', +'certificate does not have a valid ca associated with it' => 'Certificaat heeft geen geldig CA hiermee verbonden.', +'certificate file move failed' => 'Verplaatsen van certificaat bestand is mislukt', +'cfg restart' => 'Een herstart wordt voorgesteld nadat de configuratie-archieven zijn teruggeplaatst.', +'chain' => 'Keten', +'change passwords' => 'Wijzig wachtwoorden', +'change share' => 'Wijzig share-opties', +'check for net traffic update' => 'Controleer op Net-Traffic updates', +'check vpn lr' => 'Controle', +'choose config' => 'Kies configuratie', +'choose media' => 'Kies media', +'cipher' => 'Encryptie:', +'city' => 'Stad', +'class in use' => 'Deze klasse is al in gebruik.', +'clear cache' => 'Opschonen Cache', +'clear playlist' => 'Lege speellijst', +'clenabled' => 'Lever tijd aan het lokale netwerk', +'click to disable' => 'Ingeschakeld (klik om uit te schakelen)', +'click to enable' => 'Uitgeschakeld (klik om in te schakelen)', +'client' => 'Naam werkstation', +'clock has not been synchronized' => 'Klok is nog niet gesynchroniseerd.', +'clock last synchronized at' => 'Klok was voor het laatst gesynchroniseerd om', +'comment' => 'Omschrijving:', +'common name' => 'Algemene naam', +'community rules' => 'Emergingthreats.net community regels', +'comp-lzo' => 'LZO-Compressie:', +'compression' => 'Compressie:', +'computer to modem rate' => 'Computer naar modem rato:', +'concentrator name' => 'Concentrator naam:', +'confirmation' => 'bevestiging', +'connect' => 'OVPN Start / Verbind', +'connect the modem' => 'Verbind de modem', +'connect timeout' => 'Verbinding time-out:', +'connected' => 'Verbonden', +'connecting' => 'Verbinden...', +'connection' => 'Connectie', +'connection closed' => 'Niet verbonden...', +'connection debugging' => 'Connectie debugging', +'connection status and controlc' => 'Verbindingsstatus en controle:', +'connection tracking' => 'IPTables verbindingen volgen', +'connection type' => 'Verbindingstype', +'connection type is invalid' => 'Verbindingstype is ongeldig.', +'connections' => 'Verbindingen', +'connections are associated with this ca. deleting the ca will delete these connections as well.' => 'verbindingen zijn geassocieerd met deze CA. Als deze CA wordt verwijderd worden de verbindingen ook verwijderd.', +'connscheduler' => 'Verbinding taakplanner', +'core notice 1' => 'Let op: Er is een core-update van', +'core notice 2' => 'naar', +'core notice 3' => 'beschikbaar.', +'could not be opened' => 'kan niet worden geopend.', +'could not connect to' => 'Kan niet verbinden', +'could not connect to www ipcop org' => 'Kan niet verbinden met www.ipfire.org', +'could not connect to www ipfire org' => 'Kan niet verbinden met www.ipfire.org', +'could not create directory' => 'kan directory niet aanmaken.', +'could not download latest patch list' => 'Kan laatste patchlijst niet downloaden (niet verbonden).', +'could not download latest updates' => 'Kan laatste updates niet downloaden.', +'could not download the available updates list' => 'Kan de update-lijst niet downloaden.', +'could not open available updates file' => 'Kan de update-lijst niet openen.', +'could not open installed updates file' => 'Kan het geïnstalleerde update-bestand niet openen.', +'could not open update information file' => 'Kan het update informatiebestand niet openen. Het update-bestand is beschadigd.', +'could not retrieve common name from certificate' => 'Kan de gemeenschappelijke naam van het certificaat niet bepalen.', +'country' => 'Land', +'cpu frequency per' => 'CPU frequentie per', +'cpu idle usage' => 'Idle CPU gebruik', +'cpu interrupt usage' => 'Interrupt CPU gebruik', +'cpu iowait usage' => 'CPU wacht op IO', +'cpu irq usage' => 'IRQ CPU gebruik', +'cpu nice usage' => 'Nice CPU gebruik', +'cpu steal usage' => 'Steal CPU gebruik', +'cpu system usage' => 'Systeem CPU gebruik', +'cpu usage per' => 'CPU gebruik per', +'cpu user usage' => 'Gebruikers CPU gebruik', +'create' => 'Aanmaken', +'create mask' => 'UNIX rechten voor nieuw aangemaakte bestanden', +'create new backup' => 'Maak een nieuwe back-up set aan', +'credits' => 'Credits', +'crl' => 'Certificaatintrekkingslijst', +'cron server' => 'CRON Server', +'current' => 'Huidig', +'current aliases' => 'Huidige aliassen:', +'current class' => 'Huidige klasse', +'current devices' => 'Huidige apparaten', +'current dhcp leases on blue' => 'Huidige DHCP leases op BLAUW', +'current dynamic leases' => 'Huidige dynamische leases', +'current fixed leases' => 'Huidige vaste leases', +'current hosts' => 'Huidige hosts:', +'current media' => 'Huidige media', +'current ovpn' => 'Actieve OVPN-Connectie:', +'current playlist' => 'Huidige speellijst', +'current profile' => 'Huidig profiel:', +'current rules' => 'Huidige regels:', +'custom networks' => 'Aangepaste netwerken', +'custom services' => 'Aangepaste Diensten', +'daily firewallhits' => 'dagelijkse firewalltreffers', +'dat without key' => 'Een gecodeerd archief kan niet worden teruggezet zonder sleutel.', +'date' => 'Datum', +'date not in logs' => 'Geen (of gedeeltelijke) log bestaat voor de gevraagde dag', +'day' => 'Dag', +'day after' => 'Volgende dag', +'day before' => 'Vorige dag', +'day-graph' => 'Dag', +'days' => 'dagen', +'dbfile' => 'Db bestand', +'ddns help dnsmadeeasy' => 'Voer uw ID in in het veld hostnaamveld (of een lijst met ID\'s gescheiden met een ;)', +'ddns help freedns' => 'In the fied username enter your connect string', +'ddns help plus' => '+ marks a mandatory field', +'ddns hostname added' => 'Dynamische DNS hostnaam toegevoegd', +'ddns hostname modified' => 'Dynamische DNS hostnaam gewijzigd', +'ddns hostname removed' => 'Dynamische DNS hostnaam verwijderd', +'ddns minimize updates' => 'Minimaliseer updates: vóór de update, vergelijk het DNS IP-adres voor hostnaam "[host.]domein" met ROOD IP-adres.', +'ddns noip prefix' => 'Om no-ip in groepsmodus te gebruiken, zet % voor de hostnaam', +'deactivate' => 'deactiveer', +'deactivate user' => 'deactiveer gebruiker', +'debugme' => 'Nog niet geïmplementeerd', +'december' => 'December', +'deep scan directories' => 'Scan recursief', +'def lease time' => 'Standaard leasetijd', +'default lease time' => 'Standaard leasetijd (min.):', +'default networks' => 'Standaard netwerken', +'default renewal time' => 'Standaard vernieuwtijd', +'default services' => 'Standaard Diensten', +'defaultwarning' => 'WAARSCHUWING – Uw instellingen gaan verloren en worden vervangen door de standaard waarden.', +'delete' => 'Verwijderen', +'delete cron' => 'Verwijder cron-taak', +'delete pc' => 'Verwijder werkstation', +'delete share' => 'Verwijder share', +'delete user' => 'Verwijder gebruiker', +'demon login script' => 'Daemon inlogscript', +'deprecated fs warn' => 'Verouderd bestandssysteem! Nieuwere kernels ondersteunen dit niet meer. Back-up en formateer opnieuw!', +'description' => 'Omschrijving', +'dest ip and port' => 'Best. IP: Poort', +'destination' => 'Bestemming', +'destination ip' => 'Bestemming IP', +'destination ip bad' => 'Ongeldig bestemming-IP', +'destination ip or net' => 'Bestemming IP of -net', +'destination net' => 'Bestemmingsnet', +'destination port' => 'Bestemmingspoort', +'destination port numbers' => 'Bestemmingspoort moet een geldig poortnummer of poortreeks zijn.', +'destination port overlaps' => 'Bestemming-poortreeks overlapt een bestaande poortreeks.', +'detail level' => 'Detailniveau', +'device' => 'Apparaat', +'devices on blue' => 'Apparaten op BLAUW', +'dhcp advopt add' => 'Voeg een DHCP optie toe', +'dhcp advopt added' => 'DHCP optie toegevoegd', +'dhcp advopt blank value' => 'DHCP optiewaarde kan niet leeg zijn.', +'dhcp advopt custom definition' => 'Uw eigen optie definitie', +'dhcp advopt definition' => 'Definitie', +'dhcp advopt definition exists' => 'Deze definitie-optie bestaat al. U kunt het alleen wijzigen of verwijderen.', +'dhcp advopt edit' => 'Wijzig een DHCP optie', +'dhcp advopt help' => 'Toon optielijst', +'dhcp advopt list' => 'Extra DHCP opties', +'dhcp advopt modified' => 'DHCP optie aangepast', +'dhcp advopt name' => 'Optienaam', +'dhcp advopt removed' => 'DHCP optie verwijderd', +'dhcp advopt scope' => 'Optiescope', +'dhcp advopt scope global' => 'Globaal', +'dhcp advopt scope help' => 'Globale scope of beperkte scope voor geselecteerde interfaces.', +'dhcp advopt unknown' => 'DHCP optienaam niet herkend', +'dhcp advopt value' => 'Optiewaarde', +'dhcp allow bootp' => 'bootp clients toegestaan', +'dhcp base ip fixed lease' => 'Basis IP voor aanmaken van vaste leases', +'dhcp bootp pxe data' => 'Voer optionele bootp pxe data in voor deze vaste lease', +'dhcp configuration' => 'DHCP configuratie', +'dhcp create fixed leases' => 'Aanmaken vaste leases', +'dhcp fixed lease err1' => 'Voor een vaste lease moet u het MAC-adres of de hostnaam invoeren, of beide.', +'dhcp fixed lease help1' => 'IP-adressen mogen ook als FQDN worden ingevoerd', +'dhcp mode' => 'DHCP', +'dhcp server' => 'DHCP Server', +'dhcp server disabled' => 'DHCP server uitgeschakeld. Gestopt.', +'dhcp server disabled on blue interface' => 'DHCP server uitgeschakeld op de BLAUWE interface', +'dhcp server enabled' => 'DHCP server ingeschakeld. Herstarten.', +'dhcp server enabled on blue interface' => 'DHCP server ingeschakeld op de BLAUWE interface', +'dhcp-options' => 'DHCP push opties', +'dial' => 'Verbind', +'dial profile' => 'Verbind met profile', +'dial user password' => 'Inbel gebruikerswachtwoord:', +'dial user password has been changed' => 'Inbel gebruikerswachtwoord is gewijzigd.', +'dialing mode' => 'Inbelmodus:', +'dialup red not ppp' => 'Inbelprofielen kunnen alleen gebruikt worden als ROOD op PPP Inbellen staat.
Controleer de netwerkinstellingen.', +'dialup settings' => 'Inbelinstellingen', +'directory mask' => 'UNIX directory rechten', +'directory writeable' => 'directory schrijfbaar', +'disabled' => 'uitgeschakeld', +'disconnect' => 'OVPN Stop / Verbreek', +'disconnects' => 'Verbreekt', +'disk access per' => 'Schijftoegang per', +'disk usage' => 'Schijfgebruik', +'display' => 'Scherm', +'display charset' => 'Scherm tekenset', +'display hostname in window title' => 'Toon hostnaam in venstertitel', +'display traffic at home' => 'Toon netwerkverkeer op startpagina', +'display webinterface effects' => 'Activeer effecten', +'dl client arch' => 'Download clientpakket (zip)', +'dmz' => 'DMZ', +'dmz pinhole configuration' => 'DMZ pinhole configuratie', +'dmz pinhole rule added' => 'DMZ pinhole regel toegevoegd; DMZ regel wordt herstart.', +'dmz pinhole rule removed' => 'DMZ pinhole regel verwijderd; DMZ wordt herstart', +'dmzpinholes for same net not necessary' => 'DMZ Pinholes zijn niet per se nodig voor hetzelfde net. Selecteer verschillende bron- of bestemmings-net.', +'dns address deleted' => 'Succesvol verwijderd!', +'dns address deleted txt' => 'De DNS-Server adressen zijn succesvol verwijderd.
U moet herstarten of opnieuw verbinden om de wijzigingen actief te laten worden!', +'dns address done' => 'De DNS-server adresinstellingen zullen worden opgeslagen.', +'dns address recon' => 'Probeert opnieuw te verbinden!', +'dns check failed' => 'DNS check mislukt', +'dns desc' => 'Als de rode interface de IP-adres informatie via DHCP ontvangt, zal de DNS server automatisch ingesteld worden. Hier kunt u de DNS instellingen wijzigen met uw eigen gegevens.', +'dns error 0' => 'De IP-adressen van de primaire DNS server is niet geldig, controleer uw invoer!
Het opgegeven secondaire DNS server adres is geldig.', +'dns error 01' => 'Het ingevoerde IP-adres van de primaire en secondaire DNS server zijn niet geldig, controleer uw invoer!', +'dns error 1' => 'Het IP-adres van de secondaire DNS server is niet geldig, controleer uw invoer!
Het ingevoerde primaire DNS server adres is geldig.', +'dns header' => 'Toekennen DNS server adressen alleen voor DHCP op rood', +'dns list' => 'Lijst van publieke DNS servers', +'dns menu' => 'Toekennen DNS server', +'dns new 0' => 'Nieuw primair DNS server IP:', +'dns new 1' => 'Nieuw secondair DNS server IP:', +'dns proxy server' => 'DNS Proxy Server', +'dns saved' => 'Succesvol opgeslagen!', +'dns saved txt' => 'De twee ingevoerde DNS serveradressen zijn succesvol opgeslagen.
U moet herstarten of opnieuw verbinden om de wijzigingen actief te laten worden!', +'dns server' => 'DNS Server', +'dns title' => 'Domein Naam Systeem', +'do not log this port list' => 'Negeer deze poorten voordat ze worden gelogd (vermindert loggrootte)', +'dod' => 'Inbellen op afroep', +'dod for dns' => 'Inbellen op afroep voor DNS:', +'dod not compatible with ddns' => 'Inkiezen op afroep compatibel met de dynamische DNS Diesten', +'dod waiting' => 'Inkiezen op afroep is wachtende', +'domain' => 'Domein', +'domain master' => 'Domein Master', +'domain name' => 'Domeinnaam', +'domain name suffix' => 'Domeinnaam toevoeging:', +'domain not set' => 'Domein niet ingesteld.', +'donation' => 'Donatie', +'donation-link' => 'https://www.paypal.com/en_US/GB/i/btn/btn_donateCC_LG.gif', +'donation-text' => 'IPFire wordt ontwikkeld en onderhouden door vrijwilligers in hun vrije tijd. Om dit project draaiend te houden, zouden we het erg op prijs stellen als u een kleine donatie maakt.', +'done' => 'Doe het', +'dos charset' => 'DOS tekenset', +'down and up speed' => 'Voer uw down- en uploadsnelheid in
en klik dan op Opslaan.', +'downlink speed' => 'Downlink snelheid (kbit/sec)', +'downlink std class' => 'downlink standaard klasse', +'download' => 'download', +'download ca certificate' => 'Download CA certificaat', +'download certificate' => 'Download certificaat', +'download host certificate' => 'Download host certificaat', +'download new ruleset' => 'Download nieuwe regelset', +'download pkcs12 file' => 'Download PKCS12 bestand', +'download root certificate' => 'Download root certificaat', +'dpd action' => 'Dead peer-detectie actie', +'driver' => 'Driver', +'drop input' => 'Log geblokkeerde input pakketten', +'drop newnotsyn' => 'Log geblokkeerde new-not-syn pakketten', +'drop output' => 'Log geblokkeerde output pakketten', +'drop portscan' => 'Log geblokkeerde poort-scan pakketten', +'drop proxy' => 'Blokkeer alle pakketten die niet zijn geadresseerd aan de proxy', +'drop samba' => 'Blokkeer alle Microsoft poorten 135,137,138,139,445,1025', +'drop wirelessforward' => 'Log geblokkeerde draadloze forward-pakketten', +'drop wirelessinput' => 'Log geblokkeerde draadloze input-pakketten', +'dst port' => 'Best. poort', +'dstprt range overlaps' => 'Bestemmingspoortreeks overlapt een al bestaande poort.', +'dstprt within existing' => 'Bestemmingspoort ligt binnen een al bestaande reeks.', +'duplicate ip' => 'Bestaand IP-adres ingevoerd', +'duplicate ip bold' => 'Bestaande adressen zijn in vet', +'duplicate mac' => 'Bestaand MAC-adres ingevoerd', +'duplicate name' => 'Deze naam wordt al gebruikt, kies a.u.b. een andere naam.', +'dyn dns source choice' => 'Dynamische DNS leverancier(s) zullen een IP-adres ontvangen voor deze IPFire van:', +'dynamic dns' => 'Dynamische DNS', +'dynamic dns client' => 'Dynamische DNS Client', +'e-mail address too long' => 'E-mailadres is te lang; het mag niet langer zijn dan 40 tekens.', +'eciadsl help' => 'Om het ECI ADSL modem te kunnen gebruiken moet u eerst het synch.bin bestand naar uw IPFire machine uploaden. Download het bestand van de ECIADSL website en upload dan het bestand synch.bin m.b.v. het formulier hieronder.', +'eciadsl upload' => 'Uploadt ECI ADSL synch.bin bestand', +'edit' => 'Wijzigen', +'edit a rule' => 'Wijzig een bestaande regel:', +'edit advanced settings when done' => 'Wijzig geavanceerde instellingen als u klaar bent.', +'edit an existing alias' => 'Wijzig een bestaande alias', +'edit an existing host' => 'Wijzig een bestaande host', +'edit an existing lease' => 'Wijzig een bestaande lease', +'edit device' => 'Wijzig apparaat', +'edit hosts' => 'Wijzig hosts', +'edit network' => 'Wijzig netwerk', +'edit printer' => 'Wijzig printer', +'edit service' => 'Wijzig service', +'edit share' => 'Wijzig share', +'editor' => 'Wijziger', +'eg' => 'bijv.:', +'email server can not be empty' => 'E-mailserver mag niet leeg zijn', +'emailreportlevel' => 'E-mailrapport detailniveau', +'empty' => 'Dit veld mag niet leeg worden gelaten', +'empty profile' => 'leeg', +'enable ignore filter' => 'Inschakelen negeer-filter', +'enable javascript' => 'Inschakelen javascript', +'enable wildcards' => 'Inschakelen wildcards:', +'enabled' => 'Ingeschakeld:', +'enabled on' => 'Ingeschakeld op', +'enabledtitle' => 'Ingeschakeld', +'encapsulation' => 'Inkapseling', +'encrypted' => 'Gecodeerd', +'end address' => 'Eindadres:', +'enter ack class' => 'Voer de ACK-klasse in
en klik dan op Opslaan.', +'enter data' => 'Maak uw instellingen
en klik dan op Opslaan.', +'err bk 1' => 'Fout bij aanmaken van archief', +'err bk 10 password' => 'Fout met het back-up wachtwoord', +'err bk 2 key' => 'Fout bij het aanmaken van een sleutelbestand', +'err bk 3 tar' => 'Fout bij het toevoegen van bestanden aan een archief', +'err bk 4 gz' => 'Fout bij het comprimeren van archief', +'err bk 5 encrypt' => 'Fout bij het coderen van archief', +'err rs 1' => 'Fout bij het terugzetten van archief', +'err rs 6 decrypt' => 'Fout bij het decoderen van archief', +'err rs 7 untartst' => 'Ongeldig gedecodeerd archief', +'err rs 8 untar' => 'Fout bij het uitpakken van archief', +'error config' => 'Kan /var/ipfire/ovpn/config/ZERINA.ovpn niet openen', +'error external access' => 'Kan /var/ipfire/xtaccess/config niet openen (externe toegang kon niet worden toegekend)', +'error messages' => 'Foutmeldingen:', +'esp encryption' => 'ESP Encryptie:', +'esp grouptype' => 'ESP Groeptype:', +'esp integrity' => 'ESP Integriteit:', +'esp keylife' => 'ESP Sleutel levensduur:', +'esp keylife should be between 1 and 24 hours' => 'ESP Sleutel levensduur moet tussen 1 en 24 uur liggen.', +'every' => 'Iedere', +'exampel' => 'voorbeeld', +'exclude logfiles' => 'Exclusief logbestanden', +'excluding buffers and cache' => '-/+ buffers/cache', +'expected' => 'Verwacht', +'expertoptions' => 'Expertopties', +'expires' => 'Verloopt', +'export' => 'Exporteren', +'exportkey' => 'Exporteer PSK', +'external access' => 'Externe toegang', +'external access configuration' => 'Externe toegangsconfiguratie', +'external access rule added' => 'Externe toegangsregel toegevoegd; herstarten van toegangscontroller', +'external access rule changed' => 'Externe toegangsregel gewijzigd; herstarten van toegangscontroller', +'external access rule removed' => ' Externe toegangsregel verwijderd; herstarten van toegangscontroller ', +'external aliases configuration' => 'Externe aliassenconfiguratie', +'extrahd' => 'Extra HD', +'extrahd because there is already a device mounted' => ', omdat er al een apparaat gekoppeld is', +'extrahd cant umount' => 'Kan niet ontkoppelen', +'extrahd detected drives' => 'gedetecteerde schijfstations', +'extrahd install or load driver' => 'Als uw apparaat hier niet tussen staat, dan moet u de driver installeren of laden.
Als u het apparaat kan zien maar geen partities, dan moet u er eerst een aanmaken.', +'extrahd maybe the device is in use' => '. Misschien is het apparaat in gebruik', +'extrahd to' => 'naar', +'extrahd to root' => 'naar root', +'extrahd unable to read' => 'Kan niet lezen', +'extrahd unable to write' => 'Kan niet schrijven', +'extrahd you cant mount' => 'U kan het niet aankoppelen', +'false classnumber' => 'Het klasse-nummer komt niet overeen met de interface.', +'false max bandwith' => 'Maximum bandbreedte is ongeldig.', +'false min bandwith' => 'Minimum bandbreedte is ongeldig.', +'february' => 'Februari', +'fetch ip from' => 'Bepaal het echte publieke IP-adres met behulp van een externe server', +'filename' => 'Bestandsnaam', +'filesystem full' => 'Bestandssysteem is vol', +'fireinfo ipfire version' => 'IPFire versie', +'fireinfo is disabled' => 'Fireinfo is uitgeschakeld', +'fireinfo is enabled' => 'Fireinfo is ingeschakeld', +'fireinfo is submitted' => 'Uw profiel is verzonden naar de fireinfo service.', +'fireinfo is submitted button' => 'Nee, ik wil mijn profiel niet langer meer verzenden', +'fireinfo kernel version' => 'Kernelversie', +'fireinfo not submitted' => 'Uw profiel is niet naar de pakfire service verzonden.', +'fireinfo not submitted button' => 'Ja, ik wil mijn profiel verzenden', +'fireinfo pakfire version' => 'Pakfire versie', +'fireinfo please enable' => 'Schakel a.u.b. de fireinfo service in.', +'fireinfo settings' => 'Fireinfo instellingen', +'fireinfo system version' => 'Systeemversies', +'fireinfo why descr1' => 'Het is zeer belangrijk voor ontwikkelaars van IPFire dat u deze service inschakelt', +'fireinfo why descr2' => '.', +'fireinfo why enable' => 'Waarom moet ik fireinfo inschakelen?', +'fireinfo why read more' => 'Lees meer over de redenen.', +'fireinfo your profile id' => 'Uw profiel ID', +'firewall' => 'Firewall', +'firewall graphs' => 'Firewallgrafieken', +'firewall hits' => 'Totaal aantal firewalltreffers voor', +'firewall hits per' => 'firewalltreffers per', +'firewall log' => 'Firewall log', +'firewall log viewer' => 'Firewall Log Viewer', +'firewall logs' => 'Firewall Logs', +'firewall logs ip' => 'Fw-Logdgrafieken (IP)', +'firewall logs port' => 'Fw-Loggrafieken (Poort)', +'firewallhits' => 'firewalltreffers', +'firmware' => 'Firmware', +'firmware upload' => 'Upload Firmware/Drivers', +'fixed ip lease added' => 'Vast IP-lease toegevoegd', +'fixed ip lease modified' => 'Vast IP-lease gewijzigd', +'fixed ip lease removed' => 'Vast IP-lease verwijderd', +'force update' => 'Forceer update', +'force user' => 'forceer alle nieuwe bestanden naar de gebruiker', +'forwarding rule added' => 'Forwarding regel toegevoegd; herstarten van forwarder', +'forwarding rule removed' => 'Forwarding regel verwijderd; herstarten van forwarder', +'forwarding rule updated' => 'Forwarding regel bijgewerkt; herstarten van forwarder', +'free' => 'Beschikbaar', +'free memory' => 'Beschikbaar geheugen ', +'free swap' => 'Beschikbare Swap', +'frequency' => 'Frequentie', +'friday' => 'Vrijdag', +'fritzdsl help' => 'Om een Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem te kunnen gebruiken, moet u eerst een pakket naar uw IPFire machine sturen. Download de tarball die correspondeert met uw versie van de IPFire website en upload dan de gehele fcdsl-(uw_versien).tgz m.b.v. het formulier hieronder.', +'fritzdsl upload' => 'Upload Fritz!DSL driver', +'from' => 'Van', +'from email adr' => 'Van e-mailadres', +'from email pw' => 'Van e-mailwachtwoord', +'from email server' => 'Van e-mail server', +'from email user' => 'Van e-mail gebruiker', +'from warn email bad' => 'Het van e-mailadres is niet geldig', +'fw blue' => 'Firewallopties voor de BLAUWE interface', +'fw logging' => 'Firewall logging', +'g.dtm' => 'WORDT VERWIJDERD', +'g.lite' => 'WORDT VERWIJDERD', +'gateway' => 'Gateway', +'gateway ip' => 'Gateway IP', +'gen static key' => 'Genereer een statische sleutel', +'generate' => 'Genereer root/host certificaat', +'generate a certificate' => 'Genereer een certificaat:', +'generate iso' => 'Genereer ISO', +'generate root/host certificates' => 'Genereer root/host certificaten', +'generate tripwire keys and init' => 'genereer tripwire-sleutels en init', +'generatekeys' => 'Genereer sleutels', +'generatepolicy' => 'Genereer nieuw beleid', +'generatereport' => 'Genereer nieuw rapport', +'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Het genereren van de root- en hostcertificaten kan enige tijd duren. Een moment geduld alstublieft.', +'genkey' => 'Genereer PSK', +'genre' => 'Genre', +'global settings' => 'Globale instellingen', +'gpl i accept these terms and conditions' => 'Ik accepteer deze voorwaarden en condities.', +'gpl license agreement' => 'Licentieovereenkomst', +'gpl please read carefully the general public license and accept it below' => 'Lees alstublieft de General Public License aandachtig door en accepteer het hieronder', +'gpl unofficial translation of the general public license v3' => 'Onofficiële vertaling van de General Public License v3', +'graph' => 'Grafiek', +'graph per' => 'per', +'green' => 'GROEN', +'green interface' => 'Groene Interface', +'guaranteed bandwith' => 'Gegarandeerde bandbreedte', +'guardian alertfile' => 'Meldingenbestand', +'guardian configuration' => 'Guardian configuratie', +'guardian ignorefile' => 'Negeerbestand', +'guardian interface' => 'Interface', +'guardian logfile' => 'Logbestand', +'guardian timelimit' => 'Tijdlimiet', +'guest ok' => 'verleen gasten toegang', +'gui settings' => 'Gebruikersinterface', +'gz with key' => 'Alleen gecodeerde archieven kunnen worden teruggezet op deze machine.', +'hangup' => 'Verbreek', +'hangup string' => 'Ophangen:', +'harddisk temperature' => 'Harddisk temperatuur', +'harddisk temperature graphs' => 'hdd temperatuurgrafieken', +'hardware graphs' => 'Hardware grafieken', +'hdd temperature in' => 'Harddisk temperatuur in', +'help' => 'Help', +'high' => 'Hoog', +'high memory usage' => 'Verhoogd geheugengebruik', +'hint' => 'Hint:', +'holdoff' => 'Uitsteltijd (in seconden)', +'host' => 'Host', +'host allow' => 'lijst met toegestane hosts', +'host certificate' => 'Hostcertificaat', +'host configuration' => 'Hostconfiguratie', +'host deny' => 'lijst met geweigerde hosts', +'host ip' => 'Host IP-adres', +'host to net vpn' => 'Host-naar-Net Virtual Private Network (RoadWarrior)', +'hostname' => 'Hostnaam', +'hostname and domain already in use' => 'Hostnaam en domein zijn al in gebruik.', +'hostname cant be empty' => 'Hostnaam mag niet leeg zijn.', +'hostname not set' => 'Hostnaam niet opgegeven.', +'hosts config added' => 'Hosts configuratie toegevoegd', +'hosts config changed' => 'Hosts configuratie gewijzigd', +'hour' => 'Uur', +'hour-graph' => 'Uur', +'hours' => 'uren', +'hours2' => 'Uren', +'ibod for dual isdn only' => 'iBOD kan alleen gebruikt worden met Dual ISDN.', +'icmp selected but no type' => 'ICMP als protocol geselecteerd, maar er is geen ICMP type gespecificeerd.', +'icmp type' => 'ICMP Type', +'id' => 'ID', +'idle' => 'Idle', +'idle timeout' => 'Idle time-out (min; 0 om uit te schakelen):', +'idle timeout not set' => 'Idle time-out niet ingesteld.', +'ids log viewer' => 'IDS log viewer', +'ids logs' => 'IDS Logs', +'ids preprocessor' => 'IDS pre-processor', +'ids rules license' => 'Om de Sourcefire VRT Certified Rules te kunnen gebruiken, moet u zich registreren op', +'ids rules license1' => '.', +'ids rules license2' => 'Accepteer de licentie, activeer uw account door op link te klikken die naar u is gemaild. Ga dan naar', +'ids rules license3' => 'klik op de "Genereer code"-knop en kopieer de 40 tekens lange Oinkcode naar het veld hieronder.', +'ids rules update' => 'Snort regels bijwerken', +'iface' => 'Iface', +'ignore filter' => 'Negeerfilter', +'ike encryption' => 'IKE Encryptie:', +'ike grouptype' => 'IKE Groepstype:', +'ike integrity' => 'IKE Integriteit:', +'ike lifetime' => 'IKE Levensduur:', +'ike lifetime should be between 1 and 8 hours' => 'IKE levensduur moet tussen 1 en 8 uur liggen.', +'import' => 'Importeer', +'importkey' => 'Importeer PSK', +'in' => 'In', +'inactive' => 'inactief', +'include logfiles' => 'Inclusief logbestanden', +'incoming' => 'inkomend', +'incoming traffic in bytes per second' => 'Inkomend verkeer', +'incorrect password' => 'Onjuist wachtwoord', +'info' => 'Info', +'init string' => 'Initieer:', +'insert floppy' => 'Om een back-up naar floppy te maken, plaatst u een geformatteerde floppy in de drive en klik back-up naar floppy om de systeemconfiguratie op te slaan. Bekijk de resultaten om er zeker van te zijn dat de back-up succesvol is verlopen. Het kan even duren voordat deze opdracht is voltooid, dus even geduld a.u.b.

', +'insert removable device' => 'Plaats een verwisselbaar apparaat', +'install' => 'Installeren', +'install new update' => 'Installeer nieuwe update:', +'installed' => 'Geïnstalleerd', +'installed updates' => 'Geïnstalleerde updates:', +'instant update' => 'Directe update', +'interface' => 'Interface', +'interfaces' => 'Interfaces', +'internet' => 'INTERNET', +'intrusion detection' => 'Inbraakdetectie', +'intrusion detection system' => 'Inbraakdetectie systeem', +'intrusion detection system log viewer' => 'Inbraakdetectie systeem Log Viewer', +'intrusion detection system rules' => 'inbraakdetectie systeem regels', +'intrusion detection system2' => 'Inbraakdetectiesysteem:', +'invalid broadcast ip' => 'Ongeldig broadcast IP', +'invalid cache size' => 'Ongeldige cache grootte.', +'invalid characters found in pre-shared key' => 'Ongeldige tekens gevonden in de pre-shared sleutel.', +'invalid date entered' => 'Ongeldige datum ingevoerd.', +'invalid default lease time' => 'Ongeldige standaard leasetijd.', +'invalid domain name' => 'Ongeldige domeinnaam.', +'invalid downlink speed' => 'Ongeldige downlink snelheid.', +'invalid end address' => 'Ongeldig eind-adres.', +'invalid fixed ip address' => 'Ongeldig vast IP-adres', +'invalid fixed mac address' => 'Ongeldig vast MAC-adres', +'invalid hostname' => 'Ongeldige hostnaam.', +'invalid input' => 'Ongeldige invoer', +'invalid input for authentication method' => 'Ongeldige invoer voor authenticatiemethode.', +'invalid input for city' => 'Ongeldige invoer voor stad.', +'invalid input for country' => ' Ongeldige invoer voor land.', +'invalid input for department' => ' Ongeldige invoer voor afdeling.', +'invalid input for dhcp dns' => ' Ongeldige invoer voor DHCP DNS', +'invalid input for dhcp domain' => ' Ongeldige invoer voor DHCP domein', +'invalid input for dhcp wins' => ' Ongeldige invoer voor DHCP WINS', +'invalid input for e-mail address' => ' Ongeldige invoer voor e-mailadres.', +'invalid input for esp keylife' => ' Ongeldige invoer voor ESP sleutel levensduur', +'invalid input for hostname' => ' Ongeldige invoer voor hostnaam.', +'invalid input for ike lifetime' => ' Ongeldige invoer voor IKE levensduur', +'invalid input for keepalive 1' => ' Ongeldige invoer voor keepalive ping', +'invalid input for keepalive 1:2' => ' Ongeldige invoer voor keepalive gebruik tenminste een ratio van 1:2', +'invalid input for keepalive 2' => ' Ongeldige invoer voor keepalive ping-herstart', +'invalid input for max clients' => ' Ongeldige invoer voor max. clients', +'invalid input for name' => ' Ongeldige invoer voor gebruikersnaam of systeemhostnaam', +'invalid input for oink code' => ' Ongeldige invoer voor Oink code', +'invalid input for organization' => ' Ongeldige invoer voor organisatie', +'invalid input for remote host/ip' => ' Ongeldige invoer voor remote host/ip.', +'invalid input for state or province' => ' Ongeldige invoer voor provincie.', +'invalid ip' => 'Ongeldig IP-adres', +'invalid keep time' => 'Keep-tijd moet een geldig getal zijn', +'invalid key' => 'Ongeldige sleutel.', +'invalid loaded file' => 'Ongeldig bestand geladen', +'invalid local-remote id' => 'lokaal & remote ID mogen niet gelijk zijn en beginnen met een "@" teken. Dit zijn de leftid en rightid in strongswan terminologie.', +'invalid logserver address' => 'Ongeldig syslogd serveradres', +'invalid mac address' => 'Ongeldig MAC-adres', +'invalid max lease time' => 'Ongeldige max. leasetijd.', +'invalid maximum incoming size' => 'Ongeldige maximum inkomende grootte.', +'invalid maximum object size' => 'Ongeldige maximum objectgrootte.', +'invalid maximum outgoing size' => 'Ongeldige maximum uitgaande grootte.', +'invalid md5sum' => 'Ongeldige MD5Sum.', +'invalid minimum object size' => 'Ongeldige minimum objectgrootte.', +'invalid mtu input' => 'Ongeldige MTU', +'invalid netmask' => 'Ongeldig netmasker', +'invalid port' => 'Ongeldige poort. Moet een geldig poortnummer zijn.', +'invalid port list' => 'Poortlijst syntax is: poort[,poort]... waarbij poort is in /etc/services of getal', +'invalid primary dns' => 'Ongeldige primaire DNS.', +'invalid primary ntp' => 'Ongeldig primaire NTP serveradres', +'invalid secondary dns' => ' Ongeldige secundaire DNS.', +'invalid secondary ntp' => ' Ongeldig secundaire NTP serveradres', +'invalid start address' => ' Ongeldig beginadres.', +'invalid time entered' => ' Ongeldige tijd ingevoerd.', +'invalid time period' => ' Ongeldige tijdsperiode', +'invalid uplink speed' => ' Ongeldige uplink-snelheid.', +'invalid upstream proxy username or password setting' => ' Ongeldige upstream proxy gebruikersnaam of wachtwoord.', +'invalid users' => 'lijst met gebruikers die toegang is geweigerd', +'invalid vpi vpci' => 'Ongeldige VPI/VPCI instellingen', +'invalid wins address' => ' Ongeldig WINS serveradres.', +'invert' => 'Inverteer', +'ip address' => 'IP-adres', +'ip address in use' => 'IP-adres is al in gebruik', +'ip address outside subnets' => 'IP-adres ligt buiten subnets', +'ip alias added' => 'Extern IP-alias toegevoegd', +'ip alias changed' => 'Extern IP-alias gewijzigd', +'ip alias removed' => 'Extern IP-alias verwijderd', +'ip info' => 'IP Informatie', +'ipfire has now rebooted' => 'IPFire is nu aan het herstarten.', +'ipfire has now shutdown' => 'IPFire is nu aan het afsluiten.', +'ipfire side' => 'IPFire-zijde:', +'ipfire side is invalid' => 'IPFire-zijde is ongeldig.', +'ipfires hostname' => 'IPFire\'s Hostnaam', +'ipinfo' => 'IP info', +'iptable rules' => 'IPTable regels', +'iptmangles' => 'IPTable Mangles', +'iptnats' => 'IPTable Network Adrestranslatie', +'ipts' => 'IPTables', +'isdn' => 'ISDN', +'isdn settings' => 'Extra ISDN instellingen:', +'isdn1' => 'Single ISDN', +'isdn2' => 'Dual ISDN', +'january' => 'Januari', +'javascript menu error1' => 'Als de menu\'s niet werken, schakel dan javascript uit op de', +'javascript menu error2' => 'pagina.', +'july' => 'Juli', +'june' => 'Juni', +'kernel' => 'Kernel', +'kernel logging server' => 'Kernel Logging Server', +'kernel version' => 'Kernelversie:', +'key stuff' => '2. Sleutels en certificaten', +'keyreset' => 'Reset sleutels', +'keys' => 'sleutels', +'lan' => 'LAN', +'lang' => 'nl', +'languagepurpose' => 'Selecteer de taal die u wilt gebruiken voor IPFire:', +'last activity' => 'Laatste activiteit', +'lateprompting' => 'Laat-prompting', +'lease expires' => 'Lease verloopt', +'legend' => 'Legenda', +'length' => 'Lengte', +'line' => 'Lijn', +'linkq' => 'Lijnkwaliteit', +'load printer' => 'Laad printer', +'loaded modules' => 'Geladen modules:', +'local hard disk' => 'Harddisk', +'local master' => 'Lokale Master', +'local ntp server specified but not enabled' => 'Lokale NTP server is gespecificeerd, maar niet ingeschakeld', +'local subnet' => 'Lokaal subnet:', +'local subnet is invalid' => 'Lokaal subnet is ongeldig.', +'local vpn hostname/ip' => 'Lokale VPN-hostnaam/IP', +'localkey' => 'Lokale sleutel', +'localkeyfile' => 'Lokaal sleutelbestand', +'log' => 'Log:', +'log enabled' => 'Log ingeschakeld', +'log level' => 'Log-niveau', +'log lines per page' => 'Regels per pagina', +'log server address' => 'Syslogserver:', +'log settings' => 'Log-instellingen', +'log summaries' => 'Log-samenvattingen', +'log summary' => 'Log-samenvatting', +'log var messages' => 'Instellingen voor /var/log/messages:', +'log view' => 'Log-view', +'log viewer' => 'Log-viewer', +'log viewing options' => 'Log viewing opties', +'log-options' => 'Logbestand opties', +'loged in at' => 'Ingelogd om', +'logging' => 'Logging', +'logging server' => 'Loggingserver', +'loginlogout' => 'Login/Logout', +'logs' => 'logs', +'lookup failed' => 'Reverse lookup mislukt', +'loosedirectorychecking' => 'Loosedirectorychecking', +'low' => 'Laag', +'ls_dhcpd' => 'DHCP Server:', +'ls_disk space' => 'Schijfruimte:', +'ls_free/swan' => 'VPN:', +'ls_httpd' => 'HTTP Server:', +'ls_init' => 'Init:', +'ls_kernel' => 'Kernel en Firewall:', +'ls_modprobe' => 'Module loader:', +'ls_pam_unix' => 'Lokale gebruikers logins:', +'ls_sshd' => 'Remote gebruikers logins:', +'ls_syslogd' => 'Syslogd:', +'mac address' => 'MAC-adres', +'mac address deleted' => 'Succesvol verwijderd!', +'mac address deleted txt' => 'Het MAC-adres is succesvol verwijderd, maar de wijzigingen worden pas actief na herstart.', +'mac address done' => 'De MAC-adres instellingen worden opgeslagen.', +'mac address error not 00' => 'MAC-adres moet beginnen met 00!', +'mac address error not valid' => 'MAC-adres is ongeldig!', +'mac address header' => 'MAC-adres op red0', +'mac address in use' => 'MAC-adres is al in gebruik', +'mac address menu' => 'Toekennen MAC-adres', +'mac address recon' => 'Probeert opnieuw te verbinden!', +'mac address saved' => 'Succesvol opgeslagen!', +'mac address saved txt' => 'Het MAC-adres is succesvol opgeslagen, maar de wijzigingen worden pas actief na een herstart of opnieuw verbinden.', +'mac address title' => 'Medium Access Control Adres', +'mac desc' => 'Hier kunt u het MAC-adres van red0 wijzigen. Het adres moet in hexadecimale waarden (0-9,a-f) ingevoerd worden,
bijv. 00-01-02-0e-b8-d6 of 00:01:02:0e:b8:d6.', +'mac new' => 'nieuw MAC-adres:', +'mac1 new' => 'nieuw MAC-adres 1 (vdsl-inet):', +'mac2 new' => 'nieuw MAC-adres 2 (vdsl-iptv):', +'magic packet send to:' => 'Magic-pakket verstuurd naar:', +'mailmethod' => 'Mailmethode', +'mailprogramm' => 'Mailprogramma', +'main page' => 'Hoofdpagina', +'manage ovpn' => '5. Tunnelbeheer:', +'manage printers' => 'beheer printers', +'manage shares' => 'beheer shares', +'manual' => 'Handmatig', +'manual control and status' => 'Handmatige controle en status:', +'manually' => 'Handmatig', +'map to guest' => 'Toewijzen aan gast', +'march' => 'Maart', +'marked' => 'Gemarkeerd', +'max bandwith' => 'Maximum bandbreedte', +'max incoming size' => 'Max. inkomende grootte (KB):', +'max lease time' => 'Max. leasetijd (min.):', +'max outgoing size' => 'Max. uitgaande grootte (KB):', +'max reliability' => 'Maximum betrouwbaarheid', +'max renewal time' => 'Maximum vernieuwingstijd', +'max retries not set' => 'Max. aantal pogingen niet ingesteld.', +'max size' => 'Max. objectgrootte (KB):', +'max throughput' => 'Maximum doorvoersnelheid', +'maximal' => 'Maximaal', +'maximum retries' => 'Maximum aantal pogingen:', +'may' => 'Mei', +'mbmon display' => 'Display', +'mbmon fan' => 'Fan-snelheid', +'mbmon fan in' => 'Fan-snelheid in', +'mbmon graphs' => 'mbmon grafieken', +'mbmon label' => 'Label', +'mbmon settings' => 'mbmon grafiekinstellingen', +'mbmon temp' => 'Temperatuur', +'mbmon temp in' => 'Temperatuur in', +'mbmon value' => 'Waarde', +'mbmon volt' => 'Voltage', +'meaning' => 'betekenis', +'media' => 'Media', +'media information' => 'media-informatie', +'medium' => 'Gemiddeld', +'memory' => 'Geheugen', +'memory information' => 'geheugen informatie', +'memory usage per' => 'Geheugengebruik per', +'messages logging' => 'Log-instellingen voor /var/log/messages', +'method' => 'Methode:', +'min costs' => 'Minimum kosten', +'min delay' => 'Minimum vertraging', +'min size' => 'Min. objectgrootte (KB):', +'minimal' => 'Minimaal', +'minute' => 'Minuut', +'minutes' => 'Minuten', +'misc-options' => 'Overige opties', +'missing dat' => 'Gecodeerd archief niet gevonden', +'missing gz' => 'Ongecodeerd archief niet gevonden', +'mode' => 'Modus', +'modem' => 'Modem', +'modem configuration' => 'Modemconfiguratie', +'modem on com1' => 'Modem op COM1', +'modem on com2' => 'Modem op COM2', +'modem on com3' => 'Modem op COM3', +'modem on com4' => 'Modem op COM4', +'modem on com5' => 'Modem op COM5', +'modem settings have errors' => 'Modeminstellingen bevatten fouten', +'modem speaker on' => 'Modemspeaker aan:', +'modify' => 'Wijzig', +'modulation' => 'Modulatie', +'monday' => 'Maandag', +'month' => 'Maand', +'month-graph' => 'Maand', +'monthly firewallhits' => 'maandelijkse firewalltreffers', +'monthly start day bad' => 'Maandelijkse startdag is niet correct', +'monthly traffic bad' => 'Maandelijks volume is niet correct', +'monthly volume' => 'Maandelijks volume', +'monthly volume start day' => 'Eerste dag van de maandelijkse periode', +'monthly volume start day short' => 'Eerste dag', +'months' => 'maanden', +'more' => 'meer', +'mount' => 'Koppelen', +'mounted on' => 'Gekoppeld op', +'mpfire' => 'Mediaspeler voor IPFire', +'mpfire controls' => 'MPFire Controle', +'mpfire playlist' => 'MPFire afspeellijst', +'mpfire scanning' => 'Zoeken naar nieuwe bestanden', +'mpfire search' => 'MPFire Zoeken', +'mpfire songs' => 'MPFire lijst met nummers', +'mpfire webradio' => 'MPFire Webradio', +'mtu QoS' => 'Dit verandert niet de globale MTU, het zet alleen de MTU voor QoS.', +'my new share' => 'Mijn nieuwe share', +'name' => 'Naam', +'name is invalid' => 'Naam is ongeldig', +'name must only contain characters' => 'Naam mag alleen letters bevatten.', +'name too long' => 'Gebruikersnaam of systeemhostnaam is te lang', +'nat-traversal' => 'Nat Traversal:', +'needreboot' => 'Een update vereist een herstart', +'net' => 'Net', +'net address' => 'net-adres', +'net config' => 'Netwerkconfiguratie', +'net config type' => 'type netwerkconfiguratie', +'net config type help' => 'GROEN is het lokale netwerk, ROOD is het internet, BLAUW is WLAN, ORANJE is de DMZ.', +'net to net vpn' => 'Net-to-Net Virtual Private Network', +'net traffic newversion' => 'Nieuwe Net-Traffic versie is beschikbaar:', +'net-traffic configuration' => 'Net-Traffic configuratie', +'netbios name' => 'Netbios-naam', +'netmask' => 'Netmasker', +'network' => 'Netwerk', +'network added' => 'Aangepast netwerk toegevoegd', +'network configuration' => 'Netwerkconfiguratie', +'network internal' => 'Netwerk (intern)', +'network options' => 'Netwerkopties', +'network other' => 'Netwerk (overig)', +'network red' => 'Netwerk (extern)', +'network removed' => 'Aangepast netwerk verwijderd', +'network status information' => 'Netwerk statusinformatie', +'network time' => 'Gebruik een netwerktijdsserver:', +'network time from' => 'Ontvang de tijd van een netwerktijdsserver', +'network traffic graphs' => 'Netwerkverkeer grafieken', +'network traffic graphs external' => 'Netwerkgebruik grafieken (extern)', +'network traffic graphs internal' => 'Netwerkgebruik grafieken (intern)', +'network traffic graphs others' => 'Netwerk (overig)', +'network updated' => 'Aangepast netwerk bijgewerkt', +'networks settings' => 'Firewall - Netwerkinstellingen', +'new optionsfw later' => 'Uw wijziging(en) worden actief na de volgende herstart', +'new optionsfw must boot' => 'U moet IPFire herstarten', +'newer' => 'Nieuwer', +'next' => 'volgende', +'no' => 'Nee', +'no alcatelusb firmware' => 'Geen Alcatel USB firmware. Bestand uploaden a.u.b.', +'no cfg upload' => 'Er was geen data geüpload', +'no dhcp lease' => 'Er kon geen DHCP lease worden verkregen', +'no eciadsl synch.bin file' => 'Geen ECI ADSL synch.bin bestand. Bestand uploaden a.u.b.', +'no filter pass' => 'Geef de standaard-klasse voor niet-gefilterde pakketten.', +'no fritzdsl driver' => 'Geen Fritz!DSL driver. Bestand uploaden a.u.b.', +'no information available' => 'Geen informatie beschikbaar.', +'no log selected' => 'Geen log geselecteerd', +'no modem selected' => 'Geen modem geselecteerd', +'no set selected' => 'Geen set geselecteerd', +'no time limit' => 'onbeperkte tijd', +'none found' => 'niets gevonden', +'nonetworkname' => 'Geen netwerknaam ingevoerd', +'noservicename' => 'Geen servicenaam ingevoerd', +'not a valid ca certificate' => 'Geen geldig CA certificaat.', +'not enough disk space' => 'Onvoldoende schijfruimte', +'not present' => 'Niet aanwezig', +'not running' => 'loopt niet', +'not set' => 'niet gezet', +'notes' => 'Notities', +'november' => 'November', +'ntp common settings' => 'Algemene instellingen', +'ntp configuration' => 'NTP configuratie', +'ntp must be enabled to have clients' => 'NTP moet ingeschakeld zijn om klanten te bedienen.', +'ntp server' => 'NTP Server', +'ntp sync' => 'Synchronisatie', +'ntp syncro disabled' => 'NTP synchronisatie uitgeschakeld', +'ntp syncro enabled' => 'NTP synchronisatie ingeschakeld', +'ntpd restarted' => 'ntpd herstart', +'number' => 'Nummer:', +'o-no' => 'Inactief', +'o-yes' => 'Actief', +'october' => 'Oktober', +'off' => 'uit', +'ok' => 'OK', +'older' => 'Ouder', +'on' => 'aan', +'online help en' => 'Online help (in Engels)', +'only digits allowed in holdoff field' => 'Alleen cijfers toegestaan in holdoff veld', +'only digits allowed in max retries field' => 'Alleen cijfers toegestaan in max.pogingen veld.', +'only digits allowed in the idle timeout' => ' Alleen cijfers toegestaan in het idle time-out veld.', +'only red' => 'Alleen ROOD', +'open to all' => 'Geef externe toegang voor ALLEN', +'openssl produced an error' => 'OpenSSL gaf een fout', +'openvpn client' => 'OpenVPN client', +'openvpn default' => 'Standaard', +'openvpn destination port used' => 'De bestemmingspoort is al in gebruik door een andere OpenVPN server.', +'openvpn disabled' => 'UITGESCHAKELD', +'openvpn enabled' => 'INGESCHAKELD', +'openvpn fragment allowed with udp' => 'Het gebruik van fragment is alleen toegestaan met het UDP protocol.', +'openvpn log' => 'OpenVPN Log', +'openvpn mssfix allowed with udp' => 'Het gebruik van "mssfix" is alleen toegestaan met het UDP protocol.', +'openvpn prefix local subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteunt op het lokale subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.', +'openvpn prefix openvpn subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteund voor het OpenVPN subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.', +'openvpn prefix remote subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteund voor het remote subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.', +'openvpn server' => 'OpenVPN server', +'openvpn subnet is used' => 'Het gegeven subnet is in gebruik door een andere OpenVPN server.', +'optional at cmd' => 'optioneel AT commando', +'optional data' => '3. Optionele instellingen:', +'options' => 'Opties', +'options fw' => 'Firewall Opties', +'optionsfw portlist hint' => 'De lijst met poorten moet gescheiden zijn met komma\'s (bijv. 137,138). U kunt tot maximaal 15 poorten per protocol opgeven.', +'optionsfw warning' => 'Het wijzigen van deze opties betekent het herstarten van de firewall', +'or' => 'of', +'orange' => 'ORANJE', +'organization cant be empty' => 'Organisatie mag niet leeg zijn.', +'organization name' => 'Organisatienaam', +'organization too long' => 'Organisatie is te lang; mag niet langer zijn dan 60 tekens.', +'original' => 'Origineel', +'os level' => 'OS niveau', +'other' => 'Andere', +'other countries' => 'Andere landen', +'other login script' => 'Ander inlog script', +'otherip' => 'ander IP', +'otherport' => 'andere poort', +'our donors' => 'Onze donateurs', +'out' => 'Uit', +'outgoing' => 'uitgaand', +'outgoing firewall' => 'Uitgaande Firewall', +'outgoing firewall add ip group' => 'Toevoegen IP-adresgroep', +'outgoing firewall add mac group' => 'Toevoegen MAC-adresgroep', +'outgoing firewall edit ip group' => 'Wijzig IP-adresgroep', +'outgoing firewall edit mac group' => 'Wijzig MAC-adresgroep', +'outgoing firewall group error' => 'Een groep met dezelfde naam bestaat al.', +'outgoing firewall groups' => 'Firewallgroepen', +'outgoing firewall ip groups' => 'Uitgaande Firewall IP-adresgroepen', +'outgoing firewall mac groups' => 'Uitgaande Firewall MAC-adresgroepen', +'outgoing firewall mode0' => 'Als u deze modus gebruikt kunnen alle clients zonder enige restrictie het internet benaderen.', +'outgoing firewall mode1' => 'Als u deze modus gebruikt kunnen alleen verbindingen worden opgezet die door de gedefinieerde regels toegestaan zijn.', +'outgoing firewall mode2' => 'Als u deze modus gebruikt worden alle verbindingen toegestaan, behalve de gedefinieerde blokkeringsregels.', +'outgoing firewall outgoing firewall reserved groupname' => 'Gebruik een andere groepsnaam a.u.b., deze naam is gereserveerd.', +'outgoing firewall p2p allow' => 'p2p protocol is toegestaan', +'outgoing firewall p2p deny' => 'p2p protocol is niet toegestaan', +'outgoing firewall p2p description 1' => 'De knop', +'outgoing firewall p2p description 2' => 'betekent dat het p2p protocol is toegestaan of', +'outgoing firewall p2p description 3' => 'dat het p2p protocol niet is toegestaan.', +'outgoing firewall reset' => 'Reset alles', +'outgoing firewall view group' => 'Bekijk groep', +'outgoing firewall warning' => 'Het niet selecteren van bron IP of MAC negeert ze', +'outgoing traffic in bytes per second' => 'Uitgaand verkeer', +'override mtu' => 'Overschrijf standaard MTU', +'ovpn' => 'OpenVPN', +'ovpn con stat' => 'OpenVPN connectiestatistieken', +'ovpn config' => 'OVPN-Configuratie', +'ovpn device' => 'OpenVPN apparaat:', +'ovpn dl' => 'OVPN-Configuratie download', +'ovpn errmsg green already pushed' => 'Route voor het groene netwerk is altijd aangezet', +'ovpn errmsg invalid ip or mask' => 'Ongeldig netwerkadres of subnetmasker', +'ovpn log' => 'OVPN-Log', +'ovpn mtu-disc' => 'Pad MTU Discovery', +'ovpn mtu-disc and mtu not 1500' => 'Pad MTU Discovery vereist een MTU van 1500.', +'ovpn mtu-disc maybe' => 'Optioneel', +'ovpn mtu-disc no' => 'Nooit', +'ovpn mtu-disc off' => 'Uitgeschakeld', +'ovpn mtu-disc with mssfix or fragment' => 'Pad MTU Discovery kan niet worden gebruikt met mssfix of fragment.', +'ovpn mtu-disc yes' => 'Geforceerd', +'ovpn on blue' => 'OpenVPN op BLAUW', +'ovpn on orange' => 'OpenVPN op ORANJE', +'ovpn on red' => 'OpenVPN op ROOD', +'ovpn routes push' => 'Routes (een per regel):', +'ovpn routes push options' => 'Route push opties', +'ovpn server status' => 'Huidige OpenVPN server status:', +'ovpn subnet' => 'OpenVPN subnet (bijv. 10.0.10.0/255.255.255.0)', +'ovpn subnet is invalid' => 'OpenVPN subnet is ongeldig.', +'ovpn subnet overlap' => 'OpenVPN subnet overlapt met : ', +'ovpn_fastio' => 'Fast-IO', +'ovpn_fragment' => 'Fragmentgrootte', +'ovpn_mssfix' => 'MSSFIX-grootte', +'ovpn_mtudisc' => 'MTU-Discovery', +'ovpn_processprio' => 'Procesprioriteit', +'ovpn_processprioD' => 'Laag', +'ovpn_processprioED' => 'Extreem laag', +'ovpn_processprioEH' => 'Extreem hoog', +'ovpn_processprioEN' => 'Hoger dan normaal', +'ovpn_processprioH' => 'Hoog', +'ovpn_processprioLN' => 'Lager dan normaal', +'ovpn_processprioN' => 'Normaal', +'ovpn_processprioVD' => 'Zeer laag', +'ovpn_processprioVH' => 'Zeer hoog', +'ovpnstatus log' => 'OVPN-Status-Log', +'ovpnsys log' => 'OVPN-Systeem-Log', +'package failed to install' => 'Pakket kon niet worden geïnstalleerd.', +'pagerefresh' => 'Pagina wordt ververst, wacht even a.u.b.', +'pakfire accept all' => 'Wilt u alle pakketten installeren?', +'pakfire ago' => 'geleden.', +'pakfire available addons' => 'Beschikbare extensies:', +'pakfire configuration' => 'Pakfire configuratie', +'pakfire core update auto' => 'Installeer core- en extensie-updates automatisch:', +'pakfire core update level' => 'Core-updateniveau', +'pakfire health check' => 'Controleer of de mirror bereikbaar is (ping):', +'pakfire install description' => 'Kies een of meer items uit de lijst hieronder en
klik op de plus om te installeren.', +'pakfire install package' => 'U wilt de volgende pakketten installeren: ', +'pakfire installed addons' => 'Geïnstalleerde extensies:', +'pakfire last core list update' => 'Laatste core-lijst update gemaakt', +'pakfire last package update' => 'Laatste pakketlijst update gemaakt', +'pakfire last serverlist update' => 'Laatste serverlijst update gemaakt', +'pakfire last update' => 'Laatste update gemaakt', +'pakfire possible dependency' => ' Er kunnen pakketafhankelijkheden zijn, hier is een lijst met pakketten die moeten worden geïnstalleerd.', +'pakfire register' => 'Registreer bij de pakfire-server:', +'pakfire system state' => 'Systeemstatus', +'pakfire uninstall description' => 'Kies een of meer items uit de lijst hieronder en
klik op de min om te deinstalleren.', +'pakfire uninstall package' => 'U wilt de volgende pakketten deinstalleren: ', +'pakfire update daily' => 'Zoek dagelijks naar updates:', +'pakfire updates' => 'Beschikbare update:', +'pakfire working' => 'Pakfire is bezig ... Wacht a.u.b. totdat alle handelingen succesvol zijn afgerond.', +'pap or chap' => 'PAP of CHAP', +'parentclass' => 'Parent-klasse', +'parentclass add' => 'Voeg parent-klasse toe', +'password' => 'Wachtwoord:', +'password contains illegal characters' => 'Wachtwoord bevat ongeldige tekens.', +'password crypting key' => 'Wachtwoord codeert de sleutel', +'password not set' => 'Wachtwoord niet ingesteld.', +'password too short' => 'Wachtwoord is te kort.', +'passwords do not match' => 'Wachtwoorden komen niet overeen.', +'passwords must be at least 6 characters in length' => 'Wachtwoorden moeten tenminste 6 tekens lang zijn', +'path to directory' => 'pad naar de share', +'pc' => 'Werkstation', +'pc add' => 'Workstation toevoegen', +'pdc options' => 'PDC opties', +'percentage' => 'Percentage', +'persistent' => 'Persistent', +'pfs yes no' => 'Perfect Forward Secrecy (PFS)', +'phase1 group' => 'Fase1 groep', +'phonebook entry' => 'Telefoonboek entry:', +'ping disabled' => 'Uitschakelen ping response', +'pkcs12 file password' => 'PKCS12 bestandswachtwoord', +'play' => 'Afspelen', +'polfile' => 'Pol-bestand', +'policy' => 'Beleid', +'port' => 'Poort', +'port forwarding configuration' => 'Poort-doorsturen configuratie', +'ports' => 'Poorten', +'portscans' => 'poortscans', +'pots' => 'Klassieke analoge lijn', +'ppp setup' => 'PPP setup', +'pppoe' => 'PPPoE', +'pppoe settings' => 'Extra PPPoE instellingen:', +'pptp settings' => 'Extra PPTP instellingen:', +'pre-shared key is too short' => 'Pre-shared sleutel is te kort.', +'prefered master' => 'Voorkeur master', +'present' => 'Aanwezig', +'prev' => 'vorige', +'primary dns' => 'Primaire DNS:', +'primary ntp server' => 'Primaire NTP server', +'primary wins server address' => 'Primaire WINS serveradres', +'printcap name' => 'Printercap naam', +'printer' => 'Printer', +'printername' => 'Printernaam', +'printing' => 'Printen', +'printing options' => 'printopties', +'priority' => 'Prioriteit', +'processes' => 'Processen', +'profile' => 'Profiel', +'profile deleted' => 'Profiel verwijderd: ', +'profile has errors' => 'Profiel bevat fouten', +'profile made current' => 'Huidig profiel: ', +'profile name' => 'Profielnaam:', +'profile name not given' => 'Profielnaam niet opgegeven.', +'profile saved' => 'Profiel opgeslagen: ', +'profiles' => 'Profielen:', +'proto' => 'Proto', +'protocol' => 'Protocol:', +'proxy' => 'Proxy', +'proxy access graphs' => 'Proxy toegangsgrafieken', +'proxy admin password' => 'Cache beheerder wachtwoord', +'proxy cachemgr' => 'Activeer cachebeheer', +'proxy errmsg filedescriptors' => 'Verkeerd aantal bestandsindicators', +'proxy filedescriptors' => 'Aantal bestandsindicators', +'proxy log viewer' => 'Proxy logviewer', +'proxy logs' => 'Proxy Logs', +'proxy no proxy extend' => 'of specificeer een lijst met niet-geproxyde bestemmingen', +'proxy no proxy local' => 'Verbied lokale proxying op BLAUW/GROEN netwerken', +'proxy port' => 'Proxypoort', +'proxy reconfigure' => 'Opslaan en herstarten', +'proxy reports' => 'Proxy Rapporten', +'proxy reports daily' => 'Dagelijkse rapporten', +'proxy reports monthly' => 'Maandelijkse rapporten', +'proxy reports today' => 'Vandaag', +'proxy reports weekly' => 'Wekelijkse rapporten', +'psk' => 'PSK', +'pulse' => 'Puls', +'pulse dial' => 'Pulskiezen:', +'qos add subclass' => 'Voeg sub-klasse toe', +'qos graphs' => 'QoS grafieken', +'qos warning' => 'De regel moet worden opgeslagen, anders zal het worden genegeerd!', +'quick control' => 'Quick controle', +'quick playlist' => 'Quick afspeellijst', +'ram' => 'RAM', +'read bytes' => 'Lees Bytes', +'read list' => 'lijst met readonly hosts', +'real address' => 'Echte adressen', +'reboot' => 'Herstarten', +'reboot ask' => 'Herstarten?', +'reboot question' => 'Extra vraag voor herstart en afsluiten', +'reboot schedule' => 'Inplannen IPFire herstarts', +'reboot sure' => 'Weet u zeker dat u wilt herstarten?', +'rebooting' => 'Herstarten', +'rebooting ipfire' => 'IPFire aan het herstarten', +'reconnect' => 'Opnieuw verbinden', +'reconnection' => 'Opnieuw verbinding', +'red' => 'Internet', +'references' => 'Referenties', +'refresh' => 'Ververs', +'refresh index page while connected' => 'Ververs de index.cgi pagina terwijl verbonden', +'refresh update list' => 'Ververs update-lijst', +'registered user rules' => 'Sourcefire VRT regels voor geregistreerde gebruikers', +'released' => 'Released', +'reload' => 'herlaad', +'remark' => 'Opmerking', +'remark title' => 'Opmerking:', +'remote access' => 'Remote toegang', +'remote announce' => 'Remote aankondiging', +'remote browse sync' => 'Remote Browse Sync', +'remote host/ip' => 'Remote host/IP', +'remote logging' => 'Remote logging', +'remote subnet' => 'Remote subnet:', +'remote subnet is invalid' => 'Remote subnet is ongeldig.', +'removable device advice' => 'Plug een apparaat in, ververs, selecteer en koppel voor gebruik. Ontkoppel voor verwijderen van apparaat.', +'remove' => 'Verwijderen', +'remove ca certificate' => 'Verwijder CA certificaten', +'remove x509' => 'Verwijder x509', +'repeat' => 'Herhaal', +'reportfile' => 'Rapportbestand', +'reportlevel' => 'Rapportniveau', +'request' => 'Verzoek', +'requested data' => '1. Connectie-instellingen:', +'reserved dst port' => 'Bestemmingspoort is gereserveerd voor IPFire:', +'reserved src port' => 'Bronpoort is gereserveerd voor IPFire:', +'reset' => 'Reset', +'reset shares' => 'Reset share', +'resetglobals' => 'Reset globale instellingen', +'resetpolicy' => 'Reset beleid naar standaard', +'resetshares' => 'Reset shares?', +'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections' => 'door resetten van de vpn configuratie zullen de root CA, het hostcertificaat en alle certificaatgebaseerde verbindingen worden verwijderd', +'restart' => 'Herstart', +'restart ovpn server' => 'Herstart OpenVPN server', +'restore' => 'Herstellen', +'restore defaults' => 'Herstel standaard', +'restore hardware settings' => 'Herstel hardware-instellingen', +'restore settings' => 'Reset instellingen', +'reverse sort' => 'Sorteer in omgekeerde chronologische volgorde', +'root' => 'Root', +'root certificate' => 'Rootcertificaat', +'root path' => 'Root pad', +'root user password' => 'Root wachtwoord', +'route subnet is invalid' => 'Additionele push route subnet is ongeldig', +'router ip' => 'Router IP-adres:', +'routing table entries' => 'Routeringstabel entries:', +'rsvd dst port overlap' => 'Bestemmingspoortreeks overlapt een poort die gereserveerd is voor IPFire:', +'rsvd src port overlap' => 'Bronpoortreeks overlapt een poort die gereserveerd is voor IPFire:', +'rules already up to date' => 'Regels zijn al bijgewerkt', +'running' => 'LOOPT', +'safe removal of umounted device' => 'U kunt het ontkoppelde apparaat veilig verwijderen', +'samba' => 'Samba', +'samba status' => 'Samba Status', +'saturday' => 'Zaterdag', +'save' => 'Opslaan', +'save config' => 'opslaan instellingen', +'save error' => 'Kan configuratie-archief niet opslaan', +'save settings' => 'Opslaan instellingen', +'save-adv-options' => 'Opslaan geavanceerde opties', +'script name' => 'Scriptnaam:', +'secondary dns' => 'Secondaire DNS:', +'secondary ntp server' => 'Secondaire NTP server', +'secondary wins server address' => 'Secondaire WINS serveradres', +'seconds' => 'Sec.', +'section' => 'Sectie', +'secure shell server' => 'Secure Shell Server', +'security' => 'Beveiliging', +'security options' => 'Beveiligingsopties', +'select' => 'Selecteer', +'select dest net' => 'Selecteer een bestemmingsnet.', +'select media' => 'Selecteer media
(alleen FAT wordt ondersteund voor verwijderbare media)', +'select source net' => 'Selecteer een bron net. Als u geen ORANJE of BLAUW netwerk heeft geconfigureerd, dan heeft u geen DMZ pinholes nodig.', +'selecttraffic' => 'Selecteer verbruiksoverzicht:', +'send cr' => 'ISP vereist Carriage Return:', +'send email notification' => 'Ingeschakeld, stuur e-mail notificatie', +'send test mail' => 'Verstuur test e-mail', +'september' => 'September', +'serial' => 'Serieel', +'server reserved' => 'De verbindingsnaam is gereserveerd en niet toegestaan', +'server restart' => 'U kunt geen wijzigingen opslaan als de OpenVPN server actief is.', +'server string' => 'Server String', +'service' => 'Dienst', +'service added' => 'Aangepaste netwerkdienst toegevoegd', +'service name' => 'Dienstennaam:', +'service removed' => 'Aangepaste netwerkdienst verwijderd', +'service updated' => 'Aangepaste netwerkdienst bijgewerkt', +'servicename' => 'Dienstennaam', +'services' => 'Diensten', +'services settings' => 'Firewall - Diensteninstellingen', +'set' => 'zet', +'set time now' => 'Tijd nu gelijk zetten', +'set time now help' => 'Om een synchronisatiegebeurtenis aan de wachtrij toe te voegen (zelfs als er een herhaalschema wordt gebruikt), klik op de Tijd nu gelijk zetten-knop. Mogelijk moet u 5 minuten of langer wachten voordat de synchronisatie plaatsvindt.', +'settings' => 'Instellingen', +'shaping add options' => 'Service toevoegen', +'shaping list options' => 'Verkeersregeling diensten', +'shared' => 'gedeeld', +'sharename' => 'Sharenaam', +'shares' => 'Shares', +'show ajax speedmeter in footer' => 'Toon Ajax snelheidsmeter', +'show areas' => 'toon gebieden', +'show ca certificate' => 'Toon CA certificaten', +'show certificate' => 'Toon certificaat', +'show crl' => 'Toon lijst met ingetrokken certificaten', +'show host certificate' => 'Toon host certificaat', +'show last x lines' => 'Toon laatste x regels', +'show lines' => 'Toon regels', +'show root certificate' => 'Toon root certificaat', +'show share options' => 'Toon shares opties', +'shuffle' => 'Willekeurige volgorde', +'shutdown' => 'Afsluiten', +'shutdown ask' => 'Afsluiten?', +'shutdown control' => 'Afsluit controle', +'shutdown sure' => 'Weet u zeker dat u wilt afsluiten?', +'shutdown2' => 'Afsluiten:', +'shutting down' => 'Nu aan het afsluiten', +'shutting down ipfire' => 'IPFire aan het afsluiten', +'since' => 'sinds', +'sitekey' => 'Sitesleutel', +'sitekeyfile' => 'Site sleutelbestand', +'size' => 'Grootte', +'smart information' => 'S.M.A.R.T. informatie', +'smartwarn1' => 'Apparaat:', +'smartwarn2' => 'rapporteert S.M.A.R.T. fout', +'smbreload' => 'Samba opnieuw laden', +'smbrestart' => 'Samba herstarten', +'smbstart' => 'Start samba', +'smbstop' => 'Stop samba', +'smtphost' => 'SMTP host', +'smtpport' => 'SMTP poort', +'snort hits' => 'Totaal aantal inbraakregels geactiveerd voor', +'snort working' => 'Snort is bezig ... Wacht a.u.b. totdat alle handelingen succesvol zijn afgerond.', +'socket options' => 'Socket opties', +'sort ascending' => 'Sorteer oplopend', +'sort descending' => 'Sorteer aflopend', +'sound' => 'Geluid', +'source' => 'Bron', +'source ip' => 'Bron IP', +'source ip and port' => 'Bron IP: Poort', +'source ip bad' => 'Geen geldig IP-adres of netwerkadres.', +'source ip in use' => 'Bron IP in gebruik:', +'source ip or net' => 'Bron IP of Net', +'source net' => 'Bron Net', +'source network' => 'Bron IP, of netwerk (leeg voor "ALLE"):', +'source port' => 'Bronpoort', +'source port in use' => 'Bronpoort in gebruik:', +'source port numbers' => 'Bronpoort moet een geldig poortnummer of poortreeks zijn.', +'source port overlaps' => 'Bronpoortreeks overlapt een bestaande poortreeks.', +'speaker off' => 'Speaker uit:', +'speaker on' => 'Speaker aan:', +'squid extension methods' => 'Uw extensie_methoden lijst', +'squid extension methods invalid' => 'Uw \'extensie_methoden\' lijst mag alleen hoofdletters en cijfers bevatten, gescheiden door een spatie. ', +'squid fix cache' => 'Repareer cache', +'src port' => 'Bronpoort', +'srcprt range overlaps' => 'Bronpoortreeks overlapt met een al gedefinieerde poort.', +'srcprt within existing' => 'Bronpoort ligt binnen een al gedefinieerde poortreeks.', +'ssdmz pinholes' => 'DMZ Pinholes', +'ssh access' => 'SSH toegang', +'ssh access tip' => 'IPFire SSH gebruikt niet de standaard poort 222!', +'ssh fingerprint' => 'Vingerafdruk', +'ssh host keys' => 'SSH Hostsleutels', +'ssh is disabled' => 'SSH is uitgeschakeld. Stoppen.', +'ssh is enabled' => 'SSH is ingeschakeld. Herstarten.', +'ssh key' => 'Sleutel', +'ssh key size' => 'Grootte (bits)', +'ssh keys' => 'Toestaan van authenticatie m.b.v. publieke sleutel', +'ssh no auth' => 'U heeft geen authenticatiemethoden toegestaan; u kunt dan niet inloggen', +'ssh passwords' => 'Toestaan van authenticatie m.b.v. een wachtwoord', +'ssh port' => 'SSH poort gezet op 22 (standaard is 222)', +'ssh portfw' => 'Toestaan van TCP forwarding', +'ssh tempstart15' => 'Stop SSH daemon over 15 minuten', +'ssh tempstart30' => 'Stop SSH daemon over 30 minuten', +'ssh1 disabled' => 'SSHv1 is uitgeschakeld, een versie 2 client is vereist', +'ssh1 enabled' => 'SSHv1 is ingeschakeld, oudere clients zullen ondersteund worden.', +'ssh1 support' => 'Ondersteun SSH protocol versie 1 (alleen noodzakelijk voor oudere clients)', +'ssnetwork status' => 'Netwerkstatus', +'sspasswords' => 'Wachtwoorden', +'ssport forwarding' => 'Poort doorsturen', +'ssproxy graphs' => 'Proxy grafieken', +'sssystem status' => 'Systeemstatus', +'sstraffic' => 'Netwerkgebruik', +'sstraffic graphs' => 'Verkeersgrafieken', +'standard login script' => 'Standaard inlogscript', +'start' => 'Start', +'start address' => 'Beginadres:', +'start ovpn server' => 'Start OpenVPN Server', +'state or province' => 'Provincie', +'static ip' => 'Statisch IP', +'static routes' => 'Statische routes', +'status' => 'Status', +'status information' => 'Statusinformatie', +'status ovpn' => '4. OpenVPN Status / Configuratie:', +'std classes' => 'Standaardklassen', +'stop' => 'Stop', +'stop ovpn server' => 'Stop OpenVPN Server', +'stopped' => 'GESTOPT', +'subject' => 'Onderwerp', +'subject test' => 'Test e-mail', +'subject warn' => 'Waarschuwing – waarschuwingsniveau bereikt', +'subnet' => 'Subnet', +'subnet is invalid' => 'Netmasker is ongeldig', +'subscripted user rules' => 'Sourcefire VRT regels met abonnement', +'successfully refreshed updates list' => 'Lijst succesvol bijgewerkt.', +'summaries kept' => 'Bewaar samenvattingen voor', +'sunday' => 'Zondag', +'swap' => 'Swap', +'swap usage per' => 'Swap gebruik per', +'system' => 'Systeem', +'system graphs' => 'Systeemgrafieken', +'system information' => 'Systeeminformatie', +'system log viewer' => 'Systeem Log Viewer', +'system logs' => 'Systeem logs', +'system status information' => 'Systeem Status Informatie', +'telephone not set' => 'Telefoon niet ingesteld.', +'template' => 'Vooringesteld', +'template warning' => 'U heeft twee opties voor QoS. Bij de eerste klikt u op de knop opslaan en genereert u zelf de klassen en regels. Voor de tweede klikt u op de "vooringesteld" knop en worden de regels middels een sjabloon voor u ingesteld.', +'test' => 'test', +'test email could not be sent' => 'Kon de test e-mail niet verzenden', +'test email was sent' => 'Test e-mail is succesvol verzonden', +'the following update was successfully installed' => 'De volgende update was succesvol geïnstalleerd', +'the statistics were last updated at' => 'De statistieken zijn voor het laatst bijgewerkt op', +'theme' => 'Thema', +'there are updates' => 'Er zijn updates beschikbaar voor uw systeem. Ga naar de "updates" sectie voor meer informatie.', +'there are updates available' => 'Er zijn updates beschikbaar voor uw systeem. Het wordt aangeraden om deze zo snel mogelijk te installeren.', +'there was no file upload' => 'Er is geen bestand geüpload.', +'this feature has been sponsored by' => 'Deze feature wordt gesponsord door', +'this field may be blank' => 'Dit veld mag leeg blijven.', +'this is not a valid archive' => 'Dit is geen geldig archief.', +'this is not an authorised update' => 'Dit is geen geautoriseerde update.', +'this months volume' => 'Volume van deze maand', +'this update is already installed' => 'Deze update is al geïnstalleerd.', +'this weeks volume' => 'Volume van deze week', +'thursday' => 'Donderdag', +'time' => 'Tijd', +'time date manually reset' => 'Handmatige datum/tijd reset.', +'time server' => 'Tijdserver', +'timeout must be a number' => 'Time-out moet een getal zijn.', +'title' => 'Titel', +'to' => 'Naar', +'to email adr' => 'Naar e-mailadres', +'to install an update' => 'Om te installeren uploadt u het .tgz.gpg bestand hieronder:', +'to warn email bad' => 'Naar e-mailadres is ongeldig', +'toggle' => 'pauze/vervolg', +'toggle enable disable' => 'Inschakelen of uitschakelen', +'tone' => 'Toon', +'tone dial' => 'Toonkiezen:', +'too long 80 char max' => ' is te lang, maximaal 80 tekens toegestaan', +'total connection time' => 'Totale verbindingstijd', +'total hits for log section' => 'Totaal aantal treffers voor logsectie', +'traffic back' => 'Terug', +'traffic calc time' => 'Berekeningstijd', +'traffic calc time bad' => 'Berekeningstijd is niet juist', +'traffic info messages' => 'Info berichten', +'traffic monitor' => 'Verkeersmonitor', +'traffic on' => 'Verkeer op', +'traffic shaping' => 'Verkeersregeling', +'traffic shaping settings' => 'Verkeersregeling instellingen', +'traffic warn level bad' => 'Waarschuwingsniveau is onjuist', +'trafficblue' => 'WLAN', +'trafficdate' => 'Datum', +'trafficfrom' => 'Van', +'trafficgreen' => 'Intern net', +'trafficin' => 'Input', +'trafficorange' => 'DMZ', +'trafficout' => 'Output', +'trafficred' => 'Internet', +'traffics' => 'Verbruiksoverzicht:', +'trafficsum' => 'Totalen', +'trafficto' => 'Naar', +'transfer limits' => 'Transferlimieten', +'transparent on' => 'Transparant op', +'tripwire' => 'Tripwire', +'tripwire cronjob' => 'tripwire cronjob', +'tripwire functions' => 'tripwire functies', +'tripwire reports' => 'tripwire rapporten', +'tripwireoperating' => 'Het proces is gestart. Dit kan enige minuten duren, het scherm wordt automatisch ververst nadat het proces is beëindigd.', +'tripwirewarningdatabase' => 'WAARSCHUWING – Uw database wordt bijgewerkt met de data van het laatste rapport. Om ongeautoriseerde wijzigingen te voorkomen wordt de lokale sleutel gebruikt.', +'tripwirewarningkeys' => 'WAARSCHUWING – Dit zal uw huidige sleutels, configuratie en database wissen en opnieuw aanmaken.', +'tripwirewarningpolicy' => 'WAARSCHUWING – Uw tripwire-beleid zal opnieuw worden opgebouwd, hierna wordt uw database opnieuw geïnitialiseerd. Daarvoor zijn de site-sleutel en de lokale sleutel noodzakelijk.', +'tuesday' => 'Dinsdag', +'type' => 'Type', +'umount' => 'Ontkoppelen', +'umount removable media before to unplug' => 'Ontkoppel verwijderbare media voordat u het apparaat verwijdert', +'unable to alter profiles while red is active' => 'Kan profielen niet wijzigen zolang ROOD actief is.', +'unable to contact' => 'Kan geen contact maken', +'unencrypted' => 'Ongecodeerd', +'uninstall' => 'Deinstalleer', +'unix charset' => 'UNIX karakterset', +'unix group' => ' UNIX gebruikersgroep', +'unix password sync' => 'Unix wachtwoordsynchronisatie', +'unix shell' => 'UNIX Shell', +'unknown' => 'ONBEKEND', +'unnamed' => 'Onbenoemd', +'update' => 'Vernieuwen', +'update accelerator' => 'Updateversneller', +'update time' => 'Bijwerken van de tijd:', +'update transcript' => 'Update transcript', +'updatedatabase' => 'Update database met het laatste rapport', +'updates' => 'Updates', +'updates installed' => 'Regelset bijgwerkt op', +'updates is old1' => 'Uw updatebestand is ', +'updates is old2' => 'dagen oud. We raden u aan om te updaten op de Systeem > Updates pagina.', +'updxlrtr 3 months' => 'drie maanden', +'updxlrtr 6 months' => 'zes maanden', +'updxlrtr all files' => 'alle bestanden ...', +'updxlrtr cache dir' => 'Cache directory', +'updxlrtr cache maintenance' => 'Cache onderhoud', +'updxlrtr cache size' => 'Cache grootte (bytes)', +'updxlrtr cache statistics' => 'Cache statistieken', +'updxlrtr cancel download' => 'Annuleer download', +'updxlrtr children' => 'Aantal versnellerprocessen', +'updxlrtr common settings' => 'Algemene instellingen', +'updxlrtr condition download' => 'Download', +'updxlrtr condition nosource' => 'Geen bron', +'updxlrtr condition ok' => 'Actueel', +'updxlrtr condition outdated' => 'Verouderd', +'updxlrtr condition suspended' => 'Uitgesteld', +'updxlrtr condition unknown' => 'Onbekend', +'updxlrtr configuration' => 'Updateversneller configuratie', +'updxlrtr current downloads' => 'Bestanden worden opgeslagen in de lokale cache', +'updxlrtr current files' => 'Huidige bestanden in de lokale cache', +'updxlrtr daily' => 'dagelijks', +'updxlrtr data from cache' => 'Data van cache (bytes)', +'updxlrtr disk usage' => 'Schijfgebruik', +'updxlrtr efficiency index' => 'Cache efficiency index', +'updxlrtr empty repository' => 'Lokale cache is leeg', +'updxlrtr enable autocheck' => 'Inschakelen automatische broncontrole', +'updxlrtr enable log' => 'Inschakelen log', +'updxlrtr filename' => 'Naam', +'updxlrtr files' => 'Bestanden', +'updxlrtr filesize' => 'Grootte', +'updxlrtr full autosync' => 'Vervang verouderde bestanden gedurende controle', +'updxlrtr invalid disk usage' => 'Ongeldige waarde voor max. schijfgebruik', +'updxlrtr invalid download rate' => 'Ongeldige waarde voor max. downloadsnelheid', +'updxlrtr invalid num of children' => 'Ongeldig aantal versnellerprocessen', +'updxlrtr last access' => 'Laatste cache-opvraag', +'updxlrtr last checkup' => 'Laatste broncontrole', +'updxlrtr low download priority' => 'Lagere CPU prioriteit voor downloads', +'updxlrtr maintenance' => 'Onderhoud', +'updxlrtr marked as' => 'gemarkeerd als', +'updxlrtr max disk usage' => 'Max. schijfgebruik', +'updxlrtr max download rate' => 'Max. externe downloadsnelheid (kBit/s)', +'updxlrtr month' => 'een maand', +'updxlrtr monthly' => 'maandelijks', +'updxlrtr not accessed' => 'niet benaderd sinds', +'updxlrtr not enabled' => 'Updateversneller is niet ingeschakeld op de webproxy pagina', +'updxlrtr other' => 'Overig', +'updxlrtr passive mode' => 'Inschakelen passieve modus', +'updxlrtr pending downloads' => 'Wachtrij downloads', +'updxlrtr performance options' => 'Performance opties', +'updxlrtr progress' => 'Voortgang', +'updxlrtr purge' => 'Opschonen', +'updxlrtr remove file' => 'Verwijder uit cache', +'updxlrtr save and restart' => 'Opslaan en herstarten', +'updxlrtr source' => 'Bron', +'updxlrtr source checkup' => 'Broncontrole', +'updxlrtr source checkup schedule' => 'Broncontrole planning', +'updxlrtr statistics' => 'Statistieken', +'updxlrtr statistics by source' => 'Statistieken per bron', +'updxlrtr summary' => 'Samenvatting', +'updxlrtr total cache size' => 'Totale cachegrootte (bytes)', +'updxlrtr total data from cache' => 'Totale hoeveelheid data geleverd uit cache (bytes)', +'updxlrtr total files' => 'Totaal aantal bestanden in cache', +'updxlrtr unknown' => 'Onbekend', +'updxlrtr update accelerator' => 'Updateversneller', +'updxlrtr update information' => 'Er is een nieuwere versie beschikbaar voor download. Bezoek http://update-accelerator.advproxy.net voor meer informatie.', +'updxlrtr update notification' => 'Update notificatie!', +'updxlrtr web proxy service required' => 'Web proxy service moet ingeschakeld zijn om de updateversneller te kunnen gebruiken.', +'updxlrtr week' => 'een week', +'updxlrtr weekly' => 'wekelijks', +'updxlrtr year' => 'een jaar', +'upgrade' => 'upgrade', +'uplink speed' => 'Uplink snelheid (kbit/sec)', +'uplink std class' => 'uplink standaardklasse', +'upload' => 'Upload', +'upload a certificate' => 'Upload een certificaat:', +'upload a certificate request' => 'Upload een certificaatverzoek:', +'upload ca certificate' => 'Upload CA certificaat', +'upload fcdsl.o' => 'WORDT VERWIJDERD', +'upload file' => 'Upload bestand', +'upload new ruleset' => 'Upload nieuwe regelset', +'upload p12 file' => 'Upload PKCS12 bestand', +'upload static key' => 'Upload een statische sleutel', +'upload successful' => 'Upload succesvol.', +'upload synch.bin' => 'Upload synch.bin', +'upload update file' => 'Upload updatebestand:', +'upstream password' => 'Upstream wachtwoord:', +'upstream proxy host:port' => 'Upstream proxy (host:poort)', +'upstream username' => 'Upstream gebruikersnaam:', +'uptime and users' => 'Bedrijfstijd en gebruikers:', +'url filter' => 'Inhoudsfilter', +'urlfilter access' => 'Toegang', +'urlfilter activity detection' => 'Activiteitsdetectie', +'urlfilter add new time constraint rule' => 'Voeg nieuwe tijdslimietregel toe', +'urlfilter add new user quota rule' => 'Voeg nieuwe gebruikersquotum regel toe', +'urlfilter add rule' => 'Toevoegen', +'urlfilter advanced settings' => 'Geavanceerde instellingen', +'urlfilter allow' => 'Toestaan', +'urlfilter allow access' => 'Toegang toestaan', +'urlfilter allowed domains' => 'Toegestane domeinen (een per regel)', +'urlfilter allowed urls' => 'Toegestane URL\'s (een per regel)', +'urlfilter assigned quota users' => 'Toegekende gebruikers (een per regel)', +'urlfilter assigned users' => 'Toegekende gebruikers', +'urlfilter automatic blacklist update' => 'Automatische zwarte lijst update', +'urlfilter automatic update schedule' => 'Automatisch updaterooster', +'urlfilter back to main page' => 'Terug naar hoofdpagina', +'urlfilter background image' => 'urlfilter achtergrondafbeelding', +'urlfilter background text' => 'Om een eigen achtergrondafbeelding te gebruiken voor de blokkeringspagina, upload het .jpg bestand hieronder', +'urlfilter backup' => 'Aanmaken back-up bestand', +'urlfilter backup error' => 'Kan back-up bestand niet aanmaken', +'urlfilter backup settings' => 'Back-up URL filterinstellingen', +'urlfilter banned clients' => 'Verboden IP-adressen', +'urlfilter blacklist age 1' => 'Laatste succesvolle zwarte lijst update was', +'urlfilter blacklist age 2' => 'dagen geleden', +'urlfilter blacklist category name' => 'Zwarte lijst categorienaam', +'urlfilter blacklist editor' => 'Zwarte lijstbewerker', +'urlfilter blacklist editor info' => 'Aanmaken en wijzigen van uw eigen zwartelijst', +'urlfilter blacklist name' => 'Naam zwarte lijst', +'urlfilter blacklist update' => 'Zwarte lijst update', +'urlfilter block' => 'Blokkeer', +'urlfilter block access' => 'Blokkeer toegang', +'urlfilter block all' => 'Blokkeer alle URL\'s die niet expliciet zijn toegestaan', +'urlfilter block archives' => 'Blokkeer ingepakte archiefbestanden', +'urlfilter block audio-video' => 'Blokkeer audio/video bestanden', +'urlfilter block categories' => 'Blokkeer categorieën', +'urlfilter block executables' => 'Blokkeer uitvoerbare bestanden', +'urlfilter block ip' => 'Blokkeer sitetoegang middels het IP-adres', +'urlfilter block settings' => 'Blokkeerpagina instellingen', +'urlfilter blocked domains' => 'Geblokkeerde domeinen (een per regel)', +'urlfilter blocked expressions' => 'Geblokkeerde expressies (als reguliere expressies)', +'urlfilter blocked urls' => 'Geblokkeerde URL\'s (een per regel)', +'urlfilter category' => 'Categorie', +'urlfilter category all' => 'iedere', +'urlfilter category data error' => 'Zwarte lijst is leeg', +'urlfilter category log' => 'Splits log in categorieën', +'urlfilter category name error' => 'Zwarte lijst categorienaam is vereist', +'urlfilter client' => 'Client', +'urlfilter configuration' => 'URL filterconfiguratie', +'urlfilter constraint definition' => 'Definitie', +'urlfilter constraint outside' => 'buiten', +'urlfilter constraint within' => 'binnen', +'urlfilter copy rule' => 'Kopieer', +'urlfilter current files' => 'Huidige bestanden in lokale repository', +'urlfilter custom blacklist' => 'Eigen zwarte lijst', +'urlfilter custom expression list' => 'Eigen expressielijst', +'urlfilter custom url' => 'Eigen bron-URL', +'urlfilter custom url required' => 'Eigen bron-URL vereist', +'urlfilter custom whitelist' => 'Eigen witte lijst', +'urlfilter daily' => 'dagelijks', +'urlfilter disabled' => 'uitgeschakeld', +'urlfilter domains' => 'Domeinen (een per regel)', +'urlfilter dont restart urlfilter' => 'Herstart URL filter niet', +'urlfilter dst' => 'Bestemming', +'urlfilter dst error' => 'Er moet tenminste een categorie zijn geselecteerd', +'urlfilter edit domains urls expressions' => 'Wijzig domeinen, URL\'s en expressies', +'urlfilter edit time constraint rule' => 'Wijzig een bestaande tijdregel', +'urlfilter edit user quota rule' => 'Wijzig een bestaande gebruikersquotum regel', +'urlfilter empty ads' => 'Blokkeer "ads" met leeg tijdvenster', +'urlfilter empty repository' => 'Lokale repository is leeg', +'urlfilter enable automatic blacklist update' => 'Inschakelen automatische update', +'urlfilter enable custom blacklist' => 'Inschakelen eigen zwarte lijst', +'urlfilter enable custom expression list' => 'Inschakelen eigen expressielijst', +'urlfilter enable custom whitelist' => 'Inschakelen eigen witte lijst', +'urlfilter enable expression lists' => 'Inschakelen eigen expressielijst', +'urlfilter enable full backup' => 'Inclusief complete zwarte lijst', +'urlfilter enable jpeg' => 'Inschakelen achtergrondafbeelding', +'urlfilter enable log' => 'Inschakelen log', +'urlfilter enable rewrite rules' => 'Inschakelen lokaal bestand omleiden', +'urlfilter enabled' => 'Ingeschakeld:', +'urlfilter example' => 'Voorbeeld: www.domein.com', +'urlfilter example ads' => 'Voorbeeld: www.domein.com/ads/', +'urlfilter export blacklist' => 'Exporteer zwarte lijst', +'urlfilter export error' => 'Kan exportbestand niet aanmaken', +'urlfilter expressions' => 'Expressies (een per regel)', +'urlfilter file ext block' => 'Bestandsextensie blokkering', +'urlfilter filename' => 'Naam', +'urlfilter filesize' => 'Grootte', +'urlfilter filter settings' => 'URL-filter instellingen', +'urlfilter fri' => 'V', +'urlfilter friday' => 'Vrij', +'urlfilter from' => 'Van', +'urlfilter hourly' => 'per uur', +'urlfilter import blacklist' => 'Importeer zwarte lijst', +'urlfilter import text' => 'Om een eerder opgeslagen zwarte lijst te importeren, upload het .tar.gz bestand hieronder', +'urlfilter install blacklist' => 'Installeer zwarte lijst', +'urlfilter install information' => 'De nieuwe zwarte lijst zal automatisch worden samengesteld voor uw ingebouwde databases. Afhankelijk van de grootte van de zwarte lijst kan dit tot enige minuten duren.', +'urlfilter invalid content' => 'Bestand is geen squidGuard compatibele zwarte lijst', +'urlfilter invalid import file' => 'Bestand is geen geldige URL-filter zwarte lijst', +'urlfilter invalid ip or mask error' => 'Ongeldig IP-adres of netwerkmasker', +'urlfilter invalid restore file' => 'Bestand is geen geldig URL-filter back-up bestand', +'urlfilter invalid user error' => 'Ongeldige gebruikersnaam', +'urlfilter load blacklist' => 'Laad zwarte lijst', +'urlfilter local file redirection' => 'Lokale bestandsomleiding', +'urlfilter log' => 'urlfilter log', +'urlfilter log summary' => 'Totaal aantal URL-filter treffers voor', +'urlfilter log viewer' => 'URL-filter logviewer', +'urlfilter logs' => 'URL-Filterlogs', +'urlfilter maintenance' => 'URL-filter onderhoud', +'urlfilter manage local file repository' => 'Beheer lokale bestandsrepository', +'urlfilter manage repository' => 'Beheer repository', +'urlfilter minutes' => 'minuten', +'urlfilter mode allow' => 'toestaan', +'urlfilter mode block' => 'blokkeer', +'urlfilter mon' => 'M', +'urlfilter monday' => 'Maa', +'urlfilter monthly' => 'maandelijks', +'urlfilter msg text 1' => 'Berichtregel 1', +'urlfilter msg text 2' => 'Berichtregel 2', +'urlfilter msg text 3' => 'Berichtregel 3', +'urlfilter network access control' => 'Netwerkgebaseerde toegangscontrole', +'urlfilter no categories' => 'Geen categorieën beschikbaar', +'urlfilter not enabled' => 'URL-filter is niet ingeschakeld op de Web proxy pagina', +'urlfilter quota restart message' => 'Noot: de tellers worden gereset voor alle gebruikers als het URL-filter wordt herstart', +'urlfilter quota time error' => 'Ongeldige waarde voor tijdsquotum', +'urlfilter quota user error' => 'Tenminste een gebruikersnaam is vereist', +'urlfilter redirectpage' => 'Omleiden naar deze URL', +'urlfilter remove file' => 'Verwijder bestand uit repository', +'urlfilter renewal' => 'Vernieuwing', +'urlfilter renewal period' => 'Vernieuwingsperiode', +'urlfilter repository information' => 'Downloadverzoeken voor deze bestanden zullen worden omgeleid van de originele bron naar de lokale repository.', +'urlfilter reset' => 'Reset', +'urlfilter restart' => 'Herstart URL-filter', +'urlfilter restart message' => 'Het URL-filter moet herstart worden om de wijzigingen te activeren', +'urlfilter restart notification' => 'Activeer gewijzigde regels', +'urlfilter restore' => 'Importeer back-upbestand', +'urlfilter restore results' => 'Herstelresultaten', +'urlfilter restore settings' => 'Herstel URL-filter instellingen', +'urlfilter restore success' => 'URL-filter configuratie is hersteld. Het URL-filter moet worden herstart om de de nieuwe instellingen te activeren.', +'urlfilter restore text' => 'Om een eerder opgeslagen configuratie te gebruiken uploadt u het .tar.gz back-upbestand hieronder', +'urlfilter safesearch' => 'Inschakelen SafeSearch', +'urlfilter sat' => 'Z', +'urlfilter saturday' => 'Zat', +'urlfilter save and restart' => 'Opslaan en herstarten', +'urlfilter save schedule' => 'Opslaan update-instellingen', +'urlfilter select blacklist' => 'Selecteer bestaande zwarte lijst', +'urlfilter select multi' => 'Gebruik de ctrl-toets om meerdere categorieën te selecteren', +'urlfilter select source' => 'Selecteer downloadbron', +'urlfilter set time constraints' => 'Instellen tijdsbeperkingen', +'urlfilter set user quota' => 'Instellen gebruikersquotum', +'urlfilter show category' => 'Toon categorie op blokkeerpagina', +'urlfilter show dnserror' => 'Gebruik "DNS fout" om URL\'s te blokkeren', +'urlfilter show ip' => 'Toon IP op blokkeerpagina', +'urlfilter show url' => 'Toon URL op blokkeerpagina', +'urlfilter source' => 'Bronhost(s) of netwerk(en)', +'urlfilter src' => 'Bron', +'urlfilter src error' => 'Bron mag niet leeg zijn', +'urlfilter sun' => 'Z', +'urlfilter sunday' => 'Zon', +'urlfilter tar error' => 'Kan archief niet uitpakken', +'urlfilter thu' => 'D', +'urlfilter thursday' => 'Don', +'urlfilter time' => 'Tijd', +'urlfilter time quota' => 'Tijdquotum', +'urlfilter time space' => 'Tijdvenster', +'urlfilter timebased access control' => 'Tijdgebaseerde toegangscontrole', +'urlfilter timespace error' => 'Fout in tijdsvenster declaratie', +'urlfilter to' => 'Tot', +'urlfilter tue' => 'D', +'urlfilter tuesday' => 'Din', +'urlfilter unfiltered clients' => 'Ongefilterde IP-adressen', +'urlfilter update information' => 'Er is een nieuwere versie beschikbaar om te downloaden. Bezoek http://www.urlfilter.net voor meer informatie.', +'urlfilter update notification' => 'Update notificatie!', +'urlfilter update now' => 'Update nu', +'urlfilter update results' => 'Zware lijst update-resultaten', +'urlfilter update rule' => 'Update', +'urlfilter upload background' => 'Upload afbeelding', +'urlfilter upload blacklist' => 'Upload zwarte lijst', +'urlfilter upload file' => 'Upload bestand', +'urlfilter upload file information 1' => 'Noot', +'urlfilter upload file information 2' => 'Het URL-filter moet herstart worden om de wijzigingen in de repository te activeren.', +'urlfilter upload file text' => 'Upload het bestand hieronder om het aan de lokale repository toe te voegen', +'urlfilter upload information' => 'De nieuwe zwarte lijst zal automatisch worden samengesteld voor uw databases. Afhankelijk van de grootte van de zwarte lijst kan dit tot enige minuten duren. Wacht a.u.b. totdat dit proces is beëindigd alvorens het URL-filter te herstarten.', +'urlfilter upload success' => 'Zwarte lijst upload succesvol afgerond.', +'urlfilter upload text' => 'Upload het .tar.gz bestand hieronder om een bijgewerkte zwarte lijst te installeren', +'urlfilter url filter' => 'URL-filter', +'urlfilter urlfilter blacklist editor' => 'URL-filter zwarte lijstbewerker', +'urlfilter urls' => 'URL\'s (een per regel)', +'urlfilter user time quota' => 'Tijdquotum (in minuten)', +'urlfilter username' => 'Gebruikersnaam', +'urlfilter username log' => 'Log gebruikersnaam', +'urlfilter web proxy service required' => 'Webproxy service moet ingeschakeld zijn om het URL-filter te gebruiken', +'urlfilter wed' => 'W', +'urlfilter wednesday' => 'Woe', +'urlfilter weekday error' => 'Er moet tenminste een dag geselecteerd zijn', +'urlfilter weekly' => 'wekelijks', +'urlfilter whitelist always allowed' => 'Toestaan gebruik van eigen witte lijst voor verboden clients', +'urlfilter wrong filetype' => 'Bestand heeft niet de extensie .tar.gz', +'usb modem on acm0' => 'USB Modem op ACM0', +'usb modem on acm1' => 'USB Modem op ACM1', +'usb modem on acm2' => 'USB Modem op ACM2', +'usb modem on acm3' => 'USB Modem op ACM3', +'use' => 'Gebruik', +'use a pre-shared key' => 'Gebruik een pre-shared sleutel:', +'use dov' => 'Gebruik data over voice (DOV):', +'use ibod' => 'Gebruik bandbreedte op verzoek (iBOD):', +'use ipfire red ip' => 'Het klassieke RODE IP gebruikt door IPFire gedurende de verbinding', +'use only proposed settings' => 'Gebruik alleen voorgestelde instellingen.', +'used' => 'Gebruikt', +'used memory' => 'Gebruikt geheugen ', +'used swap' => 'Gebruikt swap', +'user' => 'Gebruiker', +'user log' => 'Gebruiker log', +'user proxy logs' => 'gebruiker proxy log', +'username' => 'Gebruikersnaam:', +'username not set' => 'Gebruikersnaam niet ingesteld.', +'users department' => 'Gebruikersafdeling', +'users email' => 'E-mailadres gebruiker', +'users fullname or system hostname' => 'Volledige naam gebruiker of systeemnaam', +'valid root certificate already exists' => 'Een geldig root certificaat bestaat al.', +'valid till' => 'Geldig tot', +'vci number' => 'VCI nummer:', +'view log' => 'bekijk log', +'virtual address' => 'Virtueel adres', +'virtual private networking' => 'Virtual Private Networking', +'visible in browselist' => 'zichtbaar in bladerlijst', +'visit us at' => 'Bezoek ons op', +'voldown10' => 'Verlaag volume met 10', +'voldown5' => 'Verlaag volume met 5', +'volup10' => 'Verhoog volume met 10', +'volup5' => 'Verhoog volume met 5', +'vpi number' => 'VPI nummer:', +'vpn' => 'VPN', +'vpn aggrmode' => 'IKE agressieve modus toegestaan. Vermijd als mogelijk (preshared sleutel wordt verstuurd als zichtbare tekst)!', +'vpn altname syntax' => 'SubjectAltName is een komma-gescheiden lijst van e-mail, dns, uri, rid and ip objecten.
email:een e-mailadres. Syntax e-mail:copy neemt het e-mailveld van het certificaat dat wordt gebruikt.
DNS:een geldige domeinnaam.
URI:iedere geldige URI.
RID:geregistreerde object identifier.
IP:een IP-adres.
Noot:tekenset is beperkt en hoofdletter gevoelig.
Voorbeeld:
e-mail:ipfire@foo.org,email:copy,DNS:www.ipfire.org,IP:127.0.0.1,URI:http://url/naar/iets', +'vpn auth-dn' => 'Peer is geïdentificeerd door IPV4_ADDR, FQDN, USER_FQDN of DER_ASN1_DN tekenreeks in “remote ID” veld', +'vpn configuration main' => 'VPN configuratie - Hoofdpagina', +'vpn delayed start' => 'Vertraging voor starten VPN (seconden)', +'vpn delayed start help' => 'Als dit noodzakelijk is, dan kan deze vertraging gebruikt worden om dynamische DNS updates op de juiste wijze te propageren. 60 seconden is a gebruikelijke waarde als ROOD een dynamisch IP-adres heeft.', +'vpn incompatible use of defaultroute' => 'hostnaam=%defaultroute niet toegestaan', +'vpn keyexchange' => 'Sleuteluitwisseling', +'vpn local id' => 'Lokale ID', +'vpn missing remote id' => 'U moet de juiste unieke naam/Distinguished Name (DN) opgeven voor deze authenticatie.', +'vpn mtu invalid' => 'MTU moet een numerieke waarde zijn!', +'vpn no full pki' => 'mist private sleutel om het certificaat te genereren', +'vpn on blue' => 'VPN op BLAUW', +'vpn on green' => 'VPN op GROEN', +'vpn on orange' => 'VPN op ORANJE', +'vpn payload compression' => 'Onderhandelen payload compressie', +'vpn red name' => 'Publiek IP of FQDN voor RODE interface of <%defaultroute>', +'vpn remote id' => 'Remote ID', +'vpn subjectaltname' => 'Onderwerp Alt Naam', +'vpn vhost' => 'Roadwarrior virtual IP (Ook wel Inner-IP genoemd)', +'vpn watch' => 'Herstart net-to-net vpn wanneer remote peer IP verandert (dyndns).', +'waiting to synchronize clock' => 'Wachten op synchronisatie van klok', +'warn when traffic reaches' => 'Waarschuw wanneer verkeer x % bereikt', +'warning messages' => 'Waarschuwingsmeldingen', +'was deleted' => 'was verwijderd', +'web hits' => 'Totaal aantal websites die overeenkomen met de geselecteerde criteria', +'web proxy' => 'Web Proxy', +'web proxy configuration' => 'Web proxy configuratie', +'web server' => 'Web Server', +'webradio playlist' => 'Webradio Afspeellijst', +'website' => 'Website', +'wednesday' => 'Woensdag', +'week' => 'Week', +'week-graph' => 'Week', +'weekly firewallhits' => 'wekelijkse firewalltreffers', +'weeks' => 'weken', +'wildcards' => 'Wildcards', +'wins server' => 'Wins Server', +'wins support' => 'Wins Support', +'wireless' => 'Draadloos', +'wireless config added' => 'Draadloze configuratie toegevoegd', +'wireless config changed' => ' Draadloze configuratie gewijzigd', +'wireless configuration' => 'Draadloze configuratie', +'wlanap access point' => 'Access Point', +'wlanap channel' => 'Kanaal', +'wlanap country' => 'Landcode', +'wlanap debugging' => 'Debugging', +'wlanap del interface' => 'Verwijder geselecteerde interface?', +'wlanap encryption' => 'Encryptie', +'wlanap informations' => 'Informatie', +'wlanap interface' => 'Selecteer interface', +'wlanap invalid wpa' => 'Ongeldige lengte voor WPA wachtwoord. Moet tussen de 8 en 63 tekens zijn.', +'wlanap link dhcp' => 'Draadloze LAN DHCP configuratie', +'wlanap link wireless' => 'Activeer draadloze LAN clients', +'wlanap no interface' => 'Geselecteerde interface is geen draadloze LAN kaart!', +'wlanap none' => 'geen', +'wlanap notifications' => 'Notificaties', +'wlanap select interface' => 'Selecteer de draadloze LAN interface.', +'wlanap verbose' => 'Uitgebreid', +'wlanap warnings' => 'Waarschuwingen', +'wlanap wlan card' => 'WLan kaart', +'wlanap wlan services' => 'WLan Diensten', +'wlanap wlan settings' => 'WLan Instellingen', +'wlanap wlan status' => 'WLan Status', +'wol wakeup' => 'Ontwaken', +'workgroup' => 'Werkgroep', +'written bytes' => 'Geschreven bytes', +'xtaccess all error' => 'U kunt een externe toegang niet op ALLEN zetten, dat wordt gedaan in het poort forwarding deel.', +'xtaccess bad transfert' => 'Als u een bestemmingspoort reeks opgeeft, dan moet de bronreeks identiek zijn!', +'year' => 'Jaar', +'year-graph' => 'Jaar', +'yearly firewallhits' => 'jaarlijkse firewalltreffers', +'yes' => 'Ja', +'you can only define one roadwarrior connection when using pre-shared key authentication' => 'U kunt slechts een Roadwarrior verbinding definiëren als u pre-shared sleutelauthenticatie gebruikt.
Ofwel u heeft al een Roadwarrior verbinding met pre-shared sleutelauthenticatie, of u probeert er nu een toe te voegen.', +'your department' => 'Uw afdeling', +'your e-mail' => 'Uw e-mailadres', +); + +#EOF diff --git a/langs/nl/install/lang_nl.c b/langs/nl/install/lang_nl.c new file mode 100644 index 0000000000..b9a8ec42dd --- /dev/null +++ b/langs/nl/install/lang_nl.c @@ -0,0 +1,590 @@ +/* + * Dutch (nl) Data File + * + * This file is part of the IPFire. + * + * IPCop 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 2 of the License, or + * (at your option) any later version. + * + * IPCop 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 IPCop; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * (c) IPFire Team + * + * based on work of SmoothWall and IPCop + * + * (c) The SmoothWall Team + * + */ + +#include "libsmooth.h" + +char *nl_tr[] = { + +/* TR_ISDN */ +"ISDN", +/* TR_ERROR_PROBING_ISDN */ +"Kan ISDN-apparaten niet detecteren.", +/* TR_PROBING_ISDN */ +"Detecteren en configureren van ISDN-apparaten.", +/* TR_MISSING_GREEN_IP */ +"Groen IP-adres ontbreekt!", +/* TR_CHOOSE_FILESYSTEM */ +"Kies uw bestandssysteem:", +/* TR_NOT_ENOUGH_INTERFACES */ +"Onvoldoende netwerkkaarten voor uw keuze.\n\nNodig: %d - Beschikbaar: %d\n", +/* TR_INTERFACE_CHANGE */ +"Kies de interface die u wilt wijzigen.\n\n", +/* TR_NETCARD_COLOR */ +"Toegewezen kaarten", +/* TR_REMOVE */ +"Verwijder", +/* TR_MISSING_DNS */ +"DNS ontbreekt.\n", +/* TR_MISSING_DEFAULT */ +"Standaard gateway ontbreekt.\n", +/* TR_JOURNAL_EXT3 */ +"Aanmaken journal voor Ext3...", +/* TR_CHOOSE_NETCARD */ +"Kies een netwerkkaart voor de volgende interface - %s.", +/* TR_NETCARDMENU2 */ +"Uitgebreide Netwerkmenu", +/* TR_ERROR_INTERFACES */ +"Er zijn geen vrije interfaces op uw systeem.", +/* TR_REMOVE_CARD */ +"Moet de toewijzing voor de netwerkkaart worden verwijderd? - %s", +/* TR_JOURNAL_ERROR */ +"Kon het journaalboek niet aanmaken, valt terug op gebruik van ext2.", +/* TR_FILESYSTEM */ +"Kies uw bestandssysteem", +/* TR_ADDRESS_SETTINGS */ +"Adresinstellingen", +/* TR_ADMIN_PASSWORD */ +"'admin' wachtwoord", +/* TR_AGAIN_PROMPT */ +"Nogmaals:", +/* TR_ALL_CARDS_SUCCESSFULLY_ALLOCATED */ +"Alle kaarten zijn succesvol toegewezen.", +/* TR_AUTODETECT */ +"* AUTOMATISCH DETECTEREN *", +/* TR_BUILDING_INITRD */ +"Aanmaken ramdisk...", +/* TR_CANCEL */ +"Annuleren", +/* TR_CARD_ASSIGNMENT */ +"Kaart toewijzing", +/* TR_CHECKING */ +"Controleert URL...", +/* TR_CHECKING_FOR */ +"Controleert voor: %s", +/* TR_CHOOSE_THE_ISDN_CARD_INSTALLED */ +"Kies de ISDN-kaart die geïnstalleerd is op deze computer.", +/* TR_CHOOSE_THE_ISDN_PROTOCOL */ +"Kies het ISDN-protocol dat u nodig heeft.", +/* TR_CONFIGURE_DHCP */ +"Configureer de DHCP server door de instellingen in te voeren.", +/* TR_CONFIGURE_NETWORKING */ +"Configureer het netwerk", +/* TR_CONFIGURE_NETWORKING_LONG */ +"U moet nu het netwerk configureren door eerst de juiste driver te laden voor de GROENE interface. U kunt dit doen door ofwel automatisch te zoeken naar een netwerkkaart, of door de juiste driver te kiezen uit een lijst. Als u meer dan een kaart in uw machine heeft, dan kunt u die later in het installatieproces configureren. Mocht u meer dan een kaart van hetzelfde type als GROEN gebruiken en iedere kaart vereist speciale moduleparameters, dan moet u de parameters voor alle kaarten van dit type invoeren zodat alle kaarten actief kunnen worden waneer u de GROENE interface configureert.", +/* TR_CONFIGURE_NETWORK_DRIVERS */ +"Configureer netwerkdrivers en bepaal welke interface iedere kaart krijgt toegewezen.\nDe huidige configuratie is als volgt:\n\n", +/* TR_CONFIGURE_THE_CDROM */ +"Configureer de CDROM door het juiste IO-adres en/of IRQ te kiezen.", +/* TR_CONGRATULATIONS */ +"Gefeliciteerd!", +/* TR_CONGRATULATIONS_LONG */ +"%s is succesvol geïnstalleerd. Verwijder a.u.b. de CDROM's in uw computer. U kunt nu de netwerkkaarten en ISDN configureren en de systeemwachtwoorden instellen. Nadat de setup is afgerond, kunt u met de webbrowser naar https://%s:444 (of hoe u %s ook genoemd heeft) en het inbelnetwerk configureren (als nodig) en de remote toegang.", +/* TR_CONTINUE_NO_SWAP */ +"Uw vaste schijf is erg klein, maar u kunt verder gaan met een zeer kleine swap. (Wees hier voorzichtig mee).", +/* TR_CURRENT_CONFIG */ +"Huidige configuratie: %s%s", +/* TR_DEFAULT_GATEWAY */ +"Standaard Gateway:", +/* TR_DEFAULT_GATEWAY_CR */ +"Standaard Gateway\n", +/* TR_DEFAULT_LEASE */ +"Standaard lease (min.):", +/* TR_DEFAULT_LEASE_CR */ +"Standaard leasetijd\n", +/* TR_DETECTED */ +"Gedetecteerd: %s", +/* TR_DHCP_HOSTNAME */ +"DHCP Hostnaam:", +/* TR_DHCP_HOSTNAME_CR */ +"DHCP Hostnaam\n", +/* TR_DHCP_SERVER_CONFIGURATION */ +"DHCP serverconfiguratie", +/* TR_DISABLED */ +"Uitgeschakeld", +/* TR_DISABLE_ISDN */ +"ISDN uitschakelen", +/* TR_DISK_TOO_SMALL */ +"Uw vaste schijf is te klein.", +/* TR_DNS_AND_GATEWAY_SETTINGS */ +"DNS en Gateway instellingen", +/* TR_DNS_AND_GATEWAY_SETTINGS_LONG */ +"Voer de DNS en gateway informatie in. Deze instellingen worden alleen gebruikt met statische IP-adressen (en DHCP als DNS is ingesteld) op de RODE interface.", +/* TR_DNS_GATEWAY_WITH_GREEN */ +"Uw configuratie gebruikt geen ethernetadapter voor z'n RODE interface. DNS en gateway voor inbelgebruikers worden automatisch geconfigureerd tijdens inbellen.", +/* TR_DOMAINNAME */ +"Domeinnaam", +/* TR_DOMAINNAME_CANNOT_BE_EMPTY */ +"Domeinnaam mag niet leeg zijn.", +/* TR_DOMAINNAME_CANNOT_CONTAIN_SPACES */ +"Domeinnaam mag geen spaties bevatten.", +/* TR_DOMAINNAME_NOT_VALID_CHARS */ +"Domeinnaam mag alleen letters, getallen, koppeltekens en punten bevatten.", +/* TR_DOMAIN_NAME_SUFFIX */ +"Domeinnaam toevoeging:", +/* TR_DOMAIN_NAME_SUFFIX_CR */ +"Domeinnaam toevoeging\n", +/* TR_DONE */ +"Klaar", +/* TR_DO_YOU_WISH_TO_CHANGE_THESE_SETTINGS */ +"\nWilt u deze instellingen wijzigen?", +/* TR_DRIVERS_AND_CARD_ASSIGNMENTS */ +"Drivers en kaarttoewijzingen", +/* TR_ENABLED */ +"Ingeschakeld", +/* TR_ENABLE_ISDN */ +"Inschakelen ISDN", +/* TR_END_ADDRESS */ +"Eindadres:", +/* TR_END_ADDRESS_CR */ +"Eindadres\n", +/* TR_ENTER_ADDITIONAL_MODULE_PARAMS */ +"Bepaalde ISDN-kaarten (met name de ISA-kaarten) kunnen extra moduleparameters vereisen voor het instellen van IRQ- en IO-adressen. Als u zo'n ISDN-kaart heeft, voer deze parameters dan hier in. Bijvoorbeeld: \"io=0x280 irq=9\". Deze gegevens worden gebruikt tijdens de kaartdetectie.", +/* TR_ENTER_ADMIN_PASSWORD */ +"Voer het %s 'admin' wachtwoord in. Dit is de gebruikersnaam die gebruikt wordt om in te loggen op de %s webbeheerpagina's.", +/* TR_ENTER_DOMAINNAME */ +"Voer de domeinnaam in", +/* TR_ENTER_HOSTNAME */ +"Voer de machinehostnaam in", +/* TR_ENTER_IP_ADDRESS_INFO */ +"Voer de IP-adres informatie in", +/* TR_ENTER_NETWORK_DRIVER */ +"Automatisch detecteren van netwerkkaart is mislukt. Voer de drivernaam en optionele parameters in voor de netwerkkaart.", +/* TR_ENTER_ROOT_PASSWORD */ +"Voer het 'root' wachtwoord in. Log in als deze gebruiker voor commandoregel toegang.", +/* TR_ENTER_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_ENTER_THE_IP_ADDRESS_INFORMATION */ +"Voer de IP-adres informatie in voor de %s interface.", +/* TR_ENTER_THE_LOCAL_MSN */ +"Voer lokaal telefoonnummer in (MSN/EAZ).", +/* TR_ENTER_URL */ +"Voer het URL-pad in naar de ipcop-.tgz en images/scsidrv-.img bestanden. WAARSCHUWING: DNS is niet beschikbaar! Dit zou http://X.X.X.X/ moeten zijn", +/* TR_ERROR */ +"Fout", +/* TR_ERROR_PROBING_CDROM */ +"Geen CDROM-speler gevonden.", +/* TR_ERROR_WRITING_CONFIG */ +"Fout bij wegschrijven van configuratie informatie.", +/* TR_EURO_EDSS1 */ +"Euro (EDSS1)", +/* TR_EXTRACTING_MODULES */ +"Uitpakken modules...", +/* TR_FAILED_TO_FIND */ +"URL-bestand niet gevonden.", +/* TR_FOUND_NIC */ +"%s heeft de volgende NIC in uw machine gedetecteerd: %s", +/* TR_GERMAN_1TR6 */ +"German 1TR6", +/* TR_HELPLINE */ +" / schakel tussen elementen | selecteer", +/* TR_HOSTNAME */ +"Hostnaam", +/* TR_HOSTNAME_CANNOT_BE_EMPTY */ +"Hostnaam mag niet leeg zijn.", +/* TR_HOSTNAME_CANNOT_CONTAIN_SPACES */ +"Hostnaam mag geen spaties bevatten.", +/* TR_HOSTNAME_NOT_VALID_CHARS */ +"Hostnaam mag alleen letters, getallen en koppeltekens bevatten.", +/* TR_INITIALISING_ISDN */ +"Initialiseert ISDN...", +/* TR_INSERT_CDROM */ +"Plaats de %s CD in the CDROM-speler a.u.b.", +/* TR_INSERT_FLOPPY */ +"Plaats de %s driver-diskette in het station a.u.b.", +/* TR_INSTALLATION_CANCELED */ +"Installatie afgebroken.", +/* TR_INSTALLING_FILES */ +"Installeert bestanden...", +/* TR_INSTALLING_GRUB */ +"Installeert GRUB...", +/* TR_INSTALLING_LANG_CACHE */ +"Installeert taalbestanden...", +/* TR_INTERFACE */ +"Interface - %s", +/* TR_INTERFACE_FAILED_TO_COME_UP */ +"Interface kwam niet op.", +/* TR_INVALID_FIELDS */ +"De volgende velden zijn ongeldig:\n\n", +/* TR_INVALID_IO */ +"De ingevoerde IO-poortgegevens zijn ongeldig. ", +/* TR_INVALID_IRQ */ +"De ingevoerde IRQ gegevens zijn ongeldig.", +/* TR_IP_ADDRESS_CR */ +"IP-adres\n", +/* TR_IP_ADDRESS_PROMPT */ +"IP-adres:", +/* TR_ISDN_CARD */ +"ISDN-kaart", +/* TR_ISDN_CARD_NOT_DETECTED */ +"ISDN-kaart niet gedetecteerd. Mogelijk dient u extra moduleparameters op te geven als het een ISA type betreft of heeft het speciale eisen.", +/* TR_ISDN_CARD_SELECTION */ +"ISDN kaartselectie", +/* TR_ISDN_CONFIGURATION */ +"ISDN configuratie", +/* TR_ISDN_CONFIGURATION_MENU */ +"ISDN configuratiemenu", +/* TR_ISDN_NOT_SETUP */ +"ISDN niet ingesteld. Sommige items zijn niet geselecteerd.", +/* TR_ISDN_NOT_YET_CONFIGURED */ +"ISDN is nog niet geconfigureerd. Selecteer het item dat u wilt configureren.", +/* TR_ISDN_PROTOCOL_SELECTION */ +"ISDN protocolselectie", +/* TR_ISDN_STATUS */ +"ISDN is momenteel %s.\n\n Protocol: %s\n Kaart: %s\n Lokaal telefoonnummer: %s\n\nSelecteer het item dat u wilt herconfigureren, of kies voor de huidige instellingen.", +/* TR_KEYBOARD_MAPPING */ +"Toetsenbordindeling", +/* TR_KEYBOARD_MAPPING_LONG */ +"Kies het type toetsenbord dat u gebruikt uit de lijst hieronder.", +/* TR_LEASED_LINE */ +"Vaste verbinding", +/* TR_LOADING_MODULE */ +"Laadt module...", +/* TR_LOADING_PCMCIA */ +"Laadt PCMCIA modules...", +/* TR_LOOKING_FOR_NIC */ +"Zoekt naar: %s", +/* TR_MAKING_BOOT_FILESYSTEM */ +"Aanmaken boot bestandssysteem...", +/* TR_MAKING_LOG_FILESYSTEM */ +"Aanmaken log bestandssysteem...", +/* TR_MAKING_ROOT_FILESYSTEM */ +"Aanmaken root bestandssysteem...", +/* TR_MAKING_SWAPSPACE */ +"Aanmaken swap...", +/* TR_MANUAL */ +"* HANDMATIG *", +/* TR_MAX_LEASE */ +"Max. lease (min.):", +/* TR_MAX_LEASE_CR */ +"Max. leasetijd\n", +/* TR_MISSING_BLUE_IP */ +"Ontbrekende IP-informatie op de BLAUWE interface.", +/* TR_MISSING_ORANGE_IP */ +"Ontbrekende IP-informatie op de ORANJE interface.", +/* TR_MISSING_RED_IP */ +"Ontbrekende IP-informatie op de RODE interface.", +/* TR_MODULE_NAME_CANNOT_BE_BLANK */ +"Modulenaam mag niet leeg zijn.", +/* TR_MODULE_PARAMETERS */ +"Voer de modulenaam en parameters in voor de driver die u nodig hebt.", +/* TR_MOUNTING_BOOT_FILESYSTEM */ +"Koppelen van het boot bestandssysteem...", +/* TR_MOUNTING_LOG_FILESYSTEM */ +"Koppelen van het log bestandssysteem...", +/* TR_MOUNTING_ROOT_FILESYSTEM */ +"Koppelen van het root bestandssysteem...", +/* TR_MOUNTING_SWAP_PARTITION */ +"Koppelen van de swap partitie...", +/* TR_MSN_CONFIGURATION */ +"Lokaal telefoonnummer (MSN/EAZ)", +/* TR_NETMASK_PROMPT */ +"Netwerkmasker:", +/* TR_NETWORKING */ +"Netwerk", +/* TR_NETWORK_ADDRESS_CR */ +"Netwerkadres\n", +/* TR_NETWORK_ADDRESS_PROMPT */ +"Netwerkadres:", +/* TR_NETWORK_CONFIGURATION_MENU */ +"Netwerk configuratiemenu", +/* TR_NETWORK_CONFIGURATION_TYPE */ +"Netwerk configuratietype", +/* TR_NETWORK_CONFIGURATION_TYPE_LONG */ +"Selecteer de netwerkconfiguratie voor %s. De volgende configuratiesoorten vermelden welke interfaces op ethernet aangesloten zijn. Als u deze instellingen wijzigt, dan is een netwerk herstart nodig en u moet de netwerkdriver toewijzingen opnieuw maken.", +/* TR_NETWORK_MASK_CR */ +"Netwerkmasker\n", +/* TR_NETWORK_SETUP_FAILED */ +"Netwerkinstelling mislukt.", +/* TR_NOT_ENOUGH_CARDS_WERE_ALLOCATED */ +"Er zijn onvoldoende kaarten toegewezen.", +/* TR_NO_BLUE_INTERFACE */ +"Er is geen BLAUWE interface toegewezen.", +/* TR_NO_CDROM */ +"Geen CD-ROM gevonden.", +/* TR_NO_GREEN_INTERFACE */ +"Er is geen GROENE interface toegewezen.", +/* TR_NO_HARDDISK */ +"Geen vaste schijf gevonden.", +/* TR_NO_IPCOP_TARBALL_FOUND */ +"Er is geen ipcop tarball gevonden op de webserver.", +/* TR_NO_ORANGE_INTERFACE */ +"Er is geen ORANJE interface toegewezen.", +/* TR_NO_RED_INTERFACE */ +"Er is geen RODE interface toegewezen.", +/* TR_NO_SCSI_IMAGE_FOUND */ +"Er is geen SCSI image gevonden op de webserver.", +/* TR_NO_UNALLOCATED_CARDS */ +"Er zijn geen vrije kaarten over, er zijn er meer vereist. U kunt automatisch detecteren proberen en op zoek gaan naar meer kaarten, of u kiest een driver uit de lijst.", +/* TR_OK */ +"Ok", +/* TR_PARTITIONING_DISK */ +"Partitioneert schijf...", +/* TR_PASSWORDS_DO_NOT_MATCH */ +"Wachtwoorden komen niet overeen.", +/* TR_PASSWORD_CANNOT_BE_BLANK */ +"Wachtwoord mag niet leeg zijn.", +/* TR_PASSWORD_CANNOT_CONTAIN_SPACES */ +"Wachtwoord mag geen spaties bevatten.", +/* TR_PASSWORD_PROMPT */ +"Wachtwoord:", +/* TR_PHONENUMBER_CANNOT_BE_EMPTY */ +"Telefoonnummer mag niet leeg zijn.", +/* TR_PREPARE_HARDDISK */ +"Het installatieprogramma zal nu de vaste schijf voorbereiden op %s. Eerst wordt de schijf gepartitioneerd, daarna zullen de bestandssystemen erop worden gezet.\n\nALLE DATA OP DE SCHIJF ZAL WORDEN GEWIST. Wilt u hiermee doorgaan?", +/* TR_PRESS_OK_TO_REBOOT */ +"Druk Ok om te herstarten.", +/* TR_PRIMARY_DNS */ +"Primaire DNS:", +/* TR_PRIMARY_DNS_CR */ +"Primaire DNS\n", +/* TR_PROBE */ +"Opsporen", +/* TR_PROBE_FAILED */ +"Automatisch detecteren mislukt.", +/* TR_PROBING_HARDWARE */ +"Opsporen van hardware...", +/* TR_PROBING_FOR_NICS */ +"Zoeken naar NIC's...", +/* TR_PROBLEM_SETTING_ADMIN_PASSWORD */ +"Er is een probleem met het instellen van %s 'admin' gebruikerswachtwoord.", +/* TR_PROBLEM_SETTING_ROOT_PASSWORD */ +"Er is een probleem met het instellen van %s 'root' gebruikerswachtwoord.", +/* TR_PROBLEM_SETTING_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_PROTOCOL_COUNTRY */ +"Protocol/Land", +/* TR_PULLING_NETWORK_UP */ +"Netwerk opbrengen...", +/* TR_PUSHING_NETWORK_DOWN */ +"Netwerk stoppen...", +/* TR_PUSHING_NON_LOCAL_NETWORK_DOWN */ +"Niet-lokaal netwerk stoppen...", +/* TR_QUIT */ +"Stoppen", +/* TR_RED_IN_USE */ +"ISDN (of een andere externe verbinding) is momenteel in gebruik. U kunt ISDN niet configureren zolang de RODE interface actief is.", +/* TR_RESTART_REQUIRED */ +"\n\nAls de configuratie gereed is moet het netwerk herstart worden.", +/* TR_RESTORE */ +"Terugzetten", +/* TR_RESTORE_CONFIGURATION */ +"Als u een diskette heeft met een %s systeemconfiguratie daarop, plaats dan de diskette in het station en druk op de terugzetten-knop.", +/* TR_ROOT_PASSWORD */ +"'root' wachtwoord", +/* TR_SECONDARY_DNS */ +"Secundaire DNS:", +/* TR_SECONDARY_DNS_CR */ +"Secundaire DNS\n", +/* TR_SECONDARY_WITHOUT_PRIMARY_DNS */ +"Secundaire DNS opgegeven zonder een primaire DNS", +/* TR_SECTION_MENU */ +"Sectiemenu", +/* TR_SELECT */ +"Selecteer", +/* TR_SELECT_CDROM_TYPE */ +"Selecteer CDROM type", +/* TR_SELECT_CDROM_TYPE_LONG */ +"Er is geen CD-ROM gedetecteerd in deze machine. Maak een keuze uit de volgende drivers waarmee %s de CD-ROM kan benaderen.", +/* TR_SELECT_INSTALLATION_MEDIA */ +"Selecteer installatiemedium", +/* TR_SELECT_INSTALLATION_MEDIA_LONG */ +"%s kan worden geïnstalleerd vanuit verschillende bronnen. De eenvoudigste manier is om de CDROM-speler van de machine te gebruiken. Als de computer geen CDROM-speler heeft, dan kunt vanaf een andere machine installeren die de installatiebestanden beschikbaar kan maken over het netwerk via HTTP of FTP.", +/* TR_SELECT_NETWORK_DRIVER */ +"Selecteer netwerkdriver", +/* TR_SELECT_NETWORK_DRIVER_LONG */ +"Selecteer de netwerkdriver voor de aanwezige kaart in deze machine. Als u HANDMATIG selecteert, krijgt u de mogelijkheid om de driver modulenaam en parameters op te geven voor drivers met speciale eisen, zoals voor ISA-kaarten.", +/* TR_SELECT_THE_INTERFACE_YOU_WISH_TO_RECONFIGURE */ +"Selecteer de interface die u wilt herconfigureren.", +/* TR_SELECT_THE_ITEM */ +"Selecteer het item dat u wilt configureren.", +/* TR_SETTING_ADMIN_PASSWORD */ +"Instellen van %s 'admin' gebruikerswachtwoord...", +/* TR_SETTING_ROOT_PASSWORD */ +"Instellen van 'root' wachtwoord....", +/* TR_SETTING_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_SETUP_FINISHED */ +"Setup is afgerond. Druk Ok.", +/* TR_SETUP_NOT_COMPLETE */ +"Initiële setup was niet volledig afgerond. Verzeker u ervan dat de setup goed is afgerond door het setup programma nogmaals vanaf de commandoregel te starten.", +/* TR_SETUP_PASSWORD */ +"WORDT VERWIJDERD", +/* TR_SET_ADDITIONAL_MODULE_PARAMETERS */ +"Instellen additionele moduleparameters", +/* TR_SINGLE_GREEN */ +"Uw configuratie is ingesteld voor een enkele GROENE interface.", +/* TR_SKIP */ +"Overslaan", +/* TR_START_ADDRESS */ +"Beginadres:", +/* TR_START_ADDRESS_CR */ +"Beginadres\n", +/* TR_STATIC */ +"Statisch", +/* TR_SUGGEST_IO */ +"(voorstel %x)", +/* TR_SUGGEST_IRQ */ +"(voorstel %d)", +/* TR_THIS_DRIVER_MODULE_IS_ALREADY_LOADED */ +"Deze drivermodule is al geladen.", +/* TR_TIMEZONE */ +"Tijdzone", +/* TR_TIMEZONE_LONG */ +"Kies de tijdzone waar u zich bevindt uit de lijst hieronder.", +/* TR_UNABLE_TO_EJECT_CDROM */ +"Kan de CDROM niet uitwerpen.", +/* TR_UNABLE_TO_EXTRACT_MODULES */ +"Kan de modules niet uitpakken.", +/* TR_UNABLE_TO_FIND_ANY_ADDITIONAL_DRIVERS */ +"Kan geen additionele drivers vinden.", +/* TR_UNABLE_TO_FIND_AN_ISDN_CARD */ +"Kan geen ISDN-kaart vinden in deze computer. U kunt extra module parameters opgeven als het een ISA-kaart betreft of als het speciale eisen heeft.", +/* TR_UNABLE_TO_INITIALISE_ISDN */ +"Kan de ISDN-kaart niet initialiseren.", +/* TR_UNABLE_TO_INSTALL_FILES */ +"Kan de bestanden niet installeren.", +/* TR_UNABLE_TO_INSTALL_LANG_CACHE */ +"Kan de taalbestanden niet installeren.", +/* TR_UNABLE_TO_INSTALL_GRUB */ +"Kan GRUB niet installeren.", +/* TR_UNABLE_TO_LOAD_DRIVER_MODULE */ +"Kan de drivermodule niet laden.", +/* TR_UNABLE_TO_MAKE_BOOT_FILESYSTEM */ +"Kan het boot bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_LOG_FILESYSTEM */ +"Kan het log bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_ROOT_FILESYSTEM */ +"Kan het root bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SWAPSPACE */ +"Kan het swap bestandssysteem niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK */ +"Kan de symlink /dev/harddisk niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK1 */ +"Kan de symlink /dev/harddisk1 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK2 */ +"Kan de symlink /dev/harddisk2 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK3 */ +"Kan de symlink /dev/harddisk3 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_HARDDISK4 */ +"Kan de symlink /dev/harddisk4 niet aanmaken.", +/* TR_UNABLE_TO_MAKE_SYMLINK_DEV_ROOT */ +"Kan de symlink /dev/root niet aanmaken.", +/* TR_UNABLE_TO_MOUNT_BOOT_FILESYSTEM */ +"Kan het boot bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_LOG_FILESYSTEM */ +"Kan het log bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_PROC_FILESYSTEM */ +"Kan het proc bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_ROOT_FILESYSTEM */ +"Kan het root bestandssysteem niet koppelen.", +/* TR_UNABLE_TO_MOUNT_SWAP_PARTITION */ +"Kan de swap partitie niet koppelen.", +/* TR_UNABLE_TO_OPEN_HOSTS_FILE */ +"Kan het hosts-bestand niet openen.", +/* TR_UNABLE_TO_OPEN_SETTINGS_FILE */ +"Kan het instellingenbestand niet openen", +/* TR_UNABLE_TO_PARTITION */ +"Kan de schijf niet partitioneren.", +/* TR_UNABLE_TO_REMOVE_TEMP_FILES */ +"Kan de tijdelijke gedownloade bestanden niet verwijderen.", +/* TR_UNABLE_TO_SET_HOSTNAME */ +"Kan de hostnaam niet instellen.", +/* TR_UNABLE_TO_UNMOUNT_CDROM */ +"Kan het CDROM-/diskettestation niet ontkoppelen.", +/* TR_UNABLE_TO_UNMOUNT_HARDDISK */ +"Kan de vaste schijf niet ontkoppelen.", +/* TR_UNABLE_TO_WRITE_ETC_FSTAB */ +"Kan /etc/fstab niet wegschrijven", +/* TR_UNABLE_TO_WRITE_ETC_HOSTNAME */ +"Kan /etc/hostname niet wegschrijven", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS */ +"Kan /etc/hosts niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS_ALLOW */ +"Kan /etc/hosts.allow niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_ETC_HOSTS_DENY */ +"Kan /etc/hosts.deny niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_ETHERNET_SETTINGS */ +"Kan %s/ethernet/settings niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_HOSTNAMECONF */ +"Kan %s/main/hostname.conf niet wegschrijven.", +/* TR_UNABLE_TO_WRITE_VAR_SMOOTHWALL_MAIN_SETTINGS */ +"Kan %s/main/settings niet wegschrijven.", +/* TR_UNCLAIMED_DRIVER */ +"Er is een ongebruikte ethernetkaart van het type:\n%s\n\nU kunt deze toewijzen aan:", +/* TR_UNKNOWN */ +"ONBEKEND", +/* TR_UNSET */ +"NIET INGESTELD", +/* TR_USB_KEY_VFAT_ERR */ +"Deze USB-sleutel is ongeldig (geen vfat partitie gevonden).", +/* TR_US_NI1 */ +"US NI1", +/* TR_WARNING */ +"WAARSCHUWING", +/* TR_WARNING_LONG */ +"Als u dit IP-adres wijzigt, en u bent op afstand ingelogd, dan zal de verbinding naar de %s machine worden verbroken en u zult opnieuw moeten verbinden naar het nieuwe IP-adres. Dit is een riskante handeling en moet alleen geprobeerd worden als u fysieke toegang tot de machine hebt, in het geval er iets fout gaat.", +/* TR_WELCOME */ +"Welkom bij het %s installatieprogramma. Als u 'annuleren' kiest op een van de volgende schermen selecteert zal de computer herstarten.", +/* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */ +"Uw configuratie is ingesteld voor een enkele GROENE interface, welke al een driver toegewezen heeft.", +/* TR_YES */ +"Ja", +/* TR_NO */ +"Nee", +/* TR_AS */ +"als", +/* TR_IGNORE */ +"Negeer", +/* TR_PPP_DIALUP */ +"PPP DIALUP (PPPoE, modem, ATM ...)", +/* TR_DHCP */ +"DHCP", +/* TR_DHCP_STARTSERVER */ +"Start DHCP-server ...", +/* TR_DHCP_STOPSERVER */ +"Stopt DHCP-server ...", +/* TR_LICENSE_ACCEPT */ +"Ik accepteer deze licentie.", +/* TR_LICENSE_NOT_ACCEPTED */ +"Licentie niet geaccepteerd. Stopt!", +/* TR_EXT2FS_DESCR */ +"Ext2 - Bestandssysteem zonder journal (geschikt voor flashdrives)", +/* TR_EXT3FS_DESCR */ +"Ext3 - Bestandssysteem met journal", +/* TR_EXT4FS_DESCR */ +"Ext4 - Bestandssysteem met journal", +/* TR_REISERFS_DESCR */ +"ReiserFS - Bestandssysteem met journal", +/* TR_NO_LOCAL_SOURCE */ +"Geen lokale bronmedia gevonden. Start download.", +/* TR_DOWNLOADING_ISO */ +"Downloaden van installatie-image ...", +/* TR_DOWNLOAD_ERROR */ +"Fout tijdens downloaden!", +/* TR_DHCP_FORCE_MTU */ +"Forceer DHCP mtu:", +}; diff --git a/lfs/Config b/lfs/Config index 2bc0754734..b9c0fb68aa 100644 --- a/lfs/Config +++ b/lfs/Config @@ -96,6 +96,8 @@ endif # ifeq "$(ROOT)" "" define POSTBUILD + @echo "Updating linker cache..." + @type -p ldconfig >/dev/null && ldconfig || : @echo "Install done; saving file list to $(TARGET) ..." @$(FIND_FILES) > $(DIR_SRC)/lsalrnew @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' > $(TARGET)_diff @@ -189,7 +191,7 @@ define PAK tar xf /install/packages/package/files.tmp -C /install/packages/package/tmp/ \ -p --numeric-owner rm -f /install/packages/package/files.tmp - cd /install/packages/package/tmp/ && tar -c -p --numeric-owner -f /install/packages/package/files * + cd /install/packages/package/tmp/ && tar -c -p --numeric-owner -J -f /install/packages/package/files.tar.xz * rm -r /install/packages/package/tmp -cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES.tmp mv /install/packages/package/ROOTFILES.tmp /install/packages/package/ROOTFILES diff --git a/lfs/GeoIP b/lfs/GeoIP index 68254a7dd6..7e1dc9a0ee 100644 --- a/lfs/GeoIP +++ b/lfs/GeoIP @@ -25,7 +25,7 @@ include Config VER = 1.17 -DATVER = 06112012 +DATVER = 05122012 THISAPP = Geo-IP-PurePerl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -43,7 +43,7 @@ $(DL_FILE) = $(DL_FROM)/$(DL_FILE) GeoIP.dat-$(DATVER).gz = $(DL_FROM)/GeoIP.dat-$(DATVER).gz $(DL_FILE)_MD5 = 42a6b9d4dd2563a20c8998556216e1de -GeoIP.dat-$(DATVER).gz_MD5 = a8677695b0abecb69707ebe2444e64f9 +GeoIP.dat-$(DATVER).gz_MD5 = ab0f52a35128d1aced906ac4cbfbed9c install : $(TARGET) diff --git a/lfs/IO-Socket-SSL b/lfs/IO-Socket-SSL new file mode 100644 index 0000000000..fef8097e0a --- /dev/null +++ b/lfs/IO-Socket-SSL @@ -0,0 +1,62 @@ +############################################################################### +# IPFire.org - An Open Source Firewall Solution # +# Copyright (C) - IPFire Development Team # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.78 + +THISAPP = IO-Socket-SSL-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = http://cpan.noris.de/authors/id/S/SU/SULLR/ +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 172201f3ebc400dc3733a0577ac29095 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && perl Makefile.PL + cd $(DIR_APP) && make + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) \ No newline at end of file diff --git a/lfs/acpid b/lfs/acpid new file mode 100644 index 0000000000..ff85e1cb5d --- /dev/null +++ b/lfs/acpid @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.0.16 + +THISAPP = acpid-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +SUP_ARCH = i586 + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = d59fc02c9c34f0d5c137495302e2c074 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) OPT="$(CFLAGS)" + cd $(DIR_APP) && make install + + # Install configuration. + mkdir -pv /etc/acpi/{actions,events} + cp -vf $(DIR_SRC)/config/acpid/power /etc/acpi/events/ + cp -vf $(DIR_SRC)/config/acpid/power.sh /etc/acpi/actions/ + chmod 755 /etc/acpi/actions/power.sh + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/alsa b/lfs/alsa index dadaa145e7..9189655a82 100644 --- a/lfs/alsa +++ b/lfs/alsa @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -25,10 +25,9 @@ include Config -VER = 1.0.24.1 -UVER = 1.0.24.2 -FVER = 1.0.24.1 -DVER = 1.0.24 +VER = 1.0.26 +UVER = 1.0.26 +FVER = 1.0.25 VERSUFIX = ipfire$(KCFG) @@ -37,32 +36,25 @@ DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) PROG = alsa -PAK_VER = 9 +PAK_VER = 11 DEPS = "" -ifeq "$(KMOD)" "1" - TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2 \ - alsa-driver-$(DVER).tar.bz2 +objects = $(DL_FILE) alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2 $(DL_FILE) = $(DL_FROM)/$(DL_FILE) alsa-utils-$(UVER).tar.bz2 = $(DL_FROM)/alsa-utils-$(UVER).tar.bz2 alsa-firmware-$(FVER).tar.bz2 = $(DL_FROM)/alsa-firmware-$(FVER).tar.bz2 -alsa-driver-$(DVER).tar.bz2 = $(DL_FROM)/alsa-driver-$(DVER).tar.bz2 -$(DL_FILE)_MD5 = 7cc05f25e1d5b65da8fb3fdcd540f226 -alsa-utils-$(UVER).tar.bz2_MD5 = 8238cd57cb301d1c36bcf0ecb59ce6b2 -alsa-firmware-$(FVER).tar.bz2_MD5 = d37434dfcfececd8581d2f0bbe2fcf1b -alsa-driver-$(DVER).tar.bz2_MD5 = a4ffd80745ce5098dfd48d83c2769e0e +$(DL_FILE)_MD5 = 2dfa35d28471d721e592b616beedf965 +alsa-utils-$(UVER).tar.bz2_MD5 = 4dcf1017fafc91603af96705c073eca9 +alsa-firmware-$(FVER).tar.bz2_MD5 = f1939da45b162c83a726c54a470ef139 install : $(TARGET) @@ -95,16 +87,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_SRC)/alsa* -ifeq "$(KMOD)" "1" - cd $(DIR_SRC) && tar xfj $(DIR_DL)/alsa-driver-$(DVER).tar.bz2 - cd $(DIR_SRC)/alsa-driver-$(DVER) && sed -i -e "s| soc/ | |g" Makefile - cd $(DIR_SRC)/alsa-driver-$(DVER) && sed -i -e "s| soc||g" Makefile - cd $(DIR_SRC)/alsa-driver-$(DVER) && ./configure --with-kernel=/usr/src/linux - cd $(DIR_SRC)/alsa-driver-$(DVER) && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/alsa-driver-$(DVER) && make install -else cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --enable-static + cd $(DIR_APP) && ./configure cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install cd $(DIR_SRC) && tar xfj $(DIR_DL)/alsa-utils-$(UVER).tar.bz2 @@ -115,6 +99,5 @@ else cd $(DIR_SRC)/alsa-firmware-$(FVER) && ./configure cd $(DIR_SRC)/alsa-firmware-$(FVER) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/alsa-firmware-$(FVER) && make install -endif @rm -rf $(DIR_SRC)/alsa* @$(POSTBUILD) diff --git a/lfs/apcupsd b/lfs/apcupsd index db14e14178..4e9137b111 100644 --- a/lfs/apcupsd +++ b/lfs/apcupsd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # diff --git a/lfs/asterisk b/lfs/asterisk index afc95f5beb..d2b1976cde 100644 --- a/lfs/asterisk +++ b/lfs/asterisk @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 1.8.13.0 +VER = 1.8.19.0 THISAPP = asterisk-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = asterisk -PAK_VER = 7 +PAK_VER = 8 CHAN_CAPI = chan_capi-20120614 @@ -44,20 +44,17 @@ DEPS = "libpri libtiff libvorbis libogg spandsp netsnmpd" objects = $(DL_FILE) \ asterisk-1.4-de-prompts.tar.gz \ - asterisk-core-sounds-en-gsm-1.4.22.tar.gz \ asterisk-extra-sounds-en-gsm-1.4.11.tar.gz \ asterisk-moh-opsound-gsm-2.03.tar.gz \ $(CHAN_CAPI).tgz $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -asterisk-core-sounds-en-gsm-1.4.22.tar.gz = $(URL_IPFIRE)/asterisk-core-sounds-en-gsm-1.4.22.tar.gz asterisk-extra-sounds-en-gsm-1.4.11.tar.gz = $(URL_IPFIRE)/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz asterisk-moh-opsound-gsm-2.03.tar.gz = $(URL_IPFIRE)/asterisk-moh-opsound-gsm-2.03.tar.gz asterisk-1.4-de-prompts.tar.gz = $(URL_IPFIRE)/asterisk-1.4-de-prompts.tar.gz $(CHAN_CAPI).tgz = $(URL_IPFIRE)/$(CHAN_CAPI).tgz -$(DL_FILE)_MD5 = e7f2cb19068c1211c907062f9e96c47a -asterisk-core-sounds-en-gsm-1.4.22.tar.gz_MD5 = 2a99a45c0675135255bc65796b12f7c6 +$(DL_FILE)_MD5 = dc98436846cc2de57100d78747b1bdd1 asterisk-extra-sounds-en-gsm-1.4.11.tar.gz_MD5 = 5479cb4cb81d678304d96f35e4933a11 asterisk-moh-opsound-gsm-2.03.tar.gz_MD5 = 09066f55f1358f298bc1a6e4678a3ddf asterisk-1.4-de-prompts.tar.gz_MD5 = 626a2b95071a5505851e43874dfbfd5c @@ -104,7 +101,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && cp -fv $(DIR_SRC)/config/asterisk/asterisk.makeopts menuselect.makeopts # add additional sounds - cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-core-sounds-en-gsm-1.4.22.tar.gz $(DIR_APP)/sounds/ cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-extra-sounds-en-gsm-1.4.11.tar.gz $(DIR_APP)/sounds/ cd $(DIR_APP) && cp -fv $(DIR_DL)/asterisk-moh-opsound-gsm-2.03.tar.gz $(DIR_APP)/sounds/ diff --git a/lfs/autoconf b/lfs/autoconf index 0ee15c1c85..9c58e20cc6 100644 --- a/lfs/autoconf +++ b/lfs/autoconf @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 Michael Tremer & Christian Schmidt # # # # 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 # @@ -24,10 +24,10 @@ include Config -VER = 2.59 +VER = 2.69 THISAPP = autoconf-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -39,7 +39,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 1ee40f7a676b3cfdc0e3f7cd81551b5f +$(DL_FILE)_MD5 = 50f97f4159805e374639a73e2636f22e install : $(TARGET) @@ -68,7 +68,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/automake b/lfs/automake index 699d96f148..9b19a1b172 100644 --- a/lfs/automake +++ b/lfs/automake @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,10 +24,10 @@ include Config -VER = 1.9.6 +VER = 1.12.4 THISAPP = automake-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = c11b8100bb311492d8220378fd8bf9e0 +$(DL_FILE)_MD5 = 7395a0420ecb5c9bc43e5fcf4824df36 install : $(TARGET) @@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/bash b/lfs/bash index afdb511f13..c89ff545a9 100644 --- a/lfs/bash +++ b/lfs/bash @@ -24,7 +24,7 @@ include Config -VER = 3.1 +VER = 3.2 THISAPP = bash-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -48,7 +48,7 @@ else EXTRA_INSTALL = endif -EXTRA_CONFIG += --build=$(BUILDTARGET) +EXTRA_CONFIG += ac_cv_func_working_mktime=yes ############################################################################### # Top-level Rules @@ -58,7 +58,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = ef5304c4b22aaa5088972c792ed45d72 +$(DL_FILE)_MD5 = 00bfa16d58e034e3c2aa27f390390d30 install : $(TARGET) @@ -88,8 +88,14 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fixes-8.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-login.patch + + for i in $$(seq 1 51); do \ + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash32-$$(printf "%03d" "$${i}") || exit 1; \ + done + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-paths-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-profile-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-3.2-ssh_source_bash.patch cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install diff --git a/lfs/binutils b/lfs/binutils index 2ff84746e8..791483f218 100644 --- a/lfs/binutils +++ b/lfs/binutils @@ -24,39 +24,52 @@ include Config -VER = 2.18 +VER = 2.22 THISAPP = binutils-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -# XXX maybe we can remove that ugly MACHINE= by this -#unexport MACHINE - # Normal build or /tools build. # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr --enable-shared --disable-nls + EXTRA_CONFIG = \ + --prefix=/usr \ + --enable-shared \ + --disable-nls EXTRA_MAKE = tooldir=/usr EXTRA_INSTALL = tooldir=/usr else ifeq "$(PASS)" "1" + CFLAGS := $(patsubst -march=%,,$(CFLAGS)) + CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS)) TARGET = $(DIR_INFO)/$(THISAPP)-tools1 - EXTRA_CONFIG = --prefix=/tools --disable-nls --disable-werror --disable-gprof - #EXTRA_MAKE = LDFLAGS="-all-static" + EXTRA_CONFIG = \ + --target=$(CROSSTARGET) \ + --prefix=/tools \ + --disable-nls \ + --disable-werror + EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools2 - EXTRA_CONFIG = --prefix=/tools --with-lib-path=/tools/lib --disable-nls + EXTRA_ENV = \ + CC="$(CROSSTARGET)-gcc -B/tools/lib/" \ + AR="$(CROSSTARGET)-ar" \ + RANLIB="$(CROSSTARGET)-ranlib" + EXTRA_CONFIG = \ + --host=$(BUILDTARGET) \ + --build=$(BUILDTARGET) \ + --prefix=/tools \ + --with-lib-path=/tools/lib \ + --disable-nls EXTRA_MAKE = EXTRA_INSTALL = endif endif -EXTRA_CONFIG += --build=$(BUILDTARGET) - ifeq "$(MACHINE_TYPE)" "arm" EXTRA_CONFIG += \ --with-abi=aapcs-linux \ @@ -71,7 +84,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 9d22ee4dafa3a194457caf4706f9cf01 +$(DL_FILE)_MD5 = ee0f10756c84979622b992a4a61ea3f5 install : $(TARGET) @@ -102,21 +115,17 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) @mkdir $(DIR_SRC)/binutils-build - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-configure-1.patch - cd $(DIR_SRC)/binutils-build && MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG) -ifeq "$(PASS)" "1" - cd $(DIR_SRC)/binutils-build && make configure-host MAKEINFO=makeinfo MACHINE= -endif - cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MAKEINFO=makeinfo MACHINE= - cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MAKEINFO=makeinfo MACHINE= + + # Prevent installing libiberty to lib64. + cd $(DIR_APP) && sed -i 's%\(^MULTIOSDIR = \).*%\1 ../lib%' libiberty/Makefile.in + + cd $(DIR_SRC)/binutils-build && $(EXTRA_ENV) MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG) + cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MACHINE= + cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MACHINE= ifeq "$(ROOT)" "" cp -v $(DIR_APP)/include/libiberty.h /usr/include else -ifeq "$(PASS)" "1" - cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE= - cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/tools/lib MACHINE= - cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin -else +ifeq "$(PASS)" "2" cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE= cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/usr/lib:/lib MACHINE= cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin diff --git a/lfs/bluetooth b/lfs/bluetooth index 961b1e6038..33e126cfaa 100644 --- a/lfs/bluetooth +++ b/lfs/bluetooth @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = bluetooth PAK_VER = 1 -DEPS = "dbus glib" +DEPS = "dbus" ############################################################################### # Top-level Rules @@ -108,7 +108,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --sysconfdir=/etc --localstatedir=/var --libexecdir=/lib cd $(DIR_SRC)/bluez-hcidump-1.42 && make $(MAKETUNING) cd $(DIR_SRC)/bluez-hcidump-1.42 && make install - mv -f /etc/udev/bluetooth.rules /etc/udev/rules.d/24-bluetooth.rules + mv -f /etc/udev/bluetooth.rules /lib/udev/rules.d/24-bluetooth.rules # Change bluetooth peername to Hostname-devicenumber sed -i -e 's|name "BlueZ (%d)";|name "%h-%d";|g' /etc/bluetooth/hcid.conf # Create empty config files diff --git a/lfs/bridge-utils b/lfs/bridge-utils index a72a6a9e44..7ada05d633 100644 --- a/lfs/bridge-utils +++ b/lfs/bridge-utils @@ -24,7 +24,7 @@ include Config -VER = 1.1 +VER = 1.5 THISAPP = bridge-utils-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 43bbd2a67b59cac3e15d545f8b51df68 +$(DL_FILE)_MD5 = ec7b381160b340648dede58c31bb2238 install : $(TARGET) @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && autoreconf -vfi cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/cairo b/lfs/cairo new file mode 100644 index 0000000000..591549ab3e --- /dev/null +++ b/lfs/cairo @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.10.2 + +THISAPP = cairo-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = f101a9e88b783337b20b2e26dfd26d5f + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --disable-win32 --disable-os2 --disable-beos + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/capi4k-utils b/lfs/capi4k-utils index 9546c43acb..b82c156e03 100644 --- a/lfs/capi4k-utils +++ b/lfs/capi4k-utils @@ -76,6 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP)/capiinit && make install cd $(DIR_APP)/capi20 && sed -i -e 's/include /include \n#include /' capidyn.c cd $(DIR_APP)/capi20 && sed -i -e 's/include /include \n#include /' capi20.c + cd $(DIR_APP)/capi20 && sed -i "/include/a #include " capi20.h cd $(DIR_APP)/capi20 && sed -i -e 's/-O2/$(CFLAGS)/' configure cd $(DIR_APP)/capi20 && SED=sed ./configure cd $(DIR_APP)/capi20 && SED=sed make $(MAKETUNING) diff --git a/lfs/ccache b/lfs/ccache index b7cad8697d..44010f9622 100644 --- a/lfs/ccache +++ b/lfs/ccache @@ -24,7 +24,7 @@ include Config -VER = 3.1.6 +VER = 3.1.8 THISAPP = ccache-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,6 +32,14 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)-pass$(PASS) +ifeq "$(PASS)" "1" + CFLAGS := $(patsubst -march=%,,$(CFLAGS)) + CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS)) +endif + +# Set max cache size to 5GB +CFLAGS += -DDEFAULT_MAXSIZE=5242880 + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 343dc9b642e1d2af1e6bd8e474dde92e +$(DL_FILE)_MD5 = 0e0f25fb342dcb1196d9c2986a7323cf install : $(TARGET) @@ -70,16 +78,28 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -p1 < $(DIR_SRC)/src/patches/$(THISAPP)-no_compiler_mtime.patch - cd $(DIR_APP) && CFLAGS="-O2 -static -DDEFAULT_MAXSIZE=2097152" ./configure --prefix=$(ROOT)/usr/local + cd $(DIR_APP) && ./configure --prefix=/tools cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install - ln -sf ccache $(ROOT)/usr/local/bin/gcc - ln -sf ccache $(ROOT)/usr/local/bin/g++ - ln -sf ccache $(ROOT)/usr/local/bin/cc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++ - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc - $(ROOT)/usr/local/bin/ccache -z + +ifeq "$(PASS)" "1" + mkdir -pv /tools/ccache/bin + ln -svf ../../bin/ccache /tools/ccache/bin/gcc + ln -svf ../../bin/ccache /tools/ccache/bin/g++ + ln -svf ../../bin/ccache /tools/ccache/bin/cc + ln -svf ../../bin/ccache /tools/ccache/bin/c++ + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-gcc + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-g++ + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-cc + ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-c++ +endif + +ifeq "$(PASS)" "2" + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-gcc + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-g++ + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-cc + ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-c++ +endif + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/cifs-utils b/lfs/cifs-utils new file mode 100644 index 0000000000..f3b75f59f1 --- /dev/null +++ b/lfs/cifs-utils @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 5.9 + +THISAPP = cifs-utils-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = cifs-utils +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 7164ad6f7963a31fcbffbe4f14a7cfc6 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/cleanup-toolchain b/lfs/cleanup-toolchain index 306b781c2f..0b3252f9f4 100644 --- a/lfs/cleanup-toolchain +++ b/lfs/cleanup-toolchain @@ -52,30 +52,39 @@ md5 : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) ifeq "$(PASS)" "1" - mv -v /tools/bin/{ld,ld-old} - mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old} - cp -v /tools/bin/{ld-new,ld} - ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld - gcc -dumpspecs > /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs - sed 's@/lib/ld-linux.so@/tools&@g' /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs > tempspecfile - mv -vf tempspecfile /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs - find /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \; - rm -vf `grep -l "DO NOT EDIT THIS FILE" /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/*` + SPECS=$$(dirname $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name))/specs; \ + /tools/bin/$(CROSSTARGET)-gcc -dumpspecs | sed \ + -e 's@/lib\(64\)\?/ld@/tools&@g' \ + -e "/^\*cpp:$$/{n;s,$$, -isystem /tools/include,}" > $$SPECS endif + ifeq "$(PASS)" "2" - -strip --strip-debug /tools/lib/* - -strip --strip-unneeded /tools/{,s}bin/* - rm -rfv /tools/{info,man} /usr/local/man - chown -R root:root /tools + # Remove the first cross compiler which is not needed anymore. + find /tools/ -name "$(CROSSTARGET)*" | xargs rm -rfv + + # Remove man and info pages. + rm -rfv /tools/{,share}/{info,man} + + # Strip all binaries. + STRIP="/usr/bin/strip" $(DIR_SRC)/src/stripper /tools/ + + # Fix ownership of the toolchain. + chown -R root:root /tools/ + + # Update/create linker cache. + /tools/sbin/ldconfig endif + ifeq "$(PASS)" "3" mv -v /tools/bin/{ld,ld-old} mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old} mv -v /tools/bin/{ld-new,ld} ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld - gcc -dumpspecs | \ - perl -p -e 's@/tools/lib/ld-linux.so@/lib/ld-linux.so@g;' \ - -e 's@\*startfile_prefix_spec:\n@$$_/usr/lib/ @g;' > \ - /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs + + gcc -dumpspecs | sed \ + -e 's@/tools@@g' \ + -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \ + -e '/\*cpp:/{n;s@$$@ -isystem /usr/include@}' > \ + $$(dirname $$(gcc -print-libgcc-file-name))/specs endif @$(POSTBUILD) diff --git a/lfs/cmake b/lfs/cmake index 6b7aff61ce..587396538d 100644 --- a/lfs/cmake +++ b/lfs/cmake @@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./bootstrap + cd $(DIR_APP) && ./bootstrap --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/collectd b/lfs/collectd index f17879c9d3..3d2884198b 100644 --- a/lfs/collectd +++ b/lfs/collectd @@ -25,7 +25,7 @@ include Config PKG_NAME = collectd -VER = 4.10.3 +VER = 4.10.7 THISAPP = collectd-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 5f17bfd7342af4f97f78c608f1d1eb1d +$(DL_FILE)_MD5 = f4193fdb5002ddac8159c88032a726bc install : $(TARGET) @@ -77,8 +77,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - #cd $(DIR_APP) && sed -i 's|with_libiptc="no (Linux iptables header.*|with_libiptc="yes"|g' \ - # ./configure cd $(DIR_APP) && ./configure --prefix=/usr --localstatedir=/var \ --disable-{apple_sensors,csv,ipvs,mbmon,memcached,mysql} \ --disable-{netlink,nginx,nut,perl,serial,snmp,tape,vserver,xmms} \ diff --git a/lfs/compat-wireless b/lfs/compat-wireless index a8902f1c2a..9ce6f07593 100644 --- a/lfs/compat-wireless +++ b/lfs/compat-wireless @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -26,7 +26,11 @@ include Config VERSUFIX=ipfire$(KCFG) -VER = 3.0-2 +VER = 3.6.8-1-snp + +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 +endif THISAPP = compat-wireless-$(VER) DL_FILE = compat-wireless-$(VER).tar.bz2 @@ -38,13 +42,13 @@ TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) # Top-level Rules ############################################################################### -objects = $(DL_FILE) asix-3.5.0a.tar.bz2 +objects = $(DL_FILE) asix-4.4.0.tar.xz $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -asix-3.5.0a.tar.bz2 = $(DL_FROM)/asix-3.5.0a.tar.bz2 +asix-4.4.0.tar.xz = $(DL_FROM)/asix-4.4.0.tar.xz -$(DL_FILE)_MD5 = 7f2d0de30bf9c3e9a941d9e67971e9b3 -asix-3.5.0a.tar.bz2_MD5=cc57513505d3ad1a43b58add91d2bba7 +$(DL_FILE)_MD5 = 4120bc9841d6a1b5b92af34103f16a06 +asix-4.4.0.tar.xz_MD5=633609e889de41554826e0e2cd7bffde install : $(TARGET) @@ -78,6 +82,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # kfifo has no license info and taints kernel cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.39_kfifo_module_info.patch + # Codel patches + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch + + # compat-3.1 include a bogus cpufreq_backort + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch + + # Build ath5k only if target has pci + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch + # Copy USB-Net drivers from Kernel... mkdir $(DIR_APP)/drivers/net/usb/new cp $(DIR_APP)/drivers/net/usb/*.c $(DIR_APP)/drivers/net/usb/new @@ -87,22 +100,26 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.34-usbnet_compile.patch # Build Updated asix usb-lan driver - cd $(DIR_APP)/drivers/net/usb && tar xvf $(DIR_DL)/asix-3.5.0a.tar.bz2 + cd $(DIR_APP)/drivers/net/usb && tar xvJf $(DIR_DL)/asix-4.4.0.tar.xz -ifeq "$(MACHINE_TYPE)" "arm" - # B43+B44 driver doesn't build on arm -# cd $(DIR_APP) && sed -i -e "s|CONFIG_B43=m||g" config.mk -# cd $(DIR_APP) && sed -i -e "s|CONFIG_B44=m||g" config.mk # Add libartas uAP driver - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.0-libertas_uap.patch - cd $(DIR_APP)&& echo CONFIG_LIBERTAS_UAP=m >> config.mk + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-libertas_uap.patch + + # uAP will not build with xen-kernel (2.6) +ifneq "$(KCFG)" "-xen" + cd $(DIR_APP) && echo export CONFIG_LIBERTAS_UAP=m >> config.mk endif + # Erase some modules that are obsolete or moved to other path + rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/net/bluetooth + rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/wireless/wl12* + cd $(DIR_APP) && make KLIB=/lib/modules/$(KVER)-$(VERSUFIX) \ + KLIB_BUILD=/lib/modules/$(KVER)-$(VERSUFIX)/build \ KMODPATH_ARG='INSTALL_MOD_PATH=' KMODDIR=kernel install-modules # Install firmware udev files... - cd $(DIR_APP)/udev && install -m 644 50-compat_firmware.rules /etc/udev/rules.d/ + cd $(DIR_APP)/udev && install -m 644 50-compat_firmware.rules /lib/udev/rules.d/ cd $(DIR_APP)/udev && install -m 755 compat_firmware.sh /lib/udev/ -rm -rf $(DIR_APP) diff --git a/lfs/configroot b/lfs/configroot index 90f5afab6c..f8fe426429 100644 --- a/lfs/configroot +++ b/lfs/configroot @@ -53,7 +53,7 @@ $(TARGET) : for i in addon-lang auth backup ca certs connscheduler crls ddns dhcp dhcpc dmzholes dns \ ethernet extrahd/bin fwlogs isdn key langs logging mac main menu.d modem net-traffic \ net-traffic/templates nfs optionsfw outgoing/bin outgoing/groups outgoing/groups/ipgroups \ - outgoing/groups/macgroups patches pakfire portfw ppp private proxy/advanced/cre \ + outgoing/groups/macgroups ovpn patches pakfire portfw ppp private proxy/advanced/cre \ proxy/calamaris/bin qos/bin red remote sensors snort time tripwire/report \ updatexlrator/bin updatexlrator/autocheck urlfilter/autoupdate urlfilter/bin upnp vpn \ wakeonlan wireless xtaccess ; do \ @@ -66,7 +66,7 @@ $(TARGET) : dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dmzholes/config dns/settings ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ extrahd/scan extrahd/devices extrahd/partitions extrahd/settings fwlogs/ipsettings fwlogs/portsettings \ isdn/settings mac/settings main/disable_nf_sip main/hosts main/routing main/settings net-traffic/settings optionsfw/settings outgoing/settings outgoing/rules \ - pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ + ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ ppp/settings-5 ppp/settings proxy/settings proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \ qos/tosconfig snort/settings tripwire/settings upnp/settings vpn/config vpn/settings vpn/ipsec.conf \ vpn/ipsec.secrets vpn/caconfig wakeonlan/clients.conf wireless/config wireless/settings; do \ diff --git a/lfs/conntrack-tools b/lfs/conntrack-tools new file mode 100644 index 0000000000..f5ea3157bc --- /dev/null +++ b/lfs/conntrack-tools @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.2.2 + +THISAPP = conntrack-tools-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = a8afc813e16265655f83991fc0df35b6 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/core-updates b/lfs/core-updates index c4cedcd66b..b40de13e06 100644 --- a/lfs/core-updates +++ b/lfs/core-updates @@ -77,7 +77,7 @@ core/%: mv -f /tmp/ROOTFILES /install/packages/package/ROOTFILES tar -p --numeric-owner -x -C /tmp -f /$(SNAME).tar rm -f /$(SNAME).tar - cd /tmp && tar cf /install/packages/package/files * && rm -rf * + cd /tmp && tar cJf /install/packages/package/files.tar.xz * && rm -rf * cat /install/packages/package/ROOTFILES | grep -v "#" > /install/packages/package/ROOTFILES.tmp rm /install/packages/package/ROOTFILES mv /install/packages/package/ROOTFILES.tmp /install/packages/package/ROOTFILES @@ -89,7 +89,7 @@ core/%: sed -e "s/xxxKVERxxx/$(KVER)/g" -i /install/packages/package/update.sh cd /install/packages/package && tar cf ../core-upgrade-$(VERSION)-$$(basename $@).ipfire \ - update.sh files ROOTFILES + update.sh files.tar.xz ROOTFILES rm -rf /install/packages/package sed -e "s/NAME/core-upgrade/g" \ -e "s/VER/$(VERSION)/g" \ diff --git a/lfs/coreutils b/lfs/coreutils index 7bdc0ecd38..d0f35c205a 100644 --- a/lfs/coreutils +++ b/lfs/coreutils @@ -45,7 +45,7 @@ else EXTRA_INSTALL = endif -EXTRA_CONFIG += --build=$(BUILDTARGET) +EXTRA_CONFIG += ac_cv_func_working_mktime=yes ############################################################################### # Top-level Rules @@ -86,6 +86,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-rename-tee.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-futimes.patch ifeq "$(ROOT)" "" ifeq "$(MACHINE)" "i586" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-uname-1.patch @@ -108,7 +109,7 @@ ifeq "$(ROOT)" "" mv -v /usr/bin/{head,sleep,nice} /bin ln -sf test /bin/[ #ln -sf ../../bin/install /usr/bin - dircolors -p > /etc/dircolors + dircolors -p > /etc/DIR_COLORS else rm /tools/bin/hostname endif diff --git a/lfs/cpufrequtils b/lfs/cpufrequtils index e93a65d47d..6e38b0a0eb 100644 --- a/lfs/cpufrequtils +++ b/lfs/cpufrequtils @@ -33,7 +33,7 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) SUP_ARCH = i586 PROG = cpufrequtils -PAK_VER = 5 +PAK_VER = 6 DEPS = "" diff --git a/lfs/cryptodev b/lfs/cryptodev index 0c2f4863f8..eb0e2f6602 100644 --- a/lfs/cryptodev +++ b/lfs/cryptodev @@ -24,6 +24,10 @@ include Config +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 +endif + VERSUFIX=ipfire$(KCFG) VER = 1.4 @@ -81,6 +85,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) -mkdir -pv /usr/include/crypto cd $(DIR_APP) && make install \ KERNEL_DIR=/lib/modules/$(KVER)-$(VERSUFIX)/build -# ln -svf ../crypto/cryptodev.h /usr/include/linux/cryptodev.h @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/curl b/lfs/curl index 2c54c67fb8..1228f392a7 100644 --- a/lfs/curl +++ b/lfs/curl @@ -24,10 +24,10 @@ include Config -VER = 7.19.5 +VER = 7.29.0 THISAPP = curl-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 426d161661dce70c8ea9ad8f553363a3 +$(DL_FILE)_MD5 = 4f57d3b4a3963038bd5e04dbff385390 install : $(TARGET) @@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xvf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/cyrus-imapd b/lfs/cyrus-imapd index 0a4fe2ca37..8f74c5a305 100644 --- a/lfs/cyrus-imapd +++ b/lfs/cyrus-imapd @@ -79,7 +79,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-imapd-2.2.12-autocreate-0.9.4.diff cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/cyrus-imapd-2.2.12-gcc4.patch - cp -f /usr/include/et/com_err.h /usr/include/com_err.h +# cp -f /usr/include/et/com_err.h /usr/include/com_err.h cd $(DIR_APP) && ./configure --prefix=/usr --with-service-path=/usr/lib/cyrus \ --with-cyrus-prefix=/usr/lib/cyrus --sysconfdir=/var/ipfire/cyrusimap \ --with-auth=unix --with-perl --with-sasl --with-idle=idled \ diff --git a/lfs/cyrus-sasl b/lfs/cyrus-sasl index 1f8282ef85..749011f267 100644 --- a/lfs/cyrus-sasl +++ b/lfs/cyrus-sasl @@ -82,6 +82,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-sasl-2.1.22-bad-elif.patch cd $(DIR_APP) && sed -i '/sasl_global/s/^static //' lib/client.c cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.in diff --git a/lfs/dahdi b/lfs/dahdi deleted file mode 100644 index 0ae424c428..0000000000 --- a/lfs/dahdi +++ /dev/null @@ -1,144 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VERSUFIX=ipfire$(KCFG) - -VER = 2.2.1 -TVER = 2.2.1 - -DL_FILE = dahdi-linux-$(VER).tar.gz -DL_FILE1 = dahdi-tools-$(TVER).tar.gz - -THISAPP = dahdi-$(VER) -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/dahdi-linux-$(VER) -DIR_APP1 = $(DIR_SRC)/dahdi-tools-$(TVER) - -PROG = dahdi -PAK_VER = 2 - -DEPS = "" - - -ifeq "$(KMOD)" "1" - TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif - - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) $(DL_FILE1) dahdi-linux-2.2.1-firmware.tar.bz2 - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE1) = $(DL_FROM)/$(DL_FILE1) -dahdi-linux-2.2.1-firmware.tar.bz2 = $(DL_FROM)/dahdi-linux-2.2.1-firmware.tar.bz2 - -$(DL_FILE)_MD5 = 46e4abbe743830045364fc716d293e88 -$(DL_FILE1)_MD5 = 04e7097929851f744f777400125180db -dahdi-linux-2.2.1-firmware.tar.bz2_MD5 = ccc50ded1641cd619e8d3a4615a6ad19 - - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - $(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - - rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_SRC) && tar jxf $(DIR_DL)/dahdi-linux-2.2.1-firmware.tar.bz2 - cd $(DIR_APP) && make $(MAKETUNING) clean all KVERS=$(KVER) - -ifeq "$(KMOD)" "1" - cd $(DIR_APP) && make install-modules KVERS=$(KVER)-$(VERSUFIX) - @rm -rf $(DIR_APP) -else - cd $(DIR_APP) && make install-devices install-include \ - install-firmware install-xpp-firm KVERS=$(KVER)-$(VERSUFIX) - @rm -rf $(DIR_APP) - - # remove previous generated symlink (if this a rebuild) - rm -rf /etc/dahdi - - rm -rf $(DIR_APP1) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE1) - cd $(DIR_APP1) && ./configure --sysconfdir=/var/ipfire/asterisk - cd $(DIR_APP1) && make $(MAKETUNING) clean all - cd $(DIR_APP1) && make install - - # Supress Error output because this erase the log - cd $(DIR_APP1) && make config 2>/dev/null - - # remove build src - @rm -rf $(DIR_APP1) - - # config stuff - ln -sf ../init.d/dahdi /etc/rc.d/rc0.d/K30dahdi - ln -sf ../init.d/dahdi /etc/rc.d/rc6.d/K30dahdi - ln -sf ../init.d/dahdi /etc/rc.d/rc3.d/S15dahdi - mv -f /etc/dahdi/genconf_parameters /var/ipfire/asterisk/dahdi/ - mv -f /etc/dahdi/init.conf /var/ipfire/asterisk/dahdi/ - mv -f /etc/dahdi/modules /var/ipfire/asterisk/dahdi/ - rmdir /etc/dahdi - ln -s /var/ipfire/asterisk/dahdi /etc/dahdi - - # make init.d-script work with ipfire - sed s/system=redhat/system=debian/ /etc/init.d/dahdi > /tmp/dahdi-temp - mv /tmp/dahdi-temp /etc/init.d/dahdi && chmod 755 /etc/init.d/dahdi - - # add dummy-module (to get conference rooms work) - echo "#Dummy" >> /etc/dahdi/modules - echo "dahdi_dummy" >> /etc/dahdi/modules -endif - @$(POSTBUILD) - diff --git a/lfs/daq b/lfs/daq index a0f7b2523c..cac012bec4 100644 --- a/lfs/daq +++ b/lfs/daq @@ -24,7 +24,7 @@ include Config -VER = 1.1.1 +VER = 2.0.0 THISAPP = daq-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = bc204ea09165b4ecbb1bb49c7c1a2ad4 +$(DL_FILE)_MD5 = a00855a153647df76d47f1ea454f74ae install : $(TARGET) diff --git a/lfs/dbus b/lfs/dbus index 818b89ea40..3a431066a1 100644 --- a/lfs/dbus +++ b/lfs/dbus @@ -77,6 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_SRC)/dbus* cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dbus-1.0.3-compile-fix-1.patch cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/iptstate b/lfs/dejavu-fonts-ttf similarity index 94% rename from lfs/iptstate rename to lfs/dejavu-fonts-ttf index ee503678ed..cd31a2defe 100644 --- a/lfs/iptstate +++ b/lfs/dejavu-fonts-ttf @@ -24,9 +24,10 @@ include Config -VER = 2.1 -THISAPP = iptstate-$(VER) +VER = 2.33 + +THISAPP = dejavu-fonts-ttf-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -40,7 +41,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = c99e19c66645689b44a871428e003ec7 +$(DL_FILE)_MD5 = 8b601e91725b6d69141b0fcf527948c0 install : $(TARGET) @@ -70,7 +71,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install + mkdir -pv /usr/share/fonts + install -m 644 $(DIR_APP)/ttf/* /usr/share/fonts @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/dhcp b/lfs/dhcp index 816a75d872..083c31fa11 100644 --- a/lfs/dhcp +++ b/lfs/dhcp @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-remove-bind.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-errwarn-message.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-options.patch @@ -81,11 +82,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-xen-checksum.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-manpages.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-paths.patch - # Has to be enabled after glibc update. - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-inherit-leases.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-garbage-chars.patch - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch + # ??? + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-capability.patch @@ -117,6 +118,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --enable-paranoia \ --enable-early-chroot \ --disable-dhcpv6 + cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/directfb b/lfs/directfb index e406af8206..34acb593e4 100644 --- a/lfs/directfb +++ b/lfs/directfb @@ -79,6 +79,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/directfb-1.1.1-fix-mknod.patch cd $(DIR_APP) && sed -i "s/checkfor_matrox=yes/checkfor_matrox=no/g" configure cd $(DIR_APP) && sed -i "s/checkfor_cle266=no/checkfor_cle266=yes/g" configure cd $(DIR_APP) && sed -i "s/checkfor_omap=.*/checkfor_omap=no/g" configure diff --git a/lfs/dracut b/lfs/dracut index 029bc380dd..0779a6b73b 100644 --- a/lfs/dracut +++ b/lfs/dracut @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team # +# Copyright (C) 2011 IPFire Team # # # # 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 # @@ -92,11 +92,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # needed. ifeq "$(MACHINE_TYPE)" "arm" - # versatile kernel - /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-versatile.img $(KVER)-ipfire-versatile # kirkwood kernel /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-kirkwood.img $(KVER)-ipfire-kirkwood cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-kirkwood.img uInit-ipfire-kirkwood + # omap kernel + /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-omap.img $(KVER)-ipfire-omap + cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-omap.img uInit-ipfire-omap else /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER).img $(KVER)-ipfire endif diff --git a/lfs/dvb-firmwares b/lfs/dvb-firmwares new file mode 100644 index 0000000000..cd029e21f8 --- /dev/null +++ b/lfs/dvb-firmwares @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2012 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 20110802 + +THISAPP = dvb-firmwares-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/dvb-firmwares +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 330e19f9444a03f5338bab590ab9d728 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + mkdir -p /lib/firmware + tar axf $(DIR_DL)/$(DL_FILE) \ + -C /lib/firmware/ + # use newest ttpci firmware + cp /lib/firmware/dvb-ttpci-01.fw-2622 /lib/firmware/dvb-ttpci-01.fw + @$(POSTBUILD) diff --git a/lfs/e1000 b/lfs/e1000 index fe31df733d..50e21fbff0 100644 --- a/lfs/e1000 +++ b/lfs/e1000 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -26,6 +26,12 @@ include Config VERSUFIX = ipfire$(KCFG) +# e1000 vendor modul is only for legacy xen kernel +# The 3.2.x kernel has newer module. + +KVER = 2.6.32.60 +MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/ + VER = 8.0.35 THISAPP = e1000-$(VER) @@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original e1000 module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000/e1000.ko.org + -mv $(MODPATH)/e1000.ko \ + $(MODPATH)/e1000.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ - SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 e1000.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000 + cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX) + cd $(DIR_APP)/src && install -m 644 e1000.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/e1000e b/lfs/e1000e index f046ee516c..693c054a7f 100644 --- a/lfs/e1000e +++ b/lfs/e1000e @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -25,8 +25,14 @@ include Config VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/e1000e +endif -VER = 1.6.3 +VER = 2.1.4 THISAPP = e1000e-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 9526a6c004f936506a90e10911420bf8 +$(DL_FILE)_MD5 = e8dba81bfc86c6c75f39d025fb70899f install : $(TARGET) @@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original e1000e module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e/e1000e.ko.org + -mv $(MODPATH)/e1000e.ko \ + $(MODPATH)/e1000e.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ - SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 e1000e.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/e1000e + cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX) + cd $(DIR_APP)/src && install -m 644 e1000e.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/e2fsprogs b/lfs/e2fsprogs index 6844d3be69..dff6393fd5 100644 --- a/lfs/e2fsprogs +++ b/lfs/e2fsprogs @@ -24,7 +24,7 @@ include Config -VER = 1.41.11 +VER = 1.42.6 THISAPP = e2fsprogs-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = fb507a40c2706bc38306f150d069e345 +$(DL_FILE)_MD5 = 9e444c240c1001b3292d108fbad0f49c install : $(TARGET) diff --git a/lfs/ebtables b/lfs/ebtables index e6cc69be47..a7da3491c7 100644 --- a/lfs/ebtables +++ b/lfs/ebtables @@ -24,7 +24,7 @@ include Config -VER = 2.0.8-2 +VER = 2.0.10-4 THISAPP = ebtables-v$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = ebtables -PAK_VER = 1 +PAK_VER = 2 DEPS = "" @@ -44,7 +44,8 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 66bcbcb2dcf3b981ad4e86e1720e796e +$(DL_FILE)_MD5 = 506742a3d44b9925955425a659c1a8d0 + install : $(TARGET) check : $(patsubst %,$(DIR_CHK)/%,$(objects)) diff --git a/lfs/elinks b/lfs/elinks index 4a41e1b778..59f1426ead 100644 --- a/lfs/elinks +++ b/lfs/elinks @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 0.11.7 +VER = 0.12pre6 THISAPP = elinks-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = elinks -PAK_VER = 3 +PAK_VER = 4 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = fcd087a6d2415cd4c6fd1db53dceb646 +$(DL_FILE)_MD5 = 3d0962f4b65fb039342fefd3ada050a9 install : $(TARGET) diff --git a/lfs/fake-environ b/lfs/fake-environ index b724912538..978a90d9bc 100644 --- a/lfs/fake-environ +++ b/lfs/fake-environ @@ -28,7 +28,7 @@ VER = 1.0 THISAPP = fake-environ DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-tools$(PASS) +TARGET = $(DIR_INFO)/$(THISAPP)-tools ############################################################################### # Top-level Rules diff --git a/lfs/file b/lfs/file index 0d6fcf4693..70a38e24df 100644 --- a/lfs/file +++ b/lfs/file @@ -24,7 +24,7 @@ include Config -VER = 4.17 +VER = 5.11 THISAPP = file-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 50919c65e0181423d66bb25d7fe7b0fd +$(DL_FILE)_MD5 = 16a407bd66d6c7a832f3a5c0d609c27b install : $(TARGET) @@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls + cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/flash-images b/lfs/flash-images index daf3ec1cc9..36a343dde4 100644 --- a/lfs/flash-images +++ b/lfs/flash-images @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -44,28 +44,25 @@ md5 : ############################################################################### # Installation Details ############################################################################### -IMGinst := /install/images/$(SNAME)-$(VERSION).2gb-ext2.$(MACHINE)-full-core$(CORE).img -IMGinsts := /install/images/$(SNAME)-$(VERSION).2gb-ext2-scon.$(MACHINE)-full-core$(CORE).img +IMGinst := /install/images/$(SNAME)-$(VERSION).1gb-ext4.$(MACHINE)-full-core$(CORE).img +IMGinsts := /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-core$(CORE).img MNThdd := /install/harddisk IMGpart := /install/images/part_area IMGboot := /install/images/bootfs # don't change SIZEboot this without checking Image size -SIZEboot := 20 +SIZEboot := 64 IMGroot := /install/images/rootfs -SIZEroot := 1400 -IMGvar := /install/images/varfs -SIZEvar := 430 +SIZEroot := 600 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) && mkdir -p $(MNThdd) + rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd) # Create first 32 sectors of image dd bs=1k if=/dev/zero of=$(IMGpart) count=16 # Create images for filesystems - dd bs=1K if=/dev/zero of=$(IMGboot) count=20464 # 20MB-16K + dd bs=1K if=/dev/zero of=$(IMGboot) count=65520 # 64MB-16K dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot) - dd bs=1M if=/dev/zero of=$(IMGvar) count=$(SIZEvar) # Format them ifeq "$(MACHINE_TYPE)" "arm" @@ -73,8 +70,11 @@ ifeq "$(MACHINE_TYPE)" "arm" else mkfs.ext2 -F $(IMGboot) endif - mkfs.ext2 -F $(IMGroot) - mkfs.ext2 -F $(IMGvar) + mkfs.ext4 -O ^has_journal,extent -F $(IMGroot) + + # Most systems that use Flashimages has no RTC at boot + # so the interval check should disables + tune2fs -i0 $(IMGroot) # Mount Images mount -o loop $(IMGroot) $(MNThdd) @@ -82,7 +82,15 @@ endif mkdir $(MNThdd)/var mkdir $(MNThdd)/var/log mount -o loop $(IMGboot) $(MNThdd)/boot - mount -o loop $(IMGvar) $(MNThdd)/var + + # Install MLO and uboot first +ifeq "$(MACHINE_TYPE)" "arm" + cp -v /boot/MLO $(MNThdd)/boot/ + cp -v /boot/u-boot.bin $(MNThdd)/boot/ + sync + umount $(MNThdd)/boot + mount -o loop $(IMGboot) $(MNThdd)/boot +endif # Install IPFire tar -C $(MNThdd)/ -xvaf /install/cdrom/$(SNAME)-$(VERSION).tlz @@ -102,8 +110,8 @@ ifeq "$(MACHINE_TYPE)" "arm" endif sed -i -e "s|DEVICE2|#DEVICE2|g" $(MNThdd)/etc/fstab sed -i -e "s|DEVICE3|UUID=$$(blkid -sUUID $(IMGroot) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab - sed -i -e "s|DEVICE4|UUID=$$(blkid -sUUID $(IMGvar) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab - sed -i -e "s|FSTYPE|ext2|g" $(MNThdd)/etc/fstab + sed -i -e "s|DEVICE4|#DEVICE4|g" $(MNThdd)/etc/fstab + sed -i -e "s|FSTYPE|ext4|g" $(MNThdd)/etc/fstab ifneq "$(MACHINE_TYPE)" "arm" sed -i -e "s|MOUNT|ro|g" $(MNThdd)/boot/grub/grub.conf @@ -112,20 +120,19 @@ ifneq "$(MACHINE_TYPE)" "arm" ln -s grub.conf $(MNThdd)/boot/grub/menu.lst # Copy grub files manually - cp -f $(MNThdd)/usr/share/grub/i386-pc/* $(MNThdd)/boot/grub/ + cp -f $(MNThdd)/usr/lib/grub/i386-pc/* $(MNThdd)/boot/grub/ endif # Setup symlink for partresize at first boot... ln -sf ../init.d/partresize $(MNThdd)/etc/rc.d/rcsysinit.d/S25partresize # Setup symlink for fsresize at second boot... - ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S26fsresize + ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S42fsresize # Unmount umount $(MNThdd)/proc umount $(MNThdd)/dev umount $(MNThdd)/sys umount $(MNThdd)/boot - umount $(MNThdd)/var umount $(MNThdd) # zerofree the ext2 images to get better compression @@ -135,17 +142,20 @@ ifneq "$(MACHINE_TYPE)" "arm" fsck.ext2 -f -y $(IMGboot) endif zerofree $(IMGroot) - -fsck.ext2 -f -y $(IMGroot) - fsck.ext2 -f -y $(IMGroot) - zerofree $(IMGvar) - -fsck.ext2 -f -y $(IMGvar) - fsck.ext2 -f -y $(IMGvar) + -fsck.ext4 -f -y $(IMGroot) + fsck.ext4 -f -y $(IMGroot) # Cat to an image - cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinst) + cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinst) + # Write Partition table - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \ +ifneq "$(MACHINE_TYPE)" "arm" + echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ + | sfdisk -D -uM -H 64 -S 32 $(IMGinst) +else + echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ | sfdisk -D -uM -H 64 -S 32 $(IMGinst) +endif ifneq "$(MACHINE_TYPE)" "arm" # Install grub @@ -170,6 +180,10 @@ ifneq "$(MACHINE_TYPE)" "arm" sed -i -e "s|#serial|serial|g" $(MNThdd)/boot/grub/grub.conf sed -i -e "s|#terminal|terminal|g" $(MNThdd)/boot/grub/grub.conf sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" $(MNThdd)/boot/grub/grub.conf +else + sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt + sed -i -e "s| console=tty1 omapfb.mode=dvi:800x600MR-16@60 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script + cd $(MNThdd)/boot && ./convert_bootscript endif sed -i -e "s|1:2345:respawn:|#1:2345:respawn:|g" $(MNThdd)/etc/inittab @@ -190,18 +204,21 @@ ifneq "$(MACHINE_TYPE)" "arm" fsck.ext2 -f -y $(IMGboot) endif zerofree $(IMGroot) - -fsck.ext2 -f -y $(IMGroot) - fsck.ext2 -f -y $(IMGroot) - zerofree $(IMGvar) - -fsck.ext2 -f -y $(IMGvar) - fsck.ext2 -f -y $(IMGvar) + -fsck.ext4 -f -y $(IMGroot) + fsck.ext4 -f -y $(IMGroot) # Cat to an image - cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinsts) - rm -vf $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) + cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinsts) + rm -vf $(IMGpart) $(IMGboot) $(IMGroot) + # Write Partition table - echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \ +ifneq "$(MACHINE_TYPE)" "arm" + echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) +else + echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \ + | sfdisk -D -uM -H 64 -S 32 $(IMGinsts) +endif ifneq "$(MACHINE_TYPE)" "arm" # Install grub @@ -216,5 +233,4 @@ endif # Compress Image gzip -f9 $(IMGinsts) - rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) - + rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot) diff --git a/lfs/fontconfig b/lfs/fontconfig index d5b020c09e..6f0850be75 100644 --- a/lfs/fontconfig +++ b/lfs/fontconfig @@ -31,10 +31,6 @@ DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = fontconfig -PAK_VER = 1 - -DEPS = "" ############################################################################### # Top-level Rules @@ -54,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) -dist: - $(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### diff --git a/lfs/fstrim b/lfs/fstrim new file mode 100644 index 0000000000..451af5ab3a --- /dev/null +++ b/lfs/fstrim @@ -0,0 +1,78 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.2 + +THISAPP = fstrim-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/fstrim +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 1a217ae44b12ae7538f922f495b8da31 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && install -m 0755 fstrim /usr/bin + # Install cronjob + install -m 0755 $(DIR_SRC)/config/fstrim/trim /etc/fcron.daily + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/gawk b/lfs/gawk index 7bf70446cb..66bbfac23e 100644 --- a/lfs/gawk +++ b/lfs/gawk @@ -45,6 +45,8 @@ else EXTRA_INSTALL = endif +EXTRA_CONFIG += ac_cv_func_working_mktime=yes + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/gcc b/lfs/gcc index 785b965cf1..0bdecdaefb 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -24,48 +24,76 @@ include Config -VER = 4.1.2 +VER = 4.4.7 + +GMP_VER = 5.0.5 +MPFR_VER = 2.4.2 THISAPP = gcc-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) +CFLAGS := $(patsubst -march=%,,$(CFLAGS)) +CFLAGS := $(patsubst -mtune=%,,$(CFLAGS)) +CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS)) + # Normal build or /tools build. # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr \ - --libexecdir=/usr/lib \ - --enable-shared \ - --enable-threads=posix \ - --enable-__cxa_atexit \ - --enable-clocale=gnu \ - --enable-languages=c,c++ \ - --disable-nls + EXTRA_CONFIG = \ + --prefix=/usr \ + --libexecdir=/usr/lib \ + --enable-shared \ + --enable-threads=posix \ + --enable-__cxa_atexit \ + --enable-clocale=gnu \ + --enable-languages=c,c++ \ + --disable-bootstrap \ + --disable-nls EXTRA_MAKE = EXTRA_INSTALL = else ifeq "$(PASS)" "1" TARGET = $(DIR_INFO)/$(THISAPP)-tools1 - EXTRA_CONFIG = --prefix=/tools \ - --with-local-prefix=/tools \ - --disable-nls \ - --enable-shared \ - --enable-languages=c \ - --disable-bootstrap + EXTRA_CONFIG = \ + --target=$(CROSSTARGET) \ + --prefix=/tools \ + --disable-nls \ + --disable-shared \ + --disable-decimal-float \ + --disable-threads \ + --disable-libmudflap \ + --disable-libssp \ + --disable-libgomp \ + --disable-libquadmath \ + --with-newlib \ + --without-headers \ + --without-ppl \ + --without-cloog \ + --enable-languages=c EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools2 - EXTRA_CONFIG = --prefix=/tools \ - --with-local-prefix=/tools \ - --enable-clocale=gnu \ - --enable-shared \ - --enable-threads=posix \ - --enable-__cxa_atexit \ - --enable-languages=c,c++ \ - --disable-libstdcxx-pch + EXTRA_ENV = \ + CC="$(CROSSTARGET)-gcc -B/tools/lib/" \ + AR="$(CROSSTARGET)-ar" \ + RANLIB="$(CROSSTARGET)-ranlib" + EXTRA_CONFIG = \ + --host=$(BUILDTARGET) \ + --build=$(BUILDTARGET) \ + --target=$(BUILDTARGET) \ + --prefix=/tools \ + --with-local-prefix=/tools \ + --enable-clocale=gnu \ + --enable-shared \ + --enable-threads=posix \ + --enable-__cxa_atexit \ + --enable-languages=c,c++ \ + --disable-libstdcxx-pch \ + --disable-bootstrap EXTRA_MAKE = EXTRA_INSTALL = endif @@ -73,34 +101,39 @@ endif ifeq "$(MACHINE_TYPE)" "arm" EXTRA_CONFIG += \ - --build=$(BUILDTARGET) \ - --host=$(BUILDTARGET) \ - --target=$(BUILDTARGET) \ --with-float=soft \ - --disable-libmudflap \ - --disable-libssp \ - --disable-libgomp \ - --enable-threads=posix \ - --enable-long-long \ - --enable-c99 \ - --enable-__cxa_atexit \ - --disable-multilib -else - EXTRA_CONFIG += --build=$(BUILDTARGET) --host=$(BUILDTARGET) \ - --target=$(BUILDTARGET) + --disable-sjlj-exceptions +endif + +ifeq "$(MACHINE)" "i586" + EXTRA_CONFIG += \ + --with-arch=i586 \ + --with-tune=generic endif +EXTRA_CONFIG += \ + --with-bugurl=http://bugtracker.ipfire.org \ + --disable-libunwind-exceptions \ + --enable-gnu-unique-object + export XCFLAGS = $(CFLAGS) export TCFLAGS = $(CFLAGS) ############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) + +objects = $(DL_FILE) \ + gmp-$(GMP_VER).tar.bz2 \ + mpfr-$(MPFR_VER).tar.bz2 $(DL_FILE) = $(DL_FROM)/$(DL_FILE) +gmp-$(GMP_VER).tar.bz2 = $(DL_FROM)/gmp-$(GMP_VER).tar.bz2 +mpfr-$(MPFR_VER).tar.bz2 = $(DL_FROM)/mpfr-$(MPFR_VER).tar.bz2 -$(DL_FILE)_MD5 = a4a3eb15c96030906d8494959eeda23c +$(DL_FILE)_MD5 = 295709feb4441b04e87dea3f1bab4281 +gmp-$(GMP_VER).tar.bz2_MD5 = 041487d25e9c230b0c42b106361055fe +mpfr-$(MPFR_VER).tar.bz2_MD5 = 89e59fe665e2b3ad44a6789f40b059a0 install : $(TARGET) @@ -130,42 +163,71 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fix_linker_version_detection.patch @mkdir $(DIR_SRC)/gcc-build - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-gcc_eh.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-arm-linux-soft-float.patch + # Apply patches. + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-build-id.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-c++-builtin-redecl.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-i386-libgomp.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-libtool-no-rpath.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-no-add-needed.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-pr33763.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh330771.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh533181.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh610785.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-unwind-debug-hook.patch + +ifneq "$(ROOT)" "" + # Build gmp and mpfr internally in toolchain. + cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2 + cd $(DIR_APP) && mv -v gmp-$(GMP_VER) gmp + cd $(DIR_APP) && tar xfa $(DIR_DL)/mpfr-$(MPFR_VER).tar.bz2 + cd $(DIR_APP) && mv -v mpfr-$(MPFR_VER) mpfr + +ifeq "$(PASS)" "1" + # GCC does not detect stack protection correctly, which causes problems + # for the build of libresolv_pic.a. + cd $(DIR_APP) && sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure +endif -ifeq "$(ROOT)" "" - cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in - cd $(DIR_APP) && sed -i 's/^XCFLAGS =$$/& -fomit-frame-pointer/' gcc/Makefile.in - cd $(DIR_APP) && sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in - cd $(DIR_APP) && sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in +ifeq "$(PASS)" "2" + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.4.3-startfiles_fix-1.patch + + for file in $$(find $(DIR_APP)/gcc/config -name linux64.h -o -name linux.h \ + -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h); do \ + echo "Processing $${file}..."; \ + sed -i $${file} \ + -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ + -e 's@/usr@/tools@g'; \ + echo '#undef STANDARD_INCLUDE_DIR' >> $${file}; \ + echo '#define STANDARD_INCLUDE_DIR 0' >> $${file}; \ + echo '#define STANDARD_STARTFILE_PREFIX_1 ""' >> $${file}; \ + echo '#define STANDARD_STARTFILE_PREFIX_2 ""' >> $${file}; \ + done +endif +endif - cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) + cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in + cd $(DIR_APP) && sed -i gcc/Makefile.in \ + -e 's@\./fixinc\.sh@-c true@' \ + -e 's/^T_CFLAGS =$$/& -fomit-frame-pointer/' + + # The actual build. + cd $(DIR_SRC)/gcc-build && \ + $(EXTRA_ENV) \ + $(DIR_APP)/configure \ + $(EXTRA_CONFIG) cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install - ln -sfv ../usr/bin/cpp /lib - ln -sfv gcc /usr/bin/cc + +ifeq "$(ROOT)" "" + ln -svf ../usr/bin/cpp /lib + ln -svf gcc /usr/bin/cc else -ifeq "$(PASS)" "1" - cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) - cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install - ln -sfv gcc /tools/bin/cc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++ - ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc +ifeq "$(PASS)" "1" + ln -svf libgcc.a $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/') else - cd $(DIR_APP) && cp -v gcc/Makefile.in{,.orig} - cd $(DIR_APP) && sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in - cd $(DIR_APP) && cp -v gcc/Makefile.in{,.tmp} - cd $(DIR_APP) && sed 's/^XCFLAGS =$\/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \ - > gcc/Makefile.in - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-specs-1.patch - cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG) - cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install + ln -svf gcc /tools/bin/cc endif endif @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build diff --git a/lfs/gettext b/lfs/gettext index 43e7552f3c..b1ccbbebde 100644 --- a/lfs/gettext +++ b/lfs/gettext @@ -24,7 +24,7 @@ include Config -VER = 0.14.5 +VER = 0.18.1.1 THISAPP = gettext-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,14 +34,10 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) # Normal build or /tools build. # ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else TARGET = $(DIR_INFO)/$(THISAPP) EXTRA_CONFIG = --prefix=/usr --disable-nls EXTRA_MAKE = EXTRA_INSTALL = -endif else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-shared --disable-nls @@ -57,7 +53,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = e2f6581626a22a0de66dce1d81d00de3 +$(DL_FILE)_MD5 = 3dd55b952826d2b32f51308f2f91aa89 install : $(TARGET) @@ -88,21 +84,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --libdir=/lib \ - --with-included-gettext --disable-rpath \ - --enable-relocatable --disable-shared - cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" -C intl/ - cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" \ - DESTDIR=/opt/$(MACHINE)-uClibc -C intl/ install -else cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install -endif else cd $(DIR_APP)/gettext-tools && ./configure $(EXTRA_CONFIG) - cd $(DIR_APP)/gettext-tools && make -C lib + cd $(DIR_APP)/gettext-tools && make -C gnulib-lib cd $(DIR_APP)/gettext-tools && make -C src msgfmt cd $(DIR_APP)/gettext-tools && cp -v src/msgfmt /tools/bin endif diff --git a/lfs/git b/lfs/git index 82b90fdc8b..615c5b4c0c 100644 --- a/lfs/git +++ b/lfs/git @@ -24,7 +24,7 @@ include Config -VER = 1.7.9.3 +VER = 1.8.1 THISAPP = git-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = git -PAK_VER = 8 +PAK_VER = 9 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = f93b976649216d731fd9f9befb90a58c +$(DL_FILE)_MD5 = a2c6f4404c5e432b47474d246ca83c7e install : $(TARGET) diff --git a/lfs/glib b/lfs/glib index 2c41905d54..1b43287ac3 100644 --- a/lfs/glib +++ b/lfs/glib @@ -24,17 +24,13 @@ include Config -VER = 2.22.2 +VER = 2.32.3 THISAPP = glib-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = glib -PAK_VER = 3 - -DEPS = "" ############################################################################### # Top-level Rules @@ -44,7 +40,8 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 846a86c74b74d5b16826aa5508940f9b +$(DL_FILE)_MD5 = 9bd3ac535c24b6c162be13b2c43c5adc + install : $(TARGET) check : $(patsubst %,$(DIR_CHK)/%,$(objects)) @@ -53,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) -dist: - @$(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### @@ -75,8 +69,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ + --with-pcre=system cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/glibc b/lfs/glibc index e2638b6e9e..ccbdb31588 100644 --- a/lfs/glibc +++ b/lfs/glibc @@ -24,11 +24,8 @@ include Config -ifeq "$(MACHINE_TYPE)" "arm" - VER = 2.5 -else - VER = 2.3.6 -endif +VER = 2.12-2-gc4ccff1 +PORTS_VER = 2.12.1 THISAPP = glibc-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -39,23 +36,33 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr \ - --disable-profile --enable-add-ons \ - --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc + EXTRA_CONFIG = \ + --build=$(BUILDTARGET) \ + --prefix=/usr \ + --libexecdir=/usr/lib/glibc EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools - EXTRA_CONFIG = --prefix=/tools \ - --disable-profile --enable-add-ons \ - --enable-kernel=2.6.0 --with-binutils=/tools/bin \ - --without-gd --with-headers=/tools/include \ - --without-selinux + EXTRA_CONFIG = \ + --host=$(CROSSTARGET) \ + --build=$(BUILDTARGET) \ + --prefix=/tools \ + --with-headers=/tools/include \ + libc_cv_forced_unwind=yes \ + libc_cv_ctors_header=yes \ + libc_cv_c_cleanup=yes EXTRA_MAKE = EXTRA_INSTALL = endif -EXTRA_CONFIG += --build=$(BUILDTARGET) +# Enable some extra optimization for the glibc code. +CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC \ + -DNO_CTORS_DTORS_SECTIONS + +ifeq "$(MACHINE)" "i586" + CFLAGS += -march=i586 -mtune=generic -mno-tls-direct-seg-refs +endif ifeq "$(MACHINE_TYPE)" "arm" # Disable hardware FP for ARM. @@ -63,29 +70,30 @@ ifeq "$(MACHINE_TYPE)" "arm" --without-fp endif +# Add some general configuration flags +EXTRA_CONFIG += \ + --disable-profile \ + --enable-kernel=2.6.0 \ + --enable-add-ons \ + --without-selinux \ + --enable-experimental-malloc \ + --enable-bind-now + ############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) \ - glibc-libidn-$(VER).tar.bz2 +objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -glibc-libidn-$(VER).tar.bz2 = $(DL_FROM)/glibc-libidn-$(VER).tar.bz2 -ifeq "$(MACHINE_TYPE)" "arm" - $(DL_FILE)_MD5 = 1fb29764a6a650a4d5b409dda227ac9f - glibc-libidn-$(VER).tar.bz2_MD5 = 8787868ba8962d9b125997ec2f25ac01 -else - $(DL_FILE)_MD5 = bfdce99f82d6dbcb64b7f11c05d6bc96 - glibc-libidn-$(VER).tar.bz2_MD5 = 49dbe06ce830fc73874d6b38bdc5b4db -endif +$(DL_FILE)_MD5 = 450958ad3d3b5a432b356376904c96b0 # ARM needs glibc-ports ifeq "$(MACHINE_TYPE)" "arm" - objects += glibc-ports-$(VER).tar.bz2 - glibc-ports-$(VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(VER).tar.bz2 - glibc-ports-$(VER).tar.bz2_MD5 = 183f6d46e8fa5e4b2aff240ab1586c2e + objects += glibc-ports-$(PORTS_VER).tar.bz2 + glibc-ports-$(PORTS_VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(PORTS_VER).tar.bz2 + glibc-ports-$(PORTS_VER).tar.bz2_MD5 = cb01ab976180e98287cef5079e35359e endif install : $(TARGET) @@ -117,25 +125,126 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) @mkdir $(DIR_SRC)/glibc-build -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(VER).tar.bz2 - cd $(DIR_APP) && mv -v glibc-ports-$(VER) ports - cd $(DIR_APP)/ports && patch -Np1 -i $(DIR_SRC)/src/patches/glibc-ports-avoid-using-asm-procinfo.patch +ifeq "$(MACHINE_TYPE)" "arm" + cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(PORTS_VER).tar.bz2 + cd $(DIR_APP) && mv -v glibc-ports-$(PORTS_VER) ports - # asm/page.h should not be included in sysdeps/unix/sysv/linux/arm/ioperm.c. - cd $(DIR_APP) && sed "/asm\/page.h/d" -i ports/sysdeps/unix/sysv/linux/arm/ioperm.c -else - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-dont_use_origin_on_privil_exec.patch + # http://sourceware.org/bugzilla/show_bug.cgi?id=12354 + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-cfi-entry-not-closed.patch endif + # Apply all patches. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-aliasing.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-fedora.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-getlogin-r.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-localedata.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-recvmmsg.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh580498.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh582738.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh587360.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593396.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593686.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh601686.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607010.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607461.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615090.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615701.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh621959.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh623187.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh625893.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh630801.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh631011.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh641128.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh642584.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh643822.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh645672.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh646954.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh647448.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh652661.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656014.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656530.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh657572.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh661982.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh667974.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676076.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676591.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh681054.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688720.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688980.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh689471.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692177.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692838.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh694386.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695595.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695963.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh696472.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh697421.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh699724.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh700507.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703480.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703481.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh705465.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711927.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711987.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh712248.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh713134.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh714823.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh718057.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh726517.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh730379.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh731042.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh736346.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh737778.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738665.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738763.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739184.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739971.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh749188.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh750531.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh751750.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh752122.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh757888.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh766513.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767146.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767746.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh771342.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh782585.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh784402.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh785984.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789189.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789209.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh795498.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-2.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804630.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804689.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808337.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808545.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809602.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833716.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837026.patch + + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-nss_test1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-libgcc_s.patch + + # Fixes: + # Makefile:235: *** mixed implicit and normal rules. Stop. + cd $(DIR_APP) && sed -i 's/ot \$$/ot:\n\ttouch $$@\n$$/' manual/Makefile + ifeq "$(ROOT)" "" -ifeq "$(MACHINE)" "i586" - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-linux_types-1.patch - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-inotify-1.patch -endif - # This locale causes a loop on bash login - exclude it - cd $(DIR_APP) && sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED ifeq "$(MACHINE_TYPE)" "arm" cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \ scripts/test-installation.pl @@ -144,27 +253,22 @@ else scripts/test-installation.pl endif endif - cd $(DIR_SRC)/glibc-build && CFLAGS="$(CFLAGS)" $(DIR_APP)/configure $(EXTRA_CONFIG) -ifeq "$(ROOT)" "" - touch /etc/ld.so.conf - cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/glibc-build && \ + CFLAGS="$(CFLAGS) -fno-asynchronous-unwind-tables" \ + $(DIR_APP)/configure $(EXTRA_CONFIG) + cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \ + CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install -ifeq "$(MACHINE)" "i586" - cp -v $(DIR_APP)/sysdeps/unix/sysv/linux/inotify.h /usr/include/sys -endif -else - -mkdir /tools/etc - touch /tools/etc/ld.so.conf - cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install -endif - # Creating the locales ifeq "$(ROOT)" "" + # Creating the locales mkdir -p /usr/lib/locale cd $(DIR_SRC)/glibc-build && localedef -i en_US -f ISO-8859-1 en_US cd $(DIR_SRC)/glibc-build && localedef -i en_US -f UTF-8 en_US.utf8 + + # Timezone data will be shipped by tzdata. + rm -rfv /usr/share/zoneinfo endif @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build @$(POSTBUILD) diff --git a/lfs/gmp b/lfs/gmp index 5b50081500..cf52276711 100644 --- a/lfs/gmp +++ b/lfs/gmp @@ -24,7 +24,7 @@ include Config -VER = 4.2.4 +VER = 5.0.5 THISAPP = gmp-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = fc1e3b3a2a5038d4d74138d0b9cf8dbe +$(DL_FILE)_MD5 = 041487d25e9c230b0c42b106361055fe install : $(TARGET) diff --git a/lfs/splix b/lfs/gmp-compat similarity index 88% rename from lfs/splix rename to lfs/gmp-compat index c9e8e47e12..3d20e889a0 100644 --- a/lfs/splix +++ b/lfs/gmp-compat @@ -24,17 +24,17 @@ include Config -VER = 2.0.0-rc2 +VER = 4.3.2 -THISAPP = splix-$(VER) +THISAPP = gmp-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = splix -PAK_VER = 2 -DEPS = "cups" +ifeq "$(MACHINE)" "i586" + CONFIGURE_ARGS = ABI=32 +endif ############################################################################### # Top-level Rules @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 4381ccf9a38b08012dbdc3c0f28414fd +$(DL_FILE)_MD5 = dd60683d7057917e34630b4a787932e8 install : $(TARGET) @@ -54,9 +54,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) -dist: - $(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### @@ -77,10 +74,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP) && sed -e "s/ceill/ceil/g" -i src/*.cpp -endif - cd $(DIR_APP) && make DISABLE_JBIG=1 $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP) && make install + cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \ + --enable-cxx --enable-mpbsd --disable-nls + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && install -m 644 .libs/libgmp.so.3.5.2 /usr/lib + ln -svf libgmp.so.3.5.2 /usr/lib/libgmp.so.3 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/gnupg b/lfs/gnupg index c596a5fe44..5e5ead919a 100644 --- a/lfs/gnupg +++ b/lfs/gnupg @@ -24,7 +24,7 @@ include Config -VER = 1.4.5 +VER = 1.4.12 THISAPP = gnupg-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 811525965b4c0987e6418a7729a6444d +$(DL_FILE)_MD5 = ce3742e5c7912559cab7894ad8ba7f6b install : $(TARGET) diff --git a/lfs/gpgme b/lfs/gpgme new file mode 100644 index 0000000000..12da4cb777 --- /dev/null +++ b/lfs/gpgme @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.3.2 + +THISAPP = gpgme-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = gpgme +PAK_VER = 1 + +DEPS = "libgpg-error libassuan" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 326fe97077141713f0930aa87949a287 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/grep b/lfs/grep index 4b3e1e1bbd..e9b0b18d4d 100644 --- a/lfs/grep +++ b/lfs/grep @@ -24,10 +24,10 @@ include Config -VER = 2.5.1a +VER = 2.14 THISAPP = grep-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -41,7 +41,7 @@ ifeq "$(ROOT)" "" else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls \ - --disable-perl-regexp + --disable-perl-regexp --without-included-regex EXTRA_MAKE = EXTRA_INSTALL = endif @@ -54,7 +54,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 52202fe462770fa6be1bb667bd6cf30c +$(DL_FILE)_MD5 = d4a3f03849d1e17ce56ab76aa5a24cab install : $(TARGET) @@ -83,11 +83,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(ROOT)" "" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-redhat_fixes-2.patch - cd $(DIR_APP) && chmod +x tests/fmbtest.sh -endif + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install diff --git a/lfs/grub b/lfs/grub index ad6e304aa6..6850a3a58f 100644 --- a/lfs/grub +++ b/lfs/grub @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -73,63 +73,27 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-disk_geometry-1.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-append.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-symlinkmenulst.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.91-splashimagehelp.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-configfile.patch - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/grub-0.93-endedit.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-graphics-bootterm.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-special-device-names.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-i2o.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-graphics.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-hiddenmenu-tweak.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-rework.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-mbr.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-moreraid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-nonmbr.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-odirect.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-recheck-bad.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-staticcurses.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-xpmjunk.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-cmdline-size.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-datadir.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-partition-names.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-install.in.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mactel-kbd.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mpath.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nxstack.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nx-multiinstall.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-once.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-splash-error-term.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-installcopyonly.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-prototypes.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-stderr.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-bz429187-cciss.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-recheck-bad.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mdadm-path.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch - - # XXX Does not work anymore - #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch - - cd $(DIR_APP) && perl -pi -e 's,/usr/lib/grub/i386-pc,/usr/share/grub/i386-pc,' docs/grub.texi - cd $(DIR_APP) && sed -i 's/AM_INIT_AUTOMAKE/&\nAM_PROG_AS/' configure.ac - - cd $(DIR_APP) && aclocal && autoheader && autoconf && automake --add-missing - cd $(DIR_APP) && CFLAGS="-Os -s -fno-strict-aliasing" ./configure --prefix=/usr + # Applying patches. + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-gentoo-14.patch + cd $(DIR_APP) && autoreconf + cd $(DIR_APP) && autoconf + + # Build. + cd $(DIR_APP) && CFLAGS="$(CFLAGS)" ./configure --prefix=/usr \ + --disable-auto-linux-mem-opt cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install # grub files mkdir -vp /boot/grub - cp -v /usr/share/grub/i386-pc/stage{1,2} /boot/grub + cp -v /usr/lib/grub/i386-pc/stage{1,2} /boot/grub for i in $(DIR_SRC)/config/grub/*; do \ [ -f $$i ] && cp -f $$i /boot/grub; \ done + # generate default file + grub-set-default 0 + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/hdparm b/lfs/hdparm index 33a43d053e..e4a44bf82f 100644 --- a/lfs/hdparm +++ b/lfs/hdparm @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 8.9 +VER = 9.42 THISAPP = hdparm-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 19fa013956612581af7d00907990ac84 +$(DL_FILE)_MD5 = 0af5a38b212fe08f5afbe5e37f34b40b install : $(TARGET) diff --git a/lfs/hostapd b/lfs/hostapd index b7283c8ef3..2ce9c21868 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 0.7.3 +VER = 2.0 THISAPP = hostapd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hostapd -PAK_VER = 21 +PAK_VER = 24 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 91a7c8d0f090b7104152d3455a84c112 +$(DL_FILE)_MD5 = ba22e639bc57aa4035d2ea8ffa9bbbee install : $(TARGET) @@ -82,9 +82,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) -cp /usr/src/linux/include/linux/netfilter/nfnetlink.h /usr/include/linux/netfilter/ -cp /usr/src/linux/include/linux/netfilter/nfnetlink_compat.h /usr/include/linux/netfilter/ cd $(DIR_APP)/hostapd && cp $(DIR_SRC)/config/hostapd/config ./.config -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP)/hostapd && sed -e "s/^CONFIG_DRIVER_MADWIFI=y/#&/" -i .config -endif cd $(DIR_APP)/hostapd && sed -e "s@/usr/local@/usr@g" -i Makefile cd $(DIR_APP)/hostapd && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP)/hostapd && make install diff --git a/lfs/hplip b/lfs/hplip index 1f86586371..cfcdeef541 100644 --- a/lfs/hplip +++ b/lfs/hplip @@ -24,7 +24,7 @@ include Config -VER = 2.7.10 +VER = 3.12.6 THISAPP = hplip-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hplip -PAK_VER = 1 +PAK_VER = 2 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = eafb815ca4b4bb5a2f35a76ee3c2dc72 +$(DL_FILE)_MD5 = 5303938e8630775ea6fb383af85775e5 install : $(TARGET) diff --git a/lfs/hwdata b/lfs/hwdata index 6716a95696..6804849a89 100644 --- a/lfs/hwdata +++ b/lfs/hwdata @@ -27,11 +27,7 @@ include Config VER = ipfire THISAPP = hwdata -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -53,11 +49,6 @@ md5 : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) -ifeq "$(LFS_PASS)" "install" - -mkdir -p -m 755 /install/initrd/usr/share/hwdata - install -m 644 $(DIR_SRC)/src/hwdata/*.ids /install/initrd/usr/share/hwdata -else -mkdir -p -m 755 /usr/share/hwdata install -m 644 $(DIR_SRC)/src/hwdata/*.ids /usr/share/hwdata -endif @$(POSTBUILD) diff --git a/lfs/igb b/lfs/igb index ce7f8ad10e..0ebf466ea1 100644 --- a/lfs/igb +++ b/lfs/igb @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -25,8 +25,14 @@ include Config VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/ +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/intel/igb/ +endif -VER = 3.2.10 +VER = 4.1.2 THISAPP = igb-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 22d09e7f7c8f0b23f744914e41c7ce43 +$(DL_FILE)_MD5 = 0a5462b76310b83a40c9023edae50d72 install : $(TARGET) @@ -75,12 +81,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original igb module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/igb.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb/igb.ko.org + -mv $(MODPATH)/igb.ko \ + $(MODPATH)//igb.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP)/src && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ \ - SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 igb.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/igb + cd $(DIR_APP)/src && make BUILD_KERNEL=$(KVER)-$(VERSUFIX) + cd $(DIR_APP)/src && install -m 644 igb.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/imspector b/lfs/imspector index 092211bc8c..51654c5ad6 100644 --- a/lfs/imspector +++ b/lfs/imspector @@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_SRC)/imspector && sed -e "s/^SSL_LIBS.*/& -lcrypto/" -i Makefile cd $(DIR_SRC)/imspector && make install -mv /usr/etc/imspector /etc/imspector -mv /etc/imspector/imspector /etc/imspector diff --git a/lfs/inetutils b/lfs/inetutils index c1d51cef12..468c2af32f 100644 --- a/lfs/inetutils +++ b/lfs/inetutils @@ -72,6 +72,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-3.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-daemon_fixes-1.patch + cd $(DIR_APP) && sed -i '/#include/a #include ' libicmp/icmp_timestamp.c cd $(DIR_APP) && ./configure --prefix=/usr --libexecdir=/usr/sbin \ --sysconfdir=/etc --localstatedir=/var \ --mandir=/usr/share/man --infodir=/usr/share/info \ diff --git a/lfs/initrd b/lfs/initrd index fe221e84fc..740364438e 100644 --- a/lfs/initrd +++ b/lfs/initrd @@ -71,6 +71,9 @@ $(TARGET) : cd /install/initrd/ && patch -Np0 < $(DIR_SRC)/src/patches/dracut-init_start_ipfireinstaller.patch + # Hide udev messages + sed -i -e "s|err|none|g" /install/initrd/etc/udev/udev.conf + # make new dependencies depmod -a -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire diff --git a/lfs/initscripts b/lfs/initscripts index 7210c0d2ea..213b46e272 100644 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -166,6 +166,8 @@ $(TARGET) : ln -sf ../init.d/udev_retry /etc/rc.d/rcsysinit.d/S45udev_retry ln -sf ../init.d/cleanfs /etc/rc.d/rcsysinit.d/S50cleanfs ln -sf ../init.d/setclock /etc/rc.d/rcsysinit.d/S60setclock + ln -sf ../init.d/setclock /etc/rc.d/rc0.d/K47setclock + ln -sf ../init.d/setclock /etc/rc.d/rc6.d/K47setclock ln -sf ../init.d/console /etc/rc.d/rcsysinit.d/S70console ln -sf ../init.d/firstsetup /etc/rc.d/rcsysinit.d/S75firstsetup ln -sf ../init.d/localnet /etc/rc.d/rcsysinit.d/S80localnet @@ -197,10 +199,13 @@ $(TARGET) : ln -sf any /etc/rc.d/init.d/networking/$$i; \ done - # ARM does not need checkfstab + # ARM does not need checkfstab and acpid ifeq "$(MACHINE_TYPE)" "arm" - rm -vf /etc/rc.d/init.d/checkfstab + rm -vf /etc/rc.d/init.d/{acpid,checkfstab} else + ln -sf ../init.d/acpid /etc/rc.d/rc3.d/S12acpid + ln -sf ../init.d/acpid /etc/rc.d/rc0.d/K87acpid + ln -sf ../init.d/acpid /etc/rc.d/rc6.d/K87acpid ln -sf ../init.d/checkfstab /etc/rc.d/rcsysinit.d/S19checkfstab endif diff --git a/lfs/installer b/lfs/installer index 76619630de..740793a04a 100644 --- a/lfs/installer +++ b/lfs/installer @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -61,7 +61,7 @@ $(TARGET) : -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \ -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DKERNEL_VERSION='\"$(KVER)\"'" cd $(DIR_APP)/install && install -v -m 0755 install probenic.sh \ - probehw.sh downloadsource.sh mountsource.sh mountdest.sh /install/initrd/bin + downloadsource.sh mountsource.sh mountdest.sh /install/initrd/bin #Patch ISO Name for download ... sed -i -e "s|ipfire.iso|download.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso|g" \ /install/initrd/bin/downloadsource.sh diff --git a/lfs/ipfireseeder b/lfs/ipfireseeder deleted file mode 100644 index 8834bbcbfd..0000000000 --- a/lfs/ipfireseeder +++ /dev/null @@ -1,84 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.00 - -THISAPP = ipfireseeder-$(VER) -DL_FILE = ipfire-2.9.i586-full-core51.iso.torrent - -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -SUP_ARCH = i586 -PROG = ipfireseeder -PAK_VER = 27 - -DEPS = "rtorrent" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = fa40cd03e4b0a11f8f703595a5c01a76 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - -mkdir -p /var/log/seeder /var/ipfire/seeder - cp -vf $(DIR_DL)/$(DL_FILE) /var/ipfire/seeder - echo "Folder for IPFireseeder data" > /var/log/seeder/info - @$(POSTBUILD) diff --git a/lfs/iproute2 b/lfs/iproute2 index 50ccf40df3..42a8184d6b 100644 --- a/lfs/iproute2 +++ b/lfs/iproute2 @@ -24,10 +24,10 @@ include Config -VER = 2.6.16-060323 +VER = 3.5.1 THISAPP = iproute2-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -35,13 +35,12 @@ TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) htb3.6-020525.tgz + +objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -htb3.6-020525.tgz = $(DL_FROM)/htb3.6-020525.tgz -$(DL_FILE)_MD5 = f31d4516b35bbfeaa72c762f5959e97c -htb3.6-020525.tgz_MD5 = 3064fd8642ce6a7e155a29c5205b99d4 +$(DL_FILE)_MD5 = d4425b44edd5eacd6099e672e4baacbf install : $(TARGET) @@ -70,9 +69,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -# cd $(DIR_APP) && tar xfz $(DIR_DL)/htb3.6-020525.tgz *.diff -# cd $(DIR_APP) && for i in htb3*tc.diff ; do patch -Np1 < $$i; done + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make $(MAKETUNING) SBINDIR=/sbin cd $(DIR_APP) && make SBINDIR=/sbin install cd $(DIR_APP) && mv -v /sbin/arpd /usr/sbin diff --git a/lfs/iptables b/lfs/iptables index 6d369909bc..a247ba7b37 100644 --- a/lfs/iptables +++ b/lfs/iptables @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 1.4.6 +VER = 1.4.14 THISAPP = iptables-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -38,17 +38,23 @@ TARGET = $(DIR_INFO)/$(THISAPP) objects = $(DL_FILE) \ netfilter-layer7-v2.22.tar.gz \ libnfnetlink-1.0.0.tar.bz2 \ - libnetfilter_queue-0.0.17.tar.bz2 + libnetfilter_queue-0.0.17.tar.bz2 \ + libnetfilter_conntrack-1.0.2.tar.bz2 \ + libnetfilter_cttimeout-1.0.0.tar.bz2 $(DL_FILE) = $(DL_FROM)/$(DL_FILE) netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz libnfnetlink-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnfnetlink-1.0.0.tar.bz2 libnetfilter_queue-0.0.17.tar.bz2 = $(URL_IPFIRE)/libnetfilter_queue-0.0.17.tar.bz2 +libnetfilter_conntrack-1.0.2.tar.bz2 = $(URL_IPFIRE)/libnetfilter_conntrack-1.0.2.tar.bz2 +libnetfilter_cttimeout-1.0.0.tar.bz2 = $(URL_IPFIRE)/libnetfilter_cttimeout-1.0.0.tar.bz2 -$(DL_FILE)_MD5 = c67cf30e281a924def6426be0973df56 +$(DL_FILE)_MD5 = 5ab24ad683f76689cfe7e0c73f44855d netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f libnfnetlink-1.0.0.tar.bz2_MD5 = 016fdec8389242615024c529acc1adb8 libnetfilter_queue-0.0.17.tar.bz2_MD5 = 2cde35e678ead3a8f9eb896bf807a159 +libnetfilter_conntrack-1.0.2.tar.bz2_MD5 = 447114b5d61bb9a9617ead3217c3d3ff +libnetfilter_cttimeout-1.0.0.tar.bz2_MD5 = 7697437fc9ebb6f6b83df56a633db7f9 install : $(TARGET) @@ -89,16 +95,17 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ./extensions/ # ipp2p 0.8.2-pomng - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch # imq - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-imq_test1.patch - chmod +x $(DIR_APP)/extensions/.IMQ-test* + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.12-IMQ-test4.diff +# chmod +x $(DIR_APP)/extensions/.IMQ-test* cd $(DIR_APP) && ./configure --prefix=/usr --with-ksource=/usr/src/linux \ --libdir=/lib --includedir=/usr/include --enable-libipq \ --libexecdir=/lib --bindir=/sbin \ - --sbindir=/sbin --mandir=/usr/share/man + --sbindir=/sbin --mandir=/usr/share/man \ + --with-pkgconfigdir=/usr/lib/pkgconfig cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @@ -123,5 +130,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_SRC)/libnetfilter_queue-0.0.17 && make install + cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_conntrack-1.0.2.tar.bz2 + cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && ./configure --prefix=/usr + cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/libnetfilter_conntrack-1.0.2 && make install + + cd $(DIR_SRC) && tar xfj $(DIR_DL)/libnetfilter_cttimeout-1.0.0.tar.bz2 + cd $(DIR_SRC)/libnetfilter_cttimeout-1.0.0 && ./configure --prefix=/usr + cd $(DIR_SRC)/libnetfilter_cttimeout-1.0.0 && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_SRC)/libnetfilter_cttimeout-1.0.0 && make install + @rm -rf $(DIR_APP) $(DIR_SRC)/libnfnetlink-1.0.0 $(DIR_SRC)/netfilter-layer7* $(DIR_SRC)/libnetfilter_queue-0.0.17 @$(POSTBUILD) diff --git a/lfs/kbd b/lfs/kbd index 72e509f0d0..1c99242798 100644 --- a/lfs/kbd +++ b/lfs/kbd @@ -30,11 +30,7 @@ THISAPP = kbd-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -78,21 +74,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-more-programs-1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-backspace-1.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-1.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure --disable-nls - cd $(DIR_APP)/src && make CFLAGS="-Os -fomit-frame-pointer" DATA_DIR=/lib/kbd BINDIR=/bin setfont kbd_mode dumpkeys loadkeys loadunimap showconsolefont - cd $(DIR_APP)/src && install -m 0755 setfont loadunimap kbd_mode dumpkeys loadkeys showconsolefont unicode_start unicode_stop /install/initrd/bin - mkdir -p /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat0-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat1-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat2-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/lat5-16.psfu /install/initrd/lib/kbd/consolefonts - cd $(DIR_APP) && install -m 0644 data/consolefonts/iso07u-16.psfu /install/initrd/lib/kbd/consolefonts -else cd $(DIR_APP) && ./configure --datadir=/lib/kbd --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install mv -v /usr/bin/{kbd_mode,openvt,setfont} /bin -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/kudzu b/lfs/kudzu deleted file mode 100644 index f66c3252ff..0000000000 --- a/lfs/kudzu +++ /dev/null @@ -1,92 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 1.2.64 - -THISAPP = kudzu-$(VER) -DL_FILE = kudzu-$(VER).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 3eb6fae5e8f62409fd5149f2079f6060 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kudzu-usbnet.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && patch -N < $(DIR_SRC)/src/patches/kudzu-link-lintl.diff - cd $(DIR_APP) && make RPM_OPT_FLAGS="-O2 -I/opt/$(MACHINE)-uClibc/include" \ - ARCH=$(MACHINE) - cd $(DIR_APP) && install -m 0755 kudzu /install/initrd/bin/kudzu - #cd $(DIR_APP) && install -m 0644 libkudzu.a /install/initrd/lib - #cd $(DIR_APP) && install -m 0644 libkudzu_loader.a /install/initrd/lib -else - rm -rf /usr/sbin/kudzu - cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make - cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install - cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install-program -endif - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/kvm-kmod b/lfs/kvm-kmod index 0280b5e69a..90bd790a9d 100644 --- a/lfs/kvm-kmod +++ b/lfs/kvm-kmod @@ -26,7 +26,7 @@ include Config VERSUFIX=ipfire$(KCFG) -VER = 3.0b +VER = 3.6 THISAPP = kvm-kmod-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -43,7 +43,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 19792041adc25779b31ea5c5fdca7d8c +$(DL_FILE)_MD5 = 3e51d395d6a0ecac6ae600a0515880c2 install : $(TARGET) @@ -76,7 +76,6 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)_remove_pvclock_scale_delta_redefinition.patch cd $(DIR_APP) && ./configure --kerneldir=/usr/src/linux cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && install -m 644 x86/*.ko \ diff --git a/lfs/lcr b/lfs/lcr index d6734ed9d5..061cde9ce4 100644 --- a/lfs/lcr +++ b/lfs/lcr @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,15 +24,15 @@ include Config -VER = 1.10 +VER = 20121008 THISAPP = lcr-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = lcr -PAK_VER = 4 +PAK_VER = 5 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = ccde843ee92f4d75f697d8a9e9fa3ba9 +$(DL_FILE)_MD5 = 6c5e25329be107e30436b716bafc786f install : $(TARGET) @@ -76,10 +76,14 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/lcr && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_SRC)/lcr && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.in - cd $(DIR_SRC)/lcr && sed -i 's|usr/local/lcr|var/ipfire/lcr|g' Makefile.am - cd $(DIR_SRC)/lcr && ./configure --prefix=/usr + @rm -rf $(DIR_SRC)/lcr && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_SRC)/lcr && sed -i -e "s|^EXTENSIONdir=.*|EXTENSIONdir=/var/ipfire/lcr/extensions|g" \ + Makefile.am + cd $(DIR_SRC)/lcr && ./autogen.sh + cd $(DIR_SRC)/lcr && ./configure --prefix=/usr \ + --sysconfdir=/var/ipfire \ + --localstatedir=/var \ + --datarootdir=/var/ipfire cd $(DIR_SRC)/lcr && make $(MAKETUNING) cd $(DIR_SRC)/lcr && make install mv /var/ipfire/lcr/routing.conf /var/ipfire/lcr/routing.conf.org diff --git a/lfs/less b/lfs/less index 0a4833f37a..d9680c8738 100644 --- a/lfs/less +++ b/lfs/less @@ -24,7 +24,7 @@ include Config -VER = 394 +VER = 443 THISAPP = less-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = a9f072ccefa0d315b325f3e9cdbd4b97 +$(DL_FILE)_MD5 = 47db098fb3cdaf847b3c4be05ee954fc install : $(TARGET) diff --git a/lfs/libassuan b/lfs/libassuan new file mode 100644 index 0000000000..3a32984d02 --- /dev/null +++ b/lfs/libassuan @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.0.3 + +THISAPP = libassuan-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = libassuan +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 179d1918325fdb928c7bd90b8a514fc7 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/centerim b/lfs/libffi similarity index 93% rename from lfs/centerim rename to lfs/libffi index 8e874a7a00..0e94b3177f 100644 --- a/lfs/centerim +++ b/lfs/libffi @@ -24,17 +24,13 @@ include Config -VER = 4.22.1 +VER = 3.0.11 -THISAPP = centerim-$(VER) +THISAPP = libffi-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = centerim -PAK_VER = 1 - -DEPS = "" ############################################################################### # Top-level Rules @@ -44,8 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = d128b54e3cc04a6ee651c51682a497a9 - +$(DL_FILE)_MD5 = f69b9693227d976835b4857b1ba7d0e3 install : $(TARGET) check : $(patsubst %,$(DIR_CHK)/%,$(objects)) @@ -55,7 +50,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) dist: - $(PAK) + @$(PAK) ############################################################################### # Downloading, checking, md5sum @@ -77,7 +72,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls + cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/libgpg-error b/lfs/libgpg-error new file mode 100644 index 0000000000..59108c1558 --- /dev/null +++ b/lfs/libgpg-error @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.10 + +THISAPP = libgpg-error-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = libgpg-error +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 736a03daa9dc5873047d4eb4a9c22a16 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libmad b/lfs/libmad index 548374da07..ea0491e6db 100644 --- a/lfs/libmad +++ b/lfs/libmad @@ -77,6 +77,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libmad-0.15.1b-cflags.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libmad-0.15.1b-cflags-O2.patch + cd $(DIR_APP) && autoconf + cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install diff --git a/lfs/libmnl b/lfs/libmnl new file mode 100644 index 0000000000..5341e4b7c2 --- /dev/null +++ b/lfs/libmnl @@ -0,0 +1,77 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.0.3 + +THISAPP = libmnl-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 7d95fc3bea3365bc03c48e484224f65f + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/libnl b/lfs/libnl index d1747752ee..ea557d9132 100644 --- a/lfs/libnl +++ b/lfs/libnl @@ -73,6 +73,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libnl-1.1-ULONG_MAX.patch cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/if_vlan.h \ include/linux/if_vlan.h cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_common.h \ diff --git a/lfs/libogg b/lfs/libogg index bd9c02256e..41a1c7f0cf 100644 --- a/lfs/libogg +++ b/lfs/libogg @@ -24,15 +24,15 @@ include Config -VER = 1.1.4 +VER = 1.3.0 THISAPP = libogg-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = libogg -PAK_VER = 2 +PAK_VER = 3 DEPS = "" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 10200ec22543841d9d1c23e0aed4e5e9 +$(DL_FILE)_MD5 = 84a35715170f2cd4c77a4448772b95d5 install : $(TARGET) @@ -76,7 +76,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install diff --git a/lfs/libsafe b/lfs/libsafe deleted file mode 100644 index 24c398c61f..0000000000 --- a/lfs/libsafe +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.0-16 - -THISAPP = libsafe_$(VER) -DL_FILE = $(THISAPP).orig.tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/libsafe-$(VER) -TARGET = $(DIR_INFO)/$(THISAPP) - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 6b7b6e6df84d4afb469ccc66d04fc24d - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-functioncaching.diff - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-alpha.diff - cd $(DIR_APP) && make libsafe $(MAKETUNING) - cd $(DIR_APP) && yes | make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/libsigc++ b/lfs/libsigc++ index 3635c6ee98..0d90f4c771 100644 --- a/lfs/libsigc++ +++ b/lfs/libsigc++ @@ -24,7 +24,7 @@ include Config -VER = 2.0.17 +VER = 2.0.18 THISAPP = libsigc++-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = fde0ee69e3125e982746d9fe005763e1 +$(DL_FILE)_MD5 = ddebf5aafc8525d10366a8724abc9f28 install : $(TARGET) @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsigc++-gcc43.patch cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/libsolv b/lfs/libsolv index b602095caa..7651be7507 100644 --- a/lfs/libsolv +++ b/lfs/libsolv @@ -24,7 +24,7 @@ include Config -VER = 0.0.0-0db9d7f +VER = 0.0.0-c02d759 THISAPP = libsolv-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = libsolv DEPS = "" -PAK_VER = 1 +PAK_VER = 2 ############################################################################### # Top-level Rules @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = ba95c404d807bc71297c508a7127a3d9 +$(DL_FILE)_MD5 = a8ba49ca49c309d61836fe78b0e0f83a install : $(TARGET) @@ -86,26 +86,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && sed "/examples/d" -i CMakeLists.txt cd $(DIR_APP) && sed "/tools/d" -i CMakeLists.txt - # Make sure that libsatsolverext is linked properly to all needed - # libraries. - cd $(DIR_APP) && echo "TARGET_LINK_LIBRARIES(libsolvext libsolv \$${EXPAT_LIBRARY} \$${ZLIB_LIBRARY})" \ - >> ext/CMakeLists.txt - - # Remove the RPM stuff when we build with -DFEDORA=1 because we - # do not support RPM. - cd $(DIR_APP) && sed -e "s/DEBIAN/FEDORA/g" -i ext/CMakeLists.txt - - # Our version of glibc has no __qsort_r - cd $(DIR_APP) && echo "#define USE_OWN_QSORT" >> src/util.h - cd $(DIR_APP) && mkdir build - cd $(DIR_APP)/build && cmake .. -DFEDORA=1 \ + cd $(DIR_APP)/build && cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_SKIP_RPATH=1 + -DCMAKE_SKIP_RPATH=1 \ + -DENABLE_PERL=0 \ + -DENABLE_PYTHON=0 \ + -DENABLE_RUBY=0 cd $(DIR_APP)/build && make $(PARALELLISMFLAGS) - cd $(DIR_APP)/build && make install - @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/libstatgrab b/lfs/libstatgrab new file mode 100644 index 0000000000..8bcb1330db --- /dev/null +++ b/lfs/libstatgrab @@ -0,0 +1,69 @@ +############################################################################### +# IPFire.org - An Open Source Firewall Solution # +# Copyright (C) - IPFire Development Team # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.17 + +THISAPP = libstatgrab-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = libstatgrab +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 58385c9392898be3b09ffc5e3ebe8717 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) \ No newline at end of file diff --git a/lfs/libtool b/lfs/libtool index 333f958291..e6bcd4060c 100644 --- a/lfs/libtool +++ b/lfs/libtool @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,17 +24,15 @@ include Config -VER = 1.5.22 +VER = 2.4.2 THISAPP = libtool-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = libtool -PAK_VER = 1 -DEPS = "" ############################################################################### # Top-level Rules @@ -44,7 +42,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 8e0ac9797b62ba4dcc8a2fb7936412b0 +$(DL_FILE)_MD5 = 2ec8997e0c07249eb4cbd072417d70fe install : $(TARGET) @@ -76,7 +74,7 @@ dist: $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/libupnp b/lfs/libupnp index 7d6d6d3acb..3f8d2b5498 100644 --- a/lfs/libupnp +++ b/lfs/libupnp @@ -24,7 +24,7 @@ include Config -VER = 1.6.6 +VER = 1.6.18 THISAPP = libupnp-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 8918dcf7428cd119d0c8275765ff2833 +$(DL_FILE)_MD5 = 11c6484fd2e2927bf3b8d8108407ca56 install : $(TARGET) diff --git a/lfs/libvorbis b/lfs/libvorbis index 3b6d0f9d28..8213e3991d 100644 --- a/lfs/libvorbis +++ b/lfs/libvorbis @@ -24,15 +24,15 @@ include Config -VER = 1.2.3 +VER = 1.3.3 THISAPP = libvorbis-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = libvorbis -PAK_VER = 3 +PAK_VER = 4 DEPS = "libogg" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 67beb237faf97d74782ec7071756b2b6 +$(DL_FILE)_MD5 = 71b649d3e08e63ece16649df906ce8b9 install : $(TARGET) @@ -76,11 +76,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) - #cd $(DIR_APP) && sed -i.bak -e 's/-mno-ieee-fp//' lib/Makefile cd $(DIR_APP) && make install - cd $(DIR_APP) && install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.2.3 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/linux b/lfs/linux index b8d0dd8bec..e46a2d4bc2 100644 --- a/lfs/linux +++ b/lfs/linux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,34 +24,28 @@ include Config -PATCHLEVEL = .45 -VER = 2.6.32.45 +VER = 3.2.38 + +RPI_PATCHES = linux-3.2.27-ada8b44 THISAPP = linux-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = linux-$(VER).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) CFLAGS = CXXFLAGS = -PAK_VER = 19 +PAK_VER = 28 DEPS = "" -# Normal build or XEN build. -# - VERSUFIX=ipfire$(KCFG) -ifeq "$(HEADERS)" "1" ifeq "$(TOOLS)" "1" - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools + TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX)-tools HEADERS_PREFIX = /tools -else - TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) - HEADERS_PREFIX = /usr -endif else TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX) + HEADERS_PREFIX = /usr endif ifeq "$(MACHINE_TYPE)" "arm" @@ -71,22 +65,15 @@ endif # Top-level Rules ############################################################################### objects =$(DL_FILE) \ - netfilter-layer7-v2.22.tar.gz \ - patch-2.6.16-nath323-1.3.bz2 \ - reiser4-for-2.6.32.patch.bz2 \ - xen-patches-2.6.32-2f.tar.bz2 + rpi-patches-$(RPI_PATCHES).patch.xz + $(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) -netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz -patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 -reiser4-for-2.6.32.patch.bz2 = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2 -xen-patches-2.6.32-2f.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2f.tar.bz2 +rpi-patches-$(RPI_PATCHES).patch.xz = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz + +$(DL_FILE)_MD5 = 16ea59fd8701f82d7d7c534a6e4bb923 +rpi-patches-$(RPI_PATCHES).patch.xz_MD5 = 966687ff27e450e04ff50e0da829dc00 -$(DL_FILE)_MD5 = d41f1c7e704cc95fdfc3374367b6fd64 -netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f -patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 -reiser4-for-2.6.32.patch.bz2_MD5 = 3246397973d9271eb8e6d7c97c5d2d91 -xen-patches-2.6.32-2f.tar.bz2_MD5 = b59d6f89e11accb9d40354418e13f31b install : $(TARGET) @@ -117,62 +104,51 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) ln -svf linux-$(VER) $(DIR_SRC)/linux -ifeq "$(KCFG)" "-xen" - # Apply gentoo Xen patches - mkdir -p $(DIR_SRC)/xen-patches - cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2f.tar.bz2 - - for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \ - echo "*********** [Patch: $$x]"; \ - cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \ - done - rm -rf $(DIR_SRC)/xen-patches - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch -else - # Linux Intermediate Queueing Device - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch -endif - - # Not report deprecated syscall 1.23 (for kudzu) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-imq.patch - # Reiser4 (don't check if fail (some patches are already in xen patchset) - -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1 - - # ipp2p 0.8.2-pomng - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch + # ipp2p 0.8.2-ipfire + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch # Layer7-patch - cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22 - cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch - - # Add some more LED triggers - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.0.patch - # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch + # Add LED trigger + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33-ledtrig-netdev-1.patch # Fix uevent PHYSDEVDRIVER - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.33_ipg-fix-driver-name.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch ifeq "$(KCFG)" "-kirkwood" # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.25-arm_kirkwood_setups.patch endif ifeq "$(MACHINE_TYPE)" "arm" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch + + # Reverse some asm optimizations that are incompatible with older gcc + cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch +endif + +ifeq "$(KCFG)" "-omap" + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch +endif + +ifeq "$(KCFG)" "-rpi" + # Apply Raspberry Pi kernel patches. + cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1 endif -ifeq "$(HEADERS)" "1" +ifeq "$(KCFG)" "-headers" # Install the header files cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include @@ -188,29 +164,31 @@ else cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config cd $(DIR_APP) && make CC="$(KGCC)" oldconfig cd $(DIR_APP) && make CC="$(KGCC)" clean - cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile + cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile -ifeq "$(KCFG)" "-xen" - cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz - cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX) -else ifeq "$(KCFG)" "-kirkwood" cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) else -ifeq "$(KCFG)" "-versatile" +ifeq "$(KCFG)" "-omap" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) +else +ifeq "$(KCFG)" "-rpi" cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage - cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd /boot && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img + cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX) else cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) endif endif endif cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) - ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install @@ -242,10 +220,6 @@ ifeq "$(LASTKERNEL)" "1" echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 endif - # Remove mISDN modules - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN - rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN - ifneq "$(MACHINE_TYPE)" "arm" # Disable geode_aes modul mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ diff --git a/lfs/linux-firmware b/lfs/linux-firmware index 6a7f956527..33a53810e8 100644 --- a/lfs/linux-firmware +++ b/lfs/linux-firmware @@ -24,10 +24,10 @@ include Config -VER = 20110518 +VER = 236367d THISAPP = linux-firmware-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 3b215b5ec9a5e8784dd971c039e9b948 +$(DL_FILE)_MD5 = 35d2ecf9b7d0b4d339fa0d4cc0736f6f install : $(TARGET) @@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) mkdir -p /lib/firmware cd $(DIR_APP) && cp -vr * /lib/firmware @rm -rf $(DIR_APP) diff --git a/lfs/linux-libc-header b/lfs/linux-libc-header deleted file mode 100644 index a2ff9d3615..0000000000 --- a/lfs/linux-libc-header +++ /dev/null @@ -1,105 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 2.6.12.0 - -THISAPP = linux-libc-headers-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) - -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif -else - TARGET = $(DIR_INFO)/$(THISAPP)-tools1 -endif - -############################################################################### -# Top-level Rules -############################################################################### -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = eae2f562afe224ad50f65a6acfb4252c - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - -mkdir -p /opt/$(MACHINE)-uClibc - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch - cd $(DIR_APP) && install -dv /opt/$(MACHINE)-uClibc/usr/include/asm - cd $(DIR_APP) && cp -Rv include/asm-i386/* /opt/$(MACHINE)-uClibc/usr/include/asm - cd $(DIR_APP) && cp -Rv include/linux /opt/$(MACHINE)-uClibc/usr/include - cd $(DIR_APP) && chown -Rv root:root /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} - cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type d -exec chmod -v 755 {} \; - cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type f -exec chmod -v 644 {} \; -else - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch - cd $(DIR_APP) && install -dv /usr/include/asm - cd $(DIR_APP) && cp -Rv include/asm-i386/* /usr/include/asm - cd $(DIR_APP) && cp -Rv include/linux /usr/include - cd $(DIR_APP) && chown -Rv root:root /usr/include/{asm,linux} - cd $(DIR_APP) && find /usr/include/{asm,linux} -type d -exec chmod -v 755 {} \; - cd $(DIR_APP) && find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} \; -endif -else - cd $(DIR_APP) && cp -Rv include/asm-i386 /tools/include/asm - cd $(DIR_APP) && cp -Rv include/linux /tools/include -endif - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/linux-xen b/lfs/linux-xen index 356fc8f84c..39f19a82f3 100644 --- a/lfs/linux-xen +++ b/lfs/linux-xen @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -26,7 +26,7 @@ include Config VER = kernel -include linux +include linux2 PROG = linux-xen SUP_ARCH = i586 diff --git a/lfs/linux2 b/lfs/linux2 new file mode 100644 index 0000000000..a412d9eb2e --- /dev/null +++ b/lfs/linux2 @@ -0,0 +1,252 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2013 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +PATCHLEVEL = .60 +VER = 2.6.32.60 + +THISAPP = linux-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +CFLAGS = +CXXFLAGS = + +PAK_VER = 25 +DEPS = "" + +# Normal build or XEN build. +# + +VERSUFIX=ipfire$(KCFG) + +ifeq "$(HEADERS)" "1" +ifeq "$(TOOLS)" "1" + TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools + HEADERS_PREFIX = /tools +else + TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX) + HEADERS_PREFIX = /usr +endif +else + TARGET = $(DIR_INFO)/linux-xen-$(VER)-$(VERSUFIX) +endif + +ifeq "$(MACHINE_TYPE)" "arm" + HEADERS_ARCH=arm +else + HEADERS_ARCH=x86 +endif + +ifeq "$(KCFG)" "" +LASTKERNEL=1 +endif +ifeq "$(KCFG)" "-kirkwood" +LASTKERNEL=1 +endif + +############################################################################### +# Top-level Rules +############################################################################### +objects =$(DL_FILE) \ + netfilter-layer7-v2.22.tar.gz \ + patch-2.6.16-nath323-1.3.bz2 \ + reiser4-for-2.6.32.patch.bz2 \ + xen-patches-2.6.32-2g.tar.bz2 + +$(DL_FILE) = $(URL_IPFIRE)/$(DL_FILE) +netfilter-layer7-v2.22.tar.gz = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz +patch-2.6.16-nath323-1.3.bz2 = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2 +reiser4-for-2.6.32.patch.bz2 = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2 +xen-patches-2.6.32-2g.tar.bz2 = $(URL_IPFIRE)/xen-patches-2.6.32-2g.tar.bz2 + +$(DL_FILE)_MD5 = a8e037a78c5fabefd2baa83f7ae0b8b1 +netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f +patch-2.6.16-nath323-1.3.bz2_MD5 = f926409ff703a307baf54b57ab75d138 +reiser4-for-2.6.32.patch.bz2_MD5 = 3246397973d9271eb8e6d7c97c5d2d91 +xen-patches-2.6.32-2g.tar.bz2_MD5 = d259a847c9aa73cd6e5c3605d9657d66 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + + ln -svf linux-$(VER) $(DIR_SRC)/linux + +ifeq "$(KCFG)" "-xen" + # Apply gentoo Xen patches + mkdir -p $(DIR_SRC)/xen-patches + cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2g.tar.bz2 + + for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \ + echo "*********** [Patch: $$x]"; \ + cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \ + done + rm -rf $(DIR_SRC)/xen-patches + + # Linux Intermediate Queueing Device + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch +else + # Linux Intermediate Queueing Device + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch +endif + + # Reiser4 (don't check if fail (some patches are already in xen patchset) + -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1 + + # ipp2p 0.8.2-pomng + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch + + # Layer7-patch + cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22 + cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch + + # Add some more LED triggers + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch + + # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch + + # Fix uevent PHYSDEVDRIVER + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch + + # Fix mv_cesa + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-crypto-mv_cesa.patch + +ifeq "$(KCFG)" "-kirkwood" + # Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.57-arm_kirkwood_setups.patch +endif + +ifeq "$(MACHINE_TYPE)" "arm" + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch +endif + +ifeq "$(HEADERS)" "1" + # Install the header files + cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install + -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include + cd $(DIR_APP) && find dest/include \( -name .install -o -name ..install.cmd \) -delete + cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include +else + + # Install ipfire logo + cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \ + drivers/video/logo/logo_linux_clut224.ppm + + # Cleanup kernel source + cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config + cd $(DIR_APP) && make CC="$(KGCC)" oldconfig + cd $(DIR_APP) && make CC="$(KGCC)" clean + cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile + +ifeq "$(KCFG)" "-xen" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz + cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX) +else +ifeq "$(KCFG)" "-kirkwood" + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX) +else + cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage + cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX) +endif +endif + cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX) + cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX) + ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX) + ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX) + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install + cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install + +ifeq "$(LASTKERNEL)" "1" + # Only do this once + cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/ + + # Blacklist matroxfb_base + echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer + # Blacklist old framebuffer modules + for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + done + # Blacklist new drm framebuffer modules + for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \ + done + sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer + + # Blacklist isdn modules + for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \ + echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \ + done + sed -i -e "s|.ko||g" /etc/modprobe.d/isdn + + # Disable ipv6 at runtime + echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6 +endif + + # Remove mISDN modules + rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN + rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN + +ifneq "$(MACHINE_TYPE)" "arm" + # Disable geode_aes modul + mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \ + /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off +endif +endif + + @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-* + @$(POSTBUILD) diff --git a/lfs/m4 b/lfs/m4 index df4b6a9470..4620221959 100644 --- a/lfs/m4 +++ b/lfs/m4 @@ -36,13 +36,11 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) EXTRA_CONFIG = --prefix=/usr --disable-nls - EXTRA_LDFLAGS = EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls - EXTRA_LDFLAGS = -static EXTRA_MAKE = EXTRA_INSTALL = endif @@ -85,7 +83,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG) + cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install @rm -rf $(DIR_APP) diff --git a/lfs/mISDN b/lfs/mISDN index c73f5196b1..0fe76ec375 100644 --- a/lfs/mISDN +++ b/lfs/mISDN @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -26,13 +26,17 @@ include Config VERSUFIX=ipfire$(KCFG) -VER = 20100525 +ifeq "$(KCFG)" "-xen" + KVER = "2.6.32.60" +endif + +VER = 20121008 THISAPP = mISDN-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) +TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(VERSUFIX) ############################################################################### # Top-level Rules @@ -42,7 +46,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 0f91aa47ee95833d74c8a81ffc6f6fd3 +$(DL_FILE)_MD5 = 7fee0514fd523176b36fca53b02b45cc install : $(TARGET) @@ -71,18 +75,31 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/mISDN* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_SRC)/mISDN* && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN-hfcusb-reportl1down.patch cd $(DIR_SRC)/mISDN && patch -Np1 < $(DIR_SRC)/src/patches/mISDN_hfc-s_add_id.patch ifeq "$(MACHINE_TYPE)" "arm" # Remove unsupported timestampcounter on arm. the result seems to be unused cd $(DIR_SRC)/mISDN && sed -i -e "s|rdtscl(pChan->ulTimestampIn);||g" drivers/isdn/mISDN/octvqe/octvqe_linux.c +endif +ifeq "$(NOPCI)" "1" + # Disable PCI drivers if kernel has no PCI + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_HFCPCI|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_HFCMULTI|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_XHFC|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_AVMFRITZ|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_SPEEDFAX|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_INFINEON|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_W6692|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_NETJET|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_IPAC|#&|g" mISDN.cfg.default + cd $(DIR_SRC)/mISDN && sed -i -e "s|^CONFIG_MISDN_ISAR|#&|g" mISDN.cfg.default endif cd $(DIR_SRC)/mISDN && ./configure --with-kerneldir=/usr/src/linux cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) modules cd $(DIR_SRC)/mISDN && make KVERS=$(KVER)-$(VERSUFIX) \ INSTALL_PREFIX=$(DIR_SRC)/mISDN/dest/ \ - modules-install + modules_install mv $(DIR_SRC)/mISDN/dest/lib/modules/*/extra \ /lib/modules/$(KVER)-$(VERSUFIX)/mISDN diff --git a/lfs/mISDNuser b/lfs/mISDNuser index 22183a6012..4f4edd5aa8 100644 --- a/lfs/mISDNuser +++ b/lfs/mISDNuser @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,10 +24,10 @@ include Config -VER = 20100525 +VER = 20121008 THISAPP = mISDNuser-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 8e9b507c3f576cefb857329f72e62318 +$(DL_FILE)_MD5 = 86dd2c68ef5b2fdff653f9f635771127 install : $(TARGET) @@ -69,7 +69,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_SRC)/mISDNuser && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_SRC)/mISDNuser && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_SRC)/mISDNuser && make cd $(DIR_SRC)/mISDNuser && ./configure --prefix=/usr --with-AF_ISDN=34 cd $(DIR_SRC)/mISDNuser && make MISDNDIR=/usr/src/linux cd $(DIR_SRC)/mISDNuser && make install MISDNDIR=/usr/src/linux diff --git a/lfs/madwifi b/lfs/madwifi deleted file mode 100644 index 2d3f97ed99..0000000000 --- a/lfs/madwifi +++ /dev/null @@ -1,93 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VERSUFIX=ipfire$(KCFG) - -VER = hal-0.10.5.6-r4119-20100201 - -THISAPP = madwifi-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 937cf8f185ddd39b95e7ce026f9fba63 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xzf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make $(MAKETUNING) KERNELPATH=/usr/src/linux - cd $(DIR_APP) && make KERNELPATH=/usr/src/linux BINDIR=/usr/bin \ - MANDIR=/usr/man install - cp -f $(DIR_SRC)/config/madwifi/madwifi.conf /etc/ - ln -sf $(DIR_APP) $(DIR_SRC)/madwifi - - # Add comment to set CountryCode to germany because some cards - # are not detected without cc but others doesn't like this - echo '#options ath_pci countrycode=276' > /etc/modprobe.d/madwifi - # Blacklist ath5k or madwifi for switching between the drivers - echo 'blacklist ath_pci' >> /etc/modprobe.d/madwifi - echo '#blacklist ath5k' >> /etc/modprobe.d/madwifi - echo '#blacklist ath9k' >> /etc/modprobe.d/madwifi - - # create madwifi symlink for hostapd build - cd $(DIR_SRC) && ln -sf $(THISAPP) madwifi - - @$(POSTBUILD) diff --git a/lfs/make b/lfs/make index ba34283df3..5650230f93 100644 --- a/lfs/make +++ b/lfs/make @@ -43,12 +43,16 @@ ifeq "$(ROOT)" "" EXTRA_MAKE = EXTRA_INSTALL = else - TARGET = $(DIR_INFO)/$(THISAPP)-tools-pass$(PASS) + TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls EXTRA_MAKE = EXTRA_INSTALL = endif +ifeq "$(PASS)" "1" + CFLAGS = +endif + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/man b/lfs/man index c5f847f06e..04aed20ace 100644 --- a/lfs/man +++ b/lfs/man @@ -74,6 +74,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && mv man/es{_ES.88591,} cd $(DIR_APP) && mv man/it{_IT.88591,} cd $(DIR_APP) && mv man/ja{_JP.eucJP,} + cd $(DIR_APP) && sed -i "s/-I-//g" {lib,src}/Makefile* cd $(DIR_APP) && sed -i 's,\*_\*,??,' man/Makefile.in cd $(DIR_APP) && sed -i '/\t\/usr\/man/d' src/man_db.conf.in cd $(DIR_APP) && echo -e "#define WEB_BROWSER \"exec /usr/bin/lynx\"" >> include/manconfig.h.in diff --git a/lfs/mbr b/lfs/mbr index 077efa7b75..c43f2fdb28 100644 --- a/lfs/mbr +++ b/lfs/mbr @@ -24,7 +24,7 @@ include Config -VER = 1.1.8 +VER = 1.1.11 THISAPP = mbr-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = da195c75b26bd45ecbb113b317996f9a +$(DL_FILE)_MD5 = 4e406ded185f94c2d2bf5fc793ac1842 install : $(TARGET) @@ -71,7 +71,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure + cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/mc b/lfs/mc index 25a949eda3..32946c17ab 100644 --- a/lfs/mc +++ b/lfs/mc @@ -24,17 +24,17 @@ include Config -VER = 4.7.5.2 +VER = 4.8.4 THISAPP = mc-$(VER) -DL_FILE = $(THISAPP).tar.lzma +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = mc -PAK_VER = 5 +PAK_VER = 6 -DEPS = "glib" +DEPS = "" ############################################################################### # Top-level Rules @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 9fede28ed63ced53f1beeba2f95473da +$(DL_FILE)_MD5 = a8edb8226cb25869f925ecce043faf1e install : $(TARGET) @@ -76,8 +76,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xf $(DIR_DL)/$(DL_FILE) --lzma + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure --prefix=/usr \ + --sysconfdir=/etc \ --without-x --disable-nls \ --with-samba \ --with-screen=ncurses diff --git a/lfs/mediatomb b/lfs/mediatomb index 2bfde66ca5..7de579ee42 100644 --- a/lfs/mediatomb +++ b/lfs/mediatomb @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = mediatomb PAK_VER = 4 -DEPS = "sqlite taglib ffmpeg-libs" +DEPS = "ffmpeg-libs libexif sqlite taglib " ############################################################################### # Top-level Rules diff --git a/lfs/minidlna b/lfs/minidlna index e2c1d21926..26ec3dd008 100644 --- a/lfs/minidlna +++ b/lfs/minidlna @@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i '/include/a #include /' metadata.c cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install diff --git a/lfs/miniupnpd b/lfs/miniupnpd index 470fc28cbe..7129ed58a3 100644 --- a/lfs/miniupnpd +++ b/lfs/miniupnpd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 1.4 +VER = 1.7 THISAPP = miniupnpd-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = miniupnpd -PAK_VER = 0 +PAK_VER = 1 ############################################################################### # Top-level Rules @@ -42,7 +42,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = ffa33d4ed8732c662bdb7d511e86db76 +$(DL_FILE)_MD5 = 5af9e8332d34a7b490d0d2ed3e674196 install : $(TARGET) @@ -75,10 +75,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/miniupnpd-iptcrdr.patch cd $(DIR_APP) && make -f Makefile.linux \ CFLAGS="$(CFLAGS) -DIPTABLES_143 -I/usr/src/linux/include" - cd $(DIR_APP) && install -m 755 miniupnpd /usr/sbin -mkdir -pv /etc/miniupnpd cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf diff --git a/lfs/misc-progs b/lfs/misc-progs index e59b305992..6902ccac19 100644 --- a/lfs/misc-progs +++ b/lfs/misc-progs @@ -28,11 +28,7 @@ VER = ipfire THISAPP = misc-progs DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -53,10 +49,6 @@ md5 : $(TARGET) : @$(PREBUILD) @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup && cp -R $(DIR_SRC)/src/misc-progs/ $(DIR_SRC) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && make CFLAGS="-Os -fomit-frame-pointer" iowrap - cd $(DIR_APP) && install -m 0755 iowrap /install/initrd/bin -else cp -R $(DIR_SRC)/src/install+setup/ $(DIR_SRC) for i in $(DIR_SRC)/langs/*/install/lang_*.c ; do \ cp $$i $(DIR_SRC)/install+setup/libsmooth; \ @@ -67,6 +59,5 @@ else -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'" cd $(DIR_APP) && make CFLAGS="$(CFLAGS) -Wall -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DSNAME='\"$(SNAME)\"'" cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup @$(POSTBUILD) diff --git a/lfs/motion b/lfs/motion index d42abaf0ae..fa99ea0b15 100644 --- a/lfs/motion +++ b/lfs/motion @@ -77,11 +77,19 @@ dist: $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + + #Install obsolete V4L1 videodev.h + cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install cp -vf $(DIR_SRC)/config/motion/motion.conf /etc install -v -m 644 $(DIR_SRC)/config/backup/includes/motion \ /var/ipfire/backup/addons/includes/motion + + #Remove obsolete V4L1 videodev.h + rm -f /usr/include/linux/videodev.h + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/mpd b/lfs/mpd index ca82ad2e44..7b2c54d0ad 100644 --- a/lfs/mpd +++ b/lfs/mpd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = mpd PAK_VER = 14 -DEPS = "alsa faad2 ffmpeg-libs glib lame libmad libshout libogg libid3tag libvorbis" +DEPS = "alsa faad2 ffmpeg-libs flac lame libmad libshout libogg libid3tag libvorbis" ############################################################################### # Top-level Rules diff --git a/lfs/reiser4progs b/lfs/mpfr similarity index 93% rename from lfs/reiser4progs rename to lfs/mpfr index 99cbb84342..de5e006dc1 100644 --- a/lfs/reiser4progs +++ b/lfs/mpfr @@ -24,9 +24,9 @@ include Config -VER = 1.0.6 +VER = 2.4.2 -THISAPP = reiser4progs-$(VER) +THISAPP = mpfr-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = d408cfeac40c266623bd51afa008caf6 +$(DL_FILE)_MD5 = 89e59fe665e2b3ad44a6789f40b059a0 install : $(TARGET) @@ -70,7 +70,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin --enable-static + cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \ + --enable-thread-safe --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/nagios b/lfs/nagios index bbaed79e1b..2bb2a41efd 100644 --- a/lfs/nagios +++ b/lfs/nagios @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = nagios PAK_VER = 2 -DEPS = "glib traceroute libtool" +DEPS = "traceroute" ############################################################################### # Top-level Rules @@ -111,6 +111,3 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -s /etc/init.d/nagios /etc/rc.d/rc6.d/K33nagios @rm -rf $(DIR_APP) @$(POSTBUILD) - - - diff --git a/lfs/ncurses b/lfs/ncurses index 0b7bbb7860..1c0fb04271 100644 --- a/lfs/ncurses +++ b/lfs/ncurses @@ -24,7 +24,7 @@ include Config -VER = 5.5 +VER = 5.9 THISAPP = ncurses-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -35,20 +35,25 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) # ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) - EXTRA_CONFIG = --prefix=/usr --with-shared \ - --without-debug --enable-widec --disable-nls - EXTRA_MAKE = - EXTRA_INSTALL = + PREFIX = /usr else TARGET = $(DIR_INFO)/$(THISAPP)-tools - EXTRA_CONFIG = --prefix=/tools --with-shared \ - --without-debug --without-ada --enable-overwrite \ - --disable-nls - EXTRA_MAKE = - EXTRA_INSTALL = + PREFIX = /tools endif -EXTRA_CONFIG += --build=$(BUILDTARGET) +EXTRA_CONFIG += \ + --prefix=$(PREFIX) \ + --with-shared \ + --without-debug \ + --without-ada \ + --with-ospeed=unsigned \ + --with-chtype=long \ + --enable-hard-tabs \ + --enable-xmc-glitch \ + --enable-colorfgbg \ + --enable-overwrite \ + --with-termlib=tinfo \ + --disable-nls ############################################################################### # Top-level Rules @@ -58,7 +63,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = e73c1ac10b4bfc46db43b2ddfd6244ef +$(DL_FILE)_MD5 = 8cb9c412e5f2d96bc6f459aa8c6282a1 install : $(TARGET) @@ -88,25 +93,35 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ncurses-5.5-fixes-1.patch - cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) - cd $(DIR_APP) && make $(EXTRA_MAKE) #$(MAKETUNING) # Causes an error! - cd $(DIR_APP) && make $(EXTRA_INSTALL) install -ifeq "$(ROOT)" "" - chmod -v 755 /usr/lib/*.5.5 - chmod -v 644 /usr/lib/libncurses++w.a - mv -v /usr/lib/libncursesw.so.5* /lib - ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so - cd $(DIR_APP) && for lib in curses ncurses form panel menu ; do \ - rm -vf /usr/lib/lib$${lib}.so ; \ - echo "INPUT(-l$${lib}w)" >/usr/lib/lib$${lib}.so ; \ - ln -sfv lib$${lib}w.a /usr/lib/lib$${lib}.a ; \ + cd $(DIR_APP) && mkdir -pv narrowc widec + + # Build narrowc version. + cd $(DIR_APP)/narrowc && ln -svf ../configure . + cd $(DIR_APP)/narrowc && ./configure $(EXTRA_CONFIG) --with-ticlib + cd $(DIR_APP)/narrowc && make libs + cd $(DIR_APP)/narrowc && make -C progs + + # Build widec version. + cd $(DIR_APP)/widec && ln -svf ../configure . + cd $(DIR_APP)/widec && ./configure $(EXTRA_CONFIG) \ + --enable-widec --without-progs + cd $(DIR_APP)/widec && make libs + + # Install everything. + cd $(DIR_APP) && make -C narrowc install.{libs,progs,data} + rm -vf $(PREFIX)/lib/libtinfo.* + cd $(DIR_APP) && make -C widec install.{libs,includes,man} + + # don't require -ltinfo when linking with --no-add-needed + for l in $(PREFIX)/lib/libncurses{,w}.so; do \ + soname=$$(basename $$(readlink $$l)); \ + rm -f $$l; \ + echo "INPUT($$soname -ltinfo)" > $$l; \ done - ln -sfv libncurses++w.a /usr/lib/libncurses++.a4 - echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so - ln -sfv libncurses.so /usr/lib/libcurses.so - ln -sfv libncursesw.a /usr/lib/libcursesw.a - ln -sfv libncurses.a /usr/lib/libcurses.a -endif + + rm -vf $(PREFIX)/lib/libcurses{,w}.so + echo "INPUT(-lncurses)" > $(PREFIX)/lib/libcurses.so + echo "INPUT(-lncursesw)" > $(PREFIX)/lib/libcursesw.so + echo "INPUT(-ltinfo)" > $(PREFIX)/lib/libtermcap.so @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/netpbm b/lfs/netpbm index 7ee4a196b5..5af5e47c71 100644 --- a/lfs/netpbm +++ b/lfs/netpbm @@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP)/converter && patch -Np1 < $(DIR_SRC)/src/patches/netpbm-10.26.46-getline.patch cp $(DIR_SRC)/config/netpbm/Makefile.config $(DIR_APP) cd $(DIR_APP) && make cd $(DIR_APP) && make package PKGDIR=/usr/local/netpbm diff --git a/lfs/newt b/lfs/newt index 34b0f69afa..b5c57d0d6b 100644 --- a/lfs/newt +++ b/lfs/newt @@ -30,11 +30,7 @@ THISAPP = newt-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -75,20 +71,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/newt-0.51.6-if1close.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --without-gpm-support --host $(MACHINE)-uclibc - cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = -Os -fomit-frame-pointer -Wall -D_GNU_SOURCE -DUTF8 -I/opt/i586-uClibc/include%' Makefile - cd $(DIR_APP) && make libnewt.a - -mkdir -p /opt/$(MACHINE)-uClibc/{include,lib} - cd $(DIR_APP) && install -m 0644 libnewt.a /opt/$(MACHINE)-uClibc/lib/libnewt.a - cd $(DIR_APP) && install -m 0644 newt.h /opt/$(MACHINE)-uClibc/include/newt.h -else cd $(DIR_APP) && ./configure --without-gpm-support cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = $(CFLAGS) -Wall -D_GNU_SOURCE%' Makefile cd $(DIR_APP) && make cd $(DIR_APP) && make install cd $(DIR_APP) && install -m 0644 newt.h /usr/include ln -sf libnewt.so.0.51 /usr/lib/libnewt.so -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/nut b/lfs/nut index 8007a536bb..0a5f84779e 100644 --- a/lfs/nut +++ b/lfs/nut @@ -80,7 +80,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc/nut \ --with-usb --with-user=root --with-group=nut \ --with-wrap=no --with-udev-dir=/etc/udev - cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make cd $(DIR_APP) && make install # sed -i -e "s|ATTR{|SYSFS{|g" /etc/udev/rules.d/52-nut-usbups.rules -mkdir -p /var/state/ups diff --git a/lfs/openldap b/lfs/openldap index 9771ae4410..a18d7e1620 100644 --- a/lfs/openldap +++ b/lfs/openldap @@ -32,10 +32,12 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = openldap -PAK_VER = 2 +PAK_VER = 3 DEPS = "" +export CPPFLAGS = -D_GNU_SOURCE + ############################################################################### # Top-level Rules ############################################################################### @@ -77,23 +79,24 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr \ - --libexecdir=/usr/sbin \ - --sysconfdir=/etc \ - --localstatedir=/srv/ldap \ - --disable-debug \ - --enable-dynamic \ - --enable-crypt \ - --enable-modules \ - --enable-ldap \ - --enable-ldbm \ - --enable-dyngroup \ - --enable-dynlist \ - --enable-ppolicy \ - --enable-valsort - cd $(DIR_APP) && make depend + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/openldap-gcc44-fixes.patch + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --libexecdir=/usr/lib \ + --sysconfdir=/etc \ + --localstatedir=/srv/ldap \ + --with-threads=posix \ + --disable-perl \ + --enable-dynamic \ + --enable-crypt \ + --enable-modules \ + --enable-rlookups \ + --enable-backends=mod \ + --enable-overlays=mod \ + --enable-sql=no \ + --enable-ndb=no \ + --disable-static cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install - chmod -v 755 /usr/lib/libl*-2.3.so.0.2.8 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/openssh b/lfs/openssh index 26ac55560f..774e18a2fb 100644 --- a/lfs/openssh +++ b/lfs/openssh @@ -24,7 +24,7 @@ include Config -VER = 6.0p1 +VER = 6.1p1 THISAPP = openssh-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 3c9347aa67862881c5da3f3b1c08da7b +$(DL_FILE)_MD5 = 3345cbf4efe90ffb06a78670ab2d05d5 install : $(TARGET) diff --git a/lfs/openssl b/lfs/openssl index 9aef173b05..b9d2617f6e 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -24,7 +24,7 @@ include Config -VER = 0.9.8x +VER = 0.9.8y THISAPP = openssl-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = ee17e9bc805c8cc7d0afac3b0ef78eda +$(DL_FILE)_MD5 = 47c7fb37f78c970f1d30aa2f9e9e26d8 install : $(TARGET) diff --git a/lfs/openvmtools b/lfs/openvmtools index d8a7c482b0..229ed8f8f8 100644 --- a/lfs/openvmtools +++ b/lfs/openvmtools @@ -34,7 +34,8 @@ TARGET = $(DIR_INFO)/$(THISAPP) SUP_ARCH = i586 PROG = openvmtools PAK_VER = 1 -DEPS = "glib" + +DEPS = "" ############################################################################### # Top-level Rules diff --git a/lfs/pakfire3 b/lfs/pakfire3 new file mode 100644 index 0000000000..61dd988b47 --- /dev/null +++ b/lfs/pakfire3 @@ -0,0 +1,88 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2013 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.9.23 + +THISAPP = pakfire-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = http://source.ipfire.org/releases/pakfire/ +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = pakfire3 +PAK_VER = 2 + +DEPS = "libsolv pycurl pygpgme python-progressbar python-xattr sqlite urlgrabber" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 10e6dd51c917faa8bd2e7435495de211 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pakfire3-changes-for-ipfire2.diff + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + rm -vf /usr/bin/pakfire3 + + install -v -m 644 $(DIR_SRC)/config/backup/includes/pakfire3 \ + /var/ipfire/backup/addons/includes/pakfire3 + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/pakfire3-deps b/lfs/pakfire3-deps deleted file mode 100644 index 3a34e4f098..0000000000 --- a/lfs/pakfire3-deps +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0 - -THISAPP = pakfire3-deps -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = pakfire3-deps -PAK_VER = 1 -DEPS = "intltool git make libsatsolver python-satsolver python-distutils python-distutils-extra python-lzma python-progressbar python-xattr sqlite urlgrabber" - -############################################################################### - -install : $(TARGET) - -check : - -download : - -md5 : - -dist: - @$(PAK) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - #Create a file for the package. Because empty rootfile will break. - echo "# Pakfire 3 deps is installed" > /var/ipfire/pakfire3-deps - @$(POSTBUILD) diff --git a/lfs/fw_ath9k_htc b/lfs/pango similarity index 90% rename from lfs/fw_ath9k_htc rename to lfs/pango index ebd686e3bb..bd5d5f8a80 100644 --- a/lfs/fw_ath9k_htc +++ b/lfs/pango @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2011 IPFire Team # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # # # # 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 # @@ -24,9 +24,9 @@ include Config -VER = 1.3 +VER = 1.30.1 -THISAPP = fw_ath9k_htc-$(VER) +THISAPP = pango-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 6e83c7d87007e3edd700034990cccd61 +$(DL_FILE)_MD5 = ec3c1f236ee9bd4a982a5f46fcaff7b9 install : $(TARGET) @@ -70,6 +70,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && cp -v htc*.fw /lib/firmware + cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pciutils b/lfs/pciutils index ce604c1325..fc4a962f35 100644 --- a/lfs/pciutils +++ b/lfs/pciutils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2012 IPFire Team # # # # 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 # @@ -24,17 +24,13 @@ include Config -VER = 2.2.3 +VER = 3.1.10 THISAPP = pciutils-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -44,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 86cc20eaa0360587497a8105d33e57fc +$(DL_FILE)_MD5 = cdb1e5a95ab7ac67349f10c8f77a6d3c install : $(TARGET) @@ -73,32 +69,22 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && sed -i 's/null ;/null 2>\&1 ;/' update-pciids.sh - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-strip.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.1.10-scan.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-havepread.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-devicetype.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.1-idpath.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.1.99-gcc4.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-multilib.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-sata.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" ./configure - cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" make $(MAKETUNING) - -mkdir -p /opt/$(MACHINE)-uClibc/include/pci - cd $(DIR_APP) && install -m 0644 lib/libpci.a /opt/$(MACHINE)-uClibc/lib - cd $(DIR_APP) && install -m 0644 lib/*.h /opt/$(MACHINE)-uClibc/include/pci -else -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP)/lib && ./configure - cd $(DIR_APP)/lib && sed -e "s/^#error.*$$/#define CPU_ARCH_ARM/" -i config.h -endif - cd $(DIR_APP) && make PREFIX=/usr $(MAKETUNING) - cd $(DIR_APP) && make PREFIX=/usr install - cd $(DIR_APP) && install -v -m 755 -d /usr/include/pci - cd $(DIR_APP) && install -v -m 644 lib/libpci.a /usr/lib - cd $(DIR_APP) && install -v -m 644 lib/*.h /usr/include/pci -endif + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && make SHARED=yes OPT="$(CFLAGS)" PREFIX=/usr STRIP="" \ + IDSDIR=/usr/share/hwdata ZLIB=no $(MAKETUNING) + + cd $(DIR_APP) && install -p lspci setpci /bin + cd $(DIR_APP) && install -p update-pciids /sbin + cd $(DIR_APP) && install -p lib/libpci.so.* /lib/ + ln -svf ../../lib/libpci.so.$(VER) /usr/lib/libpci.so + + # Install headers. + mkdir -pv /usr/include/pci + cd $(DIR_APP) && install -p lib/pci.h /usr/include/pci + cd $(DIR_APP) && install -p lib/header.h /usr/include/pci + cd $(DIR_APP) && install -p lib/config.h /usr/include/pci + cd $(DIR_APP) && install -p lib/types.h /usr/include/pci + cd $(DIR_APP) && install -p lib/libpci.pc /usr/lib/pkgconfig + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pcmciautils b/lfs/pcmciautils index 67ad5601fb..c80208e703 100644 --- a/lfs/pcmciautils +++ b/lfs/pcmciautils @@ -30,13 +30,7 @@ THISAPP = pcmciautils-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) - -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif - +TARGET = $(DIR_INFO)/$(THISAPP) PROG = pcmciautils PAK_VER = 1 DEPS = "" @@ -82,21 +76,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - -ifeq "$(LFS_PASS)" "install" - ln -f -s ../../../../../include/sysfs /opt/$(MACHINE)-uClibc/lib/gcc/$(MACHINE)-linux-uclibc/4.0.4/include/sysfs - cd $(DIR_APP) && make - cd $(DIR_APP) && install -m 755 pccardctl /install/initrd/sbin/ - ln -f -s pccardctl /install/initrd/sbin/lspcmcia - cd $(DIR_APP) && install -m 755 pcmcia-check-broken-cis /install/initrd/sbin/ - cd $(DIR_APP) && install -m 755 pcmcia-socket-startup /install/initrd/sbin/ - cp -f /etc/udev/rules.d/60-pcmcia.rules /install/initrd/etc/udev/rules.d/60-pcmcia.rules - mkdir -p /install/initrd/etc/pcmcia - cp -f /etc/pcmcia/config.opts /install/initrd/etc/pcmcia/config.opts -else cd $(DIR_APP) && make cd $(DIR_APP) && make install @sed -i -e 's/ MODALIAS=="?[*]",//g' /etc/udev/rules.d/60-pcmcia.rules -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pcre b/lfs/pcre index f99abf3783..5aa40bd20d 100644 --- a/lfs/pcre +++ b/lfs/pcre @@ -24,10 +24,10 @@ include Config -VER = 7.7 +VER = 8.31 THISAPP = pcre-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b +$(DL_FILE)_MD5 = fab1bb3b91a4c35398263a5c1e0858c1 install : $(TARGET) @@ -69,11 +69,14 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --enable-utf8 + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --disable-static \ + --enable-utf8 \ + --enable-jit \ + --enable-unicode-properties cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - cd $(DIR_APP) && mv -v /usr/lib/libpcre.so.* /lib/ - cd $(DIR_APP) && ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/hddtemp b/lfs/pcre-compat similarity index 91% rename from lfs/hddtemp rename to lfs/pcre-compat index 9533f67f85..6b20bca741 100644 --- a/lfs/hddtemp +++ b/lfs/pcre-compat @@ -24,9 +24,9 @@ include Config -VER = 0.3-beta14 +VER = 7.7 -THISAPP = hddtemp-$(VER) +THISAPP = pcre-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = bbf8be4539495e18bec54af77511a680 +$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b install : $(TARGET) @@ -70,7 +70,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --with-db-path=/etc/hddtemp.db - cd $(DIR_APP) && make $(MAKETUNING) && make install + cd $(DIR_APP) && ./configure --prefix=/usr --enable-utf8 + cd $(DIR_APP) && make $(MAKETUNING) + + install -m 755 $(DIR_APP)/.libs/libpcre.so.0.0.1 /lib + ln -svf libpcre.so.0.0.1 /lib/libpcre.so.0 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/php b/lfs/php index 503ddcc443..58f442ce4c 100644 --- a/lfs/php +++ b/lfs/php @@ -32,6 +32,10 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) +ifeq "$(MACHINE_TYPE)" "arm" + CFLAGS := $(patsubst -march=%,,$(CFLAGS)) +endif + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/libaal b/lfs/pixman similarity index 96% rename from lfs/libaal rename to lfs/pixman index 08d8ac1efb..1cb2a08df4 100644 --- a/lfs/libaal +++ b/lfs/pixman @@ -24,9 +24,9 @@ include Config -VER = 1.0.5 +VER = 0.26.0 -THISAPP = libaal-$(VER) +THISAPP = pixman-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 6c55201acd2a2c0a1f46addf248da6a2 +$(DL_FILE)_MD5 = 6563b6400b9fa23b47fd52105faf72b4 install : $(TARGET) diff --git a/lfs/popt b/lfs/popt index 25fcc69cbb..ee4c3f914c 100644 --- a/lfs/popt +++ b/lfs/popt @@ -30,11 +30,7 @@ THISAPP = popt-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -74,16 +70,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --disable-nls - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install -else cd $(DIR_APP) && sed -i -e "/*origOptString ==/c 0)" popt.c - cd $(DIR_APP) && autoreconf -f -i cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/postfix b/lfs/postfix index bbb9b0ca41..5866b97d85 100644 --- a/lfs/postfix +++ b/lfs/postfix @@ -36,6 +36,9 @@ PAK_VER = 6 DEPS = "amavisd mysql" +# Fake kernel release +export UTS_RELEASE = 2.6.32-ipfire + ############################################################################### # Top-level Rules ############################################################################### diff --git a/lfs/ppp b/lfs/ppp index e667b1ee05..5d772fc043 100644 --- a/lfs/ppp +++ b/lfs/ppp @@ -32,6 +32,8 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) +CFLAGS += -fno-strict-aliasing + ############################################################################### # Top-level Rules ############################################################################### @@ -70,7 +72,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && rm -f include/pcap-int.h + cd $(DIR_APP) && rm -f include/pcap-int.h include/linux/if_pppol2tp.h # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm.patch # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-pppoatm-persist.patch # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.1-oedod.patch @@ -80,7 +82,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ppp-2.4.2-close.patch cd $(DIR_APP) && sed -i -e "s+/etc/ppp/connect-errors+/var/log/connect-errors+" pppd/pathnames.h cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls - cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make $(MAKETUNING) CC="gcc $(CFLAGS)" cd $(DIR_APP) && make install cd $(DIR_APP) && make install-etcppp touch /var/log/connect-errors diff --git a/lfs/pptp b/lfs/pptp index e3237c34a9..8edb89b6c6 100644 --- a/lfs/pptp +++ b/lfs/pptp @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/pptp-1.7.2-compat.patch cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/kqemu b/lfs/pycurl similarity index 84% rename from lfs/kqemu rename to lfs/pycurl index 6e5ecfaefd..cf8bd71fc0 100644 --- a/lfs/kqemu +++ b/lfs/pycurl @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,16 +24,19 @@ include Config -VERSUFIX=ipfire$(KCFG) +VER = 7.19.0 -VER = 1.4.0pre1 - -THISAPP = kqemu-$(VER) +THISAPP = pycurl-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) -SUP_ARCH = i586 +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = pycurl +PAK_VER = 2 + +DEPS = "" + +CFLAGS += -DHAVE_CURL_OPENSSL ############################################################################### # Top-level Rules @@ -43,7 +46,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = d738d8ca7332211ab716ec3213d82ee1 +$(DL_FILE)_MD5 = 919d58fe37e69fe87ce4534d8b6a1c7b install : $(TARGET) @@ -54,7 +57,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) dist: - $(PAK) + @$(PAK) ############################################################################### # Downloading, checking, md5sum @@ -76,9 +79,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --kernel-path=/usr/src/linux - cd $(DIR_APP) && make $(MAKETUNING) - -mkdir -p /lib/modules/$(KVER)-$(VERSUFIX)/misc/ - cd $(DIR_APP) && install -m 644 kqemu.ko /lib/modules/$(KVER)-$(VERSUFIX)/misc/ + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/python-pycurl-no-static-libs.patch + cd $(DIR_APP) && python setup.py install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/pygpgme b/lfs/pygpgme new file mode 100644 index 0000000000..4adf25a30e --- /dev/null +++ b/lfs/pygpgme @@ -0,0 +1,82 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.3 + +THISAPP = pygpgme-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = pygpgme +PAK_VER = 1 + +DEPS = "gpgme" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = d38355af73f0352cde3d410b25f34fd0 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && python setup.py install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/qemu b/lfs/qemu index da2ea34ba2..d68b97d1e5 100644 --- a/lfs/qemu +++ b/lfs/qemu @@ -78,12 +78,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - - cd $(DIR_APP) && sed -i -e 's|CFLAGS+="-march=i486"|CFLAGS+=""|g' configure cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-0.15.0_missing_definitions_hack.patch - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \ - --target-list="i386-linux-user i386-softmmu arm-softmmu" + --target-list="i386-linux-user i386-softmmu arm-softmmu" \ + --extra-cflags="$(CFLAGS)" cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/qemu-kqemu b/lfs/qemu-kqemu deleted file mode 100644 index c2b6b33696..0000000000 --- a/lfs/qemu-kqemu +++ /dev/null @@ -1,88 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.11.1 - -THISAPP = qemu-$(VER) -DL_FILE = $(THISAPP).tar.gz -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP)-kqemu -SUP_ARCH = i586 -PROG = qemu-kqemu -PAK_VER = 3 - -DEPS = "sdl qemu" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) - -$(DL_FILE)_MD5 = 193285b0bcf655a7f7577d05ffcb82b1 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-kqemu_change-default-kqemu-bios.patch - cd $(DIR_APP) && ./configure --prefix=/usr \ - --target-list="i386-softmmu" - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && cp -f i386-softmmu/qemu /usr/bin/qemu-kqemu - cd $(DIR_APP) && cp -f pc-bios/bios.bin /usr/share/qemu/bios-kqemu.bin - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/r8101 b/lfs/r8101 index 266e891bd1..85d39007b8 100644 --- a/lfs/r8101 +++ b/lfs/r8101 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -25,8 +25,14 @@ include Config VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek +endif -VER = 1.019.00 +VER = 1.023.00 THISAPP = r8101-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -42,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 2804355badc4cb14f091dd8b32d270c3 +$(DL_FILE)_MD5 = 03cfc34e41522cd34ac6f4b1b6508896 install : $(TARGET) @@ -77,6 +83,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/r8101_add_missing_pciids.patch cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 r8101.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net + cd $(DIR_APP)/src && install -m 644 r8101.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/r8168 b/lfs/r8168 index 2a4e2abad2..c4aa6a960a 100644 --- a/lfs/r8168 +++ b/lfs/r8168 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -25,8 +25,14 @@ include Config VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek +endif -VER = 8.019.00 +VER = 8.035.00 THISAPP = r8168-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -42,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = f6934fc5df1dfb5fea82e4a310568890 +$(DL_FILE)_MD5 = 80b8d23e463e5408dced1b1377579dae install : $(TARGET) @@ -76,6 +82,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 r8168.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net + cd $(DIR_APP)/src && install -m 644 r8168.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/r8169 b/lfs/r8169 index 85a6dc179d..65c34e610f 100644 --- a/lfs/r8169 +++ b/lfs/r8169 @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -25,8 +25,14 @@ include Config VERSUFIX = ipfire$(KCFG) +ifeq "$(KCFG)" "-xen" + KVER = 2.6.32.60 + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net +else + MODPATH = /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/ethernet/realtek +endif -VER = 6.014.00 +VER = 6.017.00 THISAPP = r8169-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -42,7 +48,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 0f1a8dffb4774e8f9ac29ae29a0696e3 +$(DL_FILE)_MD5 = 396d7e28d573bde416fbdfdef723f4bd install : $(TARGET) @@ -75,11 +81,11 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) #Save original r8169 module - -mv /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/r8169.ko \ - /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/r8169.ko.org + -mv $(MODPATH)/r8169.ko \ + $(MODPATH)/r8169.ko.org @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/r8169_add_missing_pciids.patch cd $(DIR_APP) && make -C /lib/modules/$(KVER)-$(VERSUFIX)/build/ SUBDIRS=$(DIR_APP)/src modules - cd $(DIR_APP)/src && install -m 644 r8169.ko /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net + cd $(DIR_APP)/src && install -m 644 r8169.ko $(MODPATH) @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/readline b/lfs/readline index e2d6248fab..7b88adff2c 100644 --- a/lfs/readline +++ b/lfs/readline @@ -24,7 +24,7 @@ include Config -VER = 5.1 +VER = 6.2 THISAPP = readline-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 7ee5a692db88b30ca48927a13fd60e46 +$(DL_FILE)_MD5 = 67948acb2ca081f23359d0256e9a271c install : $(TARGET) @@ -70,16 +70,15 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/readline-5.1-fixes-3.patch - cd $(DIR_APP) && sed -i '/MV.*old/d' Makefile.in - cd $(DIR_APP) && sed -i '/{OLDSUFF}/c:' support/shlib-install - cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib + + for i in $$(seq 1 4); do \ + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline62-$$(printf "%03d" "$${i}") || exit 1; \ + done + + cd $(DIR_APP) && ./configure --prefix=/usr --disable-static cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses cd $(DIR_APP) && make install - chmod -v 755 /lib/lib{readline,history}.so* - mv -v /lib/lib{readline,history}.a /usr/lib - rm -v /lib/lib{readline,history}.so - ln -sfv ../../lib/libreadline.so.5 /usr/lib/libreadline.so - ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so + + rm -rfv /usr/share/readline @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/applejuice b/lfs/readline-compat similarity index 82% rename from lfs/applejuice rename to lfs/readline-compat index 12e58a681e..2f4388c028 100644 --- a/lfs/applejuice +++ b/lfs/readline-compat @@ -18,24 +18,19 @@ # # ############################################################################### - ############################################################################### # Definitions ############################################################################### include Config -VER = 0.31 +VER = 5.2 -THISAPP = applejuice-$(VER) +THISAPP = readline-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = applejuice -PAK_VER = 2 - -DEPS = "java" ############################################################################### # Top-level Rules @@ -45,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = dc4ac444ff9ec9e1e841e856564d0234 +$(DL_FILE)_MD5 = e39331f32ad14009b9ff49cc10c5e751 install : $(TARGET) @@ -55,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) -dist: - @$(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### @@ -78,13 +70,17 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && mkdir -p /opt/applejuice && mv -fv ajcore.jar /opt/applejuice - cd $(DIR_APP) && mv -fv libajnetmask.so /opt/applejuice - ln -svf ../../opt/applejuice/libajnetmask.so /usr/lib - cd $(DIR_APP) && cp -afv phpaj /srv/web - chown nobody.nobody /srv/web/phpaj -Rv - -mkdir /var/ipfire/applejuice - echo "RAMSIZE=64M" > /var/ipfire/applejuice/settings - chown nobody.nobody /var/ipfire/applejuice -Rv + + for i in $$(seq 1 14); do \ + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline52-$$(printf "%03d" "$${i}") || exit 1; \ + done + + cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib --disable-static + cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses + + cd $(DIR_APP)/shlib && install -m 755 libreadline.so.$(VER) /lib + cd $(DIR_APP)/shlib && install -m 755 libhistory.so.$(VER) /lib + ln -svf libreadline.so.$(VER) /lib/libreadline.so.5 + ln -svf libhistory.so.$(VER) /lib/libhistory.so.5 @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/reiserfsprogs b/lfs/reiserfsprogs index b78baefbfd..402753ee02 100644 --- a/lfs/reiserfsprogs +++ b/lfs/reiserfsprogs @@ -30,11 +30,7 @@ THISAPP = reiserfsprogs-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -74,16 +70,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --sbindir=/sbin - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && install -v -m 755 mkreiserfs/mkreiserfs /install/initrd/sbin/mkreiserfs -else cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install ln -svf reiserfsck /sbin/fsck.reiserfs ln -svf mkreiserfs /sbin/mkfs.reiserfs -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/rpi-firmware b/lfs/rpi-firmware new file mode 100644 index 0000000000..c02d5cc5f9 --- /dev/null +++ b/lfs/rpi-firmware @@ -0,0 +1,74 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2012 IPFire Team # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 855e997 +THISAPP = rpi-firmware-$(VER) +DL_FILE = $(THISAPP).tar.xz +DL_FROM = $(URL_IPFIRE) +TARGET = $(DIR_INFO)/$(THISAPP) + +SUP_ARCH = armv5tel + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = c73700a10d792517b2b87fd28a6c9800 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @cd / && tar axf $(DIR_DL)/$(DL_FILE) + cp -f $(DIR_SRC)/config/rpi-firmware/config.txt /boot + @$(POSTBUILD) diff --git a/lfs/rrdtool b/lfs/rrdtool index db44716093..0237b89f2e 100644 --- a/lfs/rrdtool +++ b/lfs/rrdtool @@ -24,7 +24,7 @@ include Config -VER = 1.2.30 +VER = 1.4.7 THISAPP = rrdtool-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 19b24f7184a8dbf7b48c1bbb565ad9fb +$(DL_FILE)_MD5 = ffe369d8921b4dfdeaaf43812100c38f install : $(TARGET) @@ -70,13 +70,16 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr/share/$(THISAPP) \ - --exec-prefix=/usr --mandir=/usr/share/man --enable-perl-site-install \ - --enable-local-libpng --enable-local-zlib --with-pic --enable-latin2 \ - --disable-python --disable-tcl + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --disable-rrdcgi \ + --enable-perl \ + --enable-perl-site-install \ + --disable-tcl \ + --disable-ruby \ + --disable-python cd $(DIR_APP) && make cd $(DIR_APP) && make install - cd $(DIR_APP) && make site-perl-install -mkdir -p /srv/web/ipfire/html/graphs/ chmod 777 /srv/web/ipfire/html/graphs/ -mkdir -p /var/log/rrd/ diff --git a/lfs/samba b/lfs/samba index 84a8a2b158..b843dcd13f 100644 --- a/lfs/samba +++ b/lfs/samba @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2012 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 3.5.19 +VER = 3.6.12 THISAPP = samba-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = samba -PAK_VER = 43 +PAK_VER = 46 DEPS = "cups" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 48718ed4fbc0f0fa7fcc38d52ca3cfff +$(DL_FILE)_MD5 = 430fd21a1acd26964d3ccf366df8709a install : $(TARGET) @@ -87,7 +87,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) --with-winbind \ --disable-swat \ --enable-cups \ - --with-cifsmount \ --with-syslog cd $(DIR_APP)/source3 && make proto && make all $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP)/source3 && make install diff --git a/lfs/sarg b/lfs/sarg new file mode 100644 index 0000000000..c8794fe7e0 --- /dev/null +++ b/lfs/sarg @@ -0,0 +1,100 @@ +############################################################################### +# # +# IPFire.org - An Open Source Firewall Solution # +# Copyright (C) 2012 Michael Tremer # +# # +# 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 . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 2.3.3 + +THISAPP = sarg-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = sarg +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 09dba9a960d500acd7f17802de62512c + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/etc/sarg + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make $(EXTRA_INSTALL) install + + # Install configuration file. + cp -v $(DIR_SRC)/config/sarg/sarg.conf /etc/sarg/sarg.conf + + # Install helper script. + install -m 755 $(DIR_SRC)/config/sarg/update-sarg-reports \ + /usr/sbin/update-sarg-reports + + # Install cron job. + for i in hourly daily weekly monthly; do \ + install -m 754 -v $(DIR_SRC)/config/sarg/cron.$${i} \ + /etc/fcron.$${i}/sarg-reports; \ + done + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/screen b/lfs/screen index eef5862624..b94d62e6eb 100644 --- a/lfs/screen +++ b/lfs/screen @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/screen-4.0.3-stropts.patch cd $(DIR_APP) && ./configure --prefix=/usr --with-socket-dir=/var/run/screen --with-sys-screenrc=/etc/screenrc cd $(DIR_APP) && sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/sdl b/lfs/sdl index 2716f3fbc6..5f5ecdcef4 100644 --- a/lfs/sdl +++ b/lfs/sdl @@ -77,10 +77,8 @@ dist: $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(MACHINE_TYPE)" "arm" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/SDL-1.2.11-asm-page.h.patch cd $(DIR_APP) && sed "/asm\/page.h/d" -i src/video/fbcon/SDL_fbvideo.c -endif cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/sdparm b/lfs/sdparm index f1c8bd0b57..daa94ffb1a 100644 --- a/lfs/sdparm +++ b/lfs/sdparm @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 1.01 +VER = 1.07 THISAPP = sdparm-$(VER) DL_FILE = $(THISAPP).tgz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 7c87e5e1ebba54b7dae40e45fd356ab9 +$(DL_FILE)_MD5 = c807f9db3dd7af175214be0d7fece494 install : $(TARGET) diff --git a/lfs/sed b/lfs/sed index 22b820407f..8904fd4290 100644 --- a/lfs/sed +++ b/lfs/sed @@ -24,7 +24,7 @@ include Config -VER = 4.1.5 +VER = 4.2.1 THISAPP = sed-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -36,13 +36,11 @@ DIR_APP = $(DIR_SRC)/$(THISAPP) ifeq "$(ROOT)" "" TARGET = $(DIR_INFO)/$(THISAPP) EXTRA_CONFIG = --prefix=/usr --bindir=/bin --disable-nls - EXTRA_LDFLAGS = EXTRA_MAKE = EXTRA_INSTALL = else TARGET = $(DIR_INFO)/$(THISAPP)-tools EXTRA_CONFIG = --prefix=/tools --disable-nls - EXTRA_LDFLAGS = EXTRA_MAKE = EXTRA_INSTALL = endif @@ -55,7 +53,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 7a1cbbbb3341287308e140bd4834c3ba +$(DL_FILE)_MD5 = f0fd4d7da574d4707e442285fd2d3b86 install : $(TARGET) @@ -85,7 +83,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG) + cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install @rm -rf $(DIR_APP) diff --git a/lfs/sendEmail b/lfs/sendEmail new file mode 100644 index 0000000000..86119297db --- /dev/null +++ b/lfs/sendEmail @@ -0,0 +1,69 @@ +############################################################################### +# IPFire.org - An Open Source Firewall Solution # +# Copyright (C) - IPFire Development Team # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.56 + +THISAPP = sendEmail-v$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = sendEmail +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 5b7bec4373268fa6446fa59416bb99fb + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && cp -pvf sendEmail /usr/local/bin + chmod 755 /usr/local/bin/sendEmail + @rm -rf $(DIR_APP) + @$(POSTBUILD) + diff --git a/lfs/slang b/lfs/slang index 542d32ff10..e6c8cc88d3 100644 --- a/lfs/slang +++ b/lfs/slang @@ -30,11 +30,7 @@ THISAPP = slang-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -78,13 +74,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-acs.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.5-utf8-segv.patch cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-fix.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.9-uclibc.patch - cd $(DIR_APP) && ./configure --prefix="" - cd $(DIR_APP)/src && make $(MAKETUNING) $(EXTRA_MAKE) - cd $(DIR_APP)/src && make install DESTDIR="/opt/$(MACHINE)-uClibc" - ln -sf libslang-utf8.a /opt/$(MACHINE)-uClibc/lib/libslang.a -else perl -p -i -e 's/(ELF_CFLAGS=\"[^\"]*)-O2([^\"]*\".*)/$1'"$(CFLAGS)"' $2/gs' configure cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make elf all @@ -92,6 +81,5 @@ else ln -sf libslang-utf8.so.1.4.9 /usr/lib/libslang-utf8.so.1 ln -sf libslang-utf8.so /usr/lib/libslang.so ln -sf libslang-utf8.a /usr/lib/libslang.a -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/smartmontools b/lfs/smartmontools index 63e51f28ce..a4ae11bfa3 100644 --- a/lfs/smartmontools +++ b/lfs/smartmontools @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 5.42 +VER = 6.0 THISAPP = smartmontools-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 4460bf9a79a1252ff5c00ba52cf76b2a +$(DL_FILE)_MD5 = 5646a07f5f4bee8e2e649de8c6b7ae87 install : $(TARGET) @@ -71,7 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/smartmontools-5.39-exit_segfault.patch - cd $(DIR_APP) && ./autogen.sh + cd $(DIR_APP) && autoreconf cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make BUILD_INFO='"($(NAME) $(VERSION))"' $(MAKETUNING) cd $(DIR_APP) && make install diff --git a/lfs/snort b/lfs/snort index 98c232d0ef..950b319caf 100644 --- a/lfs/snort +++ b/lfs/snort @@ -24,7 +24,7 @@ include Config -VER = 2.9.3.1 +VER = 2.9.4 THISAPP = snort-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = b2102605a7ca023ad6a2429821061c29 +$(DL_FILE)_MD5 = e79ee6b4fbb32edc5dfed2d7dfcc6813 install : $(TARGET) diff --git a/lfs/squid b/lfs/squid index 74683284f2..d06aedeb51 100644 --- a/lfs/squid +++ b/lfs/squid @@ -24,7 +24,7 @@ include Config -VER = 3.1.20 +VER = 3.1.23 THISAPP = squid-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = c4d733a383c0508fd0746d64a2d7278a +$(DL_FILE)_MD5 = e15fdb8c615cf1f9525be0a2b75c60a7 install : $(TARGET) diff --git a/lfs/stage2 b/lfs/stage2 index 5f038c3250..beb0abbcb2 100644 --- a/lfs/stage2 +++ b/lfs/stage2 @@ -63,9 +63,11 @@ $(TARGET) : # Symlinks # for this reason, stage2 rebuild will broke the iso:perl, grubbatch - -ln -sv /tools/bin/{bash,cat,grep,pwd,stty} /bin + -ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin -ln -sv /tools/bin/perl /usr/bin -ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib + -ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib + sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la -ln -sv bash /bin/sh # Config files @@ -81,7 +83,11 @@ $(TARGET) : [ -f $$i ] && cp $$i /etc/profile.d; \ done chmod 755 /etc/bashrc - ln -svf ../bashrc /etc/profile.d/bashrc.sh + + # Install root's bash files. + for i in $(DIR_SRC)/config/bash/dot_*; do \ + [ -f $$i ] && cp $$i /root/$$(basename $${i/dot_/\.}); \ + done # Scripts for i in `find $(DIR_SRC)/src/scripts -maxdepth 1 -type f`; do \ @@ -89,6 +95,9 @@ $(TARGET) : chmod 755 /usr/local/bin/`basename $$i`; \ done + # Move script to correct place. + mv -vf /usr/local/bin/ovpn-ccd-convert /usr/sbin/ + # Nobody user -mkdir -p /home/nobody chown -R nobody:nobody /home/nobody diff --git a/lfs/streamripper b/lfs/streamripper index 9ef65af0b2..4e30f8b714 100644 --- a/lfs/streamripper +++ b/lfs/streamripper @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = streamripper PAK_VER = 1 -DEPS = "glib libmad libogg libvorbis faad2" +DEPS = "libmad libogg libvorbis faad2" ############################################################################### # Top-level Rules diff --git a/lfs/stress b/lfs/stress new file mode 100644 index 0000000000..166d840f92 --- /dev/null +++ b/lfs/stress @@ -0,0 +1,69 @@ +############################################################################### +# IPFire.org - An Open Source Firewall Solution # +# Copyright (C) - IPFire Development Team # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.0.4 + +THISAPP = stress-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) +PROG = stress +PAK_VER = 1 + +DEPS = "" + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = a607afa695a511765b40993a64c6e2f4 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +dist: + @$(PAK) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/strip b/lfs/strip index 169419e8a8..30cb9b33b4 100644 --- a/lfs/strip +++ b/lfs/strip @@ -46,25 +46,5 @@ md5 : ############################################################################### $(TARGET) : - -ifeq "$(LFS_PASS)" "toolchain" - -find $(TOOLS_DIR)/lib -type f -exec $(TOOLS_DIR)/bin/strip --strip-debug '{}' ';' - -find $(TOOLS_DIR)/{bin,sbin,libexec} -type f -exec $(TOOLS_DIR)/bin/strip --strip-all '{}' ';' - rm -rf $(TOOLS_DIR)/{,share/}{doc,info,man} -endif - -ifeq "$(LFS_PASS)" "install" - # Add -ls before -exec if you want to verify what files are in the path to be stripped - # A running binary can't be stripped, so use the version from /tools - # It may fail (signal 11) under circonstance not identified by me (Gilles), - # to strip libc again so ignore the error now. Probably need a static strip for libc - # Don't use --strip-all on libraries, or they'll be destroyed. Don't use --strip-unneeded, either. - -/tools/bin/find /lib /usr/lib /usr/share/rrdtool-* /install/initrd/lib \ - -type f \( -name '*.so' -o -name '*.so[\.0-9]*' \) \ - -exec /tools/bin/strip --strip-debug {} \; 2>/dev/null - - -/tools/bin/strip --strip-all /{,usr/}{,local/}{bin,sbin}/* /install/{initrd,misc}/bin/* /usr/lib/cyrus/* 2>/dev/null - -/tools/bin/strip --strip-all /usr/lib/awk/{grcat,pwcat} 2>/dev/null - -/tools/bin/strip --strip-all /usr/lib/gcc/*-linux-gnu/4.0.4/{cc1*,collect2} 2>/dev/null -endif - + STRIP="/tools/bin/strip" $(DIR_SRC)/src/stripper / \ + --exclude=/usr/src --exclude=/tools diff --git a/lfs/strongswan b/lfs/strongswan index d0d533d11d..8e7532976b 100644 --- a/lfs/strongswan +++ b/lfs/strongswan @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 4.6.4 +VER = 5.0.2 THISAPP = strongswan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -32,6 +32,12 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) +ifeq "$(MACHINE)" "i586" + PADLOCK = --enable-padlock +else + PADLOCK = --disable-padlock +endif + ############################################################################### # Top-level Rules ############################################################################### @@ -40,7 +46,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 4c0999c42faa0860ae0afc4f8efd9d04 +$(DL_FILE)_MD5 = 77dc16443fd141f46183d3a4f60986ef install : $(TARGET) @@ -73,18 +79,20 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.5.3_ipfire.patch - # Customize the welcome banner. - sed -i $(DIR_APP)/src/pluto/modecfg.c \ - -e 's/^#define.*DEFAULT_UNITY_BANNER.*/#define DEFAULT_UNITY_BANNER "Welcome to IPFire - An Open Source Firewall Solution.\\n"/' - - cd $(DIR_APP) && ./configure --prefix="/usr" --sysconfdir="/etc" \ - --enable-cisco-quirks \ - --enable-curl \ - --enable-nat-transport + cd $(DIR_APP) && ./configure \ + --prefix="/usr" \ + --sysconfdir="/etc" \ + --enable-curl \ + --enable-openssl \ + --enable-eap-radius \ + $(PADLOCK) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install + # Remove all library files we don't want or need. + rm -vf /usr/lib/ipsec/plugins/*.{,l}a + -rm -rfv /etc/rc*.d/*ipsec cd $(DIR_SRC) && cp src/initscripts/init.d/ipsec /etc/rc.d/init.d/ipsec rm -f /etc/ipsec.conf /etc/ipsec.secrets diff --git a/lfs/sysfsutils b/lfs/sysfsutils index 297f7708ba..4980f5e178 100644 --- a/lfs/sysfsutils +++ b/lfs/sysfsutils @@ -31,11 +31,7 @@ DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -75,15 +71,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix="" --disable-shared - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install - mv -v /opt/$(MACHINE)-uClibc/usr/include/sysfs /opt/$(MACHINE)-uClibc/include -else cd $(DIR_APP) && ./configure --prefix="" cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/syslinux b/lfs/syslinux index ba739ea752..43bcde9b62 100644 --- a/lfs/syslinux +++ b/lfs/syslinux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,10 +24,10 @@ include Config -VER = 4.02 +VER = 4.06 THISAPP = syslinux-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -41,7 +41,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 52912c03f5c275d6c0ac09180ebab81f +$(DL_FILE)_MD5 = 77d33140860621cd850c3a7ab0ebb7d6 install : $(TARGET) @@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/sysvinit b/lfs/sysvinit index 2167b99789..85864fd065 100644 --- a/lfs/sysvinit +++ b/lfs/sysvinit @@ -24,17 +24,13 @@ include Config -VER = 2.86 +VER = 2.88dsf THISAPP = sysvinit-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -44,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 7d5d61c026122ab791ac04c8a84db967 +$(DL_FILE)_MD5 = 6eda8a97b86e0a6f59dabbf25202aa6f install : $(TARGET) @@ -73,17 +69,8 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP)/src && sed -i s'/-O2/-Os\ -fomit-frame-pointer/' Makefile - cd $(DIR_APP)/src && make killall5 - cd $(DIR_APP)/src && install -m 0755 killall5 /install/initrd/bin -else - cd $(DIR_APP) && cp src/init.c{,.backup} - cd $(DIR_APP) && sed -i 's@Sending processes@& started by init@g' \ - src/init.c + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make $(MAKETUNING) -C src cd $(DIR_APP) && make -C src install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/texinfo b/lfs/texinfo index 0ead581c79..4ac591ed1b 100644 --- a/lfs/texinfo +++ b/lfs/texinfo @@ -24,12 +24,12 @@ include Config -VER = 4.8 +VER = 4.13a THISAPP = texinfo-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) +DIR_APP = $(DIR_SRC)/texinfo-4.13 # Normal build or /tools build. # @@ -53,7 +53,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 6ba369bbfe4afaa56122e65b3ee3a68c +$(DL_FILE)_MD5 = 71ba711519209b5fb583fed2b3d86fcb install : $(TARGET) @@ -82,11 +82,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(ROOT)" "" - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-multibyte-1.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-tempfile_fix-2.patch -endif + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./configure $(EXTRA_CONFIG) cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make $(EXTRA_INSTALL) install diff --git a/lfs/transmission b/lfs/transmission index 6e2ab79ee0..ab34ee3db6 100644 --- a/lfs/transmission +++ b/lfs/transmission @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 2.42 +VER = 2.76 THISAPP = transmission-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = transmission -PAK_VER = 3 +PAK_VER = 5 DEPS = "libevent2" @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 50f6dd76c5c01f45d5ed20783c686815 +$(DL_FILE)_MD5 = 9abbffe29ce9b5ee68a116d293c51111 install : $(TARGET) diff --git a/lfs/tzdata b/lfs/tzdata index 8321432819..edf5ff22de 100644 --- a/lfs/tzdata +++ b/lfs/tzdata @@ -24,11 +24,11 @@ include Config -TZDATA_VER = 2011n -TZCODE_VER = 2011i +VER = 2012h +TZDATA_VER = 2012h +TZCODE_VER = 2012h -THISAPP = tzdata -DL_FILE = tzdata-base-0.tar.bz2 +THISAPP = tzdata-$(VER) DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -37,15 +37,13 @@ TARGET = $(DIR_INFO)/$(THISAPP) # Top-level Rules ############################################################################### -objects = $(DL_FILE) tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz +objects = tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) tzdata$(TZDATA_VER).tar.gz = $(DL_FROM)/tzdata$(TZDATA_VER).tar.gz tzcode$(TZCODE_VER).tar.gz = $(DL_FROM)/tzcode$(TZCODE_VER).tar.gz -$(DL_FILE)_MD5 = e36d2f742c22f8c8dbf0686ac9769b55 -tzdata$(TZDATA_VER).tar.gz_MD5 = 20dbfb28efa008ddbf6dd34601ea40fa -tzcode$(TZCODE_VER).tar.gz_MD5 = cf7f4335b7c8682899fa2814e711c1b2 +tzdata$(TZDATA_VER).tar.gz_MD5 = b937335e087fb85b7f8e3ce33e69184b +tzcode$(TZCODE_VER).tar.gz_MD5 = 44b3b6c3e50240ac44f16437040a7ba2 install : $(TARGET) @@ -74,19 +72,21 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && mkdir -pv $(DIR_APP) mkdir -pv $(DIR_APP)/tzdata$(TZDATA_VER) $(DIR_APP)/tzcode$(TZCODE_VER) - tar axf $(DIR_DL)/tzdata$(TZDATA_VER).tar.gz -C $(DIR_APP)/tzdata$(TZDATA_VER) - tar axf $(DIR_DL)/tzcode$(TZCODE_VER).tar.gz -C $(DIR_APP)/tzcode$(TZCODE_VER) + tar axf $(DIR_DL)/tzdata$(TZDATA_VER).tar.gz -C $(DIR_APP) + tar axf $(DIR_DL)/tzcode$(TZCODE_VER).tar.gz -C $(DIR_APP) - cd $(DIR_APP) && sed -e 's|@objpfx@|$(DIR_APP)/obj/|' \ - -e 's|@datadir@|/usr/share|' \ - Makeconfig.in > Makeconfig - cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \ + TZDIR=/usr/share/zoneinfo all + cd $(DIR_APP) && make TOPDIR=/usr ETCDIR=/tmp LIBDIR=/tmp MANDIR=/tmp \ + TZDIR=/usr/share/zoneinfo install - cd $(DIR_APP) && sed -i 's|@install_root@||' Makeconfig - cd $(DIR_APP) && make install + -mkdir -pv /usr/share/zoneinfo + mv -v /usr/share/zoneinfo-posix /usr/share/zoneinfo/posix + mv -v /usr/share/zoneinfo-leaps /usr/share/zoneinfo/right + rm -vf /usr/share/zoneinfo/localtime - cp -f /usr/share/zoneinfo/GMT /etc/localtime + cp -vf /usr/share/zoneinfo/GMT /etc/localtime @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/u-boot b/lfs/u-boot index 6fbd888ebc..551fea5269 100644 --- a/lfs/u-boot +++ b/lfs/u-boot @@ -24,10 +24,12 @@ include Config -VER = 2011.06 +VER = 2011.12 +# Linare version: git clone git://git.linaro.org/boot/u-boot-linaro-stable.git +# Branch: origin/Linaro-u-boot-2011.12 -THISAPP = u-boot-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +THISAPP = uboot-panda-$(VER) +DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -41,7 +43,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 0cc5026aad02f218a9b9ac56b301c97a +$(DL_FILE)_MD5 = 19975e9bb4b10d8e67db84e51fcaa43b install : $(TARGET) @@ -73,8 +75,13 @@ dist: $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && make tools $(MAKETUNING) cd $(DIR_APP) && install tools/mkimage /usr/bin/ + cd $(DIR_APP) && make omap4_panda_config + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && install MLO /boot/ + cd $(DIR_APP) && install u-boot.bin /boot/ + cp -vf $(DIR_SRC)/config/u-boot/* /boot/ @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/udev b/lfs/udev index c7cba71387..9ebec2f180 100644 --- a/lfs/udev +++ b/lfs/udev @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,29 +24,23 @@ include Config -VER = 125 +VER = 141 THISAPP = udev-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules ############################################################################### -objects = $(DL_FILE) udev-config-6.2.tar.bz2 +objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -udev-config-6.2.tar.bz2 = $(DL_FROM)/udev-config-6.2.tar.bz2 -$(DL_FILE)_MD5 = be98e04cefdd9ca76b8fe7e92735ce29 -udev-config-6.2.tar.bz2_MD5 = 9ff2667ab0f7bfe8182966ef690078a0 +$(DL_FILE)_MD5 = 1670fe81cabf5161319c52084cf81134 install : $(TARGET) @@ -75,62 +69,42 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-netif_rename.patch -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev - cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev install - rm -f /install/initrd/sbin/udev* /install/initrd/usr/sbin/udev* /install/initrd/usr/bin/udev* - cd $(DIR_APP) && install udevadm udevd /install/initrd/sbin - cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" - cd $(DIR_APP) && make DESTDIR=/install/initrd EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ - extras/firmware extras/floppy extras/path_id \ - extras/scsi_id extras/usb_id extras/volume_id" install - cd /install/initrd/usr/share && rm -rf man - -mkdir -pv /install/initrd/dev - cd /install/initrd/dev && rm -f console - cd /install/initrd/dev && mknod -m 0600 console c 5 1 - cd /install/initrd/dev && rm -f null - cd /install/initrd/dev && mknod -m 0777 null c 1 3 - cd /install/initrd/dev && rm -f tty* - cd /install/initrd/dev && mknod -m 0600 tty1 c 4 1 - cd /install/initrd/dev && mknod -m 0600 tty2 c 4 2 - cd /install/initrd/dev && mknod -m 0600 tty3 c 4 3 - cd /install/initrd/dev && mknod -m 0600 tty4 c 4 4 - cd /install/initrd/dev && mknod -m 0600 tty5 c 4 5 - cd /install/initrd/dev && mknod -m 0600 tty6 c 4 6 - cp -f /etc/udev/rules.d/55-scsi-cdrom.rules /install/initrd/etc/udev/rules.d/55-scsi-cdrom.rules - -else + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-141_no_netif_rename.patch + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-ext4_wo_journal.patch rm -rf /lib/udev/devices - cd $(DIR_APP) && tar jxf $(DIR_DL)/udev-config-6.2.tar.bz2 - cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_persistent-storage-fix.patch - cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch install -dv /lib/{firmware,udev/devices/{pts,shm}} - echo "Put device firmwares here ..." > /lib/firmware/dirinfo mknod -m0666 /lib/udev/devices/null c 1 3 ln -sv /proc/self/fd /lib/udev/devices/fd ln -sv /proc/self/fd/0 /lib/udev/devices/stdin ln -sv /proc/self/fd/1 /lib/udev/devices/stdout ln -sv /proc/self/fd/2 /lib/udev/devices/stderr ln -sv /proc/kcore /lib/udev/devices/core + cd $(DIR_APP) && ./configure --disable-introspection --sbindir=/sbin --sysconfdir=/etc --libexecdir=/lib/udev cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ extras/firmware extras/floppy extras/path_id \ extras/scsi_id extras/usb_id extras/volume_id" cd $(DIR_APP) && make DESTDIR=/ EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \ extras/firmware extras/floppy extras/path_id \ extras/scsi_id extras/usb_id extras/volume_id" install - cd $(DIR_APP) && cp -v udev-config-6.2/[0-9]* /etc/udev/rules.d/ - cp -rf $(DIR_SRC)/config/udev/10-dvb.rules /etc/udev/rules.d/ - cp -rf $(DIR_SRC)/config/udev/55-scsi-cdrom.rules /etc/udev/rules.d/ - chmod 644 /etc/udev/rules.d/10-dvb.rules - chmod 644 /etc/udev/rules.d/55-scsi-cdrom.rules - cp -rf $(DIR_SRC)/config/udev/dvb.sh /etc/udev/ - chmod 755 /etc/udev/dvb.sh + + # Disable net generator rule. This does not work with the setup. + rm -f /lib/udev/rules.d/75-persistent-net-generator.rules + + # Create rule file for the setup touch /etc/udev/rules.d/30-persistent-network.rules + + # Blacklist some modules cp -vf $(DIR_SRC)/config/udev/blacklist /etc/modprobe.d/blacklist -endif + + # Install alsa rules. + install -v -m 644 $(DIR_SRC)/config/udev/25-alsa.rules \ + /lib/udev/rules.d + + # Install codel rules. + install -v -m 644 $(DIR_SRC)/config/udev/99-codel.rules \ + /lib/udev/rules.d + install -m 755 $(DIR_SRC)/config/udev/enable_codel \ + /lib/udev/enable_codel @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/urlgrabber b/lfs/urlgrabber index 9752a65597..f2966c3964 100644 --- a/lfs/urlgrabber +++ b/lfs/urlgrabber @@ -24,7 +24,7 @@ include Config -VER = 3.1.0 +VER = 3.9.1 THISAPP = urlgrabber-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -44,7 +44,8 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 2a92d8ce0d89c5e772a98e9b8dcd5b73 +$(DL_FILE)_MD5 = 00c8359bf71062d0946bacea521f80b4 + install : $(TARGET) check : $(patsubst %,$(DIR_CHK)/%,$(objects)) diff --git a/lfs/usb-stick b/lfs/usb-stick index 4c5e716b03..30a1475774 100644 --- a/lfs/usb-stick +++ b/lfs/usb-stick @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2010 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -92,7 +92,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \ dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT # write mbr before partitioning save a 'not msdos fs' warning from sfdisk - /usr/local/sbin/install-mbr -f $(IMGhdd) + /usr/sbin/install-mbr -f $(IMGhdd) echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd) # copy the entire partition, make the fs and dd back dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32 diff --git a/lfs/util-linux b/lfs/util-linux index 3dac54d869..a39416601d 100644 --- a/lfs/util-linux +++ b/lfs/util-linux @@ -30,18 +30,7 @@ THISAPP = util-linux-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) - -# Normal build or /tools build. -# -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif -else - TARGET = $(DIR_INFO)/$(THISAPP)-tools -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -82,16 +71,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-2.12r-umount-no-special.patch -ifeq "$(ROOT)" "" -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure - cd $(DIR_APP) && echo "HAVE_SLANG=yes" >> make_include - cd $(DIR_APP) && echo "SLANGFLAGS=-I/opt/$(MACHINE)-uClibc/include" >> make_include - cd $(DIR_APP)/fdisk && make cfdisk - cd $(DIR_APP)/fdisk && make sfdisk - cd $(DIR_APP)/fdisk && install -m 0755 cfdisk /install/initrd/bin - cd $(DIR_APP)/fdisk && install -m 0755 sfdisk /install/initrd/bin -else cd $(DIR_APP) && sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \ hwclock/hwclock.c -mkdir -p /var/lib/hwclock @@ -100,14 +79,5 @@ else cd $(DIR_APP) && ./configure cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install -endif -else - cd $(DIR_APP) && sed -i 's@/usr/include@/tools/include@g' configure - cd $(DIR_APP) && ./configure - cd $(DIR_APP) && make $(MAKETUNING) -C lib - cd $(DIR_APP) && make $(MAKETUNING) -C mount mount umount - cd $(DIR_APP) && make $(MAKETUNING) -C text-utils more - cd $(DIR_APP) && cp mount/{,u}mount text-utils/more /tools/bin -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/v4l-dvb b/lfs/v4l-dvb index 730173efd7..ef0f383663 100644 --- a/lfs/v4l-dvb +++ b/lfs/v4l-dvb @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -26,15 +26,19 @@ include Config VERSUFIX=ipfire$(KCFG) -VER = git20110427 - +VER = 20120916 THISAPP = v4l-dvb-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -PAK_VER = 2 TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX) +ifeq "$(KCFG)" "-xen" + XVER = 2.6.32 + KVER = 2.6.32.60 +else + XVER = 3.2.0 +endif ############################################################################### # Top-level Rules ############################################################################### @@ -43,7 +47,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 8b83a89332fe8468ebffd516a4a47128 +$(DL_FILE)_MD5 = 7824fdd540605c54584df0d16f0e923b install : $(TARGET) @@ -53,9 +57,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) -dist: - $(PAK) - ############################################################################### # Downloading, checking, md5sum ############################################################################### @@ -76,8 +77,27 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32 - cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32 + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_fix_tua6034_pll.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_bestunar_us638x.patch + + cd $(DIR_APP) && make allyesconfig KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER) +ifeq "$(KCFG)" "-omap" + # Disable failing OMAP2 Video Out and IR RX51 driver + cd $(DIR_APP) && sed -i -e \ + "s|^CONFIG_VIDEO_OMAP2_VOUT=m|# CONFIG_VIDEO_OMAP2_VOUT is not set|g" \ + v4l/.config + cd $(DIR_APP) && sed -i -e \ + "s|^CONFIG_IR_RX51=m|# CONFIG_IR_RX51 is not set|g" \ + v4l/.config +endif + # Disable Radio Shark (missing tuner module) + cd $(DIR_APP) && sed -i -e \ + "s|^CONFIG_RADIO_SHARK=m|# CONFIG_RADIO_SHARK is not set|g" \ + v4l/.config + cd $(DIR_APP) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER) + cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER) ln -sf $(DIR_APP)/ /usr/src/v4l-dvb -# @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/vdr b/lfs/vdr index af5b92150b..46ea5d3f90 100644 --- a/lfs/vdr +++ b/lfs/vdr @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -38,7 +38,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = vdr PAK_VER = 5 -DEPS = "freefont fontconfig" +DEPS = "freefont" ############################################################################### # Top-level Rules @@ -89,7 +89,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - + + # Install obsolete V4L1 videodev header. + cp $(DIR_SRC)/config/include/obsolete_videodev.h /usr/include/linux/videodev.h + # Accept also DVB_API_VERSION 5 cd $(DIR_APP) && sed -i -e "s|DVB_API_VERSION != 3|& \&\& DVB_API_VERSION != 5|g" dvbdevice.h @@ -104,6 +107,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP)/PLUGINS/src && tar xvf $(DIR_DL)/$(DL_FILE4) cd $(DIR_APP)/PLUGINS/src && ln -s epgsearch-0.9.24 epgsearch cd $(DIR_APP) && patch -Np1 -i PLUGINS/src/epgsearch/patches/MainMenuHooks-v1_0.patch + cd $(DIR_APP)/PLUGINS/src/epgsearch && sed -i '/include/a #include /' \ + epgsearch.c + cd $(DIR_APP)/PLUGINS/src/epgsearch && patch -Np1 < $(DIR_SRC)/src/patches/vdr-plugin-epgsearch-gcc44.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vdr-1.6.0-gcc44-fixes.patch cd $(DIR_APP) && make VIDEODIR=/var/video plugins $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make VIDEODIR=/var/video vdr $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make DFB_SUPPORT=1 FB_SUPPORT=1 VIDIX_SUPPORT=1 $(MAKETUNING) $(EXTRA_MAKE) @@ -116,5 +123,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) ln -sf ../init.d/vdr /etc/rc.d/rc6.d/K40vdr install -v -m 644 $(DIR_SRC)/config/backup/includes/vdr \ /var/ipfire/backup/addons/includes/vdr + + # Remove obsolete V4L1 videodev header. + rm -f /usr/include/linux/videodev.h + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/videolan b/lfs/videolan deleted file mode 100644 index 17a9f7ac8c..0000000000 --- a/lfs/videolan +++ /dev/null @@ -1,104 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# 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 . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = 0.8.6i -THISAPP = vlc-$(VER) -DL_FILE = $(THISAPP).tar.bz2 -DL_FILE1 = $(THISAPP)-bugfix-080903.patch.bz2 - -DL_FROM = $(URL_IPFIRE) -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) -PROG = videolan -PAK_VER = 5 - -DEPS = "libshout libmpeg2 libmad libdvbpsi directfb ffmpeg faad2" - -############################################################################### -# Top-level Rules -############################################################################### - -objects = $(DL_FILE) $(DL_FILE1) - -$(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE1) = $(DL_FROM)/$(DL_FILE1) - -$(DL_FILE)_MD5 = 3c90520c9f22a68d287458d5a8af989e -$(DL_FILE1)_MD5 = 36ea293b5ebb604778b321b5e3e3cdc4 - -install : $(TARGET) - -check : $(patsubst %,$(DIR_CHK)/%,$(objects)) - -download :$(patsubst %,$(DIR_DL)/%,$(objects)) - -md5 : $(subst %,%_MD5,$(objects)) - -dist: - @$(PAK) - -############################################################################### -# Downloading, checking, md5sum -############################################################################### - -$(patsubst %,$(DIR_CHK)/%,$(objects)) : - @$(CHECK) - -$(patsubst %,$(DIR_DL)/%,$(objects)) : - @$(LOAD) - -$(subst %,%_MD5,$(objects)) : - @$(MD5) - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) - @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - #Apply some patched from videolan 8.6-bugfix branch, - #ignore the error because one patch is already applied - -cd $(DIR_APP) && bzip2 -d -c $(DIR_DL)/$(DL_FILE1) | patch -p1 - cd $(DIR_APP) && ./configure --prefix=/usr --enable-shared --with-ffmpeg-tree=/usr/src/ffmpeg \ - --with-ffmpeg-config=/usr/src/ffmpeg \ - --disable-wxwidgets --disable-skins2 \ - --enable-httpd --enable-pth --enable-shout \ - --enable-smb --enable-cddax --enable-ncurses \ - --enable-a52 --enable-dts --enable-alsa \ - --enable-unicode-utf8 --enable-v4l --enable-vcd \ - --enable-ogg --enable-vorbis --enable-theora \ - --enable-mad --enable-v4l --enable-dvb \ - --with-dvb=/usr/src/v4l-dvb \ - --with-v4l=/usr/src/v4l-dvb \ - --enable-libdvbpsi --enable-faac --enable-mkv \ - --enable-x264 --enable-release --enable-sout \ - --disable-nls --enable-faad \ - --enable-directfb --with-directfb=/usr/src/directfb - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - @rm -rf $(DIR_APP) - @$(POSTBUILD) diff --git a/lfs/w_scan b/lfs/w_scan index e58cf50f4f..7df4b42d85 100644 --- a/lfs/w_scan +++ b/lfs/w_scan @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -25,7 +25,7 @@ include Config -VER = 20080105 +VER = 20121111 THISAPP = w_scan-$(VER) DL_FILE = $(THISAPP).tar.bz2 @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = w_scan -PAK_VER = 1 +PAK_VER = 3 DEPS = "" @@ -45,7 +45,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 9541244559d2da9442a137f7891d45d3 +$(DL_FILE)_MD5 = 30da05747fed9988e11ebc7745f5e71f install : $(TARGET) @@ -78,10 +78,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch < $(DIR_SRC)/src/patches/w_scan-ipfire.patch - cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) - -mkdir -pv /opt/vdr/bin - cd $(DIR_APP) && install -m 755 w_scan /opt/vdr/bin/ - cd $(DIR_APP) && install -m 755 w_scan_start.sh /opt/vdr/bin/w_scan_start + cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && make $(MAKETUNING) + cd $(DIR_APP) && make install + install -m 755 $(DIR_SRC)/config/w_scan/w_scan_start /usr/bin/ @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/wget b/lfs/wget index 0c29155f00..ce55e76f05 100644 --- a/lfs/wget +++ b/lfs/wget @@ -30,11 +30,7 @@ THISAPP = wget-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif +TARGET = $(DIR_INFO)/$(THISAPP) ############################################################################### # Top-level Rules @@ -74,15 +70,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/ --disable-nls --disable-ipv6 - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP)/src && install -m 755 wget /install/initrd/bin -else cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl \ --disable-nls --disable-ipv6 cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install -endif @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/wpa_supplicant b/lfs/wpa_supplicant index f60820692b..1172e602e8 100644 --- a/lfs/wpa_supplicant +++ b/lfs/wpa_supplicant @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2008 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -24,7 +24,7 @@ include Config -VER = 0.7.3 +VER = 2.0 THISAPP = wpa_supplicant-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -41,7 +41,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = f516f191384a9a546e3f5145c08addda +$(DL_FILE)_MD5 = 3be2ebfdcced52e00eda0afe2889839d install : $(TARGET) @@ -75,11 +75,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP)/wpa_supplicant && cp $(DIR_SRC)/config/wpa_supplicant/config ./.config -ifeq "$(MACHINE_TYPE)" "arm" - cd $(DIR_APP)/wpa_supplicant && sed -e "s/^CONFIG_DRIVER_MADWIFI=y/#&/" -i .config -endif cd $(DIR_APP)/wpa_supplicant && sed -e "s/wpa_cli\ dynamic_eap_methods/wpa_cli\ #dynamic_eap_methods/" -i Makefile cd $(DIR_APP)/wpa_supplicant && sed -e "s@/usr/local@/usr@g" -i Makefile - cd $(DIR_APP)/wpa_supplicant && CFLAGS+=-I/usr/src/linux/include make && make install + cd $(DIR_APP)/wpa_supplicant && make && make install @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/lfs/xen-image b/lfs/xen-image index bd46b641ae..1c2624e2e7 100644 --- a/lfs/xen-image +++ b/lfs/xen-image @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2011 IPFire Team # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -29,6 +29,8 @@ VER = ipfire THISAPP = xen-image TARGET = $(DIR_INFO)/$(THISAPP) +KVER2 = `grep "^VER " $(DIR_SRC)/lfs/linux2 | sed "s| ||g" | cut -d"=" -f2` + ############################################################################### # Top-level Rules ############################################################################### @@ -89,8 +91,13 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) tar -C $(MNThdd)/ -xvf /install/cdrom/$(SNAME)-$(VERSION).tlz --lzma \ --exclude=lib/modules* --exclude=boot* - #Install Xen Kernel - tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER)-*.ipfire + #Install legacy Xen Kernel + tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-xen-$(KVER2)-*.ipfire + chroot $(MNThdd) /opt/pakfire/tmp/install.sh + rm -rf $(MNThdd)/opt/pakfire/tmp/* + + #Install pae Kernel + tar -C $(MNThdd)/opt/pakfire/tmp -xvf /install/packages/linux-pae-$(KVER)-*.ipfire chroot $(MNThdd) /opt/pakfire/tmp/install.sh rm -rf $(MNThdd)/opt/pakfire/tmp/* @@ -98,23 +105,30 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) mkdir $(MNThdd)/boot/grub echo "timeout 10" > $(MNThdd)/boot/grub/grub.conf echo "default 0" >> $(MNThdd)/boot/grub/grub.conf - echo "title IPFire (XEN-Kernel)" >> $(MNThdd)/boot/grub/grub.conf - echo " kernel /vmlinuz-$(KVER)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ + echo "title IPFire (legacy XEN-Kernel)" >> $(MNThdd)/boot/grub/grub.conf + echo " kernel /vmlinuz-$(KVER2)-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ >> $(MNThdd)/boot/grub/grub.conf - echo " initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf + echo " initrd /ipfirerd-$(KVER2)-xen.img" >> $(MNThdd)/boot/grub/grub.conf echo "# savedefault 0" >> $(MNThdd)/boot/grub/grub.conf + echo "title IPFire (PAE-Kernel)" >> $(MNThdd)/boot/grub/grub.conf + echo " kernel /vmlinuz-$(KVER)-ipfire-pae root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \ + >> $(MNThdd)/boot/grub/grub.conf + echo " initrd /ipfirerd-$(KVER)-xen.img" >> $(MNThdd)/boot/grub/grub.conf + echo "# savedefault 1" >> $(MNThdd)/boot/grub/grub.conf ln -s grub.conf $(MNThdd)/boot/grub/menu.lst #Copy the meta-info of linux-xen package cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/installed cp -f /install/packages/meta-linux-xen $(MNThdd)/opt/pakfire/db/meta + cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/installed + cp -f /install/packages/meta-linux-pae $(MNThdd)/opt/pakfire/db/meta #Set default configuration echo "LANGUAGE=en" >> $(MNThdd)/var/ipfire/main/settings echo "HOSTNAME=$(SNAME)" >> $(MNThdd)/var/ipfire/main/settings echo "THEME=ipfire" >> $(MNThdd)/var/ipfire/main/settings - touch $(MNThdd)/lib/modules/$(KVER)-ipfire-xen/modules.dep + touch $(MNThdd)/lib/modules/$(KVER2)-ipfire-xen/modules.dep mkdir $(MNThdd)/proc mount --bind /proc $(MNThdd)/proc mount --bind /dev $(MNThdd)/dev @@ -127,7 +141,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) sed -i -e "s|FSTYPE|ext3|g" $(MNThdd)/etc/fstab - chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-xen.img $(KVER)-ipfire-xen + chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER2)-xen.img $(KVER2)-ipfire-xen + chroot $(MNThdd) /sbin/dracut --force --verbose /boot/ipfirerd-$(KVER)-pae.img $(KVER)-ipfire-pae #Remove root / fstab check rm -rf $(MNThdd)/etc/rc.d/rcsysinit.d/S19checkfstab @@ -154,14 +169,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) sed -i -e "s|^thermal|#thermal|g" $(MNThdd)/etc/sysconfig/modules sed -i -e "s|^video|#video|g" $(MNThdd)/etc/sysconfig/modules - #Copy initramdisk, kernel and config - #cp -f $(MNThdd)/boot/ipfirerd-$(KVER)-xen.img \ - # /install/images/$(SNAME)/boot - #cp -f $(MNThdd)/boot/vmlinuz-$(KVER)-ipfire-xen \ - # /install/images/$(SNAME)/boot + # Copy readme and config cp $(DIR_SRC)/config/xen-image/* \ /install/images/$(SNAME) - sed -i -e "s|KVER|$(KVER)|g" /install/images/$(SNAME)/ipfire.cfg # Unmount umount $(MNThdd)/proc diff --git a/lfs/xfsprogs b/lfs/xfsprogs index 0dd83d33af..2a548be832 100644 --- a/lfs/xfsprogs +++ b/lfs/xfsprogs @@ -77,6 +77,9 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i "/include/a #include " \ + libxfs/xfs_ialloc.c quota/quot.c mdrestore/xfs_mdrestore.c \ + rtcp/xfs_rtcp.c cd $(DIR_APP) && make DEBUG=-DNDEBUG INSTALL_USER=root INSTALL_GROUP=root \ LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes" cd $(DIR_APP) && make install diff --git a/lfs/xz b/lfs/xz index 4845227c8d..7a56c727a7 100644 --- a/lfs/xz +++ b/lfs/xz @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -24,14 +24,20 @@ include Config -VER = 4.999.9beta +VER = 5.0.4 THISAPP = xz-$(VER) DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) +ifeq "$(ROOT)" "" + PREFIX = /usr + TARGET = $(DIR_INFO)/$(THISAPP) +else + PREFIX = /tools + TARGET = $(DIR_INFO)/$(THISAPP)-tools +endif ############################################################################### # Top-level Rules @@ -41,8 +47,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = cc4044fcc073b8bcf3164d1d0df82161 - +$(DL_FILE)_MD5 = 741cd3a5f64b23b7bac56ec5b2258715 install : $(TARGET) @@ -72,7 +77,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr + cd $(DIR_APP) && ./configure --prefix=$(PREFIX) cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/zlib b/lfs/zlib index a5a6849acb..0a2977d0d2 100644 --- a/lfs/zlib +++ b/lfs/zlib @@ -24,18 +24,15 @@ include Config -VER = 1.2.3 +VER = 1.2.7 THISAPP = zlib-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) -ifeq "$(LFS_PASS)" "install" - TARGET = $(DIR_INFO)/$(THISAPP)-install -else - TARGET = $(DIR_INFO)/$(THISAPP) -endif -CFLAGS += -fPIC +TARGET = $(DIR_INFO)/$(THISAPP) + +CFLAGS += -fPIC -DPIC ############################################################################### # Top-level Rules @@ -44,7 +41,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = dee233bf288ee795ac96a98cc2e369b6 +$(DL_FILE)_MD5 = 60df6a37c56e7c1366cca812414f7b85 install : $(TARGET) @@ -73,23 +70,16 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) -ifeq "$(LFS_PASS)" "install" - cd $(DIR_APP) && ./configure --prefix=/opt/$(MACHINE)-uClibc - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - chmod -v 644 /opt/$(MACHINE)-uClibc/lib/libz.a -else - cd $(DIR_APP) && ./configure --prefix=/usr --shared --libdir=/lib + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && ./configure --prefix=/usr --shared cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install - rm -v /lib/libz.so - ln -sfv ../../lib/libz.so.1.2.3 /usr/lib/libz.so - cd $(DIR_APP) && make clean - cd $(DIR_APP) && ./configure --prefix=/usr - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - chmod -v 644 /usr/lib/libz.a -endif + + mv -v /usr/lib/libz.so.$(VER) /lib/libz.so.$(VER) + ln -svf libz.so.$(VER) /lib/libz.so.1 + ln -svf libz.so.$(VER) /lib/libz.so + rm -vf /usr/lib/libz.so.1 + rm -vf /usr/lib/libz.so + @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/make.sh b/make.sh index ea908d9480..b92d47a5d2 100755 --- a/make.sh +++ b/make.sh @@ -24,9 +24,9 @@ NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.11" # Version number -CORE="64" # Core Level (Filename) -PAKFIRE_CORE="64" # Core Level (PAKFIRE) +VERSION="2.13" # Version number +CORE="66" # Core Level (Filename) +PAKFIRE_CORE="66" # Core Level (PAKFIRE) GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir @@ -37,12 +37,11 @@ KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` GIT_TAG=$(git tag | tail -1) # Git Tag GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit -TOOLCHAINVER=3 +TOOLCHAINVER=6 BUILDMACHINE=$MACHINE if [ "$MACHINE" = "x86_64" ]; then BUILDMACHINE="i686"; - linux32="linux32"; fi @@ -214,15 +213,10 @@ prepareenv() { mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src - # This is a temporary hack!!! - if [ ! -f /tools/bin/hostname ]; then - cp -f /bin/hostname /tools/bin/hostname 2>/dev/null - fi - # Run LFS static binary creation scripts one by one export CCACHE_DIR=$BASEDIR/ccache export CCACHE_COMPRESS=1 - export CCACHE_HASHDIR=1 + export CCACHE_COMPILERCHECK="none" # Remove pre-install list of installed files in case user erase some files before rebuild rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null @@ -232,7 +226,7 @@ buildtoolchain() { local error=false case "${MACHINE}:$(uname -m)" in # x86 - i586:i586|i586:i686) + i586:i586|i586:i686|i586:x86_64) # These are working. ;; i586:*) @@ -240,7 +234,7 @@ buildtoolchain() { ;; # ARM - armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv7l) + armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l) # These are working. ;; armv5tel:*) @@ -251,34 +245,28 @@ buildtoolchain() { ${error} && \ exiterror "Cannot build ${MACHINE} toolchain on $(uname -m). Please use the download if any." - if [ "$(uname -r | grep ipfire)" ]; then - exiterror "Cannot build toolchain on ipfire. Please use the download." + local gcc=$(type -p gcc) + if [ -z "${gcc}" ]; then + exiterror "Could not find GCC. You will need a working build enviroment in order to build the toolchain." fi LOGFILE="$BASEDIR/log/_build.toolchain.log" export LOGFILE - NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}` - export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1} - ORG_PATH=$PATH - lfsmake1 ccache PASS=1 - lfsmake1 make PASS=1 - lfsmake1 binutils PASS=1 - lfsmake1 gcc PASS=1 - export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH - if [ "${MACHINE_TYPE}" = "arm" ]; then - lfsmake1 linux TOOLS=1 HEADERS=1 - else - lfsmake1 linux-libc-header - fi + + local ORG_PATH=$PATH + export PATH="/tools/ccache/bin:/tools/bin:$PATH" + lfsmake1 ccache PASS=1 + lfsmake1 binutils PASS=1 + lfsmake1 gcc PASS=1 + lfsmake1 linux TOOLS=1 KCFG="-headers" lfsmake1 glibc - lfsmake1 cleanup-toolchain PASS=1 - lfsmake1 fake-environ + lfsmake1 cleanup-toolchain PASS=1 + lfsmake1 binutils PASS=2 + lfsmake1 gcc PASS=2 + lfsmake1 ccache PASS=2 lfsmake1 tcl lfsmake1 expect lfsmake1 dejagnu - lfsmake1 gcc PASS=2 - lfsmake1 binutils PASS=2 - lfsmake1 ccache PASS=2 lfsmake1 ncurses lfsmake1 bash lfsmake1 bzip2 @@ -290,15 +278,15 @@ buildtoolchain() { lfsmake1 grep lfsmake1 gzip lfsmake1 m4 - lfsmake1 make PASS=2 + lfsmake1 make lfsmake1 patch lfsmake1 perl lfsmake1 sed lfsmake1 tar lfsmake1 texinfo - lfsmake1 util-linux - lfsmake1 strip - lfsmake1 cleanup-toolchain PASS=2 + lfsmake1 xz + lfsmake1 fake-environ + lfsmake1 cleanup-toolchain PASS=2 export PATH=$ORG_PATH } @@ -306,17 +294,19 @@ buildbase() { LOGFILE="$BASEDIR/log/_build.base.log" export LOGFILE lfsmake2 stage2 - if [ "${MACHINE_TYPE}" = "arm" ]; then - lfsmake2 linux HEADERS=1 - else - lfsmake2 linux-libc-header - fi + lfsmake2 linux KCFG="-headers" lfsmake2 man-pages lfsmake2 glibc lfsmake2 tzdata - lfsmake2 cleanup-toolchain PASS=3 + lfsmake2 cleanup-toolchain PASS=3 + lfsmake2 zlib lfsmake2 binutils + lfsmake2 gmp + lfsmake2 gmp-compat + lfsmake2 mpfr + lfsmake2 file lfsmake2 gcc + lfsmake2 sed lfsmake2 berkeley lfsmake2 coreutils lfsmake2 iana-etc @@ -324,11 +314,12 @@ buildbase() { lfsmake2 bison lfsmake2 ncurses lfsmake2 procps - lfsmake2 sed lfsmake2 libtool lfsmake2 perl lfsmake2 readline - lfsmake2 zlib + lfsmake2 readline-compat + lfsmake2 pcre + lfsmake2 pcre-compat lfsmake2 autoconf lfsmake2 automake lfsmake2 bash @@ -336,7 +327,6 @@ buildbase() { lfsmake2 diffutils lfsmake2 e2fsprogs lfsmake2 ed - lfsmake2 file lfsmake2 findutils lfsmake2 flex lfsmake2 gawk @@ -348,7 +338,6 @@ buildbase() { lfsmake2 iproute2 lfsmake2 kbd lfsmake2 less - lfsmake2 libaal lfsmake2 make lfsmake2 man lfsmake2 mktemp @@ -356,7 +345,6 @@ buildbase() { lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc - lfsmake2 reiser4progs lfsmake2 shadow lfsmake2 sysklogd lfsmake2 sysvinit @@ -365,6 +353,7 @@ buildbase() { lfsmake2 udev lfsmake2 util-linux lfsmake2 vim + lfsmake2 xz lfsmake2 grub } @@ -382,20 +371,18 @@ buildipfire() { ipfiremake pptp ipfiremake unzip ipfiremake which - ipfiremake xz ipfiremake linux-firmware + ipfiremake dvb-firmwares ipfiremake zd1211-firmware - ipfiremake fw_ath9k_htc + ipfiremake rpi-firmware ipfiremake u-boot - # The xen and PAE kernels are only available for x86 if [ "${MACHINE_TYPE}" != "arm" ]; then - ipfiremake linux KCFG="-xen" - ipfiremake kqemu KCFG="-xen" + + # x86-xen (Legacy XEN) kernel build + ipfiremake linux2 KCFG="-xen" ipfiremake v4l-dvb KCFG="-xen" - ipfiremake madwifi KCFG="-xen" ipfiremake mISDN KCFG="-xen" - ipfiremake dahdi KCFG="-xen" KMOD=1 ipfiremake cryptodev KCFG="-xen" ipfiremake compat-wireless KCFG="-xen" ipfiremake r8169 KCFG="-xen" @@ -404,71 +391,60 @@ buildipfire() { ipfiremake e1000 KCFG="-xen" ipfiremake e1000e KCFG="-xen" ipfiremake igb KCFG="-xen" + + # x86-pae (Native and new XEN) kernel build ipfiremake linux KCFG="-pae" - ipfiremake kqemu KCFG="-pae" ipfiremake kvm-kmod KCFG="-pae" ipfiremake v4l-dvb KCFG="-pae" - ipfiremake madwifi KCFG="-pae" - ipfiremake alsa KCFG="-pae" KMOD=1 ipfiremake mISDN KCFG="-pae" - ipfiremake dahdi KCFG="-pae" KMOD=1 ipfiremake cryptodev KCFG="-pae" ipfiremake compat-wireless KCFG="-pae" -# ipfiremake r8169 KCFG="-pae" -# ipfiremake r8168 KCFG="-pae" -# ipfiremake r8101 KCFG="-pae" - ipfiremake e1000 KCFG="-pae" + ipfiremake r8169 KCFG="-pae" + ipfiremake r8168 KCFG="-pae" + ipfiremake r8101 KCFG="-pae" ipfiremake e1000e KCFG="-pae" ipfiremake igb KCFG="-pae" + + # x86 kernel build ipfiremake linux KCFG="" - ipfiremake v4l-dvb KCFG="" - ipfiremake kqemu KCFG="" ipfiremake kvm-kmod KCFG="" - ipfiremake madwifi KCFG="" - ipfiremake alsa KCFG="" KMOD=1 + ipfiremake v4l-dvb KCFG="" ipfiremake mISDN KCFG="" - ipfiremake dahdi KCFG="" KMOD=1 ipfiremake cryptodev KCFG="" ipfiremake compat-wireless KCFG="" -# ipfiremake r8169 KCFG="" -# ipfiremake r8168 KCFG="" -# ipfiremake r8101 KCFG="" - ipfiremake e1000 KCFG="" + ipfiremake r8169 KCFG="" + ipfiremake r8168 KCFG="" + ipfiremake r8101 KCFG="" ipfiremake e1000e KCFG="" ipfiremake igb KCFG="" + else - # arm-versatile kernel build - ipfiremake linux KCFG="-versatile" - ipfiremake v4l-dvb KCFG="-versatile" - ipfiremake kqemu KCFG="-versatile" - ipfiremake kvm-kmod KCFG="-versatile" - ipfiremake madwifi KCFG="-versatile" - ipfiremake mISDN KCFG="-versatile" - ipfiremake dahdi KCFG="-versatile" KMOD=1 - ipfiremake cryptodev KCFG="-versatile" - ipfiremake compat-wireless KCFG="-versatile" -# ipfiremake r8169 KCFG="-versatile" -# ipfiremake r8168 KCFG="-versatile" -# ipfiremake r8101 KCFG="-versatile" - ipfiremake e1000 KCFG="-versatile" - ipfiremake e1000e KCFG="-versatile" - ipfiremake igb KCFG="-versatile" - # arm-kirkwood kernel build + # arm-rpi (Raspberry Pi) kernel build + ipfiremake linux KCFG="-rpi" + ipfiremake v4l-dvb KCFG="-rpi" + ipfiremake mISDN KCFG="-rpi" NOPCI=1 + ipfiremake cryptodev KCFG="-rpi" + ipfiremake compat-wireless KCFG="-rpi" + + # arm-omap (Panda Board) kernel build + ipfiremake linux KCFG="-omap" + ipfiremake v4l-dvb KCFG="-omap" + ipfiremake mISDN KCFG="-omap" NOPCI=1 + ipfiremake cryptodev KCFG="-omap" + ipfiremake compat-wireless KCFG="-omap" + + # arm-kirkwood (Dreamplug, ICY-Box ...) kernel build ipfiremake linux KCFG="-kirkwood" ipfiremake v4l-dvb KCFG="-kirkwood" - ipfiremake kqemu KCFG="-kirkwood" - ipfiremake kvm-kmod KCFG="-kirkwood" - ipfiremake madwifi KCFG="-kirkwood" ipfiremake mISDN KCFG="-kirkwood" - ipfiremake dahdi KCFG="-kirkwood" KMOD=1 ipfiremake cryptodev KCFG="-kirkwood" ipfiremake compat-wireless KCFG="-kirkwood" -# ipfiremake r8169 KCFG="-kirkwood" -# ipfiremake r8168 KCFG="-kirkwood" -# ipfiremake r8101 KCFG="-kirkwood" - ipfiremake e1000 KCFG="-kirkwood" + ipfiremake r8169 KCFG="-kirkwood" + ipfiremake r8168 KCFG="-kirkwood" + ipfiremake r8101 KCFG="-kirkwood" ipfiremake e1000e KCFG="-kirkwood" ipfiremake igb KCFG="-kirkwood" + fi ipfiremake pkg-config ipfiremake linux-atm @@ -476,7 +452,6 @@ buildipfire() { ipfiremake dracut ipfiremake expat ipfiremake gdbm - ipfiremake gmp ipfiremake pam ipfiremake openssl ipfiremake curl @@ -534,16 +509,16 @@ buildipfire() { ipfiremake mtools ipfiremake initscripts ipfiremake whatmask + ipfiremake libmnl ipfiremake iptables + ipfiremake conntrack-tools ipfiremake libupnp ipfiremake ipaddr - ipfiremake iptstate ipfiremake iputils ipfiremake l7-protocols ipfiremake mISDNuser ipfiremake capi4k-utils ipfiremake hwdata - ipfiremake kudzu ipfiremake logrotate ipfiremake logwatch ipfiremake misc-progs @@ -561,6 +536,7 @@ buildipfire() { ipfiremake Net-IPv4Addr ipfiremake Net_SSLeay ipfiremake IO-Stringy + ipfiremake IO-Socket-SSL ipfiremake Unix-Syslog ipfiremake Mail-Tools ipfiremake MIME-Tools @@ -579,12 +555,19 @@ buildipfire() { ipfiremake python-mechanize ipfiremake python-feedparser ipfiremake python-rssdler + ipfiremake libffi ipfiremake glib ipfiremake GeoIP ipfiremake fwhits ipfiremake noip_updater ipfiremake ntp ipfiremake openssh + ipfiremake fontconfig + ipfiremake dejavu-fonts-ttf + ipfiremake freefont + ipfiremake pixman + ipfiremake cairo + ipfiremake pango ipfiremake rrdtool ipfiremake setserial ipfiremake setup @@ -599,7 +582,6 @@ buildipfire() { ipfiremake traceroute ipfiremake vlan ipfiremake wireless - ipfiremake libsafe ipfiremake pakfire ipfiremake spandsp ipfiremake lzo @@ -609,13 +591,13 @@ buildipfire() { ipfiremake ghostscript ipfiremake foomatic ipfiremake hplip + ipfiremake cifs-utils ipfiremake samba ipfiremake sudo ipfiremake mc ipfiremake wget ipfiremake bridge-utils ipfiremake screen - ipfiremake hddtemp ipfiremake smartmontools ipfiremake htop ipfiremake postfix @@ -642,10 +624,8 @@ buildipfire() { ipfiremake cmake ipfiremake gnump3d ipfiremake libsigc++ - ipfiremake applejuice ipfiremake libtorrent ipfiremake rtorrent - ipfiremake ipfireseeder ipfiremake rsync ipfiremake tcpwrapper ipfiremake libevent @@ -661,7 +641,6 @@ buildipfire() { ipfiremake vsftpd ipfiremake strongswan ipfiremake lsof - ipfiremake centerim ipfiremake br2684ctl ipfiremake pcmciautils ipfiremake lm_sensors @@ -673,7 +652,6 @@ buildipfire() { ipfiremake fbset ipfiremake sdl ipfiremake qemu - ipfiremake qemu-kqemu ipfiremake sane ipfiremake netpbm ipfiremake phpSANE @@ -681,13 +659,10 @@ buildipfire() { ipfiremake nagios ipfiremake nagios_nrpe ipfiremake ebtables - ipfiremake fontconfig - ipfiremake freefont ipfiremake directfb ipfiremake dfb++ ipfiremake faad2 ipfiremake ffmpeg - ipfiremake videolan ipfiremake vdr ipfiremake w_scan ipfiremake icecast @@ -703,6 +678,7 @@ buildipfire() { ipfiremake iw ipfiremake wpa_supplicant ipfiremake hostapd + ipfiremake pycurl ipfiremake urlgrabber ipfiremake syslinux ipfiremake tftpd @@ -715,7 +691,6 @@ buildipfire() { ipfiremake netcat ipfiremake 7zip ipfiremake lynis - ipfiremake splix ipfiremake streamripper ipfiremake sshfs ipfiremake taglib @@ -737,7 +712,6 @@ buildipfire() { ipfiremake nut ipfiremake watchdog ipfiremake libpri - ipfiremake dahdi ipfiremake asterisk ipfiremake lcr ipfiremake usb_modeswitch @@ -763,15 +737,25 @@ buildipfire() { ipfiremake python-progressbar ipfiremake python-xattr ipfiremake intltool - ipfiremake pakfire3-deps ipfiremake transmission ipfiremake dpfhack ipfiremake lcd4linux ipfiremake mtr ipfiremake tcpick ipfiremake minidlna + ipfiremake acpid ipfiremake fping ipfiremake telnet + ipfiremake libgpg-error + ipfiremake libassuan + ipfiremake gpgme + ipfiremake pygpgme + ipfiremake pakfire3 + ipfiremake stress + ipfiremake libstatgrab + ipfiremake sarg + ipfiremake fstrim + ipfiremake sendEmail echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild echo >> $BASEDIR/build/var/ipfire/firebuild @@ -781,11 +765,19 @@ buildipfire() { echo >> $BASEDIR/build/var/ipfire/firebuild cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine - if [ "$GIT_BRANCH" = "master" -o "$GIT_BRANCH" = "next" ]; then - echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_LASTCOMMIT" > $BASEDIR/build/etc/system-release + if [ "$(git status -s | wc -l)" == "0" ]; then + GIT_STATUS="" else - echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH" > $BASEDIR/build/etc/system-release + GIT_STATUS="-dirty" fi + case "$GIT_BRANCH" in + core*|beta?|rc?) + echo "$NAME $VERSION ($MACHINE) - $GIT_BRANCH$GIT_STATUS" > $BASEDIR/build/etc/system-release + ;; + *) + echo "$NAME $VERSION ($MACHINE) - Development Build: $GIT_BRANCH/$GIT_LASTCOMMIT$GIT_STATUS" > $BASEDIR/build/etc/system-release + ;; + esac } buildinstaller() { @@ -796,7 +788,6 @@ buildinstaller() { ipfiremake mbr ipfiremake memtest ipfiremake installer - cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/ installmake strip ipfiremake initrd } @@ -847,6 +838,8 @@ buildpackages() { if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]) && [ "${MACHINE_TYPE}" != "arm" ]; then cp -f $BASEDIR/packages/linux-xen-*.ipfire $LFS/install/packages/ cp -f $BASEDIR/packages/meta-linux-xen $LFS/install/packages/ + cp -f $BASEDIR/packages/linux-pae-*.ipfire $LFS/install/packages/ + cp -f $BASEDIR/packages/meta-linux-pae $LFS/install/packages/ ipfiremake xen-image rm -rf $LFS/install/packages/linux-xen-*.ipfire rm -rf $LFS/install/packages/meta-linux-xen @@ -883,7 +876,7 @@ ipfirepackages() { ipfiremake core-updates local i - for i in $(find $BASEDIR/config/rootfiles/packages{${machine},} -maxdepth 1 -type f); do + for i in $(find $BASEDIR/config/rootfiles/packages{/${MACHINE},} -maxdepth 1 -type f); do i=$(basename ${i}) if [ -e $BASEDIR/lfs/$i ]; then ipfiredist $i @@ -1038,9 +1031,7 @@ toolchain) echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | tee -a $LOGFILE test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \ - build/{bin,etc,usr/bin,usr/local} \ - build/tools/{bin,etc,*-linux-gnu*,include,lib,libexec,sbin,share,var} \ - log >> $LOGFILE + build/tools build/bin/sh log >> $LOGFILE md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \ > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.md5 stdumount diff --git a/src/fake-environ/Makefile b/src/fake-environ/Makefile index a75bdf27f9..3c3a3b42ae 100644 --- a/src/fake-environ/Makefile +++ b/src/fake-environ/Makefile @@ -19,7 +19,7 @@ all: $(LIB) $(CC) $(CFLAGS) -o $@ -c $< $(LIB): $(OBJECTS) - $(CC) $(CFLAGS) -shared -o $@ $? -ldl + $(CC) $(CFLAGS) -shared -o $@ $? -ldl -static-libgcc .PHONY: install install: all diff --git a/src/initscripts/init.d/acpid b/src/initscripts/init.d/acpid new file mode 100644 index 0000000000..bca69c2b70 --- /dev/null +++ b/src/initscripts/init.d/acpid @@ -0,0 +1,44 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/acpid +# +# Description : ACPI daemon init script +# +######################################################################## + +. /etc/sysconfig/rc +. ${rc_functions} + +# Test if ACPI is present +if [ ! -d /proc/acpi ]; then + exit 0 +fi + +case "${1}" in + start) + boot_mesg "Starting ACPI daemon..." + loadproc /usr/sbin/acpid + ;; + + stop) + boot_mesg "Stopping ACPI daemon..." + killproc /usr/sbin/acpid + ;; + + restart) + ${0} stop + sleep 1 + ${0} start + ;; + + status) + statusproc /usr/sbin/acpid + ;; + + *) + echo "Usage: ${0} {start|stop|restart|status}" + exit 1 + ;; +esac + +# End $rc_base/init.d/acpid diff --git a/src/initscripts/init.d/asterisk b/src/initscripts/init.d/asterisk index b3a734b661..aac9a637ef 100644 --- a/src/initscripts/init.d/asterisk +++ b/src/initscripts/init.d/asterisk @@ -23,7 +23,7 @@ case "${1}" in stop) boot_mesg "Stopping Asterisk PBX..." - asterisk -rx "stop gracefully" >/dev/null 2>&1 + asterisk -rx "core stop gracefully" >/dev/null 2>&1 evaluate_retval ;; diff --git a/src/initscripts/init.d/cleanfs b/src/initscripts/init.d/cleanfs index 855e63e7b0..d526c35b2e 100644 --- a/src/initscripts/init.d/cleanfs +++ b/src/initscripts/init.d/cleanfs @@ -90,6 +90,9 @@ case "${1}" in cd /var/lock && find . -type f ! -newer /proc -exec rm -f {} \; || failed=1 + boot_mesg -n " /var/log/updatexlrator" ${NORMAL} + rm -f /var/log/updatexlrator/checkdeaddl.lck + boot_mesg " /var/run" ${NORMAL} cd /var/run && find . ! -type d ! -name utmp ! -newer /proc \ diff --git a/src/initscripts/init.d/cpufreq b/src/initscripts/init.d/cpufreq index 093b8b129d..0d4cdb95b1 100644 --- a/src/initscripts/init.d/cpufreq +++ b/src/initscripts/init.d/cpufreq @@ -20,8 +20,8 @@ case "${1}" in boot_mesg -n "Starting cpufreq... " # try cpufreq hardware depend modules - for i in $(find /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq \ - ! -name speedstep-lib.ko ! -name p4-clockmod.ko | sort -d -r); do + for i in $(find /lib/modules/$(uname -r)/kernel/drivers/cpufreq \ + ! -name speedstep-lib.ko ! -name p4-clockmod.ko ! -name "cpufreq_*" ! -name mperf.ko | sort -d -r); do module=$(basename $i | cut -d. -f1); modprobe $module > /dev/null 2>&1; if [ ${?} = 0 ]; then diff --git a/src/initscripts/init.d/firewall b/src/initscripts/init.d/firewall index 38e67e0856..cc6b6190eb 100644 --- a/src/initscripts/init.d/firewall +++ b/src/initscripts/init.d/firewall @@ -336,7 +336,9 @@ case "$1" in ;; restart) $0 stop + $0 stopovpn $0 start + $0 startovpn ;; *) echo "Usage: $0 {start|stop|reload|restart}" diff --git a/src/initscripts/init.d/firstsetup b/src/initscripts/init.d/firstsetup index b658cfa027..0d3f448c9e 100644 --- a/src/initscripts/init.d/firstsetup +++ b/src/initscripts/init.d/firstsetup @@ -1,4 +1,10 @@ #!/bin/bash + +# Exit if firstsetup was already done... +if [ -e /var/ipfire/main/firstsetup_ok ]; then + exit 0; +fi + # Edit the serial console entry at /etc/inittab matching to console parameter. ser_console() { while test x"$1" != x @@ -27,10 +33,19 @@ if [ "${?}" == "1" ]; then echo Setup not finished. Rebooting ... reboot -f fi + +# plan install pae kernel at next pakfire update if pae is supported +rm -rf /opt/pakfire/db/*/meta-linux-pae +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae + echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae + echo "Release: 0" >> /opt/pakfire/db/installed/meta-linux-pae +fi + echo Restarting udev... killall udevd /sbin/udevd --daemon /sbin/udevadm trigger /sbin/udevadm settle /etc/init.d/sysklogd stop -rm -f /etc/rc.d/rcsysinit.d/S75firstsetup +touch /var/ipfire/main/firstsetup_ok diff --git a/src/initscripts/init.d/fsresize b/src/initscripts/init.d/fsresize index 8913eb991e..3dbd1addd5 100644 --- a/src/initscripts/init.d/fsresize +++ b/src/initscripts/init.d/fsresize @@ -2,11 +2,11 @@ ######################################################################## # Begin $rc_base/init.d/fsresize # -# Description : Resize the /var filesystem +# Description : Resize the root filesystem in the background # # Authors : Arne Fitzenreiter - arne_f@ipfire.org # -# Version : 1.00 +# Version : 1.01 # # Notes : # @@ -17,27 +17,24 @@ case "${1}" in start) - boot_mesg "Mounting root file system in read/write mode ..." - mount -o remount,rw / > /dev/null - evaluate_retval - - boot_mesg "Autoresize /var partition to use the whole drive ..." + boot_mesg "Background Autoresize root partition to use the whole drive" # Detect device ROOT=`mount | grep -m1 " / " | cut -d" " -f1`; DRV=${ROOT::`expr length $ROOT`-1} - boot_mesg " * check filesystem on ${DRV}4 before resize ..." - fsck -f -y ${DRV}4 - boot_mesg " * resize ${DRV}4 ..." - resize2fs -p ${DRV}4 - evaluate_retval + boot_mesg "resize ${DRV}3 ..." + nice -n 19 $0 background ${DRV}3 > /dev/null & + ;; + background) + resize2fs -p $2 # Erase symlink, it should run only once - rm -f /etc/rc.d/rcsysinit.d/S26fsresize + rm -f /etc/rc.d/rcsysinit.d/S42fsresize sync - exit 0; + ;; + *) echo "Usage: ${0} {start}" exit 1 diff --git a/src/initscripts/init.d/halt b/src/initscripts/init.d/halt index f3b016c386..a3005c9903 100644 --- a/src/initscripts/init.d/halt +++ b/src/initscripts/init.d/halt @@ -17,6 +17,20 @@ case "${1}" in stop) + sync && sync + boot_mesg "Remount root readonly..." + mount -f -o remount,ro / > /dev/null 2>&1 + evaluate_retval + + boot_mesg "Prepare for halt..." + sleep 2 + + #Disable all leds at shutdown + for led in $(ls /sys/class/leds); do + echo "none" > /sys/class/leds/$led/trigger + echo "0" > /sys/class/leds/$led/brightness + done + halt -d -f -i -p ;; *) diff --git a/src/initscripts/init.d/hostapd b/src/initscripts/init.d/hostapd index 31083399b1..c0b11e6af6 100644 --- a/src/initscripts/init.d/hostapd +++ b/src/initscripts/init.d/hostapd @@ -3,6 +3,7 @@ . ${rc_functions} CHANNEL="05" +COUNTRY="00" TXPOWER="auto" INTERFACE="blue0" MACMODE="0" @@ -74,6 +75,10 @@ case "${1}" in fi fi + # First reset to World (00) and then set new country + /usr/sbin/iw reg set 00 + /usr/sbin/iw reg set $COUNTRY + /usr/sbin/iwconfig $INTERFACE channel $CHANNEL 2>/dev/null /usr/sbin/iwconfig $INTERFACE txpower $TXPOWER diff --git a/src/initscripts/init.d/ipfireseeder b/src/initscripts/init.d/ipfireseeder deleted file mode 100644 index 5ce5cdf6c0..0000000000 --- a/src/initscripts/init.d/ipfireseeder +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh -######################################################################## -# Begin $rc_base/init.d/ipfireseeder -# -# Description : This is a script that starts the torrent-seeder on your -# local IPFire. -# -# Authors : Michael Tremer (mitch@ipfire.org) -# -# Version : 01.00 -# -# Notes : -# -######################################################################## - -. /etc/sysconfig/rc -. ${rc_functions} - -case "${1}" in - start) - boot_mesg "Starting IPFire Seeder..." - cd /var/log/seeder - # loadproc - screen -dmS seeder /usr/bin/rtorrent -o port_range=35700-35700 \ - -o download_rate=180 -o upload_rate=15 \ - -o min_peers=10 -o max_peers=30 \ - -o min_peers_seed=1 -o max_peers_seed=5 \ - -o max_uploads=3 \ - /var/ipfire/seeder/*.torrent & - evaluate_retval - if ! grep -q "35700:35700" /var/ipfire/xtaccess/config ; then - echo "tcp,0.0.0.0/0,35700:35700,on,0.0.0.0,IPFireSeeder" >> /var/ipfire/xtaccess/config - echo "udp,0.0.0.0/0,35700:35700,on,0.0.0.0,IPFireSeeder" >> /var/ipfire/xtaccess/config - /usr/local/bin/setxtaccess - fi - ;; - - stop) - boot_mesg "Stopping IPFire Seeder..." - killproc /usr/bin/rtorrent - ;; - - reload) - boot_mesg "Reloading IPFire Seeder..." - reloadproc /usr/bin/rtorrent - ;; - - restart) - ${0} stop - sleep 1 - ${0} start - ;; - - status) - statusproc /usr/bin/rtorrent - ;; - - *) - echo "Usage: ${0} {start|stop|reload|restart|status}" - exit 1 - ;; -esac - -# End $rc_base/init.d/ipfireseeder diff --git a/src/initscripts/init.d/lcr b/src/initscripts/init.d/lcr index 56a4553dcd..dd72967528 100644 --- a/src/initscripts/init.d/lcr +++ b/src/initscripts/init.d/lcr @@ -18,7 +18,7 @@ case "${1}" in start) boot_mesg "Starting Linux Call Router..." - nice --10 /usr/sbin/lcr fork >> /var/log/lcr 2>&1 + nice --10 /usr/sbin/lcr fork >> /var/log/lcr/console.log 2>&1 evaluate_retval ;; diff --git a/src/initscripts/init.d/leds b/src/initscripts/init.d/leds index 4e678c5e7c..3bd27a473e 100644 --- a/src/initscripts/init.d/leds +++ b/src/initscripts/init.d/leds @@ -9,62 +9,103 @@ . /etc/sysconfig/rc . ${rc_functions} +if [ -e /etc/init.d/leds.user ]; then + /etc/init.d/leds.user $* + exit ${?} +fi + # Load ethernet settings eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) -setup_red_modem() { - local led1=${1} - local led2=${2} - - modprobe ledtrig-netdev +if [ "${RED_DEV}" == "" ]; then + RED_DEV=ppp0 +fi - local i - for i in ${led1} ${led2}; do - echo "netdev" > ${i}/trigger - echo "${RED_DEV}" > ${i}/device_name - done +# setup_netdev_trigger LED DEVICE MODE +setup_netdev_trigger () +{ + if [ -d "/sys/class/leds/$1" ]; then + modprobe -q ledtrig-netdev 2>&1 > /dev/null + echo "netdev" > /sys/class/leds/$1/trigger + echo "$2" > /sys/class/leds/$1/device_name + echo "$3 $4" > /sys/class/leds/$1/mode + fi +} - echo "rx" > ${led1}/mode - echo "tx" > ${led2}/mode +# setup_netdev_trigger LED +setup_heartbeat_trigger () +{ + if [ -d "/sys/class/leds/$1" ]; then + modprobe -q ledtrig-heartbeat 2>&1 > /dev/null + echo "heartbeat" > /sys/class/leds/$1/trigger + fi } -reset_trigger() { - [ -d "${1}" ] || return 0 - echo "none" > ${1}/trigger +# disable_led_trigger LED +disable_led_trigger () +{ + if [ -d "/sys/class/leds/$1" ]; then + echo "none" > /sys/class/leds/$1/trigger + echo "0" > /sys/class/leds/$1/brightness + fi } -start_alix2() { - modprobe -q leds-alix2 &>/dev/null +case "${1}" in + start) + # Alix LED start + setup_heartbeat_trigger alix:1 + setup_netdev_trigger alix:2 ${RED_DEV} rx + setup_netdev_trigger alix:3 ${RED_DEV} tx - local i - for i in 1 2 3; do - if [ ! -d "/sys/class/leds/alix:${i}" ]; then - return 1 - fi - done + # Dreamplug + setup_netdev_trigger dreamplug:green:wlan ${GREEN_DEV} tx rx + setup_netdev_trigger dreamplug:blue:wlanap ${BLUE_DEV} tx rx + setup_netdev_trigger dreamplug:blue:bluetooth ${RED_DEV} tx rx - setup_red_modem /sys/class/leds/alix:2 /sys/class/leds/alix:3 -} + # Iomega iConnect start + setup_heartbeat_trigger iconnect:blue:otb + setup_netdev_trigger iconnect:blue:power ${RED_DEV} rx + setup_netdev_trigger iconnect:red:power ${RED_DEV} tx + setup_netdev_trigger iconnect:blue:usb_2 ${GREEN_DEV} tx rx + setup_netdev_trigger iconnect:blue:usb_3 ${BLUE_DEV} tx rx + setup_netdev_trigger iconnect:blue:usb_4 ${ORANGE_DEV} tx rx -stop_alix2() { - local i - for i in 1 2 3; do - reset_trigger /sys/class/leds/alix:${i} - done -} + # ICY Box LED start + setup_netdev_trigger nas6210:red:power ${RED_DEV} tx rx + setup_netdev_trigger nas6210:red:usb_copy ${GREEN_DEV} tx rx + + exit 0 + ;; + + stop) + # Alix LED stop + disable_led_trigger alix:1 + disable_led_trigger alix:2 + disable_led_trigger alix:3 + + # Dreamplug + disable_led_trigger dreamplug:green:wlan + disable_led_trigger dreamplug:blue:wlanap + disable_led_trigger dreamplug:blue:bluetooth + + # Iomega iConnect stop (heartbeat will leave on) + disable_led_trigger iconnect:blue:power + disable_led_trigger iconnect:red:power + disable_led_trigger iconnect:blue:usb_2 + disable_led_trigger iconnect:blue:usb_3 + disable_led_trigger iconnect:blue:usb_4 + + # ICY Box LED stop + disable_led_trigger nas6210:red:power + disable_led_trigger nas6210:red:usb_copy -case "${1}" in - start|stop) - for i in alix2; do - ${1}_${i} - done exit 0 - ;; + ;; *) echo "Usage: ${0} {start|stop}" exit 1 - ;; + ;; esac # End $rc_base/init.d/leds diff --git a/src/initscripts/init.d/minidlna b/src/initscripts/init.d/minidlna old mode 100755 new mode 100644 diff --git a/src/initscripts/init.d/mountfs b/src/initscripts/init.d/mountfs index 01ecafde8c..d4735d596a 100644 --- a/src/initscripts/init.d/mountfs +++ b/src/initscripts/init.d/mountfs @@ -42,13 +42,17 @@ case "${1}" in stop) boot_mesg "Syncing discs..." sync && sync + sleep 2 + sync && sync evaluate_retval boot_mesg "Unmounting all other currently mounted file systems..." umount -a -d -r &>/dev/null evaluate_retval - ;; + # mount /sys again for led control at halt + mount /sys 2>&1 >/dev/null + ;; *) echo "Usage: ${0} {start|stop}" exit 1 diff --git a/src/initscripts/init.d/network b/src/initscripts/init.d/network index 9de3994cd3..9ff2200115 100644 --- a/src/initscripts/init.d/network +++ b/src/initscripts/init.d/network @@ -28,6 +28,9 @@ init_networking() { (exit ${failed}) evaluate_retval + # Enable netfilter accounting + sysctl net.netfilter.nf_conntrack_acct=1 > /dev/null + if [ -e /var/ipfire/main/disable_nf_sip ]; then rmmod nf_nat_sip rmmod nf_conntrack_sip diff --git a/src/initscripts/init.d/network-vlans b/src/initscripts/init.d/network-vlans old mode 100755 new mode 100644 diff --git a/src/initscripts/init.d/networking/dhcpcd.exe b/src/initscripts/init.d/networking/dhcpcd.exe index d61c3d5f02..a7bad47b50 100644 --- a/src/initscripts/init.d/networking/dhcpcd.exe +++ b/src/initscripts/init.d/networking/dhcpcd.exe @@ -64,8 +64,8 @@ dhcpcd_up() echo -n "$new_ip_address" > /var/ipfire/red/local-ipaddress #Get default gateway - grep -v " gateway$" /etc/hosts > /tmp/hosts - echo "$new_routers gateway" >> /tmp/hosts + grep -v -E "\" /etc/hosts > /tmp/hosts + echo "$new_routers gateway" >> /tmp/hosts mv /tmp/hosts /etc/hosts fi diff --git a/src/initscripts/init.d/networking/red b/src/initscripts/init.d/networking/red index 2b342c8a03..421c6f6842 100644 --- a/src/initscripts/init.d/networking/red +++ b/src/initscripts/init.d/networking/red @@ -120,8 +120,8 @@ case "${1}" in echo -n "${DEVICE}" > /var/ipfire/red/iface echo -n "${ADDRESS}" > /var/ipfire/red/local-ipaddress echo -n "${GATEWAY}" > /var/ipfire/red/remote-ipaddress - grep -v "gateway" /etc/hosts > /tmp/hosts - echo "$GATEWAY gateway" >> /tmp/hosts + grep -v -E "\" /etc/hosts > /tmp/hosts + echo "$GATEWAY gateway" >> /tmp/hosts mv /tmp/hosts /etc/hosts echo -n "${DNS1}" > /var/ipfire/red/dns1 echo -n "${DNS2}" > /var/ipfire/red/dns2 diff --git a/src/initscripts/init.d/networking/red.up/01-conntrack-cleanup b/src/initscripts/init.d/networking/red.up/01-conntrack-cleanup new file mode 100644 index 0000000000..4bb43b9ed5 --- /dev/null +++ b/src/initscripts/init.d/networking/red.up/01-conntrack-cleanup @@ -0,0 +1,25 @@ +#!/bin/bash +############################################################################ +# conntrack-cleanup - remove conntrack entries with the last red ipaddress # +############################################################################ +# + +curr_ip=`cat /var/ipfire/red/local-ipaddress 2>/dev/null` +last_ip=`cat /var/lock/last-ipaddress 2>/dev/null` + +if [ "$curr_ip" == "$last_ip" ]; then + exit 0 +fi + +if [ -z "$curr_ip" ]; then + echo ERROR: cannot read current IP. + exit 1 +fi + +if [ ! -z "$last_ip" ]; then + conntrack -D -s $last_ip 2>&1 > /dev/null + conntrack -D -d $last_ip 2>&1 > /dev/null + conntrack -D -r $last_ip 2>&1 > /dev/null + conntrack -D -q $last_ip 2>&1 > /dev/null +fi +echo $curr_ip > /var/lock/last-ipaddress diff --git a/src/initscripts/init.d/networking/red.up/98-leds b/src/initscripts/init.d/networking/red.up/98-leds new file mode 100644 index 0000000000..825b46f6c6 --- /dev/null +++ b/src/initscripts/init.d/networking/red.up/98-leds @@ -0,0 +1,3 @@ +#!/bin/bash +/etc/init.d/leds start &>/dev/null +exit 0 diff --git a/src/initscripts/init.d/partresize b/src/initscripts/init.d/partresize index 8eddc46c37..33b56266a4 100644 --- a/src/initscripts/init.d/partresize +++ b/src/initscripts/init.d/partresize @@ -2,11 +2,11 @@ ######################################################################## # Begin $rc_base/init.d/partresize # -# Description : Resize the /var partition to the drivesize +# Description : Resize the root partition to the drivesize # # Authors : Arne Fitzenreiter - arne_f@ipfire.org # -# Version : 1.00 +# Version : 1.01 # # Notes : # @@ -24,10 +24,14 @@ case "${1}" in # Detect device ROOT=`mount | grep -m1 " / " | cut -d" " -f1`; - DRV=${ROOT::`expr length $ROOT`-1} - - boot_mesg "Change Partition 4 to all free space ..." - echo -e 'd\n4\nn\np\n4\n\n\nw\nq\n' | fdisk ${DRV} + if [ "${ROOT:`expr length $ROOT`-2:1}" == "p" ]; then + DRV=${ROOT::`expr length $ROOT`-2} + else + DRV=${ROOT::`expr length $ROOT`-1} + fi + + boot_mesg "Change Partition ${DRV}3 to all free space ..." + echo -e 'd\n3\nn\np\n3\n\n\nw\nq\n' | fdisk ${DRV} # Erase symlink, it should run only once rm -f /etc/rc.d/rcsysinit.d/S25partresize diff --git a/src/initscripts/init.d/reboot b/src/initscripts/init.d/reboot index fec0c1f6f6..0602ac4e34 100644 --- a/src/initscripts/init.d/reboot +++ b/src/initscripts/init.d/reboot @@ -17,7 +17,12 @@ case "${1}" in stop) - boot_mesg "Restarting system..." + sync && sync + boot_mesg "Remount root readonly..." + mount -f -o remount,ro / > /dev/null 2>&1 + evaluate_retval + boot_mesg "Prepare for reboot..." + sleep 2 reboot -d -f -i ;; diff --git a/src/initscripts/init.d/sendsignals b/src/initscripts/init.d/sendsignals index 1f5e07efad..58c16c3b42 100644 --- a/src/initscripts/init.d/sendsignals +++ b/src/initscripts/init.d/sendsignals @@ -23,7 +23,7 @@ case "${1}" in sleep ${KILLDELAY} - if [ "${error_value}" = 0 ]; then + if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then echo_ok else echo_failure @@ -35,7 +35,7 @@ case "${1}" in sleep ${KILLDELAY} - if [ "${error_value}" = 0 ]; then + if [ "${error_value}" = 0 -o "${error_value}" = 2 ]; then echo_ok else echo_failure diff --git a/src/initscripts/init.d/setclock b/src/initscripts/init.d/setclock index 908d4906ab..661e944a42 100644 --- a/src/initscripts/init.d/setclock +++ b/src/initscripts/init.d/setclock @@ -19,8 +19,26 @@ CLOCKPARAMS= case ${1} in start) + boot_mesg "Setting system clock..." + + # udev not create the rtc symlink if rtc is in the kernel + if [ ! -e /dev/rtc ]; then + if [ -e /dev/rtc0 ]; then + ln -s rtc0 /dev/rtc + fi + fi + hwclock --hctosys ${CLOCKPARAMS} &>/dev/null + if [ ! ${?} == 0 ]; then + if [ -s /var/log/messages ]; then + boot_mesg -n "No RTC found, set time to last log accesstime ... " + DATE=`stat --format "%y" /var/log/messages | cut -d" " -f1` + TIME=`stat --format "%y" /var/log/messages | sed -e "s|\..*||g" | cut -d" " -f2` + date -s $DATE > /dev/null + date -s $TIME + fi + fi evaluate_retval ;; @@ -31,7 +49,7 @@ case ${1} in ;; *) - echo "Usage: ${0} {start}" + echo "Usage: ${0} {start} {stop}" ;; esac diff --git a/src/initscripts/init.d/tmpfs b/src/initscripts/init.d/tmpfs index 0e5a1e1e46..848dec6ad4 100644 --- a/src/initscripts/init.d/tmpfs +++ b/src/initscripts/init.d/tmpfs @@ -43,10 +43,6 @@ case "$1" in mkdir -p /var/run/mysql chown mysql:mysql /var/run/mysql fi - if [ ! -e /var/run/pluto ]; then - mkdir -p /var/run/pluto - chmod 700 /var/run/pluto - fi if [ ! -e /var/run/saslauthd ]; then mkdir -p /var/run/saslauthd fi diff --git a/src/initscripts/init.d/transmission b/src/initscripts/init.d/transmission index 2ad7d48bb4..6fd7cd5334 100644 --- a/src/initscripts/init.d/transmission +++ b/src/initscripts/init.d/transmission @@ -18,12 +18,16 @@ case "${1}" in start) boot_mesg "Starting transmission daemon..." - transmission-daemon -g /etc/transmission + chown -R nobody /etc/transmission + chown -R nobody /var/transmission + sudo -u nobody transmission-daemon -g /etc/transmission + evaluate_retval ;; stop) boot_mesg "Stopping transmission daemon..." killall transmission-daemon + evaluate_retval ;; restart) diff --git a/src/initscripts/sysconfig/rc.local b/src/initscripts/sysconfig/rc.local index 5b89b8279f..83ea8e7039 100644 --- a/src/initscripts/sysconfig/rc.local +++ b/src/initscripts/sysconfig/rc.local @@ -20,8 +20,3 @@ ############################################################################### # Used for private calls after boot # ############################################################################### - -# power button shutdown -if grep -q '^button' /proc/modules ; then - ( head -1 /proc/acpi/event | grep -q 'button/power PWRF' && poweroff ) & -fi diff --git a/src/install+setup/install/Makefile b/src/install+setup/install/Makefile index a3c95f7515..89106de228 100644 --- a/src/install+setup/install/Makefile +++ b/src/install+setup/install/Makefile @@ -21,10 +21,10 @@ CC = gcc CFLAGS = -Os -Wall -INCLUDE = -I/opt/i586-uClibc/include +INCLUDE = LD = gcc -LDFLAGS = -L/install/lib +LDFLAGS = LIBS = -lnewt -lslang -lpci COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS) diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index daa1c3f26f..bf0a356e10 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -12,8 +12,9 @@ #include "install.h" #define _GNU_SOURCE -#define INST_FILECOUNT 10700 +#define INST_FILECOUNT 14400 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf" +#define LICENSE_FILE "/cdrom/COPYING" #define EXT2 0 #define EXT3 1 @@ -34,6 +35,7 @@ extern char *en_tr[]; extern char *es_tr[]; extern char *de_tr[]; extern char *fr_tr[]; +extern char *nl_tr[]; extern char *pl_tr[]; extern char *ru_tr[]; @@ -42,11 +44,12 @@ int main(int argc, char *argv[]) char discl_msg[40000] = "Disclaimer\n"; - char *langnames[] = { "Deutsch", "English", "Français", "Español", "Polski", "Русский", NULL }; - char *shortlangnames[] = { "de", "en", "fr", "es", "pl", "ru", NULL }; - char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, pl_tr, ru_tr, NULL }; + char *langnames[] = { "Deutsch", "English", "Français", "Español", "Nederlands", "Polski", "Русский", NULL }; + char *shortlangnames[] = { "de", "en", "fr", "es", "nl", "pl", "ru", NULL }; + char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, nl_tr, pl_tr, ru_tr, NULL }; char hdletter; char harddrive[30], sourcedrive[5]; /* Device holder. */ + char harddrive_info[STRING_SIZE]; /* Additional infos about target */ struct devparams hdparams, cdromparams; /* Params for CDROM and HD */ int rc = 0; char commandstring[STRING_SIZE]; @@ -56,7 +59,6 @@ int main(int argc, char *argv[]) int choice; int i; int found = 0; - int firstrun = 0; char shortlangname[10]; char message[1000]; char title[STRING_SIZE]; @@ -120,19 +122,9 @@ int main(int argc, char *argv[]) } } - // Read gpl ... - if (! (copying = fopen("/COPYING", "r"))) - { - fprintf(flog, "Couldn't open gpl (/COPYING)\n"); - sprintf(discl_msg, "Couldn't open gpl (/COPYING)\n"); - } else { - fread(discl_msg, 1, 40000, copying); - fclose(copying); - } - // Load common modules mysystem("/sbin/modprobe iso9660"); // CDROM - mysystem("/sbin/modprobe ext2"); // Boot patition +// mysystem("/sbin/modprobe ext2"); // Boot patition mysystem("/sbin/modprobe vfat"); // USB key /* German is the default */ @@ -157,11 +149,6 @@ int main(int argc, char *argv[]) if (!unattended) { sprintf(message, ctr[TR_WELCOME], NAME); newtWinMessage(title, ctr[TR_OK], message); - - if (disclaimerbox(discl_msg)==0) { - errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]); - goto EXIT; - } } mysystem("/bin/mountsource.sh"); @@ -178,7 +165,23 @@ int main(int argc, char *argv[]) fgets(sourcedrive, 5, handle); fprintf(flog, "Source drive: %s\n", sourcedrive); fclose(handle); - + + if (!unattended) { + // Read the license file. + if (!(copying = fopen(LICENSE_FILE, "r"))) { + sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE); + fprintf(flog, discl_msg); + } else { + fread(discl_msg, 1, 40000, copying); + fclose(copying); + + if (disclaimerbox(discl_msg)==0) { + errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]); + goto EXIT; + } + } + } + i = 0; while (found == 0) { i++; @@ -201,13 +204,8 @@ int main(int argc, char *argv[]) found = 1; break; case 10: // No harddisk found - if (firstrun == 1) { - errorbox(ctr[TR_NO_HARDDISK]); - goto EXIT; - } - // Do this if the kudzu-scan fails... - runcommandwithstatus("/bin/probehw.sh deep-scan", ctr[TR_PROBING_HARDWARE]); - firstrun = 1; + errorbox(ctr[TR_NO_HARDDISK]); + goto EXIT; } } @@ -217,6 +215,12 @@ int main(int argc, char *argv[]) } fgets(harddrive, 30, handle); fclose(handle); + if ((handle = fopen("/tmp/dest_device_info", "r")) == NULL) { + sprintf(harddrive_info, "%s", harddrive); + } + fgets(harddrive_info, 70, handle); + fclose(handle); + /* load unattended configuration */ if (unattended) { @@ -240,7 +244,7 @@ int main(int argc, char *argv[]) fprintf(flog, "Destination drive: %s\n", hdparams.devnode_disk); - sprintf(message, ctr[TR_PREPARE_HARDDISK], hdparams.devnode_disk); + sprintf(message, ctr[TR_PREPARE_HARDDISK], harddrive_info); if (unattended) { hardyn = 1; } else { @@ -273,7 +277,7 @@ int main(int argc, char *argv[]) ctr[TR_CANCEL], NULL); } else { rc = 1; - fstype = EXT3; + fstype = EXT4; } if (rc == 2) goto EXIT; @@ -327,7 +331,7 @@ int main(int argc, char *argv[]) /* Calculating the amount of free space */ - boot_partition = 20; /* in MB */ + boot_partition = 64; /* in MB */ system_partition = disk - ( root_partition + swap_file + boot_partition ); fprintf(flog, ", boot = %ld, swap = %ld, mylog = %ld, root = %ld\n", @@ -373,18 +377,18 @@ int main(int argc, char *argv[]) errorbox(ctr[TR_UNABLE_TO_PARTITION]); goto EXIT; } - + if (fstype == EXT2) { - mysystem("/sbin/modprobe ext2"); +// mysystem("/sbin/modprobe ext2"); sprintf(mkfscommand, "/sbin/mke2fs -T ext2"); } else if (fstype == REISERFS) { mysystem("/sbin/modprobe reiserfs"); sprintf(mkfscommand, "/sbin/mkreiserfs -f"); } else if (fstype == EXT3) { - mysystem("/sbin/modprobe ext3"); +// mysystem("/sbin/modprobe ext3"); sprintf(mkfscommand, "/sbin/mke2fs -T ext3"); } else if (fstype == EXT4) { - mysystem("/sbin/modprobe ext4"); +// mysystem("/sbin/modprobe ext4"); sprintf(mkfscommand, "/sbin/mke2fs -T ext4"); } @@ -510,6 +514,15 @@ int main(int argc, char *argv[]) system("/bin/sed -e 's#/harddisk#/#g' -e 's#//#/#g' < /proc/mounts > /harddisk/etc/mtab"); + /* + * Generate device.map to help grub finding the device to install itself on. + */ + FILE *f = NULL; + if (f = fopen("/harddisk/boot/grub/device.map", "w")) { + fprintf(f, "(hd0) %s\n", hdparams.devnode_disk); + fclose(f); + } + snprintf(commandstring, STRING_SIZE, "/usr/sbin/chroot /harddisk /usr/sbin/grub-install --no-floppy %s", hdparams.devnode_disk); if (runcommandwithstatus(commandstring, ctr[TR_INSTALLING_GRUB])) { @@ -583,12 +596,6 @@ EXIT: fclose(flog); newtFinished(); - if (unattended) { - // Remove Setup autorun after boot - if (system("rm -f /harddisk/etc/rc.d/rcsysinit.d/S75firstsetup")) - printf("Unable to disable setup autorun.\n"); - } - if (system("/bin/umount /harddisk/proc")) printf("Unable to umount /harddisk/proc.\n"); } else { diff --git a/src/install+setup/install/mountdest.sh b/src/install+setup/install/mountdest.sh index 00243a99b2..e28a0689bd 100644 --- a/src/install+setup/install/mountdest.sh +++ b/src/install+setup/install/mountdest.sh @@ -1,8 +1,7 @@ -#!/bin/sh ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2013 IPFire Team # # # # 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 # @@ -19,131 +18,125 @@ # # ############################################################################### +# Set histchars to an empty string so we are able to replace an +# exclamation mark. +histchars= + echo "Scanning for possible destination drives" -# scan IDE devices -echo "--> IDE" -for DEVICE in $(kudzu -qps -t 30 -c HD -b IDE | grep device: | cut -d ' ' -f 2 | sort | uniq); do - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 0 # IDE / use DEVICE for grub - fi -done +function _mount() { + local what=${1} + + # Don't mount if the device does not exist. + [ -e "${what}" ] || return 1 + + mount ${what} /harddisk 2>/dev/null +} + +function _umount() { + umount -l /harddisk 2>/dev/null +} + +function check_source_drive() { + local device="/dev/${1}" + + local ret=1 + local dev + for dev in ${device} ${device}1; do + # Mount the device (if possible). + _mount ${dev} || continue -# scan USB/SCSI devices -echo "--> USB/SCSI" -for DEVICE in $(kudzu -qps -t 30 -c HD -b SCSI | grep device: | cut -d ' ' -f 2 | sort | uniq); do - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE} /harddisk 2> /dev/null if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 1 # SCSI/USB (always use /dev/sda as bootdevicename) - fi + ret=0 fi -done -# scan RAID devices -echo "--> RAID" -for DEVICE in $(kudzu -qps -t 30 -c HD -b RAID | grep device: | cut -d ' ' -f 2 | sort | uniq); do - if [ "$(grep ${DEVICE}p1 /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}p1 is empty - SKIP" + _umount + + # Stop if the device has been detected as a source drive. + [ "${ret}" = "0" ] && break + done + + return ${ret} +} + +for path in /sys/block/*; do + device=$(basename ${path}) + + # Skip devices which cannot be used. + case "${device}" in + # Virtual devices. + loop*|ram*) continue - fi - mount /dev/${DEVICE}p1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}p1 is source drive - SKIP" + ;; + # Floppy. + fd*) continue - else - umount /harddisk 2> /dev/null - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - mount /dev/${DEVICE} /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is source drive - SKIP" - continue - else - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 2 # Raid ( /dev/device/diskx ) - fi - fi - fi -done - -# Virtio devices -echo "--> Virtio" -for DEVICE in vda vdb vdc vdd; do - if [ ! -e /dev/${DEVICE} ]; then + ;; + # Cd/Tape. + sr*) continue - else - if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is empty - SKIP" - continue - fi - mount /dev/${DEVICE} /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE} is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - mount /dev/${DEVICE}1 /harddisk 2> /dev/null - if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then - umount /harddisk 2> /dev/null - echo "${DEVICE}1 is source drive - SKIP" - continue - else - umount /harddisk 2> /dev/null - echo -n "$DEVICE" > /tmp/dest_device - echo "${DEVICE} - yes, it is our destination" - exit 0 # like ide / use device for grub - fi - fi + ;; + esac + + # Replace any exclamation marks (e.g. cciss!c0d0). + device_=${device//!/\/} + + # Guess if this could be a raid device. + for dev in ${device_} ${device_}p1; do + if [ -e "/dev/${dev}" ]; then + device=${dev} + break fi -done + done + # Check if user want skip by commandline + if [ "$(grep "skipdst=${device_}" /proc/cmdline)" ]; then + echo "${device_} was skipped via cmdline." + continue + fi + + echo "Checking ${device_}" + if check_source_drive ${device_}; then + echo " is source drive - skipping" + continue + fi + + device_size=$(cat /sys/block/${device}/size) + if [ "${device_size}" = "0" ]; then + echo " is empty - skipping" + continue + fi + + # Found it. + echo " OK, this is it..." + echo -n "${device_}" > /tmp/dest_device + + # Disk size to GiB. + device_size=$(( ${device_size} / 2097152 )) + + # Build string with drive details + device_str="/dev/${device_} - ${device_size} GiB -" + device_str="${device_str} $(cat /sys/block/${device}/device/vendor)" + device_str="${device_str} $(cat /sys/block/${device}/device/model)" + + # Remove all whitespace. + device_str=$(echo ${device_str}) + + echo -n "${device_str}" > /tmp/dest_device_info + + # Exit code table: + # 1: sda + # 2: RAID + # 10: nothing found + case "${device_}" in + *p1|*c0d0) + exit 2 + ;; + *) + exit 1 + ;; + esac +done -exit 10 # Nothing found +# Nothing found. +exit 10 diff --git a/src/install+setup/install/mountsource.sh b/src/install+setup/install/mountsource.sh index 6813758778..fbaec7e6e4 100644 --- a/src/install+setup/install/mountsource.sh +++ b/src/install+setup/install/mountsource.sh @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2012 IPFire Team # # # # 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 # @@ -21,8 +21,9 @@ echo "Scanning source media" -# scan CDROM devices -for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sort | uniq); do +# scan all Block devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;` +do mount /dev/${DEVICE} /cdrom 2> /dev/null if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then echo -n ${DEVICE} > /tmp/source_device @@ -34,9 +35,10 @@ for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sor umount /cdrom 2> /dev/null done -# scan HD device part1 (usb sticks, etc.) -for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do - for DEVICEP in $(ls /dev/${DEVICE}? | sed "s/\/dev\///");do +# scan all Partitions on block devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;` +do + for DEVICEP in $(ls /dev/${DEVICE}? | sed "s/\/dev\///" 2> /dev/null);do mount /dev/${DEVICEP} /cdrom 2> /dev/null if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then echo -n ${DEVICEP} > /tmp/source_device @@ -49,17 +51,20 @@ for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | done done -# scan HD device unpart (usb sticks, etc.) -for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do - mount /dev/${DEVICE} /cdrom 2> /dev/null +# scan all Partitions on raid/mmc devices +for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;` +do + for DEVICEP in $(ls /dev/${DEVICE}p? | sed "s/\/dev\///");do + mount /dev/${DEVICEP} /cdrom 2> /dev/null if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then - echo -n ${DEVICE} > /tmp/source_device - echo "Found tarball on ${DEVICE}" + echo -n ${DEVICEP} > /tmp/source_device + echo "Found tarball on ${DEVICEP}" exit 0 else - echo "Found no tarballs on ${DEVICE} - SKIP" + echo "Found no tarballs on ${DEVICEP} - SKIP" fi umount /cdrom 2> /dev/null + done done exit 10 diff --git a/src/install+setup/install/probehw.sh b/src/install+setup/install/probehw.sh deleted file mode 100644 index c56462ee1d..0000000000 --- a/src/install+setup/install/probehw.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # -# # -# 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 . # -# # -############################################################################### - -echo "Detecting Hardware..." -for MODULE in $(kudzu -qps -t 30 | grep driver: | cut -d ' ' -f 2 | sort | uniq); do - if [ "${MODULE}" = "unknown" ] || \ - [ "${MODULE}" = "ignore" ] || \ - [ "${MODULE}" = "" ]; then - continue - fi - MODULE=$(find /lib/modules -name $(echo $MODULE | sed -e 's/[_-]/*/g')* 2>/dev/null) - [ "${MODULE}" == "" ] && continue - MODULE=$(basename $MODULE | cut -d. -f1 | head -1) - - if grep -Eqe "^${MODULE} " /proc/modules; then - continue - fi - echo -n "Loading ${MODULE}" - modprobe ${MODULE} >/dev/null 2>&1 - echo " --> ecode: $?" -done - -sleep 10 - -if [ $# -eq 0 ]; then - exit 0 -fi - -## If the autodetection fails we will try to load every module... -## Do this only when we want... - -for i in a b c d e f g; do - if [ ! -e /dev/sd$i ]; then - DEVICE="/dev/sd$i" - echo "Checking for: $DEVICE" - break - fi -done - -for MODULE in $(ls /lib/modules/*/kernel/drivers/ata && ls /lib/modules/*/kernel/drivers/scsi); do - MODULE=`basename $MODULE | awk -F. '{ print $1 }'` - - echo -n "Probing for $MODULE" - modprobe $MODULE >/dev/null 2>&1 - RETVAL=$? - echo " --> ecode: $RETVAL" - if [ "$RETVAL" -eq "0" ]; then - sleep 3 - if [ -e "$DEVICE" ]; then - break - fi - fi - -done - -sleep 5 - -exit 0 diff --git a/src/install+setup/install/probenic.sh b/src/install+setup/install/probenic.sh index 3072b01860..fb428cc49a 100644 --- a/src/install+setup/install/probenic.sh +++ b/src/install+setup/install/probenic.sh @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2009 Michael Tremer & Christian Schmidt # +# Copyright (C) 2011 IPFire Team # # # # 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 # @@ -40,10 +40,10 @@ for card in `ls /sys/class/net`; do if [ ! "$hwaddr" == "00:00:00:00:00:00" ];then if [ ! "$hwaddr" == "ff:ff:ff:ff:ff:ff" ];then - driver=`grep PHYSDEVDRIVER= /sys/class/net/$card/uevent | cut -d"=" -f2` - type=`grep PHYSDEVBUS= /sys/class/net/$card/uevent | cut -d"=" -f2` + driver=`grep DRIVER= /sys/class/net/$card/device/uevent | cut -d"=" -f2` + type=`grep MODALIAS= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d":" -f1` - #Default if not avaiable in /sys/class/net + #Default if not available in /sys/class/net if [ "a$type" == "a" ]; then type="???" fi diff --git a/src/install+setup/libsmooth/Makefile b/src/install+setup/libsmooth/Makefile index bc09aa6237..5ce869a5f5 100644 --- a/src/install+setup/libsmooth/Makefile +++ b/src/install+setup/libsmooth/Makefile @@ -20,7 +20,7 @@ CC = gcc CFLAGS = -O2 -Wall -INCLUDE = -I/opt/i586-uClibc/include +INCLUDE = LD = ld LDFLAGS = -i diff --git a/src/install+setup/libsmooth/main.c b/src/install+setup/libsmooth/main.c index 17adcc744a..39cde7b9de 100644 --- a/src/install+setup/libsmooth/main.c +++ b/src/install+setup/libsmooth/main.c @@ -346,6 +346,7 @@ int replace(char filename1[], char *from, char *to) #include "lang_fr.c" #include "lang_pl.c" #include "lang_ru.c" + #include "lang_nl.c" #endif // returns a pointer to the actual running version number of IPFire. diff --git a/src/install+setup/libsmooth/netstuff.c b/src/install+setup/libsmooth/netstuff.c index 46e49c01b3..de5c558c0e 100644 --- a/src/install+setup/libsmooth/netstuff.c +++ b/src/install+setup/libsmooth/netstuff.c @@ -221,7 +221,14 @@ int changeaddress(struct keyvalue *kv, char *colour, int typeflag, setnetaddress(kv, colour); result = 1; } - } + } + /* Workaround for a bug that dhcp radiobutton also end the dialog at arm + */ + else { + if (es.u.co != cancel) { + error = 1; + } + } } while (error); @@ -322,7 +329,7 @@ void networkdialogcallbacktype(newtComponent cm, void *data) newtEntrySetFlags(dhcpforcemtuentry, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET); } newtRefresh(); - newtDrawForm(networkform); + newtDrawForm(networkform); } int interfacecheck(struct keyvalue *kv, char *colour) diff --git a/src/install+setup/setup/main.c b/src/install+setup/setup/main.c index 65878f98a5..d078a5258b 100644 --- a/src/install+setup/setup/main.c +++ b/src/install+setup/setup/main.c @@ -26,6 +26,7 @@ extern char *fr_tr[]; extern char *es_tr[]; extern char *pl_tr[]; extern char *ru_tr[]; +extern char *nl_tr[]; int main(int argc, char *argv[]) { @@ -33,8 +34,8 @@ int main(int argc, char *argv[]) char *shortlangnames[] = { "en", NULL }; char **langtrs[] = { en_tr, NULL }; #else - char *shortlangnames[] = { "de", "en", "fr", "es", "pl", "ru", NULL }; - char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, pl_tr, ru_tr, NULL }; + char *shortlangnames[] = { "de", "en", "fr", "es", "nl", "pl", "ru", NULL }; + char **langtrs[] = { de_tr, en_tr, fr_tr, es_tr, nl_tr, pl_tr, ru_tr, NULL }; #endif int choice; char *sections[11]; /* need to fill this out AFTER knowning lang */ diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index 300e9ecbb2..cc33266d0c 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -29,22 +29,20 @@ SUID_PROGS = setdmzholes setportfw setxtaccess \ ipsecctrl timectrl dhcpctrl snortctrl \ applejuicectrl rebuildhosts backupctrl \ logwatch openvpnctrl outgoingfwctrl \ - wirelessctrl getipstat getiptstate qosctrl launch-ether-wake \ + wirelessctrl getipstat qosctrl launch-ether-wake \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ setaliases urlfilterctrl updxlratorctrl fireinfoctrl rebuildroutes \ getconntracktable -SUID_UPDX = updxsetperms install : all install -m 755 $(PROGS) /usr/local/bin install -m 4750 -g nobody $(SUID_PROGS) /usr/local/bin - install -m 4750 -g squid $(SUID_UPDX) /usr/local/bin -all : $(PROGS) $(SUID_PROGS) $(SUID_UPDX) +all : $(PROGS) $(SUID_PROGS) clean : - -rm -f $(PROGS) $(SUID_PROGS) $(SUID_UPDX) *.o core + -rm -f $(PROGS) $(SUID_PROGS) *.o core ###### @@ -58,8 +56,6 @@ $(SUID_PROGS): setuid.o $(PROGS): setuid.o -$(SUID_UPDX): setuid.o - logwatch: logwatch.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ logwatch.c setuid.o ../install+setup/libsmooth/varval.o -o $@ @@ -153,9 +149,6 @@ wlanapctrl: wlanapctrl.c setuid.o ../install+setup/libsmooth/varval.o setaliases: setaliases.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ setaliases.c setuid.o ../install+setup/libsmooth/varval.o -o $@ -updxsetperms: updxsetperms.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ updxsetperms.c setuid.o ../install+setup/libsmooth/varval.o -o $@ - fireinfoctrl: fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ fireinfoctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ diff --git a/src/misc-progs/getiptstate.c b/src/misc-progs/getiptstate.c deleted file mode 100644 index 338b531f8d..0000000000 --- a/src/misc-progs/getiptstate.c +++ /dev/null @@ -1,24 +0,0 @@ -/* IPFire helper program - IPStat - * - * Get the list from IPTABLES -L - * - */ - -#include -#include -#include -#include -#include -#include -#include "setuid.h" - - -int main(void) -{ - if (!(initsetuid())) - exit(1); - - safe_system("/usr/sbin/iptstate -1rbt"); - return 0; -} - diff --git a/src/misc-progs/ipsecctrl.c b/src/misc-progs/ipsecctrl.c index 0b0517713d..633004e233 100644 --- a/src/misc-progs/ipsecctrl.c +++ b/src/misc-progs/ipsecctrl.c @@ -78,7 +78,6 @@ void ipsec_norules() { safe_system("/sbin/iptables -F IPSECINPUT"); safe_system("/sbin/iptables -F IPSECFORWARD"); safe_system("/sbin/iptables -F IPSECOUTPUT"); - } /* @@ -87,8 +86,7 @@ void ipsec_norules() { int decode_line (char *s, char **key, char **name, - char **type, - char **interface + char **type ) { int count = 0; *key = NULL; @@ -108,8 +106,6 @@ int decode_line (char *s, *name = result; if (count == 4) *type = result; - if (count == 27) - *interface = result; count++; result = strsep(&s, ","); } @@ -128,11 +124,6 @@ int decode_line (char *s, return 0; } - if (! (strcmp(*interface, "RED") == 0 || strcmp(*interface, "GREEN") == 0 || - strcmp(*interface, "ORANGE") == 0 || strcmp(*interface, "BLUE") == 0)) { - fprintf(stderr, "Bad interface name: %s\n", *interface); - return 0; - } //it's a valid & active line return 1; } @@ -140,69 +131,48 @@ int decode_line (char *s, /* issue ipsec commmands to turn on connection 'name' */ -void turn_connection_on (char *name, char *type) { -/* - Rename the connection and run ipsec update and rename it back to readd - a deleted connection. Because ipsec update ignores connection that have - not changed since last load. -*/ +void turn_connection_on(char *name, char *type) { + /* + * To bring up a connection, we need to reload the configuration + * and issue ipsec up afterwards. To make sure the connection + * is not established from the start, we bring it down in advance. + */ char command[STRING_SIZE]; - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, - "sed -i -e 's|^conn %s$|conn %s-renamed|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name); - safe_system(command); - // Down and delete IKEv2 Tunnel before ipsec update + // Bring down the connection (if established). snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke down %s >/dev/null", name); + "/usr/sbin/ipsec down %s >/dev/null", name); safe_system(command); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke delete %s >/dev/null", name); - safe_system(command); - - safe_system("/etc/rc.d/init.d/ipsec update >/dev/null"); - sleep(1); + // Reload the configuration into the daemon. + safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1"); - // Back to original name - snprintf(command, STRING_SIZE - 1, - "sed -i -e 's|^conn %s-renamed$|conn %s|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name); - safe_system(command); - - // Down and delete IKEv2 Tunnel before ipsec update - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke down %s-renamed >/dev/null", name); - safe_system(command); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke delete %s-renamed >/dev/null", name); - safe_system(command); - - safe_system("/etc/rc.d/init.d/ipsec update >/dev/null"); + // Bring the connection up again. + snprintf(command, STRING_SIZE - 1, + "/usr/sbin/ipsec up %s >/dev/null", name); + safe_system(command); } + /* issue ipsec commmands to turn off connection 'name' */ void turn_connection_off (char *name) { + /* + * To turn off a connection, all SAs must be turned down. + * After that, the configuration must be reloaded. + */ char command[STRING_SIZE]; - memset(command, 0, STRING_SIZE); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec whack --delete --name %s >/dev/null", name); - safe_system(command); - snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke down %s >/dev/null", name); - safe_system(command); + + // Bring down the connection. snprintf(command, STRING_SIZE - 1, - "/usr/sbin/ipsec stroke delete %s >/dev/null", name); + "/usr/sbin/ipsec down %s >/dev/null", name); safe_system(command); - safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null"); - safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null"); - + // Reload, so the connection is dropped. + safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1"); } - int main(int argc, char *argv[]) { - char configtype[STRING_SIZE]; char redtype[STRING_SIZE] = ""; struct keyvalue *kv = NULL; @@ -218,26 +188,15 @@ int main(int argc, char *argv[]) { if (strcmp(argv[1], "I") == 0) { - safe_system("/usr/sbin/ipsec whack --status"); - safe_system("/usr/sbin/ipsec stroke status"); + safe_system("/usr/sbin/ipsec status"); exit(0); } if (strcmp(argv[1], "R") == 0) { - safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null"); - safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null"); + safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1"); exit(0); } - /* Get vpnwatch pid */ - - - if ((argc == 2) && (file = fopen("/var/run/vpn-watch.pid", "r"))) { - safe_system("kill -9 $(cat /var/run/vpn-watch.pid)"); - safe_system("unlink /var/run/vpn-watch.pid"); - close(file); - } - /* FIXME: workaround for pclose() issue - still no real idea why * this is happening */ signal(SIGCHLD, SIG_DFL); @@ -245,16 +204,10 @@ int main(int argc, char *argv[]) { /* handle operations that doesn't need start the ipsec system */ if (argc == 2) { if (strcmp(argv[1], "D") == 0) { - /* Only shutdown pluto if it really is running */ - /* Get pluto pid */ - if (file = fopen("/var/run/pluto.pid", "r")) { - safe_system("/etc/rc.d/init.d/ipsec stop 2> /dev/null >/dev/null"); - close(file); - } + safe_system("/usr/sbin/ipsec stop >/dev/null 2>&1"); ipsec_norules(); exit(0); } - } /* read vpn config */ @@ -300,97 +253,63 @@ int main(int argc, char *argv[]) { char if_blue[STRING_SIZE] = ""; char s[STRING_SIZE]; - if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) { - fprintf(stderr, "Couldn't open vpn settings file"); - exit(1); - } - while (fgets(s, STRING_SIZE, file) != NULL) { - char *key; - char *name; - char *type; - char *interface; - if (!decode_line(s,&key,&name,&type,&interface)) - continue; - /* search interface */ - if (!enable_red && strcmp (interface, "RED") == 0) { - // when RED is up, find interface name in special file - FILE *ifacefile = NULL; - if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) { - if (fgets(if_red, STRING_SIZE, ifacefile)) { - if (if_red[strlen(if_red) - 1] == '\n') - if_red[strlen(if_red) - 1] = '\0'; - } - fclose (ifacefile); - - if (VALID_DEVICE(if_red)) - enable_red+=2; // present and running - } + // when RED is up, find interface name in special file + FILE *ifacefile = NULL; + if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) { + if (fgets(if_red, STRING_SIZE, ifacefile)) { + if (if_red[strlen(if_red) - 1] == '\n') + if_red[strlen(if_red) - 1] = '\0'; } + fclose (ifacefile); - if (!enable_green && strcmp (interface, "GREEN") == 0) { - enable_green = 1; - findkey(kv, "GREEN_DEV", if_green); - if (VALID_DEVICE(if_green)) - enable_green++; - else - fprintf(stderr, "IPSec enabled on green but green interface is invalid or not found\n"); - } + if (VALID_DEVICE(if_red)) + enable_red++; + } - if (!enable_orange && strcmp (interface, "ORANGE") == 0) { - enable_orange = 1; - findkey(kv, "ORANGE_DEV", if_orange); - if (VALID_DEVICE(if_orange)) - enable_orange++; - else - fprintf(stderr, "IPSec enabled on orange but orange interface is invalid or not found\n"); - } + // Check if GREEN is enabled. + findkey(kv, "GREEN_DEV", if_green); + if (VALID_DEVICE(if_green)) + enable_green++; - if (!enable_blue && strcmp (interface, "BLUE") == 0) { - enable_blue++; - findkey(kv, "BLUE_DEV", if_blue); - if (VALID_DEVICE(if_blue)) - enable_blue++; - else - fprintf(stderr, "IPSec enabled on blue but blue interface is invalid or not found\n"); + // Check if ORANGE is enabled. + findkey(kv, "ORANGE_DEV", if_orange); + if (VALID_DEVICE(if_orange)) + enable_orange++; - } - } - fclose(file); - freekeyvalues(kv); + // Check if BLUE is enabled. + findkey(kv, "BLUE_DEV", if_blue); + if (VALID_DEVICE(if_blue)) + enable_blue++; - // do nothing if something is in error condition - if ((enable_red==1) || (enable_green==1) || (enable_orange==1) || (enable_blue==1) ) - exit(1); + freekeyvalues(kv); // exit if nothing to do - if ( (enable_red+enable_green+enable_orange+enable_blue) == 0 ) + if ((enable_red+enable_green+enable_orange+enable_blue) == 0) exit(0); // open needed ports - // todo: read a nat_t indicator to allow or not openning UDP/4500 - if (enable_red==2) + if (enable_red > 0) open_physical(if_red, 4500); - if (enable_green==2) + if (enable_green > 0) open_physical(if_green, 4500); - if (enable_orange==2) + if (enable_orange > 0) open_physical(if_orange, 4500); - if (enable_blue==2) + if (enable_blue > 0) open_physical(if_blue, 4500); // start the system if ((argc == 2) && strcmp(argv[1], "S") == 0) { - safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null"); - safe_system("/usr/local/bin/vpn-watch &"); + safe_system("/usr/sbin/ipsec restart >/dev/null"); exit(0); } // it is a selective start or stop // second param is only a number 'key' if ((argc == 2) || strspn(argv[2], NUMBERS) != strlen(argv[2])) { - fprintf(stderr, "Bad arg\n"); + fprintf(stderr, "Bad arg: %s\n", argv[2]); usage(); exit(1); } @@ -404,26 +323,17 @@ int main(int argc, char *argv[]) { char *key; char *name; char *type; - char *interface; - if (!decode_line(s,&key,&name,&type,&interface)) + if (!decode_line(s,&key,&name,&type)) continue; - // start/stop a vpn if belonging to specified interface - if (strcmp(argv[1], interface) == 0 ) { - if (strcmp(argv[2], "0")==0) - turn_connection_off (name); - else - turn_connection_on (name, type); - continue; - } // is it the 'key' requested ? if (strcmp(argv[2], key) != 0) continue; + // Start or Delete this Connection if (strcmp(argv[1], "S") == 0) turn_connection_on (name, type); - else - if (strcmp(argv[1], "D") == 0) + else if (strcmp(argv[1], "D") == 0) turn_connection_off (name); else { fprintf(stderr, "Bad command\n"); @@ -431,5 +341,6 @@ int main(int argc, char *argv[]) { } } fclose(file); + return 0; } diff --git a/src/misc-progs/launch-ether-wake.c b/src/misc-progs/launch-ether-wake.c index f487041db9..cac4d3c3fe 100644 --- a/src/misc-progs/launch-ether-wake.c +++ b/src/misc-progs/launch-ether-wake.c @@ -29,5 +29,9 @@ int main(int argc, char *argv[]) snprintf(command, BUFFER_SIZE-1, "/usr/sbin/etherwake -i %s %s", argv[2], argv[1]); safe_system(command); + /* Send magic packet with broadcast flag set. */ + snprintf(command, BUFFER_SIZE-1, "/usr/sbin/etherwake -i %s -b %s", argv[2], argv[1]); + safe_system(command); + return(0); } diff --git a/src/misc-progs/rebuildhosts.c b/src/misc-progs/rebuildhosts.c index 0840887448..e831858819 100644 --- a/src/misc-progs/rebuildhosts.c +++ b/src/misc-progs/rebuildhosts.c @@ -41,11 +41,11 @@ void exithandler(void) int main(int argc, char *argv[]) { int fdpid; - char hostname[STRING_SIZE]; + char hostname[STRING_SIZE] = ""; char domainname[STRING_SIZE] = ""; char gateway[STRING_SIZE] = ""; char buffer[STRING_SIZE]; - char address[STRING_SIZE]; + char address[STRING_SIZE] = ""; char *active, *ip, *host, *domain; int pid; diff --git a/src/misc-progs/setportfw.c b/src/misc-progs/setportfw.c index ca79218fef..a65aebd2aa 100644 --- a/src/misc-progs/setportfw.c +++ b/src/misc-progs/setportfw.c @@ -45,11 +45,11 @@ int main(void) { FILE *ipfile = NULL, *ifacefile = NULL; int count; - char iface[STRING_SIZE]; - char locip[STRING_SIZE]; - char greenip[STRING_SIZE], greenmask[STRING_SIZE]; - char bluedev[STRING_SIZE], blueip[STRING_SIZE], bluemask[STRING_SIZE]; - char orangedev[STRING_SIZE], orangeip[STRING_SIZE], orangemask[STRING_SIZE]; + char iface[STRING_SIZE] =""; + char locip[STRING_SIZE] =""; + char greenip[STRING_SIZE] ="", greenmask[STRING_SIZE] =""; + char bluedev[STRING_SIZE] ="", blueip[STRING_SIZE] ="", bluemask[STRING_SIZE] =""; + char orangedev[STRING_SIZE] ="", orangeip[STRING_SIZE] ="", orangemask[STRING_SIZE] =""; char *protocol; char *srcip; char *locport; diff --git a/src/paks/applejuice/install.sh b/src/paks/elinks/install.sh similarity index 83% rename from src/paks/applejuice/install.sh rename to src/paks/elinks/install.sh index 92cd67feba..cd5a6cea52 100644 --- a/src/paks/applejuice/install.sh +++ b/src/paks/elinks/install.sh @@ -17,14 +17,18 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007 IPFire-Team . # +# Copyright (C) 2007-2013 IPFire-Team . # # # ############################################################################ # . /opt/pakfire/lib/functions.sh extract_files -sleep 60 && /etc/init.d/applejuice start & -ln -svf ../init.d/applejuice /etc/rc.d/rc0.d/K05applejuice -ln -svf ../init.d/applejuice /etc/rc.d/rc3.d/S98applejuice -ln -svf ../init.d/applejuice /etc/rc.d/rc6.d/K05applejuice -/etc/init.d/apache reload +restore_backup ${NAME} + +# Suppress first welcome dialog by creating bookmark +# and history files for root +mkdir -p /root/.elinks +touch /root/.elinks/bookmarks +touch /root/.elinks/globhist + +start_service --background ${NAME} diff --git a/src/paks/applejuice/uninstall.sh b/src/paks/elinks/uninstall.sh similarity index 92% rename from src/paks/applejuice/uninstall.sh rename to src/paks/elinks/uninstall.sh index e14e422faf..e296ccb192 100644 --- a/src/paks/applejuice/uninstall.sh +++ b/src/paks/elinks/uninstall.sh @@ -17,11 +17,11 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007 IPFire-Team . # +# Copyright (C) 2007-2013 IPFire-Team . # # # ############################################################################ # . /opt/pakfire/lib/functions.sh -/etc/init.d/applejuice stop +stop_service ${NAME} +make_backup ${NAME} remove_files -rm -rf /etc/rc.d/rc*.d/*applejuice diff --git a/src/paks/elinks/update.sh b/src/paks/elinks/update.sh new file mode 100644 index 0000000000..1ad1831a73 --- /dev/null +++ b/src/paks/elinks/update.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire 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 2 of the License, or # +# (at your option) any later version. # +# # +# IPFire 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 IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2007-2013 IPFire-Team . # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +./uninstall.sh +./install.sh diff --git a/src/paks/files b/src/paks/files index ce88096cbd..673a17d5d2 100644 --- a/src/paks/files +++ b/src/paks/files @@ -1,4 +1,4 @@ -files +files.tar.xz install.sh uninstall.sh update.sh diff --git a/src/paks/ipfireseeder/uninstall.sh b/src/paks/ipfireseeder/uninstall.sh deleted file mode 100644 index 888c7016f5..0000000000 --- a/src/paks/ipfireseeder/uninstall.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -############################################################################ -# # -# This file is part of the IPFire Firewall. # -# # -# IPFire 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 2 of the License, or # -# (at your option) any later version. # -# # -# IPFire 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 IPFire; if not, write to the Free Software # -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# # -# Copyright (C) 2007 IPFire-Team . # -# # -############################################################################ -# -. /opt/pakfire/lib/functions.sh -stop_service ${NAME} - -#prevent erasing the downloaded data at uninstall/update -cat /opt/pakfire/db/rootfiles/ipfireseeder | \ - grep -v "var/ipfire/seeder" | \ - grep -v "var/log/seeder" > /opt/pakfire/db/rootfiles/ipfireseeder.tmp -mv /opt/pakfire/db/rootfiles/ipfireseeder.tmp \ - /opt/pakfire/db/rootfiles/ipfireseeder - -grep -v "IPFireSeeder" /var/ipfire/xtaccess/config > /var/ipfire/xtaccess/config.tmp -mv /var/ipfire/xtaccess/config.tmp /var/ipfire/xtaccess/config -chown nobody:nobody /var/ipfire/xtaccess/config -chmod 644 /var/ipfire/xtaccess/config - -rm -f /etc/rc.d/rc?.d/???ipfireseeder -rm -f /etc/rc.d/init.d/networking/red.*/??-?-ipfireseeder - -remove_files diff --git a/src/paks/linux-pae/install.sh b/src/paks/linux-pae/install.sh index 60f8bbb42e..ab740512fe 100644 --- a/src/paks/linux-pae/install.sh +++ b/src/paks/linux-pae/install.sh @@ -17,7 +17,7 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007-2011 IPFire-Team . # +# Copyright (C) 2007-2013 IPFire-Team . # # # ############################################################################ # @@ -48,13 +48,13 @@ let ENTRY=$_+1 if [ "$(grep "^serial" /boot/grub/grub.conf)" == "" ]; then console="" else - console=" console=ttyS0,38400n8" + console=" console=ttyS0,115200n8" fi # # backup grub.conf # -cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-pae.conf +cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-pae_install.conf # # Add new Entry to grub.conf # @@ -71,3 +71,10 @@ echo " savedefault $ENTRY" >> /boot/grub/grub.conf # Create new module depency # depmod -a $KVER-ipfire-pae + +# Default pae and request a reboot if pae is supported +if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then + grub-set-default $ENTRY + touch /var/run/need_reboot +fi +sync && sync \ No newline at end of file diff --git a/src/paks/linux-pae/uninstall.sh b/src/paks/linux-pae/uninstall.sh index 959fdb1a7e..69c7e565fa 100644 --- a/src/paks/linux-pae/uninstall.sh +++ b/src/paks/linux-pae/uninstall.sh @@ -17,10 +17,15 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2010 IPFire-Team . # +# Copyright (C) 2007-2013 IPFire-Team . # # # ############################################################################ # . /opt/pakfire/lib/functions.sh remove_files -#mv -f /boot/grub/grub-backup-2.6.32.*-pae.conf /boot/grub/grub.conf +rm -rf /boot/ipfirerd-*-pae.img +rm -rf /lib/modules/*-ipfire-pae +cp /boot/grub/grub.conf /boot/grub/grub-backup-pae_uninstall.conf +sed -i "/title IPFire (PAE-Kernel)/,+3d" /boot/grub/grub.conf +grub-set-default 1 +sync && sync diff --git a/src/paks/linux-pae/update.sh b/src/paks/linux-pae/update.sh index 2878dfb4fb..1ad1831a73 100644 --- a/src/paks/linux-pae/update.sh +++ b/src/paks/linux-pae/update.sh @@ -17,11 +17,10 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007-2011 IPFire-Team . # +# Copyright (C) 2007-2013 IPFire-Team . # # # ############################################################################ # . /opt/pakfire/lib/functions.sh -#Don't remove old pae kernel at update -#./uninstall.sh +./uninstall.sh ./install.sh diff --git a/src/paks/linux-xen/install.sh b/src/paks/linux-xen/install.sh index 70efa9db7e..39ac87cf37 100644 --- a/src/paks/linux-xen/install.sh +++ b/src/paks/linux-xen/install.sh @@ -24,7 +24,7 @@ . /opt/pakfire/lib/functions.sh extract_files # -KVER=xxxKVERxxx +KVER=2.6.32.60 ROOT=`mount | grep " / " | cut -d" " -f1` ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2` if [ ! -z $ROOTUUID ]; then @@ -51,7 +51,7 @@ cp /boot/grub/grub.conf /boot/grub/grub-backup-$KVER-xen.conf # Add new Entry to grub.conf # echo "" >> /boot/grub/grub.conf -echo "title IPFire (XEN-Kernel $KVER)" >> /boot/grub/grub.conf +echo "title IPFire (legacy XEN-Kernel $KVER)" >> /boot/grub/grub.conf echo " kernel /vmlinuz-$KVER-ipfire-xen root=$ROOT panic=10 console=xvc0 $MOUNT" >> /boot/grub/grub.conf echo " initrd /ipfirerd-$KVER-xen.img" >> /boot/grub/grub.conf echo "# savedefault $ENTRY" >> /boot/grub/grub.conf diff --git a/src/paks/ipfireseeder/install.sh b/src/paks/sarg/install.sh similarity index 89% rename from src/paks/ipfireseeder/install.sh rename to src/paks/sarg/install.sh index 81abf5aa37..d3b17a9744 100644 --- a/src/paks/ipfireseeder/install.sh +++ b/src/paks/sarg/install.sh @@ -23,7 +23,12 @@ # . /opt/pakfire/lib/functions.sh extract_files -ln -s ../../ipfireseeder /etc/rc.d/init.d/networking/red.up/90-S-ipfireseeder -ln -s ../../ipfireseeder /etc/rc.d/init.d/networking/red.down/01-K-ipfireseeder +restore_backup ${NAME} -start_service --delay 90 --background ${NAME} +# Create data directory. +[ -d "/var/log/sarg" ] || mkdir /var/log/sarg + +# Create initial report. +/usr/sbin/update-sarg-reports today >/dev/null 2>&1 + +exit 0 diff --git a/src/paks/ipfireseeder/update.sh b/src/paks/sarg/uninstall.sh similarity index 98% rename from src/paks/ipfireseeder/update.sh rename to src/paks/sarg/uninstall.sh index 89c40d0d7c..66f4344eb1 100644 --- a/src/paks/ipfireseeder/update.sh +++ b/src/paks/sarg/uninstall.sh @@ -22,5 +22,5 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh -./uninstall.sh -./install.sh +make_backup ${NAME} +remove_files diff --git a/src/paks/applejuice/update.sh b/src/paks/sarg/update.sh similarity index 100% rename from src/paks/applejuice/update.sh rename to src/paks/sarg/update.sh diff --git a/src/patches/bash-3.1-fixes-8.patch b/src/patches/bash-3.1-fixes-8.patch deleted file mode 100644 index 449f076536..0000000000 --- a/src/patches/bash-3.1-fixes-8.patch +++ /dev/null @@ -1,723 +0,0 @@ -Submitted By: Jeremy Huntwork (jhuntwork at linuxfromscratch dot org) -Date: 2006-04-11 -Initial Package Version: 3.1 -Origin: http://ftp.gnu.org/gnu/bash/bash-3.1-patches/ -Upstream Status: From Upstream -Description: Contains patches 001-017 from upstream - -diff -Naur bash-3.1.orig/arrayfunc.c bash-3.1/arrayfunc.c ---- bash-3.1.orig/arrayfunc.c 2005-07-04 17:25:58.000000000 -0700 -+++ bash-3.1/arrayfunc.c 2006-04-19 15:59:29.000000000 -0700 -@@ -592,11 +592,7 @@ - exp = (char *)xmalloc (len); - strncpy (exp, s, len - 1); - exp[len - 1] = '\0'; --#if 0 -- t = expand_string_to_string (exp, 0); --#else -- t = expand_string_to_string (exp, Q_DOUBLE_QUOTES); --#endif -+ t = expand_arith_string (exp, 0); - this_command_name = (char *)NULL; - val = evalexp (t, &expok); - free (t); -diff -Naur bash-3.1.orig/doc/bash.1 bash-3.1/doc/bash.1 ---- bash-3.1.orig/doc/bash.1 2005-10-12 08:40:52.000000000 -0700 -+++ bash-3.1/doc/bash.1 2006-04-19 15:58:34.000000000 -0700 -@@ -6,12 +6,12 @@ - .\" Case Western Reserve University - .\" chet@po.cwru.edu - .\" --.\" Last Change: Sat Aug 27 13:28:44 EDT 2005 -+.\" Last Change: Wed Dec 28 19:58:45 EST 2005 - .\" - .\" bash_builtins, strip all but Built-Ins section - .if \n(zZ=1 .ig zZ - .if \n(zY=1 .ig zY --.TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1" -+.TH BASH 1 "2005 Dec 28" "GNU Bash-3.1" - .\" - .\" There's some problem with having a `@' - .\" in a tagged paragraph with the BSD man macros. -@@ -677,8 +677,8 @@ - .B nocasematch - is enabled, the match is performed without regard to the case - of alphabetic characters. --The return value is 0 if the string matches or does not match --the pattern, respectively, and 1 otherwise. -+The return value is 0 if the string matches (\fB==\fP) or does not match -+(\fB!=\fP) the pattern, and 1 otherwise. - Any part of the pattern may be quoted to force it to be matched as a - string. - .if t .sp 0.5 -@@ -807,6 +807,12 @@ - as for pathname expansion (see - .B Pathname Expansion - below). -+The \fIword\fP is expanded using tilde -+expansion, parameter and variable expansion, arithmetic substituion, -+command substitution, process substitution and quote removal. -+Each \fIpattern\fP examined is expanded using tilde -+expansion, parameter and variable expansion, arithmetic substituion, -+command substitution, and process substitution. - If the shell option - .B nocasematch - is enabled, the match is performed without regard to the case -@@ -8484,7 +8490,7 @@ - returns true if any of the arguments are found, false if - none are found. - .TP --\fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]] -+\fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] - Provides control over the resources available to the shell and to - processes started by it, on systems that allow such control. - The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is -@@ -8523,6 +8529,9 @@ - .B \-f - The maximum size of files created by the shell - .TP -+.B \-i -+The maximum number of pending signals -+.TP - .B \-l - The maximum size that may be locked into memory - .TP -@@ -8536,6 +8545,9 @@ - .B \-p - The pipe size in 512-byte blocks (this may not be set) - .TP -+.B \-q -+The maximum number of bytes in POSIX message queues -+.TP - .B \-s - The maximum stack size - .TP -@@ -8547,6 +8559,9 @@ - .TP - .B \-v - The maximum amount of virtual memory available to the shell -+.TP -+.B \-x -+The maximum number of file locks - .PD - .PP - If -diff -Naur bash-3.1.orig/doc/bashref.texi bash-3.1/doc/bashref.texi ---- bash-3.1.orig/doc/bashref.texi 2005-10-03 12:07:21.000000000 -0700 -+++ bash-3.1/doc/bashref.texi 2006-04-19 15:58:34.000000000 -0700 -@@ -961,8 +961,8 @@ - (see the description of @code{shopt} in @ref{Bash Builtins}) - is enabled, the match is performed without regard to the case - of alphabetic characters. --The return value is 0 if the string matches or does not match --the pattern, respectively, and 1 otherwise. -+The return value is 0 if the string matches (@samp{==}) or does not -+match (@samp{!=})the pattern, and 1 otherwise. - Any part of the pattern may be quoted to force it to be matched as a - string. - -@@ -2598,7 +2598,7 @@ - Builtin commands are necessary to implement functionality impossible - or inconvenient to obtain with separate utilities. - --This section briefly the builtins which Bash inherits from -+This section briefly describes the builtins which Bash inherits from - the Bourne Shell, as well as the builtin commands which are unique - to or have been extended in Bash. - -@@ -3833,7 +3833,7 @@ - @item ulimit - @btindex ulimit - @example --ulimit [-acdflmnpstuvSH] [@var{limit}] -+ulimit [-acdfilmnpqstuvxSH] [@var{limit}] - @end example - @code{ulimit} provides control over the resources available to processes - started by the shell, on systems that allow such control. If an -@@ -3857,6 +3857,9 @@ - @item -f - The maximum size of files created by the shell. - -+@item -i -+The maximum number of pending signals. -+ - @item -l - The maximum size that may be locked into memory. - -@@ -3869,6 +3872,9 @@ - @item -p - The pipe buffer size. - -+@item -q -+The maximum number of bytes in POSIX message queues. -+ - @item -s - The maximum stack size. - -@@ -3881,6 +3887,9 @@ - @item -v - The maximum amount of virtual memory available to the process. - -+@item -x -+The maximum number of file locks. -+ - @end table - - If @var{limit} is given, it is the new value of the specified resource; -@@ -4089,8 +4098,8 @@ - Print shell input lines as they are read. - - @item -x --Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP --commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands -+Print a trace of simple commands, @code{for} commands, @code{case} -+commands, @code{select} commands, and arithmetic @code{for} commands - and their arguments or associated word lists after they are - expanded and before they are executed. The value of the @env{PS4} - variable is expanded and the resultant value is printed before -diff -Naur bash-3.1.orig/doc/version.texi bash-3.1/doc/version.texi ---- bash-3.1.orig/doc/version.texi 2005-09-20 11:52:56.000000000 -0700 -+++ bash-3.1/doc/version.texi 2006-04-19 15:58:34.000000000 -0700 -@@ -2,9 +2,9 @@ - Copyright (C) 1988-2005 Free Software Foundation, Inc. - @end ignore - --@set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005 -+@set LASTCHANGE Fri Dec 30 10:50:51 EST 2005 - --@set EDITION 3.1-beta1 --@set VERSION 3.1-beta1 --@set UPDATED 5 September 2005 --@set UPDATED-MONTH September 2005 -+@set EDITION 3.1 -+@set VERSION 3.1 -+@set UPDATED 30 December 2005 -+@set UPDATED-MONTH December 2005 -diff -Naur bash-3.1.orig/jobs.c bash-3.1/jobs.c ---- bash-3.1.orig/jobs.c 2005-11-11 20:13:27.000000000 -0800 -+++ bash-3.1/jobs.c 2006-04-19 15:58:34.000000000 -0700 -@@ -619,8 +619,11 @@ - * once in the parent and once in each child. This is where - * the parent gives it away. - * -+ * Don't give the terminal away if this shell is an asynchronous -+ * subshell. -+ * - */ -- if (job_control && newjob->pgrp) -+ if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) - give_terminal_to (newjob->pgrp, 0); - } - } -@@ -844,9 +847,10 @@ - realloc_jobs_list () - { - sigset_t set, oset; -- int nsize, i, j; -+ int nsize, i, j, ncur, nprev; - JOB **nlist; - -+ ncur = nprev = NO_JOB; - nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); - nsize *= JOB_SLOTS; - i = js.j_njobs % JOB_SLOTS; -@@ -854,17 +858,51 @@ - nsize += JOB_SLOTS; - - BLOCK_CHILD (set, oset); -- nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); -+ nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); -+ - for (i = j = 0; i < js.j_jobslots; i++) - if (jobs[i]) -- nlist[j++] = jobs[i]; -+ { -+ if (i == js.j_current) -+ ncur = j; -+ if (i == js.j_previous) -+ nprev = j; -+ nlist[j++] = jobs[i]; -+ } -+ -+#if defined (DEBUG) -+ itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); -+ itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); -+ itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); -+#endif - - js.j_firstj = 0; -- js.j_lastj = (j > 0) ? j - 1: 0; -+ js.j_lastj = (j > 0) ? j - 1 : 0; -+ js.j_njobs = j; - js.j_jobslots = nsize; - -- free (jobs); -- jobs = nlist; -+ /* Zero out remaining slots in new jobs list */ -+ for ( ; j < nsize; j++) -+ nlist[j] = (JOB *)NULL; -+ -+ if (jobs != nlist) -+ { -+ free (jobs); -+ jobs = nlist; -+ } -+ -+ if (ncur != NO_JOB) -+ js.j_current = ncur; -+ if (nprev != NO_JOB) -+ js.j_previous = nprev; -+ -+ /* Need to reset these */ -+ if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj) -+ reset_current (); -+ -+#ifdef DEBUG -+ itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous); -+#endif - - UNBLOCK_CHILD (oset); - } -@@ -1655,7 +1693,7 @@ - In this case, we don't want to give the terminal to the - shell's process group (we could be in the middle of a - pipeline, for example). */ -- if (async_p == 0 && pipeline_pgrp != shell_pgrp) -+ if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) - give_terminal_to (pipeline_pgrp, 0); - - #if defined (PGRP_PIPE) -@@ -2198,7 +2236,11 @@ - /* This is possibly a race condition -- should it go in stop_pipeline? */ - wait_sigint_received = 0; - if (job_control == 0) -- old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); -+ { -+ old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); -+ if (old_sigint_handler == SIG_IGN) -+ set_signal_handler (SIGINT, old_sigint_handler); -+ } - - termination_state = last_command_exit_value; - -diff -Naur bash-3.1.orig/lib/glob/glob.c bash-3.1/lib/glob/glob.c ---- bash-3.1.orig/lib/glob/glob.c 2005-03-24 09:42:27.000000000 -0800 -+++ bash-3.1/lib/glob/glob.c 2006-04-19 15:58:34.000000000 -0700 -@@ -360,6 +360,7 @@ - count = lose = skip = 0; - - firstmalloc = 0; -+ nalloca = 0; - - /* If PAT is empty, skip the loop, but return one (empty) filename. */ - if (pat == 0 || *pat == '\0') -@@ -546,6 +547,8 @@ - firstmalloc = 0; - tmplink = lastlink; - } -+ else -+ tmplink = 0; - free (lastlink->name); - lastlink = lastlink->next; - FREE (tmplink); -diff -Naur bash-3.1.orig/lib/glob/sm_loop.c bash-3.1/lib/glob/sm_loop.c ---- bash-3.1.orig/lib/glob/sm_loop.c 2005-10-16 18:21:04.000000000 -0700 -+++ bash-3.1/lib/glob/sm_loop.c 2006-04-19 15:58:34.000000000 -0700 -@@ -638,12 +638,13 @@ - CHAR *psub; /* pointer to sub-pattern */ - CHAR *pnext; /* pointer to next sub-pattern */ - CHAR *srest; /* pointer to rest of string */ -- int m1, m2; -+ int m1, m2, xflags; /* xflags = flags passed to recursive matches */ - - #if DEBUG_MATCHING - fprintf(stderr, "extmatch: xc = %c\n", xc); - fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se); - fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe); -+fprintf(stderr, "extmatch: flags = %d\n", flags); - #endif - - prest = PATSCAN (p + (*p == L('(')), pe, 0); /* ) */ -@@ -677,8 +678,12 @@ - string matches the rest of the pattern. Also handle - multiple matches of the pattern. */ - if (m1) -- m2 = (GMATCH (srest, se, prest, pe, flags) == 0) || -- (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0); -+ { -+ /* if srest > s, we are not at start of string */ -+ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; -+ m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) || -+ (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0); -+ } - if (m1 && m2) - return (0); - } -@@ -704,8 +709,10 @@ - srest = (prest == pe) ? se : s; - for ( ; srest <= se; srest++) - { -+ /* if srest > s, we are not at start of string */ -+ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; - if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && -- GMATCH (srest, se, prest, pe, flags) == 0) -+ GMATCH (srest, se, prest, pe, xflags) == 0) - return (0); - } - if (pnext == prest) -@@ -726,7 +733,9 @@ - if (pnext == prest) - break; - } -- if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0) -+ /* if srest > s, we are not at start of string */ -+ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; -+ if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0) - return (0); - } - return (FNM_NOMATCH); -diff -Naur bash-3.1.orig/lib/readline/display.c bash-3.1/lib/readline/display.c ---- bash-3.1.orig/lib/readline/display.c 2005-11-30 11:05:02.000000000 -0800 -+++ bash-3.1/lib/readline/display.c 2006-04-19 15:58:34.000000000 -0700 -@@ -1983,11 +1983,15 @@ - int pchar; - { - int len; -- char *pmt; -+ char *pmt, *p; - - rl_save_prompt (); - -- if (saved_local_prompt == 0) -+ /* We've saved the prompt, and can do anything with the various prompt -+ strings we need before they're restored. We want the unexpanded -+ portion of the prompt string after any final newline. */ -+ p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; -+ if (p == 0) - { - len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; - pmt = (char *)xmalloc (len + 2); -@@ -1998,19 +2002,17 @@ - } - else - { -- len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; -+ p++; -+ len = strlen (p); - pmt = (char *)xmalloc (len + 2); - if (len) -- strcpy (pmt, saved_local_prompt); -+ strcpy (pmt, p); - pmt[len] = pchar; - pmt[len+1] = '\0'; -- local_prompt = savestring (pmt); -- prompt_last_invisible = saved_last_invisible; -- prompt_visible_length = saved_visible_length + 1; -- } -+ } - -+ /* will be overwritten by expand_prompt, called from rl_message */ - prompt_physical_chars = saved_physical_chars + 1; -- - return pmt; - } - -diff -Naur bash-3.1.orig/lib/readline/readline.c bash-3.1/lib/readline/readline.c ---- bash-3.1.orig/lib/readline/readline.c 2005-07-04 19:29:35.000000000 -0700 -+++ bash-3.1/lib/readline/readline.c 2006-04-19 15:58:34.000000000 -0700 -@@ -282,6 +282,7 @@ - { - FREE (rl_prompt); - rl_prompt = prompt ? savestring (prompt) : (char *)NULL; -+ rl_display_prompt = rl_prompt ? rl_prompt : ""; - - rl_visible_prompt_length = rl_expand_prompt (rl_prompt); - return 0; -diff -Naur bash-3.1.orig/lib/readline/terminal.c bash-3.1/lib/readline/terminal.c ---- bash-3.1.orig/lib/readline/terminal.c 2005-11-12 17:46:54.000000000 -0800 -+++ bash-3.1/lib/readline/terminal.c 2006-04-19 15:58:34.000000000 -0700 -@@ -122,7 +122,7 @@ - static char *_rl_visible_bell; - - /* Non-zero means the terminal can auto-wrap lines. */ --int _rl_term_autowrap; -+int _rl_term_autowrap = -1; - - /* Non-zero means that this terminal has a meta key. */ - static int term_has_meta; -@@ -274,6 +274,9 @@ - _rl_set_screen_size (rows, cols) - int rows, cols; - { -+ if (_rl_term_autowrap == -1) -+ _rl_init_terminal_io (rl_terminal_name); -+ - if (rows > 0) - _rl_screenheight = rows; - if (cols > 0) -diff -Naur bash-3.1.orig/parse.y bash-3.1/parse.y ---- bash-3.1.orig/parse.y 2005-11-11 20:14:18.000000000 -0800 -+++ bash-3.1/parse.y 2006-04-19 15:58:34.000000000 -0700 -@@ -2716,6 +2716,7 @@ - #define P_ALLOWESC 0x02 - #define P_DQUOTE 0x04 - #define P_COMMAND 0x08 /* parsing a command, so look for comments */ -+#define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ - - static char matched_pair_error; - static char * -@@ -2725,12 +2726,12 @@ - int *lenp, flags; - { - int count, ch, was_dollar, in_comment, check_comment; -- int pass_next_character, nestlen, ttranslen, start_lineno; -+ int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno; - char *ret, *nestret, *ttrans; - int retind, retsize, rflags; - - count = 1; -- pass_next_character = was_dollar = in_comment = 0; -+ pass_next_character = backq_backslash = was_dollar = in_comment = 0; - check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; - - /* RFLAGS is the set of flags we want to pass to recursive calls. */ -@@ -2742,11 +2743,8 @@ - start_lineno = line_number; - while (count) - { --#if 0 -- ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0); --#else -- ch = shell_getc (qc != '\'' && pass_next_character == 0); --#endif -+ ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0); -+ - if (ch == EOF) - { - free (ret); -@@ -2771,9 +2769,16 @@ - continue; - } - /* Not exactly right yet */ -- else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1]))) -+ else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1]))) - in_comment = 1; - -+ /* last char was backslash inside backquoted command substitution */ -+ if (backq_backslash) -+ { -+ backq_backslash = 0; -+ /* Placeholder for adding special characters */ -+ } -+ - if (pass_next_character) /* last char was backslash */ - { - pass_next_character = 0; -@@ -2814,6 +2819,8 @@ - { - if MBTEST((flags & P_ALLOWESC) && ch == '\\') - pass_next_character++; -+ else if MBTEST((flags & P_BACKQUOTE) && ch == '\\') -+ backq_backslash++; - continue; - } - -@@ -2898,7 +2905,11 @@ - } - else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) - { -- nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); -+ /* Add P_BACKQUOTE so backslash quotes the next character and -+ shell_getc does the right thing with \. We do this for -+ a measure of backwards compatibility -- it's not strictly the -+ right POSIX thing. */ -+ nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE); - goto add_nestret; - } - else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ -@@ -2907,7 +2918,7 @@ - if (open == ch) /* undo previous increment */ - count--; - if (ch == '(') /* ) */ -- nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); -+ nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); - else if (ch == '{') /* } */ - nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); - else if (ch == '[') /* ] */ -@@ -3578,7 +3589,7 @@ - FREE (ttok); - all_digit_token = 0; - compound_assignment = 1; --#if 0 -+#if 1 - goto next_character; - #else - goto got_token; /* ksh93 seems to do this */ -@@ -3695,7 +3706,9 @@ - struct builtin *b; - b = builtin_address_internal (token, 0); - if (b && (b->flags & ASSIGNMENT_BUILTIN)) -- parser_state |= PST_ASSIGNOK; -+ parser_state |= PST_ASSIGNOK; -+ else if (STREQ (token, "eval") || STREQ (token, "let")) -+ parser_state |= PST_ASSIGNOK; - } - - yylval.word = the_word; -@@ -4686,18 +4699,21 @@ - int *retlenp; - { - WORD_LIST *wl, *rl; -- int tok, orig_line_number, orig_token_size; -+ int tok, orig_line_number, orig_token_size, orig_last_token, assignok; - char *saved_token, *ret; - - saved_token = token; - orig_token_size = token_buffer_size; - orig_line_number = line_number; -+ orig_last_token = last_read_token; - - last_read_token = WORD; /* WORD to allow reserved words here */ - - token = (char *)NULL; - token_buffer_size = 0; - -+ assignok = parser_state&PST_ASSIGNOK; /* XXX */ -+ - wl = (WORD_LIST *)NULL; /* ( */ - parser_state |= PST_COMPASSIGN; - -@@ -4740,7 +4756,7 @@ - jump_to_top_level (DISCARD); - } - -- last_read_token = WORD; -+ last_read_token = orig_last_token; /* XXX - was WORD? */ - if (wl) - { - rl = REVERSE_LIST (wl, WORD_LIST *); -@@ -4752,6 +4768,10 @@ - - if (retlenp) - *retlenp = (ret && *ret) ? strlen (ret) : 0; -+ -+ if (assignok) -+ parser_state |= PST_ASSIGNOK; -+ - return ret; - } - -diff -Naur bash-3.1.orig/patchlevel.h bash-3.1/patchlevel.h ---- bash-3.1.orig/patchlevel.h 2005-07-20 10:58:20.000000000 -0700 -+++ bash-3.1/patchlevel.h 2006-04-19 15:59:29.000000000 -0700 -@@ -25,6 +25,6 @@ - regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh - looks for to find the patch level (for the sccs version string). */ - --#define PATCHLEVEL 0 -+#define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ -diff -Naur bash-3.1.orig/subst.c bash-3.1/subst.c ---- bash-3.1.orig/subst.c 2005-10-24 06:51:13.000000000 -0700 -+++ bash-3.1/subst.c 2006-04-19 15:59:29.000000000 -0700 -@@ -2187,7 +2187,7 @@ - if (mklocal && variable_context) - { - v = find_variable (name); -- if (v == 0 || array_p (v) == 0) -+ if (v == 0 || array_p (v) == 0 || v->context != variable_context) - v = make_local_array_variable (name); - v = assign_array_var_from_string (v, value, flags); - } -@@ -2575,6 +2575,13 @@ - return (expand_string_to_string_internal (string, quoted, expand_string_assignment)); - } - -+char * -+expand_arith_string (string, quoted) -+ char *string; -+{ -+ return (expand_string_if_necessary (string, quoted, expand_string)); -+} -+ - #if defined (COND_COMMAND) - /* Just remove backslashes in STRING. Returns a new string. */ - char * -@@ -5248,7 +5255,7 @@ - else - t = (char *)0; - -- temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); - *e1p = evalexp (temp1, &expok); - free (temp1); - if (expok == 0) -@@ -5293,7 +5300,7 @@ - { - t++; - temp2 = savestring (t); -- temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); - free (temp2); - t[-1] = ':'; - *e2p = evalexp (temp1, &expok); -@@ -6435,7 +6442,7 @@ - temp2[t_index] = '\0'; - - /* Expand variables found inside the expression. */ -- temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); - free (temp2); - - arithsub: -@@ -6477,7 +6484,7 @@ - zindex = t_index; - - /* Do initial variable expansion. */ -- temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string); -+ temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); - - goto arithsub; - -@@ -6795,6 +6802,12 @@ - if (temp && *temp && t_index > 0) - { - temp1 = bash_tilde_expand (temp, tflag); -+ if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) -+ { -+ FREE (temp); -+ FREE (temp1); -+ goto add_character; /* tilde expansion failed */ -+ } - free (temp); - temp = temp1; - sindex += t_index; -diff -Naur bash-3.1.orig/subst.h bash-3.1/subst.h ---- bash-3.1.orig/subst.h 2004-11-07 12:12:28.000000000 -0800 -+++ bash-3.1/subst.h 2006-04-19 15:59:29.000000000 -0700 -@@ -151,6 +151,9 @@ - extern char *expand_string_unsplit_to_string __P((char *, int)); - extern char *expand_assignment_string_to_string __P((char *, int)); - -+/* Expand an arithmetic expression string */ -+extern char *expand_arith_string __P((char *, int)); -+ - /* De-quoted quoted characters in STRING. */ - extern char *dequote_string __P((char *)); - -diff -Naur bash-3.1.orig/variables.c bash-3.1/variables.c ---- bash-3.1.orig/variables.c 2005-11-12 18:22:37.000000000 -0800 -+++ bash-3.1/variables.c 2006-04-19 15:58:34.000000000 -0700 -@@ -860,9 +860,11 @@ - { - char val[INT_STRLEN_BOUND(int) + 1], *v; - -+#if defined (READLINE) - /* If we are currently assigning to LINES or COLUMNS, don't do anything. */ - if (winsize_assignment) - return; -+#endif - - v = inttostr (lines, val, sizeof (val)); - bind_variable ("LINES", v, 0); diff --git a/src/patches/bash-3.1-login.patch b/src/patches/bash-3.1-login.patch deleted file mode 100644 index 8e950baa56..0000000000 --- a/src/patches/bash-3.1-login.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- bash-3.1/shell.c.login 2006-01-13 16:52:14.000000000 +0000 -+++ bash-3.1/shell.c 2006-01-13 16:52:15.000000000 +0000 -@@ -1543,9 +1543,10 @@ - any startup files; just try to be more like /bin/sh. */ - shell_name = argv0 ? base_pathname (argv0) : PROGRAM; - -- if (*shell_name == '-') -+ if (argv0 && *argv0 == '-') - { -- shell_name++; -+ if (*shell_name == '-') -+ shell_name++; - login_shell++; - } - diff --git a/src/patches/bash-3.2-ssh_source_bash.patch b/src/patches/bash-3.2-ssh_source_bash.patch new file mode 100644 index 0000000000..4b371326a3 --- /dev/null +++ b/src/patches/bash-3.2-ssh_source_bash.patch @@ -0,0 +1,9 @@ +diff -up bash-3.2/config-top.h.ssh_source_bash bash-3.2/config-top.h +--- bash-3.2/config-top.h.ssh_source_bash 2008-10-23 15:08:04.000000000 +0200 ++++ bash-3.2/config-top.h 2008-10-23 15:08:33.000000000 +0200 +@@ -86,4 +86,4 @@ + + /* Define this if you want bash to try to check whether it's being run by + sshd and source the .bashrc if so (like the rshd behavior). */ +-/* #define SSH_SOURCE_BASHRC */ ++#define SSH_SOURCE_BASHRC diff --git a/src/patches/bash-4.0-paths-1.patch b/src/patches/bash-4.0-paths-1.patch new file mode 100644 index 0000000000..735a3810f0 --- /dev/null +++ b/src/patches/bash-4.0-paths-1.patch @@ -0,0 +1,30 @@ +--- bash-3.0/config.h.in.paths 2004-07-21 21:08:31.000000000 +0100 ++++ bash-3.0/config.h.in 2004-07-28 09:16:27.257884999 +0100 +@@ -197,7 +197,7 @@ + + /* System paths */ + +-#define DEFAULT_MAIL_DIRECTORY "/usr/spool/mail" ++#define DEFAULT_MAIL_DIRECTORY "/var/spool/mail" + + /* Characteristics of the system's header files and libraries that affect + the compilation environment. */ +--- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100 ++++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100 +@@ -52,14 +52,14 @@ + /* The default value of the PATH variable. */ + #ifndef DEFAULT_PATH_VALUE + #define DEFAULT_PATH_VALUE \ +- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:." ++ "/usr/local/bin:/bin:/usr/bin" + #endif + + /* The value for PATH when invoking `command -p'. This is only used when + the Posix.2 confstr () function, or CS_PATH define are not present. */ + #ifndef STANDARD_UTILS_PATH + #define STANDARD_UTILS_PATH \ +- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" ++ "/bin:/usr/bin:/usr/sbin:/sbin" + #endif + + /* Default primary and secondary prompt strings. */ diff --git a/src/patches/bash-4.0-profile-1.patch b/src/patches/bash-4.0-profile-1.patch new file mode 100644 index 0000000000..ba3344b3cc --- /dev/null +++ b/src/patches/bash-4.0-profile-1.patch @@ -0,0 +1,12 @@ +diff -up bash-3.2/config-top.h.profile bash-3.2/config-top.h +--- bash-3.2/config-top.h.profile 2008-07-17 13:35:39.000000000 +0200 ++++ bash-3.2/config-top.h 2008-07-17 13:42:18.000000000 +0200 +@@ -26,6 +26,8 @@ + what POSIX.2 specifies. */ + #define CONTINUE_AFTER_KILL_ERROR + ++#define NON_INTERACTIVE_LOGIN_SHELLS ++ + /* Define BREAK_COMPLAINS if you want the non-standard, but useful + error messages about `break' and `continue' out of context. */ + #define BREAK_COMPLAINS diff --git a/src/patches/bash/bash32-001 b/src/patches/bash/bash32-001 new file mode 100644 index 0000000000..b7d1f1e079 --- /dev/null +++ b/src/patches/bash/bash32-001 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-001 + +Bug-Reported-by: Greg Schafer +Bug-Reference-ID: <20061012084940.GA15768@tigers.local> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html + +Bug-Description: + +When using historical ``-style command substitution, bash incorrectly attempts +to interpret shell comments while scanning for the closing backquote. + +Patch: + +*** ../bash-3.2/parse.y Tue Sep 19 16:37:21 2006 +--- parse.y Thu Oct 12 10:30:57 2006 +*************** +*** 2736,2740 **** + count = 1; + pass_next_character = backq_backslash = was_dollar = in_comment = 0; +! check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ +--- 2736,2740 ---- + count = 1; + pass_next_character = backq_backslash = was_dollar = in_comment = 0; +! check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-002 b/src/patches/bash/bash32-002 new file mode 100644 index 0000000000..b934df9fa0 --- /dev/null +++ b/src/patches/bash/bash32-002 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-002 + +Bug-Reported-by: Jim Gifford +Bug-Reference-ID: <12j2pc3aq35mb04@corp.supernews.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html + +Bug-Description: + +An incorrect encoding specification in the Content-Type header causes msgfmt +to fail, which causes `make install' to fail. + +Patch: + +*** ../bash-3.2/po/ru.po Tue Jan 10 17:51:03 2006 +--- po/ru.po Mon Oct 16 15:13:23 2006 +*************** +*** 13,17 **** + "Language-Team: Russian \n" + "MIME-Version: 1.0\n" +! "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +--- 13,17 ---- + "Language-Team: Russian \n" + "MIME-Version: 1.0\n" +! "Content-Type: text/plain; charset=KOI8-R\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-003 b/src/patches/bash/bash32-003 new file mode 100644 index 0000000000..922041b4ac --- /dev/null +++ b/src/patches/bash/bash32-003 @@ -0,0 +1,147 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-003 + +Bug-Reported-by: John Gatewood Ham +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html + +Bug-Description: + +When using the conditional command's `=~' operator to match regular +expressions, the parser did not skip over shell metacharacters in the +regular expression, leading to syntax errors. + +Patch: + +*** ../bash-3.2-patched/parse.y Tue Oct 17 11:45:20 2006 +--- parse.y Sat Oct 14 14:56:16 2006 +*************** +*** 1029,1034 **** +--- 1029,1035 ---- + #define PST_CMDTOKEN 0x1000 /* command token OK - unused */ + #define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */ + #define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */ ++ #define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */ + + /* Initial size to allocate for tokens, and the + amount to grow them by. */ +*************** +*** 2591,2596 **** +--- 2592,2600 ---- + return (character); + } + ++ if (parser_state & PST_REGEXP) ++ goto tokword; ++ + /* Shell meta-characters. */ + if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0)) + { +*************** +*** 2698,2703 **** +--- 2702,2708 ---- + if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND)) + return (character); + ++ tokword: + /* Okay, if we got this far, we have to read a word. Read one, + and then check it against the known ones. */ + result = read_token_word (character); +*************** +*** 3202,3209 **** + if (tok == WORD && test_binop (yylval.word->word)) + op = yylval.word; + #if defined (COND_REGEXP) +! else if (tok == WORD && STREQ (yylval.word->word,"=~")) +! op = yylval.word; + #endif + else if (tok == '<' || tok == '>') + op = make_word_from_token (tok); /* ( */ +--- 3207,3217 ---- + if (tok == WORD && test_binop (yylval.word->word)) + op = yylval.word; + #if defined (COND_REGEXP) +! else if (tok == WORD && STREQ (yylval.word->word, "=~")) +! { +! op = yylval.word; +! parser_state |= PST_REGEXP; +! } + #endif + else if (tok == '<' || tok == '>') + op = make_word_from_token (tok); /* ( */ +*************** +*** 3234,3239 **** +--- 3242,3248 ---- + + /* rhs */ + tok = read_token (READ); ++ parser_state &= ~PST_REGEXP; + if (tok == WORD) + { + tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); +*************** +*** 3419,3427 **** + goto next_character; + } + + #ifdef EXTENDED_GLOB + /* Parse a ksh-style extended pattern matching specification. */ +! if (extended_glob && PATTERN_CHAR (character)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ +--- 3428,3461 ---- + goto next_character; + } + ++ #ifdef COND_REGEXP ++ /* When parsing a regexp as a single word inside a conditional command, ++ we need to special-case characters special to both the shell and ++ regular expressions. Right now, that is only '(' and '|'. */ /*)*/ ++ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/ ++ { ++ if (character == '|') ++ goto got_character; ++ ++ push_delimiter (dstack, character); ++ ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); ++ pop_delimiter (dstack); ++ if (ttok == &matched_pair_error) ++ return -1; /* Bail immediately. */ ++ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, ++ token_buffer_size, TOKEN_DEFAULT_GROW_SIZE); ++ token[token_index++] = character; ++ strcpy (token + token_index, ttok); ++ token_index += ttoklen; ++ FREE (ttok); ++ dollar_present = all_digit_token = 0; ++ goto next_character; ++ } ++ #endif /* COND_REGEXP */ ++ + #ifdef EXTENDED_GLOB + /* Parse a ksh-style extended pattern matching specification. */ +! if MBTEST(extended_glob && PATTERN_CHAR (character)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/src/patches/bash/bash32-004 b/src/patches/bash/bash32-004 new file mode 100644 index 0000000000..cd2accfa3f --- /dev/null +++ b/src/patches/bash/bash32-004 @@ -0,0 +1,96 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-004 + +Bug-Reported-by: Stuart Shelton +Bug-Reference-ID: <619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com> +Bug-Reference-URL: + +Bug-Description: + +A bug in the parameter pattern substitution implementation treated a pattern +whose first character was `/' (after expansion) as specifying global +replacement. + +Patch: + +*** ../bash-3.2/subst.c Tue Sep 19 08:35:09 2006 +--- subst.c Thu Oct 26 09:17:50 2006 +*************** +*** 5707,5712 **** +--- 5707,5717 ---- + vtype &= ~VT_STARSUB; + + mflags = 0; ++ if (patsub && *patsub == '/') ++ { ++ mflags |= MATCH_GLOBREP; ++ patsub++; ++ } + + /* Malloc this because expand_string_if_necessary or one of the expansion + functions in its call chain may free it on a substitution error. */ +*************** +*** 5741,5753 **** + } + + /* ksh93 doesn't allow the match specifier to be a part of the expanded +! pattern. This is an extension. */ + p = pat; +! if (pat && pat[0] == '/') +! { +! mflags |= MATCH_GLOBREP|MATCH_ANY; +! p++; +! } + else if (pat && pat[0] == '#') + { + mflags |= MATCH_BEG; +--- 5746,5757 ---- + } + + /* ksh93 doesn't allow the match specifier to be a part of the expanded +! pattern. This is an extension. Make sure we don't anchor the pattern +! at the beginning or end of the string if we're doing global replacement, +! though. */ + p = pat; +! if (mflags & MATCH_GLOBREP) +! mflags |= MATCH_ANY; + else if (pat && pat[0] == '#') + { + mflags |= MATCH_BEG; +*** ../bash-3.2/tests/new-exp.right Thu Aug 10 12:00:00 2006 +--- tests/new-exp.right Sun Oct 29 16:03:36 2006 +*************** +*** 430,436 **** + Case06---1---A B C::--- + Case07---3---A:B:C--- + Case08---3---A:B:C--- +! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution + argv[1] = + argv[2] = + argv[3] = +--- 430,436 ---- + Case06---1---A B C::--- + Case07---3---A:B:C--- + Case08---3---A:B:C--- +! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution + argv[1] = + argv[2] = + argv[3] = +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-005 b/src/patches/bash/bash32-005 new file mode 100644 index 0000000000..903ec58403 --- /dev/null +++ b/src/patches/bash/bash32-005 @@ -0,0 +1,223 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-005 + +Bug-Reported-by: Stuart Shelton +Bug-Reference-ID: <453F7CC8.6030907@openobjects.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html + +Bug-Description: + +A missing extern declaration for `asprintf' caused `double' arguments to be +passed as `0', leading to incorrect results. Additionally, a bug in the +replacement asprintf/snprintf function caused an infinite loop when passed +0 arguments to the floating point conversions under some circumstances. + +Patch: + +*** ../bash-3.2/builtins/printf.def Mon Sep 18 08:48:42 2006 +--- builtins/printf.def Tue Oct 31 08:19:44 2006 +*************** +*** 49,54 **** +--- 49,60 ---- + # define INT_MIN (-2147483647-1) + #endif + ++ #if defined (PREFER_STDARG) ++ # include ++ #else ++ # include ++ #endif ++ + #include + #include + +*************** +*** 151,156 **** +--- 157,166 ---- + #define SKIP1 "#'-+ 0" + #define LENMODS "hjlLtz" + ++ #ifndef HAVE_ASPRINTF ++ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3))); ++ #endif ++ + static void printf_erange __P((char *)); + static int printstr __P((char *, char *, int, int, int)); + static int tescape __P((char *, char *, int *)); + + +*** ../bash-3.2/lib/sh/snprintf.c Thu Apr 6 09:48:40 2006 +--- lib/sh/snprintf.c Sat Oct 28 00:00:13 2006 +*************** +*** 471,476 **** +--- 476,483 ---- + 10^x ~= r + * log_10(200) = 2; + * log_10(250) = 2; ++ * ++ * NOTE: do not call this with r == 0 -- an infinite loop results. + */ + static int + log_10(r) +*************** +*** 576,583 **** + { + integral_part[0] = '0'; + integral_part[1] = '\0'; +! fraction_part[0] = '0'; +! fraction_part[1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; +--- 583,593 ---- + { + integral_part[0] = '0'; + integral_part[1] = '\0'; +! /* The fractional part has to take the precision into account */ +! for (ch = 0; ch < precision-1; ch++) +! fraction_part[ch] = '0'; +! fraction_part[ch] = '0'; +! fraction_part[ch+1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; +*************** +*** 805,810 **** +--- 815,821 ---- + PUT_CHAR(*tmp, p); + tmp++; + } ++ + PAD_LEFT(p); + } + +*************** +*** 972,982 **** + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - +! strlen(tmp) - p->precision - 1; + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); +--- 983,1003 ---- + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + ++ if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) ++ { ++ /* smash the trailing zeros unless altform */ ++ for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) ++ tmp2[i] = '\0'; ++ if (tmp2[0] == '\0') ++ p->precision = 0; ++ } ++ + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - +! strlen(tmp) - p->precision - +! ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */ + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); +*************** +*** 991,1001 **** + if (p->precision != 0 || (p->flags & PF_ALTFORM)) + PUT_CHAR(decpoint, p); /* put the '.' */ + +- if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) +- /* smash the trailing zeros unless altform */ +- for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) +- tmp2[i] = '\0'; +- + for (; *tmp2; tmp2++) + PUT_CHAR(*tmp2, p); /* the fraction */ + +--- 1012,1017 ---- +*************** +*** 1011,1024 **** + char *tmp, *tmp2; + int j, i; + +! if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); +! j = log_10(d); +! d = d / pow_10(j); /* get the Mantissa */ +! d = ROUND(d, p); + tmp = dtoa(d, p->precision, &tmp2); + + /* 1 for unit, 1 for the '.', 1 for 'e|E', +--- 1027,1045 ---- + char *tmp, *tmp2; + int j, i; + +! if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); +! if (d == 0.) +! j = 0; +! else +! { +! j = log_10(d); +! d = d / pow_10(j); /* get the Mantissa */ +! d = ROUND(d, p); +! } + tmp = dtoa(d, p->precision, &tmp2); + + /* 1 for unit, 1 for the '.', 1 for 'e|E', +*************** +*** 1076,1081 **** +--- 1097,1103 ---- + PUT_CHAR(*tmp, p); + tmp++; + } ++ + PAD_LEFT(p); + } + #endif +*************** +*** 1358,1364 **** + STAR_ARGS(data); + DEF_PREC(data); + d = GETDOUBLE(data); +! i = log_10(d); + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively +--- 1380,1386 ---- + STAR_ARGS(data); + DEF_PREC(data); + d = GETDOUBLE(data); +! i = (d != 0.) ? log_10(d) : -1; + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-006 b/src/patches/bash/bash32-006 new file mode 100644 index 0000000000..589db9e598 --- /dev/null +++ b/src/patches/bash/bash32-006 @@ -0,0 +1,45 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-006 + +Bug-Reported-by: ebb9@byu.net +Bug-Reference-ID: <45540862.9030900@byu.net> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html + http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html + +Bug-Description: + +In some cases, code that is intended to be used in the presence of multibyte +characters is called when no such characters are present, leading to incorrect +display position calculations and incorrect redisplay. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006 +--- lib/readline/display.c Mon Nov 13 17:55:57 2006 +*************** +*** 2381,2384 **** +--- 2409,2414 ---- + if (end <= start) + return 0; ++ if (MB_CUR_MAX == 1 || rl_byte_oriented) ++ return (end - start); + + memset (&ps, 0, sizeof (mbstate_t)); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-007 b/src/patches/bash/bash32-007 new file mode 100644 index 0000000000..9b86f4af74 --- /dev/null +++ b/src/patches/bash/bash32-007 @@ -0,0 +1,55 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-007 + +Bug-Reported-by: jidanni@jidanni.org +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html + +Bug-Description: + +When removing the current or previous job from the jobs list, bash incorrectly +resets the current job under some circumstances. + +Patch: + +*** ../bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006 +--- jobs.c Fri Nov 24 14:50:01 2006 +*************** +*** 985,990 **** + if (temp == 0) + return; +- if (job_index == js.j_current || job_index == js.j_previous) +- reset_current (); + + if ((dflags & DEL_NOBGPID) == 0) +--- 985,988 ---- +*************** +*** 1029,1032 **** +--- 1027,1033 ---- + else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0) + reset_job_indices (); ++ ++ if (job_index == js.j_current || job_index == js.j_previous) ++ reset_current (); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ + + diff --git a/src/patches/bash/bash32-008 b/src/patches/bash/bash32-008 new file mode 100644 index 0000000000..7ec07ffe66 --- /dev/null +++ b/src/patches/bash/bash32-008 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-008 + +Bug-Reported-by: Linda Walsh +Bug-Reference-ID: <456041FD.8000605@tlinx.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html + +Bug-Description: + +When checking pathnames from the command hash table (e.g., when the `checkhash' +shell option is enabled), a bug causes bash to delete and re-lookup each +command. + +Patch: + +*** ../bash-3.2-patched/findcmd.c Wed Aug 17 16:49:54 2005 +--- findcmd.c Fri Nov 24 10:48:37 2006 +*************** +*** 309,313 **** + { + st = file_status (hashed_file); +! if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0) + { + phash_remove (pathname); +--- 309,313 ---- + { + st = file_status (hashed_file); +! if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE)) + { + phash_remove (pathname); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-009 b/src/patches/bash/bash32-009 new file mode 100644 index 0000000000..9cfd16e948 --- /dev/null +++ b/src/patches/bash/bash32-009 @@ -0,0 +1,61 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-009 + +Bug-Reported-by: James.M.Botte@lowes.com +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html + +Bug-Description: + +When using its built-in replacement for snprintf/asprintf, bash does not +treat the %x, %X, and %o format specifiers as unsigned numbers. + +Patch: + +*** ../bash-3.2-patched/lib/sh/snprintf.c Mon Nov 13 08:58:52 2006 +--- lib/sh/snprintf.c Wed Dec 6 11:15:04 2006 +*************** +*** 669,673 **** + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +--- 674,679 ---- + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = 0; +! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +*************** +*** 739,743 **** + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +--- 745,749 ---- + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-010 b/src/patches/bash/bash32-010 new file mode 100644 index 0000000000..88de5758f4 --- /dev/null +++ b/src/patches/bash/bash32-010 @@ -0,0 +1,207 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-010 + +Bug-Reported-by: Ryan Waldron +Bug-Reference-ID: <20070119065603.546D011E9C@kansas.erebor.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00059.html + +Bug-Description: + +The glibc implementation of regcomp/regexec does not allow backslashes to +escape "ordinary" pattern characters when matching. Bash used backslashes +to quote all characters when the pattern argument to the [[ special +command's =~ operator was quoted. This caused the match to fail on Linux +and other systems using GNU libc. + +Patch: + +*** ../bash-3.2.9/pathexp.h Sat Feb 19 17:23:18 2005 +--- pathexp.h Wed Jan 31 22:53:16 2007 +*************** +*** 1,5 **** + /* pathexp.h -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* pathexp.h -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 33,36 **** +--- 33,37 ---- + #define QGLOB_CVTNULL 0x01 /* convert QUOTED_NULL strings to '\0' */ + #define QGLOB_FILENAME 0x02 /* do correct quoting for matching filenames */ ++ #define QGLOB_REGEXP 0x04 /* quote an ERE for regcomp/regexec */ + + #if defined (EXTENDED_GLOB) +*** ../bash-3.2.9/pathexp.c Mon May 6 13:43:05 2002 +--- pathexp.c Mon Feb 26 16:59:23 2007 +*************** +*** 1,5 **** + /* pathexp.c -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1995-2002 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* pathexp.c -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1995-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 111,114 **** +--- 111,141 ---- + } + ++ /* Return 1 if C is a character that is `special' in a POSIX ERE and needs to ++ be quoted to match itself. */ ++ static inline int ++ ere_char (c) ++ int c; ++ { ++ switch (c) ++ { ++ case '.': ++ case '[': ++ case '\\': ++ case '(': ++ case ')': ++ case '*': ++ case '+': ++ case '?': ++ case '{': ++ case '|': ++ case '^': ++ case '$': ++ return 1; ++ default: ++ return 0; ++ } ++ return (0); ++ } ++ + /* PATHNAME can contain characters prefixed by CTLESC; this indicates + that the character is to be quoted. We quote it here in the style +*************** +*** 143,146 **** +--- 170,175 ---- + if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/') + continue; ++ if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0) ++ continue; + temp[j++] = '\\'; + i++; +*** ../bash-3.2.9/subst.c Tue Nov 7 16:14:41 2006 +--- subst.c Wed Jan 31 23:09:58 2007 +*************** +*** 5,9 **** + beauty, but, hey, you're alright.'' */ + +! /* Copyright (C) 1987-2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 5,9 ---- + beauty, but, hey, you're alright.'' */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 2647,2655 **** + /* This needs better error handling. */ + /* Expand W for use as an argument to a unary or binary operator in a +! [[...]] expression. If SPECIAL is nonzero, this is the rhs argument + to the != or == operator, and should be treated as a pattern. In +! this case, we quote the string specially for the globbing code. The +! caller is responsible for removing the backslashes if the unquoted +! words is needed later. */ + char * + cond_expand_word (w, special) +--- 2647,2656 ---- + /* This needs better error handling. */ + /* Expand W for use as an argument to a unary or binary operator in a +! [[...]] expression. If SPECIAL is 1, this is the rhs argument + to the != or == operator, and should be treated as a pattern. In +! this case, we quote the string specially for the globbing code. If +! SPECIAL is 2, this is an rhs argument for the =~ operator, and should +! be quoted appropriately for regcomp/regexec. The caller is responsible +! for removing the backslashes if the unquoted word is needed later. */ + char * + cond_expand_word (w, special) +*************** +*** 2659,2662 **** +--- 2660,2664 ---- + char *r, *p; + WORD_LIST *l; ++ int qflags; + + if (w->word == 0 || w->word[0] == '\0') +*************** +*** 2673,2678 **** + else + { + p = string_list (l); +! r = quote_string_for_globbing (p, QGLOB_CVTNULL); + free (p); + } +--- 2675,2683 ---- + else + { ++ qflags = QGLOB_CVTNULL; ++ if (special == 2) ++ qflags |= QGLOB_REGEXP; + p = string_list (l); +! r = quote_string_for_globbing (p, qflags); + free (p); + } +*** ../bash-3.2.9/execute_cmd.c Sat Aug 26 00:23:17 2006 +--- execute_cmd.c Wed Jan 31 23:12:06 2007 +*************** +*** 1,5 **** + /* execute_cmd.c -- Execute a COMMAND structure. */ + +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* execute_cmd.c -- Execute a COMMAND structure. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 2547,2551 **** + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, patmatch||rmatch); + if (arg2 == 0) + arg2 = nullstr; +--- 2547,2551 ---- + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-011 b/src/patches/bash/bash32-011 new file mode 100644 index 0000000000..c021f52f8a --- /dev/null +++ b/src/patches/bash/bash32-011 @@ -0,0 +1,138 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-011 + +Bug-Reported-by: Petr Sumbera +Bug-Reference-ID: <45AF5F4B.1020800@sun.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html + +Bug-Description: + +Under certain circumstances (loopback mounts), the bash getcwd does not +return correct results. This patch allows the use of the Solaris libc +getcwd even though it doesn't dynamically allocate memory. + +Run `touch configure' to make sure make doesn't try to run autoconf. +Then run configure with whatever options you like. + +Patch: + +*** ../bash-3.2-patched/configure.in Tue Sep 26 11:05:45 2006 +--- configure.in Wed Jan 31 09:48:00 2007 +*************** +*** 6,10 **** + dnl Process this file with autoconf to produce a configure script. + +! # Copyright (C) 1987-2006 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify +--- 6,10 ---- + dnl Process this file with autoconf to produce a configure script. + +! # Copyright (C) 1987-2007 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify +*************** +*** 992,996 **** + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +--- 992,997 ---- + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +*** ../bash-3.2-patched/config-bot.h Tue Sep 12 16:43:04 2006 +--- config-bot.h Tue Mar 6 10:41:31 2007 +*************** +*** 2,6 **** + /* modify settings or make new ones based on what autoconf tells us. */ + +! /* Copyright (C) 1989-2002 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 2,6 ---- + /* modify settings or make new ones based on what autoconf tells us. */ + +! /* Copyright (C) 1989-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 71,77 **** + #endif + +! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so +! the replacement in getcwd.c will be built. */ +! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) + # undef HAVE_GETCWD + #endif +--- 71,79 ---- + #endif + +! /* If we have a getcwd(3), but one that does not dynamically allocate memory, +! #undef HAVE_GETCWD so the replacement in getcwd.c will be built. We do +! not do this on Solaris, because their implementation of loopback mounts +! breaks the traditional file system assumptions that getcwd uses. */ +! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS) + # undef HAVE_GETCWD + #endif +*** ../bash-3.2-patched/builtins/common.c Thu Jul 27 09:39:51 2006 +--- builtins/common.c Tue Mar 6 10:43:27 2007 +*************** +*** 1,3 **** +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,3 ---- +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 476,480 **** +--- 476,484 ---- + if (the_current_working_directory == 0) + { ++ #if defined (GETCWD_BROKEN) ++ the_current_working_directory = getcwd (0, PATH_MAX); ++ #else + the_current_working_directory = getcwd (0, 0); ++ #endif + if (the_current_working_directory == 0) + { +*** ../bash-3.2-patched/configure Tue Sep 26 11:06:01 2006 +--- configure Tue Mar 6 10:59:20 2007 +*************** +*** 27317,27321 **** + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +--- 27317,27322 ---- + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-012 b/src/patches/bash/bash32-012 new file mode 100644 index 0000000000..8d669d27c4 --- /dev/null +++ b/src/patches/bash/bash32-012 @@ -0,0 +1,96 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-012 + +Bug-Reported-by: John Wyman +Bug-Reference-ID: <5E7DEFC094C35044B87FAE761D9F0EE20143A3B7@exchange2k.celink.com> +Bug-Reference-URL: + +Bug-Description: + +Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly, +causing syntax errors when attempting to compile bash on those systems. +This patch adds support for the PRI_MACROS_BROKEN define. + +You will need to re-run `configure' after applying the patch. Run +`touch configure' so make doesn't try to run autoconf. + +Patch: + +*** ../bash-3.2.11/config.h.in Tue Sep 12 16:00:54 2006 +--- config.h.in Tue Mar 6 11:17:55 2007 +*************** +*** 1,5 **** + /* config.h -- Configuration file for bash. */ + +! /* Copyright (C) 1987-2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* config.h -- Configuration file for bash. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 414,417 **** +--- 414,419 ---- + #undef HAVE_DECL_STRTOLD + ++ #undef PRI_MACROS_BROKEN ++ + #undef STRTOLD_BROKEN + +*************** +*** 1007,1010 **** +--- 1009,1015 ---- + #undef HAVE_DCGETTEXT + ++ /* Define if you have the `localeconv' function. */ ++ #undef HAVE_LOCALECONV ++ + /* Define if your system has a working `malloc' function. */ + /* #undef HAVE_MALLOC */ +*** ../bash-3.2.11/builtins/printf.def Mon Nov 13 08:58:52 2006 +--- builtins/printf.def Sun Feb 4 13:58:59 2007 +*************** +*** 2,6 **** + It implements the builtin "printf" in Bash. + +! Copyright (C) 1997-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 2,6 ---- + It implements the builtin "printf" in Bash. + +! Copyright (C) 1997-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 71,74 **** +--- 71,78 ---- + #include "common.h" + ++ #if defined (PRI_MACROS_BROKEN) ++ # undef PRIdMAX ++ #endif ++ + #if !defined (PRIdMAX) + # if HAVE_LONG_LONG +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-013 b/src/patches/bash/bash32-013 new file mode 100644 index 0000000000..d47bc1a5f3 --- /dev/null +++ b/src/patches/bash/bash32-013 @@ -0,0 +1,65 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-013 + +Bug-Reported-by: Magnus Svensson +Bug-Reference-ID: <45BDC44D.80609@mysql.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html + +Bug-Description: + +Readline neglects to reallocate the array it uses to keep track of wrapped +screen lines when increasing its size. This will eventually result in +segmentation faults when given sufficiently long input. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006 +--- lib/readline/display.c Fri Feb 2 20:23:17 2007 +*************** +*** 561,574 **** +--- 561,586 ---- + wrap_offset = prompt_invis_chars_first_line = 0; + } + ++ #if defined (HANDLE_MULTIBYTE) + #define CHECK_INV_LBREAKS() \ + do { \ + if (newlines >= (inv_lbsize - 2)) \ + { \ + inv_lbsize *= 2; \ + inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ + } \ + } while (0) ++ #else ++ #define CHECK_INV_LBREAKS() \ ++ do { \ ++ if (newlines >= (inv_lbsize - 2)) \ ++ { \ ++ inv_lbsize *= 2; \ ++ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ } \ ++ } while (0) ++ #endif /* HANDLE_MULTIBYTE */ + + #if defined (HANDLE_MULTIBYTE) + #define CHECK_LPOS() \ + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-014 b/src/patches/bash/bash32-014 new file mode 100644 index 0000000000..b706505b70 --- /dev/null +++ b/src/patches/bash/bash32-014 @@ -0,0 +1,307 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-014 + +Bug-Reported-by: Brett Stahlman +Bug-Reference-ID: <000701c72d29$a227e0e0$5ec7cf47@computerroom> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html + +Bug-Description: + +Bash mishandles word splitting under certain circumstances when IFS is +null (IFS=). Constructs affected include ${param/pat/sub} and others +when expanding arrays (array[@]). + +Patch: + +*** ../bash-3.2-patched/array.c Wed Jun 1 16:39:22 2005 +--- array.c Mon Jan 15 22:58:00 2007 +*************** +*** 121,125 **** + } + +- #ifdef INCLUDE_UNUSED + /* + * Make and return a new array composed of the elements in array A from +--- 121,124 ---- +*************** +*** 142,146 **** + n = array_create_element (element_index(p), element_value(p)); + ADD_BEFORE(a->head, n); +! mi = element_index(ae); + } + a->num_elements = i; +--- 141,145 ---- + n = array_create_element (element_index(p), element_value(p)); + ADD_BEFORE(a->head, n); +! mi = element_index(n); + } + a->num_elements = i; +*************** +*** 148,152 **** + return a; + } +- #endif + + /* +--- 147,150 ---- +*************** +*** 301,304 **** +--- 299,319 ---- + } + ++ ARRAY * ++ array_quote_escapes(array) ++ ARRAY *array; ++ { ++ ARRAY_ELEMENT *a; ++ char *t; ++ ++ if (array == 0 || array_head(array) == 0 || array_empty(array)) ++ return (ARRAY *)NULL; ++ for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { ++ t = quote_escapes (a->value); ++ FREE(a->value); ++ a->value = t; ++ } ++ return array; ++ } ++ + /* + * Return a string whose elements are the members of array A beginning at +*************** +*** 312,318 **** + int starsub, quoted; + { + ARRAY_ELEMENT *h, *p; + arrayind_t i; +! char *ifs, sep[2]; + + p = a ? array_head (a) : 0; +--- 327,334 ---- + int starsub, quoted; + { ++ ARRAY *a2; + ARRAY_ELEMENT *h, *p; + arrayind_t i; +! char *ifs, sep[2], *t; + + p = a ? array_head (a) : 0; +*************** +*** 337,340 **** +--- 353,363 ---- + ; + ++ a2 = array_slice(a, h, p); ++ ++ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) ++ array_quote(a2); ++ else ++ array_quote_escapes(a2); ++ + if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) { + ifs = getifs(); +*************** +*** 344,348 **** + sep[1] = '\0'; + +! return (array_to_string_internal (h, p, sep, quoted)); + } + +--- 367,374 ---- + sep[1] = '\0'; + +! t = array_to_string (a2, sep, 0); +! array_dispose(a2); +! +! return t; + } + +*************** +*** 368,372 **** + + if (mflags & MATCH_QUOTED) +! array_quote (a2); + if (mflags & MATCH_STARSUB) { + ifs = getifs(); +--- 394,400 ---- + + if (mflags & MATCH_QUOTED) +! array_quote(a2); +! else +! array_quote_escapes(a2); + if (mflags & MATCH_STARSUB) { + ifs = getifs(); +*** ../bash-3.2-patched/array.h Sun Jun 1 15:50:30 2003 +--- array.h Mon Jan 15 22:35:35 2007 +*************** +*** 56,59 **** +--- 56,60 ---- + extern int array_shift_element __P((ARRAY *, char *)); + extern ARRAY *array_quote __P((ARRAY *)); ++ extern ARRAY *array_quote_escapes __P((ARRAY *)); + + extern char *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int)); +*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007 +--- subst.c Tue Mar 6 11:40:55 2007 +*************** +*** 1888,1892 **** +--- 1889,1899 ---- + #endif + ++ /* XXX -- why call quote_list if ifs == 0? we can get away without doing ++ it now that quote_escapes quotes spaces */ ++ #if 0 + tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0)) ++ #else ++ tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ++ #endif + ? quote_list (list) + : list_quote_escapes (list); +*************** +*** 2922,2926 **** + /* Quote escape characters in string s, but no other characters. This is + used to protect CTLESC and CTLNUL in variable values from the rest of +! the word expansion process after the variable is expanded. */ + char * + quote_escapes (string) +--- 2935,2944 ---- + /* Quote escape characters in string s, but no other characters. This is + used to protect CTLESC and CTLNUL in variable values from the rest of +! the word expansion process after the variable is expanded. If IFS is +! null, we quote spaces as well, just in case we split on spaces later +! (in the case of unquoted $@, we will eventually attempt to split the +! entire word on spaces). Corresponding code exists in dequote_escapes. +! Even if we don't end up splitting on spaces, quoting spaces is not a +! problem. */ + char * + quote_escapes (string) +*************** +*** 2930,2933 **** +--- 2948,2952 ---- + size_t slen; + char *result, *send; ++ int quote_spaces; + DECLARE_MBSTATE; + +*************** +*** 2935,2938 **** +--- 2954,2958 ---- + send = string + slen; + ++ quote_spaces = (ifs_value && *ifs_value == 0); + t = result = (char *)xmalloc ((slen * 2) + 1); + s = string; +*************** +*** 2940,2944 **** + while (*s) + { +! if (*s == CTLESC || *s == CTLNUL) + *t++ = CTLESC; + COPY_CHAR_P (t, s, send); +--- 2960,2964 ---- + while (*s) + { +! if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' ')) + *t++ = CTLESC; + COPY_CHAR_P (t, s, send); +*************** +*** 2982,2985 **** +--- 3002,3006 ---- + size_t slen; + char *result, *send; ++ int quote_spaces; + DECLARE_MBSTATE; + +*************** +*** 2996,3002 **** + return (strcpy (result, s)); + + while (*s) + { +! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL)) + { + s++; +--- 3017,3024 ---- + return (strcpy (result, s)); + ++ quote_spaces = (ifs_value && *ifs_value == 0); + while (*s) + { +! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' '))) + { + s++; +*************** +*** 4462,4466 **** + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); + +! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL) + istring[istring_index++] = CTLESC; + +--- 4498,4510 ---- + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); + +! /* This is essentially quote_string inline */ +! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */) +! istring[istring_index++] = CTLESC; +! /* Escape CTLESC and CTLNUL in the output to protect those characters +! from the rest of the word expansions (word splitting and globbing.) +! This is essentially quote_escapes inline. */ +! else if (c == CTLESC) +! istring[istring_index++] = CTLESC; +! else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0))) + istring[istring_index++] = CTLESC; + +*************** +*** 5552,5555 **** +--- 5610,5616 ---- + rely on array_subrange to understand how to deal with them). */ + tt = array_subrange (array_cell (v), e1, e2, starsub, quoted); ++ #if 0 ++ /* array_subrange now calls array_quote_escapes as appropriate, so the ++ caller no longer needs to. */ + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) + { +*************** +*** 5558,5561 **** +--- 5619,5623 ---- + } + else ++ #endif + temp = tt; + break; +*************** +*** 5808,5811 **** +--- 5870,5876 ---- + case VT_ARRAYVAR: + temp = array_patsub (array_cell (v), p, rep, mflags); ++ #if 0 ++ /* Don't need to do this anymore; array_patsub calls array_quote_escapes ++ as appropriate before adding the space separators. */ + if (temp && (mflags & MATCH_QUOTED) == 0) + { +*************** +*** 5814,5817 **** +--- 5879,5883 ---- + temp = tt; + } ++ #endif + break; + #endif +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-015 b/src/patches/bash/bash32-015 new file mode 100644 index 0000000000..d887f6e563 --- /dev/null +++ b/src/patches/bash/bash32-015 @@ -0,0 +1,95 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-015 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under certain circumstances, when using FIFOs for process substitution, +bash fails to unlink the FIFOs. This leaves open file descriptors that +can cause the shell to hang and litters the file system. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c Fri Mar 2 16:20:50 2007 +--- execute_cmd.c Wed Jan 31 23:12:06 2007 +*************** +*** 3051,3054 **** +--- 3051,3059 ---- + command_line = savestring (the_printed_command_except_trap); + ++ #if defined (PROCESS_SUBSTITUTION) ++ if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0) ++ simple_command->flags &= ~CMD_NO_FORK; ++ #endif ++ + execute_disk_command (words, simple_command->redirects, command_line, + pipe_in, pipe_out, async, fds_to_close, +*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007 +--- subst.c Tue Mar 6 11:40:55 2007 +*************** +*** 4129,4132 **** +--- 4151,4160 ---- + } + ++ int ++ fifos_pending () ++ { ++ return nfifo; ++ } ++ + static char * + make_named_pipe () +*************** +*** 4178,4181 **** +--- 4206,4215 ---- + } + ++ int ++ fifos_pending () ++ { ++ return 0; /* used for cleanup; not needed with /dev/fd */ ++ } ++ + void + unlink_fifo_list () +*************** +*** 4671,4674 **** +--- 4719,4725 ---- + last_command_exit_value = rc; + rc = run_exit_trap (); ++ #if defined (PROCESS_SUBSTITUTION) ++ unlink_fifo_list (); ++ #endif + exit (rc); + } +*** ../bash-3.2-patched/subst.h Tue Sep 19 08:34:41 2006 +--- subst.h Wed Jan 10 09:46:47 2007 +*************** +*** 223,226 **** +--- 223,227 ---- + extern char *pat_subst __P((char *, char *, char *, int)); + ++ extern int fifos_pending __P((void)); + extern void unlink_fifo_list __P((void)); + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-016 b/src/patches/bash/bash32-016 new file mode 100644 index 0000000000..a0f065ad39 --- /dev/null +++ b/src/patches/bash/bash32-016 @@ -0,0 +1,52 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-016 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1171795523.8021.18.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html + +Bug-Description: + +When moving the cursor, bash sometimes misplaces the cursor when the prompt +contains two or more multibyte characters. The particular circumstance that +uncovered the problem was having the (multibyte) current directory name in +the prompt string. + +Patch: + +*** ../bash-3.2/lib/readline/display.c Fri Jan 19 13:34:50 2007 +--- lib/readline/display.c Sat Mar 10 17:25:44 2007 +*************** +*** 1745,1749 **** + { + dpos = _rl_col_width (data, 0, new); +! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1745,1752 ---- + { + dpos = _rl_col_width (data, 0, new); +! /* Use NEW when comparing against the last invisible character in the +! prompt string, since they're both buffer indices and DPOS is a +! desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-017 b/src/patches/bash/bash32-017 new file mode 100644 index 0000000000..99e5e70d2b --- /dev/null +++ b/src/patches/bash/bash32-017 @@ -0,0 +1,85 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-017 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1173636022.7039.36.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html + +Bug-Description: + +When restoring the original prompt after finishing an incremental search, +bash sometimes places the cursor incorrectly if the primary prompt contains +invisible characters. + +Patch: + +*** ../bash-3.2.16/lib/readline/display.c Fri Apr 20 13:30:16 2007 +--- lib/readline/display.c Fri Apr 20 15:17:01 2007 +*************** +*** 1599,1604 **** + if (temp > 0) + { + _rl_output_some_chars (nfd, temp); +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);; + } + } +--- 1599,1618 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! { +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp); +! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) +! { +! _rl_last_c_pos -= wrap_offset; +! cpos_adjusted = 1; +! } +! } +! else +! _rl_last_c_pos += temp; + } + } +*************** +*** 1608,1613 **** +--- 1622,1639 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; /* XXX */ ++ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ++ { ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ } + } + lendiff = (oe - old) - (ne - new); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-018 b/src/patches/bash/bash32-018 new file mode 100644 index 0000000000..d729aaf5e6 --- /dev/null +++ b/src/patches/bash/bash32-018 @@ -0,0 +1,98 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-018 + +Bug-Reported-by: osicka@post.cz +Bug-Reference-ID: <228.177-19682-1132061412-1179356692@post.cz> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00061.html + +Bug-Description: + +In certain cases, bash can lose the saved status of a background job, though +it should still be reported by `wait'. Bash can also loop infinitely after +creating and waiting for 4096 jobs. + +Patch: + +*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007 +--- jobs.c Fri May 18 11:40:14 2007 +*************** +*** 784,792 **** + { + old = js.j_firstj++; + while (js.j_firstj != old) + { + if (js.j_firstj >= js.j_jobslots) + js.j_firstj = 0; +! if (jobs[js.j_firstj]) + break; + js.j_firstj++; +--- 784,794 ---- + { + old = js.j_firstj++; ++ if (old >= js.j_jobslots) ++ old = js.j_jobslots - 1; + while (js.j_firstj != old) + { + if (js.j_firstj >= js.j_jobslots) + js.j_firstj = 0; +! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */ + break; + js.j_firstj++; +*************** +*** 798,806 **** + { + old = js.j_lastj--; + while (js.j_lastj != old) + { + if (js.j_lastj < 0) + js.j_lastj = js.j_jobslots - 1; +! if (jobs[js.j_lastj]) + break; + js.j_lastj--; +--- 800,810 ---- + { + old = js.j_lastj--; ++ if (old < 0) ++ old = 0; + while (js.j_lastj != old) + { + if (js.j_lastj < 0) + js.j_lastj = js.j_jobslots - 1; +! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */ + break; + js.j_lastj--; +*************** +*** 964,968 **** + realloc_jobs_list (); + +! return (js.j_lastj); + } + +--- 975,983 ---- + realloc_jobs_list (); + +! #ifdef DEBUG +! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0); +! #endif +! +! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-019 b/src/patches/bash/bash32-019 new file mode 100644 index 0000000000..647bd1fa38 --- /dev/null +++ b/src/patches/bash/bash32-019 @@ -0,0 +1,343 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-019 + +Bug-Reported-by: Thomas Loeber +Bug-Reference-ID: <200703082223.08919.ifp@loeber1.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html + +Bug-Description: + +When rl_read_key returns -1, indicating that bash's controlling terminal +has been invalidated for some reason (e.g., receiving a SIGHUP), the error +status was not reported correctly to the caller. This could cause input +loops. + +Patch: + +*** ../bash-3.2-patched/lib/readline/complete.c Fri Jul 28 11:35:49 2006 +--- lib/readline/complete.c Tue Mar 13 08:50:16 2007 +*************** +*** 429,433 **** + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +--- 440,444 ---- + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR || c < 0) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006 +--- lib/readline/input.c Wed May 2 16:07:59 2007 +*************** +*** 514,518 **** + int size; + { +! int mb_len = 0; + size_t mbchar_bytes_length; + wchar_t wc; +--- 522,526 ---- + int size; + { +! int mb_len, c; + size_t mbchar_bytes_length; + wchar_t wc; +*************** +*** 521,531 **** + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! mbchar[mb_len++] = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +--- 529,545 ---- + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! +! mb_len = 0; + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ break; ++ ++ mbchar[mb_len++] = c; ++ + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +*************** +*** 565,569 **** + c = first; + memset (mb, 0, mlen); +! for (i = 0; i < mlen; i++) + { + mb[i] = (char)c; +--- 579,583 ---- + c = first; + memset (mb, 0, mlen); +! for (i = 0; c >= 0 && i < mlen; i++) + { + mb[i] = (char)c; +*** ../bash-3.2-patched/lib/readline/isearch.c Mon Dec 26 17:18:53 2005 +--- lib/readline/isearch.c Fri Mar 9 14:30:59 2007 +*************** +*** 328,333 **** + + f = (rl_command_func_t *)NULL; +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +--- 328,340 ---- + + f = (rl_command_func_t *)NULL; +! +! if (c < 0) +! { +! cxt->sflags |= SF_FAILED; +! cxt->history_pos = cxt->last_found_line; +! return -1; +! } +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +*** ../bash-3.2-patched/lib/readline/misc.c Mon Dec 26 17:20:46 2005 +--- lib/readline/misc.c Fri Mar 9 14:44:11 2007 +*************** +*** 147,150 **** +--- 147,152 ---- + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); ++ if (key < 0) ++ return -1; + return (_rl_dispatch (key, _rl_keymap)); + } +*** ../bash-3.2-patched/lib/readline/readline.c Wed Aug 16 15:00:36 2006 +--- lib/readline/readline.c Fri Mar 9 14:47:24 2007 +*************** +*** 646,649 **** +--- 669,677 ---- + { + nkey = _rl_subseq_getchar (cxt->okey); ++ if (nkey < 0) ++ { ++ _rl_abort_internal (); ++ return -1; ++ } + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); + cxt->flags |= KSEQ_DISPATCHED; +*** ../bash-3.2-patched/lib/readline/text.c Fri Jul 28 11:55:27 2006 +--- lib/readline/text.c Sun Mar 25 13:41:38 2007 +*************** +*** 858,861 **** +--- 864,870 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_SIGNALS) + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) +*************** +*** 1521,1524 **** +--- 1530,1536 ---- + mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX); + ++ if (mb_len <= 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, mbchar, mb_len)); +*************** +*** 1537,1540 **** +--- 1549,1555 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, c)); +*** ../bash-3.2-patched/lib/readline/vi_mode.c Sat Jul 29 16:42:28 2006 +--- lib/readline/vi_mode.c Fri Mar 9 15:02:11 2007 +*************** +*** 887,890 **** +--- 887,897 ---- + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } ++ + *nextkey = c; + +*************** +*** 903,906 **** +--- 910,918 ---- + c = rl_read_key (); /* real command */ + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } + *nextkey = c; + } +*************** +*** 1225,1236 **** + _rl_callback_generic_arg *data; + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + + _rl_callback_func = 0; + _rl_want_redisplay = 1; +--- 1243,1262 ---- + _rl_callback_generic_arg *data; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) +! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + ++ if (c <= 0) ++ return -1; ++ ++ #if !defined (HANDLE_MULTIBYTE) ++ _rl_vi_last_search_char = c; ++ #endif ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1248,1251 **** +--- 1274,1278 ---- + int count, key; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) + static char *target; +*************** +*** 1294,1302 **** + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + } +--- 1321,1335 ---- + { + #if defined (HANDLE_MULTIBYTE) +! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +! if (c <= 0) +! return -1; +! _rl_vi_last_search_mblen = c; + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ return -1; ++ _rl_vi_last_search_char = c; + #endif + } +*************** +*** 1468,1471 **** +--- 1501,1507 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +*************** +*** 1486,1489 **** +--- 1522,1528 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1517,1520 **** +--- 1556,1562 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + return (_rl_vi_change_char (count, c, mb)); + } +*************** +*** 1651,1655 **** + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1693,1697 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*************** +*** 1703,1707 **** + return 0; + } +! else if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1745,1749 ---- + return 0; + } +! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-020 b/src/patches/bash/bash32-020 new file mode 100644 index 0000000000..8c7e328907 --- /dev/null +++ b/src/patches/bash/bash32-020 @@ -0,0 +1,183 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-020 + +Bug-Reported-by: Ian A Watson +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +In some cases of error processing, a jump back to the top-level processing +loop from a builtin command would leave the shell in an inconsistent state. + +Patch: + +*** ../bash-3.2-patched/sig.c Wed Jan 25 14:57:59 2006 +--- sig.c Sat Mar 10 11:11:30 2007 +*************** +*** 351,354 **** +--- 351,373 ---- + #undef XHANDLER + ++ /* Run some of the cleanups that should be performed when we run ++ jump_to_top_level from a builtin command context. XXX - might want to ++ also call reset_parser here. */ ++ void ++ top_level_cleanup () ++ { ++ /* Clean up string parser environment. */ ++ while (parse_and_execute_level) ++ parse_and_execute_cleanup (); ++ ++ #if defined (PROCESS_SUBSTITUTION) ++ unlink_fifo_list (); ++ #endif /* PROCESS_SUBSTITUTION */ ++ ++ run_unwind_protects (); ++ loop_level = continuing = breaking = 0; ++ return_catch_flag = 0; ++ } ++ + /* What to do when we've been interrupted, and it is safe to handle it. */ + void +*** ../bash-3.2-patched/sig.h Wed Jan 25 14:50:27 2006 +--- sig.h Sat Mar 10 11:14:18 2007 +*************** +*** 122,125 **** +--- 122,126 ---- + extern void initialize_terminating_signals __P((void)); + extern void reset_terminating_signals __P((void)); ++ extern void top_level_cleanup __P((void)); + extern void throw_to_top_level __P((void)); + extern void jump_to_top_level __P((int)) __attribute__((__noreturn__)); +*** ../bash-3.2-patched/builtins/common.c Tue Apr 3 16:47:13 2007 +--- builtins/common.c Mon Apr 30 15:01:33 2007 +*************** +*** 132,135 **** +--- 132,136 ---- + { + builtin_error (_("too many arguments")); ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*************** +*** 396,400 **** + throw_to_top_level (); + else +! jump_to_top_level (DISCARD); + } + no_args (list->next); +--- 410,417 ---- + throw_to_top_level (); + else +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + } + no_args (list->next); +*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007 +--- subst.c Tue Jul 17 09:45:11 2007 +*************** +*** 1279,1283 **** + if (no_longjmp_on_fatal_error == 0) + { /* { */ +! report_error ("bad substitution: no closing `%s' in %s", "}", string); + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level (DISCARD); +--- 1290,1294 ---- + if (no_longjmp_on_fatal_error == 0) + { /* { */ +! report_error (_("bad substitution: no closing `%s' in %s"), "}", string); + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level (DISCARD); +*************** +*** 7662,7665 **** +--- 7706,7711 ---- + expand_no_split_dollar_star = 0; /* XXX */ + expanding_redir = 0; ++ ++ top_level_cleanup (); /* from sig.c */ + + jump_to_top_level (v); +*************** +*** 7880,7884 **** + { + report_error (_("no match: %s"), tlist->word->word); +! jump_to_top_level (DISCARD); + } + else if (allow_null_glob_expansion == 0) +--- 7927,7931 ---- + { + report_error (_("no match: %s"), tlist->word->word); +! exp_jump_to_top_level (DISCARD); + } + else if (allow_null_glob_expansion == 0) +*** ../bash-3.2-patched/arrayfunc.c Thu Jul 27 09:37:59 2006 +--- arrayfunc.c Thu May 31 11:55:46 2007 +*************** +*** 619,622 **** +--- 619,624 ---- + { + last_command_exit_value = EXECUTION_FAILURE; ++ ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*** ../bash-3.2-patched/expr.c Wed Dec 28 17:47:03 2005 +--- expr.c Tue Apr 24 14:17:59 2007 +*************** +*** 930,933 **** +--- 930,934 ---- + { + expr_unwind (); ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*** ../bash-3.2-patched/variables.c Fri Sep 8 13:33:32 2006 +--- variables.c Tue Jul 17 09:54:59 2007 +*************** +*** 1822,1830 **** + lval = evalexp (oval, &expok); /* ksh93 seems to do this */ + if (expok == 0) +! jump_to_top_level (DISCARD); + } + rval = evalexp (value, &expok); + if (expok == 0) +! jump_to_top_level (DISCARD); + if (flags & ASS_APPEND) + rval += lval; +--- 1855,1869 ---- + lval = evalexp (oval, &expok); /* ksh93 seems to do this */ + if (expok == 0) +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + } + rval = evalexp (value, &expok); + if (expok == 0) +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + if (flags & ASS_APPEND) + rval += lval; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-021 b/src/patches/bash/bash32-021 new file mode 100644 index 0000000000..003489c6b8 --- /dev/null +++ b/src/patches/bash/bash32-021 @@ -0,0 +1,72 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-021 + +Bug-Reported-by: BAGSHAW Paul RD-TECH-REN +Bug-Reference-ID: <941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html + +Bug-Description: + +When the parser read a backslash-escaped character that would be treated +internally as an escape, it would double the number of escape characters. + +Patch: + +*** ../bash-3.2-patched/parse.y Mon Oct 30 17:22:00 2006 +--- parse.y Sat Mar 24 17:13:20 2007 +*************** +*** 3377,3381 **** + { + pass_next_character = 0; +! goto got_character; + } + +--- 3377,3381 ---- + { + pass_next_character = 0; +! goto got_escaped_character; + } + +*************** +*** 3651,3660 **** + got_character: + +- all_digit_token &= DIGIT (character); +- dollar_present |= character == '$'; +- + if (character == CTLESC || character == CTLNUL) + token[token_index++] = CTLESC; + + token[token_index++] = character; + +--- 3651,3662 ---- + got_character: + + if (character == CTLESC || character == CTLNUL) + token[token_index++] = CTLESC; + ++ got_escaped_character: ++ ++ all_digit_token &= DIGIT (character); ++ dollar_present |= character == '$'; ++ + token[token_index++] = character; + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-022 b/src/patches/bash/bash32-022 new file mode 100644 index 0000000000..d3679e67f5 --- /dev/null +++ b/src/patches/bash/bash32-022 @@ -0,0 +1,126 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-022 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +POSIX specifies that the `read' builtin invoked from an interative shell +must prompt with $PS2 when a line is continued using a backslash while +reading from a terminal. + +Patch: + +*** ../bash-3.2-patched/builtins/read.def Tue Sep 19 08:45:48 2006 +--- builtins/read.def Thu May 24 16:03:30 2007 +*************** +*** 128,133 **** + { + register char *varname; +! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code; +! int input_is_tty, input_is_pipe, unbuffered_read; + int raw, edit, nchars, silent, have_timeout, fd; + unsigned int tmout; +--- 131,136 ---- + { + register char *varname; +! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2; +! int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul; + int raw, edit, nchars, silent, have_timeout, fd; + unsigned int tmout; +*************** +*** 135,139 **** + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1; + struct stat tsb; + SHELL_VAR *var; +--- 138,142 ---- + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2; + struct stat tsb; + SHELL_VAR *var; +*************** +*** 149,152 **** +--- 152,156 ---- + USE_VAR(i); + USE_VAR(pass_next); ++ USE_VAR(print_ps2); + USE_VAR(saw_escape); + USE_VAR(input_is_pipe); +*************** +*** 164,167 **** +--- 168,172 ---- + #endif + USE_VAR(list); ++ USE_VAR(ps2); + + i = 0; /* Index into the string that we are reading. */ +*************** +*** 387,391 **** + #endif + +! for (eof = retval = 0;;) + { + #if defined (READLINE) +--- 394,399 ---- + #endif + +! ps2 = 0; +! for (print_ps2 = eof = retval = 0;;) + { + #if defined (READLINE) +*************** +*** 413,416 **** +--- 421,433 ---- + #endif + ++ if (print_ps2) ++ { ++ if (ps2 == 0) ++ ps2 = get_string_value ("PS2"); ++ fprintf (stderr, "%s", ps2 ? ps2 : ""); ++ fflush (stderr); ++ print_ps2 = 0; ++ } ++ + if (unbuffered_read) + retval = zread (fd, &c, 1); +*************** +*** 441,445 **** + pass_next = 0; + if (c == '\n') +! i--; /* back up over the CTLESC */ + else + goto add_char; +--- 458,466 ---- + pass_next = 0; + if (c == '\n') +! { +! i--; /* back up over the CTLESC */ +! if (interactive && input_is_tty && raw == 0) +! print_ps2 = 1; +! } + else + goto add_char; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-023 b/src/patches/bash/bash32-023 new file mode 100644 index 0000000000..34a63947fb --- /dev/null +++ b/src/patches/bash/bash32-023 @@ -0,0 +1,51 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-023 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When an error occurs during the pattern removal word expansion, the shell +can free unallocated memory or free memory multiple times. + +Patch: + +*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007 +--- subst.c Tue Jul 17 09:45:11 2007 +*************** +*** 3975,3979 **** + patstr++; + +! pattern = getpattern (patstr, quoted, 1); + + temp1 = (char *)NULL; /* shut up gcc */ +--- 4008,4016 ---- + patstr++; + +! /* Need to pass getpattern newly-allocated memory in case of expansion -- +! the expansion code will free the passed string on an error. */ +! temp1 = savestring (patstr); +! pattern = getpattern (temp1, quoted, 1); +! free (temp1); + + temp1 = (char *)NULL; /* shut up gcc */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-024 b/src/patches/bash/bash32-024 new file mode 100644 index 0000000000..1575f37a90 --- /dev/null +++ b/src/patches/bash/bash32-024 @@ -0,0 +1,77 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-024 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1178376645.9063.25.camel@localhost> +Bug-Reference-URL: http://bugs.gentoo.org/177095 + +Bug-Description: + +The readline display code miscalculated the screen position when performing +a redisplay in which the new text occupies more screen space that the old, +but takes fewer bytes to do so (e.g., when replacing a shorter string +containing multibyte characters with a longer one containing only ASCII). + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Apr 26 11:38:22 2007 +--- lib/readline/display.c Thu Jul 12 23:10:10 2007 +*************** +*** 1519,1527 **** + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +--- 1568,1596 ---- + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; ++ /* If col_lendiff is > 0, implying that the new string takes up more ++ screen real estate than the old, but lendiff is < 0, meaning that it ++ takes fewer bytes, we need to just output the characters starting ++ from the first difference. These will overwrite what is on the ++ display, so there's no reason to do a smart update. This can really ++ only happen in a multibyte environment. */ ++ if (lendiff < 0) ++ { ++ _rl_output_some_chars (nfd, temp); ++ _rl_last_c_pos += _rl_col_width (nfd, 0, temp); ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ return; ++ } + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-025 b/src/patches/bash/bash32-025 new file mode 100644 index 0000000000..4d53d89d73 --- /dev/null +++ b/src/patches/bash/bash32-025 @@ -0,0 +1,79 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-025 + +Bug-Reported-by: Tom Bjorkholm +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html + +Bug-Description: + +An off-by-one error in readline's input buffering caused readline to drop +each 511th character of buffered input (e.g., when pasting a large amount +of data into a terminal window). + +Patch: + +*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006 +--- lib/readline/input.c Tue Jul 17 09:24:21 2007 +*************** +*** 134,139 **** + + *key = ibuffer[pop_index++]; +! + if (pop_index >= ibuffer_len) + pop_index = 0; + +--- 134,142 ---- + + *key = ibuffer[pop_index++]; +! #if 0 + if (pop_index >= ibuffer_len) ++ #else ++ if (pop_index > ibuffer_len) ++ #endif + pop_index = 0; + +*************** +*** 251,255 **** + { + k = (*rl_getc_function) (rl_instream); +! rl_stuff_char (k); + if (k == NEWLINE || k == RETURN) + break; +--- 254,259 ---- + { + k = (*rl_getc_function) (rl_instream); +! if (rl_stuff_char (k) == 0) +! break; /* some problem; no more room */ + if (k == NEWLINE || k == RETURN) + break; +*************** +*** 374,378 **** +--- 378,386 ---- + } + ibuffer[push_index++] = key; ++ #if 0 + if (push_index >= ibuffer_len) ++ #else ++ if (push_index > ibuffer_len) ++ #endif + push_index = 0; + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-026 b/src/patches/bash/bash32-026 new file mode 100644 index 0000000000..ba7de50a8d --- /dev/null +++ b/src/patches/bash/bash32-026 @@ -0,0 +1,82 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-026 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This keeps the Apple linker from attempting to link bash against Apple's +readline library "replacement" rather than the one shipped with bash. It +extends the configure workaround to Mac OS X Leopard (10.5). + +As a side effect, the patch updates the copyright date displayed in the +version string. + +You must re-run configure after applying the patch, and before rebuilding +bash. + +Patch: + +*** ../bash-3.2-patched/configure.in 2007-03-06 11:07:38.000000000 -0500 +--- configure.in 2007-11-23 15:37:41.000000000 -0500 +*************** +*** 519,523 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 519,523 ---- + # dynamic version + case "${host_os}" in +! darwin[[89]]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/configure 2007-03-24 14:51:22.000000000 -0400 +--- configure 2007-11-23 15:46:15.000000000 -0500 +*************** +*** 4872,4876 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 4872,4876 ---- + # dynamic version + case "${host_os}" in +! darwin[89]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/version.c 2005-05-16 11:58:34.000000000 -0400 +--- version.c 2007-11-23 16:03:40.000000000 -0500 +*************** +*** 80,83 **** + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n")); + } +--- 80,83 ---- + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n")); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-027 b/src/patches/bash/bash32-027 new file mode 100644 index 0000000000..5e110cb96f --- /dev/null +++ b/src/patches/bash/bash32-027 @@ -0,0 +1,85 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-027 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: <4702ED8A.5000503@thequod.de> +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938 + +Bug-Description: + +When updating the display after displaying, for instance, a list of possible +completions, readline will place the cursor at the wrong position if the +prompt contains invisible characters and a newline. + +Patch: + +*** ../bash-3.2.25/lib/readline/display.c Mon Aug 6 14:26:29 2007 +--- lib/readline/display.c Wed Oct 10 22:43:58 2007 +*************** +*** 1049,1053 **** + else + tx = nleft; +! if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +--- 1049,1053 ---- + else + tx = nleft; +! if (tx >= 0 && _rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1205,1209 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1466,1469 **** +--- 1466,1471 ---- + } + ++ o_cpos = _rl_last_c_pos; ++ + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a +*************** +*** 1475,1479 **** + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +--- 1477,1483 ---- + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && +! (_rl_last_c_pos > 0 || o_cpos > 0) && +! _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-028 b/src/patches/bash/bash32-028 new file mode 100644 index 0000000000..e8182948d6 --- /dev/null +++ b/src/patches/bash/bash32-028 @@ -0,0 +1,60 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-028 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under some circumstances, readline will incorrectly display a prompt string +containing invisible characters after the final newline. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 392,396 **** + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! (int *)NULL, + &prompt_physical_chars); + c = *t; *t = '\0'; +--- 420,424 ---- + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! &prompt_invis_chars_first_line, + &prompt_physical_chars); + c = *t; *t = '\0'; +*************** +*** 399,403 **** + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! &prompt_invis_chars_first_line, + (int *)NULL); + *t = c; +--- 427,431 ---- + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! (int *)NULL, + (int *)NULL); + *t = c; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-029 b/src/patches/bash/bash32-029 new file mode 100644 index 0000000000..9de208584f --- /dev/null +++ b/src/patches/bash/bash32-029 @@ -0,0 +1,52 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-029 + +Bug-Reported-by: Tomas Janousek +Bug-Reference-ID: <20071102104034.GA26893@redhat.com> +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=286861 + +Bug-Description: + +When the bash arithmetic expression evaluator has temporarily turned off +evalation, such as when parsing a pre- or post-decrement or -increment +operator, and an error occurs, evaluation is not re-enabled. + +Patch: + +*** ../bash-3.2-patched/expr.c 2007-08-25 13:47:05.000000000 -0400 +--- expr.c 2007-10-18 08:08:44.000000000 -0400 +*************** +*** 287,290 **** +--- 287,292 ---- + } + free (expr_stack[expr_depth]); /* free the allocated EXPR_CONTEXT */ ++ ++ noeval = 0; /* XXX */ + } + +*************** +*** 320,323 **** +--- 322,326 ---- + + val = 0; ++ noeval = 0; + + FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf)); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-030 b/src/patches/bash/bash32-030 new file mode 100644 index 0000000000..3f12c2833c --- /dev/null +++ b/src/patches/bash/bash32-030 @@ -0,0 +1,50 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-030 + +Bug-Reported-by: Paul Eggert Andreas Schwab +Bug-Reference-ID: <877il0nu84.fsf_-_@penguin.cs.ucla.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.html + +Bug-Description: + +If redirections attached to a compound command fail, bash does not set the +command's exit status correctly. This only happens when the command is the +first in a sequential list. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-03-24 14:51:05.000000000 -0400 +--- execute_cmd.c 2007-11-05 22:31:14.000000000 -0500 +*************** +*** 615,619 **** + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (EXECUTION_FAILURE); + } + +--- 620,624 ---- + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (last_command_exit_value = EXECUTION_FAILURE); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ + + diff --git a/src/patches/bash/bash32-031 b/src/patches/bash/bash32-031 new file mode 100644 index 0000000000..6c96fb9d0a --- /dev/null +++ b/src/patches/bash/bash32-031 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-031 + +Bug-Reported-by: Miroslav Lichvar +Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html + +Bug-Description: + +In certain cases when outputting characters at the end of the line, +e.g., when displaying the prompt string, readline positions the cursor +incorrectly if the prompt string contains invisible characters and the +text being drawn begins before the last invisible character in the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 1566,1574 **** + else + { +- /* We have horizontal scrolling and we are not inserting at +- the end. We have invisible characters in this line. This +- is a dumb update. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; + return; + } +--- 1619,1632 ---- + else + { + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } + return; + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-032 b/src/patches/bash/bash32-032 new file mode 100644 index 0000000000..5e53e29198 --- /dev/null +++ b/src/patches/bash/bash32-032 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-032 + +Bug-Reported-by: Uwe Doering +Bug-Reference-ID: <46F3DD72.2090801@geminix.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html + +Bug-Description: + +There is an off-by-one error in the code that buffers characters received +very quickly in succession, causing characters to be dropped. + +Patch: + +*** ../bash-3.2-patched/lib/readline/input.c 2007-08-25 13:47:10.000000000 -0400 +--- lib/readline/input.c 2007-10-12 22:55:25.000000000 -0400 +*************** +*** 155,159 **** + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len - 1; + ibuffer[pop_index] = key; + return (1); +--- 155,159 ---- + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len; + ibuffer[pop_index] = key; + return (1); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-033 b/src/patches/bash/bash32-033 new file mode 100644 index 0000000000..0d698108ba --- /dev/null +++ b/src/patches/bash/bash32-033 @@ -0,0 +1,88 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-033 + +Bug-Reported-by: Christophe Martin +Bug-Reference-ID: <465ABA4A.3030805@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html + +Bug-Description: + +References made within a function to an uninitialized local array variable +using the [*] subscript in a double-quoted string can result in spurious +ASCII 127 characters in the expanded value. + +Patch: + +*** ../bash-3.2-patched/arrayfunc.c 2007-08-25 13:47:05.000000000 -0400 +--- arrayfunc.c 2007-05-31 11:55:46.000000000 -0400 +*************** +*** 723,727 **** + { + if (rtype) +! *rtype = 1; + if (allow_all == 0) + { +--- 723,727 ---- + { + if (rtype) +! *rtype = (t[0] == '*') ? 1 : 2; + if (allow_all == 0) + { +*** ../bash-3.2-patched/subst.c 2007-08-25 13:47:08.000000000 -0400 +--- subst.c 2007-11-14 15:43:00.000000000 -0500 +*************** +*** 4908,4915 **** + intmax_t arg_index; + SHELL_VAR *var; +! int atype; + + ret = 0; + temp = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +--- 4973,4981 ---- + intmax_t arg_index; + SHELL_VAR *var; +! int atype, rflags; + + ret = 0; + temp = 0; ++ rflags = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +*************** +*** 4944,4947 **** +--- 5010,5015 ---- + ? quote_string (temp) + : quote_escapes (temp); ++ else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) ++ rflags |= W_HASQUOTEDNULL; + } + #endif +*************** +*** 4971,4974 **** +--- 5039,5043 ---- + ret = alloc_word_desc (); + ret->word = temp; ++ ret->flags |= rflags; + } + return ret; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ + diff --git a/src/patches/bash/bash32-034 b/src/patches/bash/bash32-034 new file mode 100644 index 0000000000..4f081624b3 --- /dev/null +++ b/src/patches/bash/bash32-034 @@ -0,0 +1,74 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-034 + +Bug-Reported-by: Ian Campbell +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-10/msg00060.html + +Bug-Description: + +The bash getcwd replacement will write past the end of allocated memory +when it allocates the buffer itself if it uses the buffer size passed as +an argument, and that size is less than the length of the pathname. + +Patch: + +*** ../bash-3.2-patched/lib/sh/getcwd.c 2004-07-21 17:15:19.000000000 -0400 +--- lib/sh/getcwd.c 2007-12-31 19:26:36.000000000 -0500 +*************** +*** 252,268 **** + { + size_t len = pathbuf + pathsize - pathp; + if (buf == NULL) + { +! if (len < (size_t) size) +! len = size; +! buf = (char *) malloc (len); + if (buf == NULL) + goto lose2; + } +! else if ((size_t) size < len) +! { +! errno = ERANGE; +! goto lose2; +! } + (void) memcpy((PTR_T) buf, (PTR_T) pathp, len); + } +--- 287,305 ---- + { + size_t len = pathbuf + pathsize - pathp; ++ if (buf == NULL && size <= 0) ++ size = len; ++ ++ if ((size_t) size < len) ++ { ++ errno = ERANGE; ++ goto lose2; ++ } + if (buf == NULL) + { +! buf = (char *) malloc (size); + if (buf == NULL) + goto lose2; + } +! + (void) memcpy((PTR_T) buf, (PTR_T) pathp, len); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-035 b/src/patches/bash/bash32-035 new file mode 100644 index 0000000000..55506baef4 --- /dev/null +++ b/src/patches/bash/bash32-035 @@ -0,0 +1,159 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-035 + +Bug-Reported-by: Ingo Molnar +Bug-Reference-ID: <20071205202901.GA25202@elte.hu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-12/msg00014.html + +Bug-Description: + +Bash incorrectly puts the second and subsequent children spawned by a +shell forked to run a command substitution in the wrong process group. + +Patch: + +*** ../bash-3.2-patched/subst.c 2007-12-13 22:31:21.000000000 -0500 +--- subst.c 2008-01-17 22:48:15.000000000 -0500 +*************** +*** 4621,4627 **** + + #if defined (JOB_CONTROL) + set_sigchld_handler (); + stop_making_children (); +! pipeline_pgrp = old_pipeline_pgrp; + #else + stop_making_children (); +--- 4721,4728 ---- + + #if defined (JOB_CONTROL) + set_sigchld_handler (); + stop_making_children (); +! if (pid != 0) +! pipeline_pgrp = old_pipeline_pgrp; + #else + stop_making_children (); +*** ../bash-3.2-patched/jobs.c 2007-08-25 13:46:59.000000000 -0400 +--- jobs.c 2007-12-08 16:47:43.000000000 -0500 +*************** +*** 251,254 **** +--- 251,255 ---- + static int set_job_status_and_cleanup __P((int)); + ++ static WAIT job_signal_status __P((int)); + static WAIT raw_job_exit_status __P((int)); + +*************** +*** 2220,2223 **** +--- 2238,2261 ---- + } + ++ static WAIT ++ job_signal_status (job) ++ int job; ++ { ++ register PROCESS *p; ++ WAIT s; ++ ++ p = jobs[job]->pipe; ++ do ++ { ++ s = p->status; ++ if (WIFSIGNALED(s) || WIFSTOPPED(s)) ++ break; ++ p = p->next; ++ } ++ while (p != jobs[job]->pipe); ++ ++ return s; ++ } ++ + /* Return the exit status of the last process in the pipeline for job JOB. + This is the exit status of the entire job. */ +*************** +*** 2302,2310 **** + received, only if one of the jobs run is killed via SIGINT. If + job control is not set, the job will be run in the same pgrp as +! the shell, and the shell will see any signals the job gets. */ + + /* This is possibly a race condition -- should it go in stop_pipeline? */ + wait_sigint_received = 0; +! if (job_control == 0) + { + old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +--- 2343,2354 ---- + received, only if one of the jobs run is killed via SIGINT. If + job control is not set, the job will be run in the same pgrp as +! the shell, and the shell will see any signals the job gets. In +! fact, we want this set every time the waiting shell and the waited- +! for process are in the same process group, including command +! substitution. */ + + /* This is possibly a race condition -- should it go in stop_pipeline? */ + wait_sigint_received = 0; +! if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB)) + { + old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +*************** +*** 2452,2464 **** + the last process in the pipeline. If no process exits due to a + signal, S is left as the status of the last job in the pipeline. */ +! p = jobs[job]->pipe; +! do +! { +! s = p->status; +! if (WIFSIGNALED(s) || WIFSTOPPED(s)) +! break; +! p = p->next; +! } +! while (p != jobs[job]->pipe); + + if (WIFSIGNALED (s) || WIFSTOPPED (s)) +--- 2496,2500 ---- + the last process in the pipeline. If no process exits due to a + signal, S is left as the status of the last job in the pipeline. */ +! s = job_signal_status (job); + + if (WIFSIGNALED (s) || WIFSTOPPED (s)) +*************** +*** 2494,2497 **** +--- 2530,2551 ---- + } + } ++ else if ((subshell_environment & SUBSHELL_COMSUB) && wait_sigint_received) ++ { ++ /* If waiting for a job in a subshell started to do command ++ substitution, simulate getting and being killed by the SIGINT to ++ pass the status back to our parent. */ ++ s = job_signal_status (job); ++ ++ if (WIFSIGNALED (s) && WTERMSIG (s) == SIGINT && signal_is_trapped (SIGINT) == 0) ++ { ++ UNBLOCK_CHILD (oset); ++ restore_sigint_handler (); ++ old_sigint_handler = set_signal_handler (SIGINT, SIG_DFL); ++ if (old_sigint_handler == SIG_IGN) ++ restore_sigint_handler (); ++ else ++ kill (getpid (), SIGINT); ++ } ++ } + + /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-036 b/src/patches/bash/bash32-036 new file mode 100644 index 0000000000..ef22e60e0f --- /dev/null +++ b/src/patches/bash/bash32-036 @@ -0,0 +1,44 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-036 + +Bug-Reported-by: Len Lattanzi +Bug-Reference-ID: <87493131-7AEC-4301-A684-E6CC6D06E3E1@apple.com> +Bug-Reference-URL: + +Bug-Description: + +When initializing a subshell, bash did not reset a sentinel keeping track +of the number of command substitutions, leading to an infinite loop if +an error was encountered in the subshell. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-12-13 22:31:14.000000000 -0500 +--- execute_cmd.c 2007-12-20 08:52:34.000000000 -0500 +*************** +*** 3881,3884 **** +--- 3916,3921 ---- + + clear_unwind_protect_list (0); ++ /* XXX -- are there other things we should be resetting here? */ ++ parse_and_execute_level = 0; /* nothing left to restore it */ + + /* We're no longer inside a shell function. */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-037 b/src/patches/bash/bash32-037 new file mode 100644 index 0000000000..376bd937cd --- /dev/null +++ b/src/patches/bash/bash32-037 @@ -0,0 +1,110 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-037 + +Bug-Reported-by: jared r r spiegel +Bug-Reference-ID: <200801152201.m0FM1lDp021260@iorek.ice-nine.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-01/msg00049.html + +Bug-Description: + +Bash inappropriately evaluates command substitutions while expanding +directory names as part of command substitution. + +Patch: + +*** ../bash-3.2-patched/subst.c 2007-12-13 22:31:21.000000000 -0500 +--- subst.c 2008-01-17 22:48:15.000000000 -0500 +*************** +*** 2815,2821 **** + to jump_to_top_level here so we don't endlessly loop. */ + WORD_LIST * +! expand_prompt_string (string, quoted) + char *string; + int quoted; + { + WORD_LIST *value; +--- 2895,2902 ---- + to jump_to_top_level here so we don't endlessly loop. */ + WORD_LIST * +! expand_prompt_string (string, quoted, wflags) + char *string; + int quoted; ++ int wflags; + { + WORD_LIST *value; +*************** +*** 2825,2829 **** + return ((WORD_LIST *)NULL); + +! td.flags = 0; + td.word = savestring (string); + +--- 2906,2910 ---- + return ((WORD_LIST *)NULL); + +! td.flags = wflags; + td.word = savestring (string); + +*** ../bash-3.2-patched/subst.h 2007-03-24 14:51:05.000000000 -0400 +--- subst.h 2008-01-17 22:46:08.000000000 -0500 +*************** +*** 136,140 **** + + /* Expand a prompt string. */ +! extern WORD_LIST *expand_prompt_string __P((char *, int)); + + /* Expand STRING just as if you were expanding a word. This also returns +--- 137,141 ---- + + /* Expand a prompt string. */ +! extern WORD_LIST *expand_prompt_string __P((char *, int, int)); + + /* Expand STRING just as if you were expanding a word. This also returns +*** ../bash-3.2-patched/parse.y 2007-08-25 13:47:06.000000000 -0400 +--- parse.y 2008-01-17 22:46:30.000000000 -0500 +*************** +*** 4367,4371 **** + { + last_exit_value = last_command_exit_value; +! list = expand_prompt_string (result, Q_DOUBLE_QUOTES); + free (result); + result = string_list (list); +--- 4367,4371 ---- + { + last_exit_value = last_command_exit_value; +! list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0); + free (result); + result = string_list (list); +*** ../bash-3.2-patched/bashline.c 2006-07-29 16:39:30.000000000 -0400 +--- bashline.c 2008-02-17 12:53:42.000000000 -0500 +*************** +*** 2358,2362 **** + { + new_dirname = savestring (local_dirname); +! wl = expand_prompt_string (new_dirname, 0); /* does the right thing */ + if (wl) + { +--- 2376,2380 ---- + { + new_dirname = savestring (local_dirname); +! wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB); /* does the right thing */ + if (wl) + { +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-038 b/src/patches/bash/bash32-038 new file mode 100644 index 0000000000..842b1b5019 --- /dev/null +++ b/src/patches/bash/bash32-038 @@ -0,0 +1,80 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-038 + +Bug-Reported-by: Wojciech Puchar +Bug-Reference-ID: <200803131141.m2DBf9vo001136@wojtek.tensor.gdynia.pl> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-03/msg00029.html + +Bug-Description: + +When reading input lines into a single variable using the `read' builtin, +bash did not free the memory it read after assigining it to the named +variable, causing a memory leak noticable when reading large amounts of +data. + + +Patch: + +*** ../bash-3.2-patched/builtins/read.def 2007-08-25 13:47:07.000000000 -0400 +--- builtins/read.def 2008-03-07 12:55:47.000000000 -0500 +*************** +*** 135,139 **** + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2; + struct stat tsb; + SHELL_VAR *var; +--- 152,156 ---- + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2, *tofree; + struct stat tsb; + SHELL_VAR *var; +*************** +*** 675,678 **** +--- 728,732 ---- + /* Check whether or not the number of fields is exactly the same as the + number of variables. */ ++ tofree = NULL; + if (*input_string) + { +*************** +*** 680,684 **** + t = get_word_from_string (&input_string, ifs_chars, &e); + if (*input_string == 0) +! input_string = t; + else + input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); +--- 734,738 ---- + t = get_word_from_string (&input_string, ifs_chars, &e); + if (*input_string == 0) +! tofree = input_string = t; + else + input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); +*************** +*** 695,698 **** +--- 749,754 ---- + var = bind_read_variable (list->word->word, input_string); + stupidly_hack_special_variables (list->word->word); ++ FREE (tofree); ++ + if (var) + VUNSETATTR (var, att_invisible); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-039 b/src/patches/bash/bash32-039 new file mode 100644 index 0000000000..c225a5af43 --- /dev/null +++ b/src/patches/bash/bash32-039 @@ -0,0 +1,175 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-039 + +Bug-Reported-by: rew@erebor.com +Bug-Reference-ID: <20070119065603.546D011E9C@kansas.erebor.com> +Bug-Reference-URL: + +Bug-Description: + +Bash-3.2 changed the behavior of the [[ command's `=~' operator when the +right-hand side was quoted: it matched the quoted portions as strings. +This patch introduces a new shell option: compat31. When enabled, it +restores the bash-3.1 behavior with respect to evaluating quoted arguments +to the =~ operator. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-12-14 21:12:39.000000000 -0500 +--- execute_cmd.c 2008-02-22 21:20:40.000000000 -0500 +*************** +*** 2547,2551 **** + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +--- 2552,2557 ---- + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, +! (rmatch && shell_compatibility_level > 31) ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +*** ../bash-3.2-patched/shell.h 2003-06-01 15:04:36.000000000 -0400 +--- shell.h 2008-02-22 21:16:48.000000000 -0500 +*************** +*** 90,93 **** +--- 90,94 ---- + extern int interactive, interactive_shell; + extern int startup_state; ++ extern int shell_compatibility_level; + + /* Structure to pass around that holds a bitmap of file descriptors +*** ../bash-3.2-patched/version.c 2007-12-14 21:12:29.000000000 -0500 +--- version.c 2008-04-10 08:22:22.000000000 -0400 +*************** +*** 44,47 **** +--- 44,50 ---- + const char *sccs_version = SCCSVERSION; + ++ /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ ++ int shell_compatibility_level = 32; ++ + /* Functions for getting, setting, and displaying the shell version. */ + +*** ../bash-3.2-patched/builtins/shopt.def 2005-02-19 17:25:03.000000000 -0500 +--- builtins/shopt.def 2008-04-10 08:13:32.000000000 -0400 +*************** +*** 102,105 **** +--- 102,107 ---- + static int set_shellopts_after_change __P((int)); + ++ static int set_compatibility_level __P((int)); ++ + #if defined (RESTRICTED_SHELL) + static int set_restricted_shell __P((int)); +*************** +*** 107,110 **** +--- 109,113 ---- + + static int shopt_login_shell; ++ static int shopt_compat31; + + typedef int shopt_set_func_t __P((int)); +*************** +*** 122,125 **** +--- 125,129 ---- + { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL }, + #endif ++ { "compat31", &shopt_compat31, set_compatibility_level }, + { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL }, + { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL }, +*************** +*** 460,463 **** +--- 464,479 ---- + } + ++ static int ++ set_compatibility_level (mode) ++ int mode; ++ { ++ /* Need to change logic here as we add more compatibility levels */ ++ if (shopt_compat31) ++ shell_compatibility_level = 31; ++ else ++ shell_compatibility_level = 32; ++ return 0; ++ } ++ + #if defined (RESTRICTED_SHELL) + /* Don't allow the value of restricted_shell to be modified. */ +*** ../bash-3.2-patched/doc/bash.1 2006-09-28 10:26:05.000000000 -0400 +--- doc/bash.1 2008-04-25 12:32:49.000000000 -0400 +*************** +*** 7978,7981 **** +--- 8200,8209 ---- + easy re-editing of multi-line commands. + .TP 8 ++ .B compat31 ++ If set, ++ .B bash ++ changes its behavior to that of version 3.1 with respect to quoted ++ arguments to the conditional command's =~ operator. ++ .TP 8 + .B dotglob + If set, +*** ../bash-20080214/doc/bashref.texi 2008-02-08 21:28:35.000000000 -0500 +--- doc/bashref.texi 2008-02-22 21:44:51.000000000 -0500 +*************** +*** 4053,4056 **** +--- 4061,4069 ---- + easy re-editing of multi-line commands. + ++ @item compat31 ++ If set, Bash ++ changes its behavior to that of version 3.1 with respect to quoted ++ arguments to the conditional command's =~ operator. ++ + @item dotglob + If set, Bash includes filenames beginning with a `.' in +*** ../bash-3.2-patched/tests/shopt.right 2005-02-19 17:46:09.000000000 -0500 +--- tests/shopt.right 2008-04-28 09:13:07.000000000 -0400 +*************** +*** 7,10 **** +--- 7,11 ---- + shopt -u checkwinsize + shopt -s cmdhist ++ shopt -u compat31 + shopt -u dotglob + shopt -u execfail +*************** +*** 54,57 **** +--- 55,59 ---- + shopt -u checkhash + shopt -u checkwinsize ++ shopt -u compat31 + shopt -u dotglob + shopt -u execfail +*************** +*** 78,81 **** +--- 80,84 ---- + checkhash off + checkwinsize off ++ compat31 off + dotglob off + execfail off + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-040 b/src/patches/bash/bash32-040 new file mode 100644 index 0000000000..50b85bbe5f --- /dev/null +++ b/src/patches/bash/bash32-040 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-040 + +Bug-Reported-by: John McCabe-Dansted +Bug-Reference-ID: +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/202885 + +Bug-Description: + +When using the `set' builtin to list all shell variables, the shell uses +the wrong variable when computing the length of a variable's value. + +Patch: + +*** ../bash-3.2-patched/array.c 2007-03-24 14:51:03.000000000 -0400 +--- array.c 2008-08-17 13:07:04.000000000 -0400 +*************** +*** 684,688 **** + valstr = element_value (ae) ? sh_double_quote (element_value(ae)) + : (char *)NULL; +! elen = STRLEN (indstr) + 8 + STRLEN (valstr); + RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize); + +--- 809,813 ---- + valstr = element_value (ae) ? sh_double_quote (element_value(ae)) + : (char *)NULL; +! elen = STRLEN (is) + 8 + STRLEN (valstr); + RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize); + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-041 b/src/patches/bash/bash32-041 new file mode 100644 index 0000000000..3c05c04ea8 --- /dev/null +++ b/src/patches/bash/bash32-041 @@ -0,0 +1,154 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-041 + +Bug-Reported-by: Dan Jacobson +Bug-Reference-ID: <873arjs11h.fsf@jidanni.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-02/msg00049.html + +Bug-Description: + +Bash saved and restored the value of `set -o history' while sourcing files, +preventing users from turning off history with `set +o history' in .bashrc. + +Patch: + +*** ../bash-3.2-patched/bashhist.c 2005-12-26 13:31:16.000000000 -0500 +--- bashhist.c 2008-08-17 13:07:40.000000000 -0400 +*************** +*** 81,84 **** +--- 81,85 ---- + becomes zero when we read lines from a file, for example. */ + int remember_on_history = 1; ++ int enable_history_list = 1; /* value for `set -o history' */ + + /* The number of lines that Bash has added to this history session. The +*************** +*** 235,239 **** + history_expansion_inhibited = 1; + #endif +! remember_on_history = interact != 0; + history_inhibit_expansion_function = bash_history_inhibit_expansion; + } +--- 236,240 ---- + history_expansion_inhibited = 1; + #endif +! remember_on_history = enable_history_list = interact != 0; + history_inhibit_expansion_function = bash_history_inhibit_expansion; + } +*** ../bash-3.2-patched/builtins/set.def 2006-07-27 09:41:43.000000000 -0400 +--- builtins/set.def 2008-08-14 16:33:41.000000000 -0400 +*************** +*** 190,194 **** + #endif /* BANG_HISTORY */ + #if defined (HISTORY) +! { "history", '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL }, + #endif + { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL }, +--- 198,202 ---- + #endif /* BANG_HISTORY */ + #if defined (HISTORY) +! { "history", '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL }, + #endif + { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL }, +*************** +*** 382,385 **** +--- 390,394 ---- + if (on_or_off == FLAG_ON) + { ++ enable_history_list = 1; + bash_history_enable (); + if (history_lines_this_session == 0) +*************** +*** 387,392 **** + } + else +! bash_history_disable (); +! return (1 - remember_on_history); + } + #endif +--- 396,404 ---- + } + else +! { +! enable_history_list = 0; +! bash_history_disable (); +! } +! return (1 - enable_history_list); + } + #endif +*************** +*** 566,570 **** + { + #if defined (HISTORY) +! remember_on_history = 1; + #endif + ignoreeof = 0; +--- 578,582 ---- + { + #if defined (HISTORY) +! remember_on_history = enable_history_list = 1; + #endif + ignoreeof = 0; +*** ../bash-3.2-patched/builtins/evalstring.c 2006-07-28 15:12:16.000000000 -0400 +--- builtins/evalstring.c 2008-11-10 21:17:16.000000000 -0500 +*************** +*** 68,71 **** +--- 68,79 ---- + static int cat_file __P((REDIRECT *)); + ++ #if defined (HISTORY) ++ static void ++ set_history_remembering () ++ { ++ remember_on_history = enable_history_list; ++ } ++ #endif ++ + /* How to force parse_and_execute () to clean up after itself. */ + void +*************** +*** 116,120 **** + + #if defined (HISTORY) +! unwind_protect_int (remember_on_history); /* can be used in scripts */ + # if defined (BANG_HISTORY) + if (interactive_shell) +--- 124,131 ---- + + #if defined (HISTORY) +! if (parse_and_execute_level == 0) +! add_unwind_protect (set_history_remembering, (char *)NULL); +! else +! unwind_protect_int (remember_on_history); /* can be used in scripts */ + # if defined (BANG_HISTORY) + if (interactive_shell) +*** ../bash-3.2-patched/bashhist.h 2005-07-01 15:44:41.000000000 -0400 +--- bashhist.h 2008-08-17 12:51:07.000000000 -0400 +*************** +*** 32,35 **** +--- 32,38 ---- + + extern int remember_on_history; ++ extern int enable_history_list; /* value for `set -o history' */ ++ extern int literal_history; /* controlled by `shopt lithist' */ ++ extern int force_append_history; + extern int history_lines_this_session; + extern int history_lines_in_file; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-042 b/src/patches/bash/bash32-042 new file mode 100644 index 0000000000..4c9f4d6df1 --- /dev/null +++ b/src/patches/bash/bash32-042 @@ -0,0 +1,48 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-042 + +Bug-Reported-by: Archimerged Ark Submedes +Bug-Reference-ID: <5ba4bef00804182116g65ff71e0qdffcf672f205e708@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-04/msg00041.html + +Bug-Description: + +An operator precedence error prevented the bash arithmetic evaluator from +parsing conditional commands correctly. + +Patch: + +*** ../bash-3.2-patched/expr.c 2007-12-13 22:30:43.000000000 -0500 +--- expr.c 2008-08-17 13:09:59.000000000 -0400 +*************** +*** 521,525 **** + noeval++; + } +! val2 = explor (); + if (set_noeval) + noeval--; +--- 521,526 ---- + noeval++; + } +! +! val2 = expcond (); + if (set_noeval) + noeval--; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-043 b/src/patches/bash/bash32-043 new file mode 100644 index 0000000000..5a51843d2b --- /dev/null +++ b/src/patches/bash/bash32-043 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-043 + +Bug-Reported-by: Morita Sho +Bug-Reference-ID: +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096 + +Bug-Description: + +Side effects caused by setting function-local versions of variables bash +handles specially persisted after the function returned. + +Patch: + +*** ../bash-3.2-patched/variables.c 2007-08-25 13:47:05.000000000 -0400 +--- variables.c 2008-11-09 17:47:31.000000000 -0500 +*************** +*** 3459,3465 **** + var->attributes &= ~(att_tempvar|att_propagate); + else +! shell_variables->flags |= VC_HASTMPVAR; + v->attributes |= var->attributes; + } + + dispose_variable (var); +--- 3771,3779 ---- + var->attributes &= ~(att_tempvar|att_propagate); + else +! shell_variables->flags |= VC_HASTMPVAR; + v->attributes |= var->attributes; + } ++ else ++ stupidly_hack_special_variables (var->name); /* XXX */ + + dispose_variable (var); +*************** +*** 3548,3551 **** +--- 3862,3867 ---- + v->attributes |= var->attributes; + } ++ else ++ stupidly_hack_special_variables (var->name); /* XXX */ + + dispose_variable (var); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-044 b/src/patches/bash/bash32-044 new file mode 100644 index 0000000000..3e7a392d43 --- /dev/null +++ b/src/patches/bash/bash32-044 @@ -0,0 +1,150 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-044 + +Bug-Reported-by: slinkp +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html + +Bug-Description: + +The presence of invisible characters in a prompt longer than the screenwidth +with invisible characters on the first and last prompt lines caused readline +to place the cursor in the wrong physical location. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-12-14 21:12:40.000000000 -0500 +--- lib/readline/display.c 2008-10-23 09:39:46.000000000 -0400 +*************** +*** 911,914 **** +--- 944,951 ---- + OFFSET (which has already been calculated above). */ + ++ #define INVIS_FIRST() (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset) ++ #define WRAP_OFFSET(line, offset) ((line == 0) \ ++ ? (offset ? INVIS_FIRST() : 0) \ ++ : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0)) + #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) + #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) +*************** +*** 945,949 **** + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= wrap_offset; + + /* If this is the line with the prompt, we might need to +--- 982,992 ---- + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ +! else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth && +! (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && +! cpos_adjusted == 0 && +! _rl_last_c_pos != o_cpos && +! _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line)) +! _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line); + + /* If this is the line with the prompt, we might need to +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1264,1268 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, twidth, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1221,1225 **** + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +--- 1280,1284 ---- + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +*************** +*** 1587,1599 **** + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); +- #if 1 + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! #else +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff); +! #endif + } + } +--- 1648,1660 ---- + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! else +! twidth = temp - lendiff; +! _rl_last_c_pos += twidth; + } + } +*************** +*** 1789,1793 **** + int cpos, dpos; /* current and desired cursor positions */ + +! woff = W_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +--- 1850,1854 ---- + int cpos, dpos; /* current and desired cursor positions */ + +! woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +*************** +*** 1803,1807 **** + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1864,1872 ---- + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars > _rl_screenwidth && +! _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset != woff && +! new > (prompt_last_invisible-_rl_screenwidth-wrap_offset))) + { + dpos -= woff; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-045 b/src/patches/bash/bash32-045 new file mode 100644 index 0000000000..68b91ffe10 --- /dev/null +++ b/src/patches/bash/bash32-045 @@ -0,0 +1,50 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-045 + +Bug-Reported-by: Roman Rakus +Bug-Reference-ID: <4864B4A0.1060402@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-06/msg00098.html + +Bug-Description: + +When short-circuiting execution due to the `break' or `continue' builtins, +bash did not preserve the value of $?. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2008-04-28 22:00:24.000000000 -0400 +--- execute_cmd.c 2008-10-18 14:35:03.000000000 -0400 +*************** +*** 502,507 **** +--- 514,526 ---- + volatile int save_line_number; + ++ #if 0 + if (command == 0 || breaking || continuing || read_but_dont_execute) + return (EXECUTION_SUCCESS); ++ #else ++ if (breaking || continuing) ++ return (last_command_exit_value); ++ if (command == 0 || read_but_dont_execute) ++ return (EXECUTION_SUCCESS); ++ #endif + + QUIT; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-046 b/src/patches/bash/bash32-046 new file mode 100644 index 0000000000..78aaf0176f --- /dev/null +++ b/src/patches/bash/bash32-046 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-046 + +Bug-Reported-by: Wang Xin +Bug-Reference-ID: <9a73e1570807062042ide16698m10e1b18036c95592@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-07/msg00014.html + +Bug-Description: + +Bash did not compute the length of multibyte characters correctly when +performing array element length references (e.g., ${#var[subscript]}). + +Patch: + +*** /usr/src/local/bash/bash-3.2-patched/subst.c 2008-04-28 22:00:20.000000000 -0400 +--- subst.c 2008-11-10 22:02:38.000000000 -0500 +*************** +*** 4813,4817 **** + t = (ind == 0) ? value_cell (var) : (char *)NULL; + +! len = STRLEN (t); + return (len); + } +--- 4813,4817 ---- + t = (ind == 0) ? value_cell (var) : (char *)NULL; + +! len = MB_STRLEN (t); + return (len); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-047 b/src/patches/bash/bash32-047 new file mode 100644 index 0000000000..b8272b1ee0 --- /dev/null +++ b/src/patches/bash/bash32-047 @@ -0,0 +1,65 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-047 + +Bug-Reported-by: Roman Rakus +Bug-Reference-ID: <48A89EBC.906@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-08/msg00026.html + +Bug-Description: + +When using the `.' (source) builtin, under certain circumstances bash was +too careful in discarding state to preserve internal consistency. One +effect was that assignments to readonly variables would cause entire scripts +to be aborted instead of execution of the offending command. This behavior +was introduced by bash-3.2 patch 20. + +Patch: + +*** /usr/src/local/chet/src/bash/bash-3.2-patched/subst.c 2008-04-29 21:24:55.000000000 -0400 +--- subst.c 2008-11-13 17:44:25.000000000 -0500 +*************** +*** 138,142 **** + extern int last_command_exit_value, last_command_exit_signal; + extern int subshell_environment; +! extern int subshell_level; + extern int eof_encountered; + extern int return_catch_flag, return_catch_value; +--- 138,142 ---- + extern int last_command_exit_value, last_command_exit_signal; + extern int subshell_environment; +! extern int subshell_level, parse_and_execute_level; + extern int eof_encountered; + extern int return_catch_flag, return_catch_value; +*************** +*** 7673,7677 **** + expanding_redir = 0; + +! top_level_cleanup (); /* from sig.c */ + + jump_to_top_level (v); +--- 7673,7679 ---- + expanding_redir = 0; + +! if (parse_and_execute_level == 0) +! top_level_cleanup (); /* from sig.c */ +! + + jump_to_top_level (v); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 47 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-048 b/src/patches/bash/bash32-048 new file mode 100644 index 0000000000..551dadefe2 --- /dev/null +++ b/src/patches/bash/bash32-048 @@ -0,0 +1,56 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-048 + +Bug-Reported-by: Steffen Kiess +Bug-Reference-ID: <1223929957.5383.6.camel@fips> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-10/msg00047.html + +Bug-Description: + +When invoked as `bash -c', bash did not execute an EXIT trap when the last +command in the executed list was a command run from the file system. + +Patch: + +*** /Users/chet/src/bash/bash-3.2-patched/builtins/evalstring.c 2006-07-28 15:12:16.000000000 -0400 +--- builtins/evalstring.c 2008-11-13 18:38:45.000000000 -0500 +*************** +*** 249,252 **** +--- 249,253 ---- + * we're not running a trap AND + * we have parsed the full command (string == '\0') AND ++ * we're not going to run the exit trap AND + * we have a simple command without redirections AND + * the command is not being timed AND +*************** +*** 259,263 **** + *bash_input.location.string == '\0' && + command->type == cm_simple && +! !command->redirects && !command->value.Simple->redirects && + ((command->flags & CMD_TIME_PIPELINE) == 0) && + ((command->flags & CMD_INVERT_RETURN) == 0)) +--- 260,265 ---- + *bash_input.location.string == '\0' && + command->type == cm_simple && +! signal_is_trapped (EXIT_TRAP) == 0 && +! command->redirects == 0 && command->value.Simple->redirects == 0 && + ((command->flags & CMD_TIME_PIPELINE) == 0) && + ((command->flags & CMD_INVERT_RETURN) == 0)) +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 47 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 48 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-049 b/src/patches/bash/bash32-049 new file mode 100644 index 0000000000..469c4c8915 --- /dev/null +++ b/src/patches/bash/bash32-049 @@ -0,0 +1,64 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-049 + +Bug-Reported-by: Len Lattanzi +Bug-Reference-ID: <52B1297F-6675-45CC-B63E-24745337D006@apple.com> +Bug-Reference-URL: + +Bug-Description: + +On systems where mbrtowc() returns -2 when passed a length argument with +value 0, when using a multibyte locale, Readline's emacs-mode forward-char +at the end of a line will leave the point beyond the end of the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/mbutil.c 2009-05-29 23:09:26.000000000 -0400 +--- lib/readline/mbutil.c 2009-05-29 23:10:12.000000000 -0400 +*************** +*** 78,82 **** + int seed, count, find_non_zero; + { +! size_t tmp; + mbstate_t ps; + int point; +--- 78,82 ---- + int seed, count, find_non_zero; + { +! size_t tmp, len; + mbstate_t ps; + int point; +*************** +*** 99,103 **** + while (count > 0) + { +! tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { +--- 99,106 ---- + while (count > 0) + { +! len = strlen (string + point); +! if (len == 0) +! break; +! tmp = mbrtowc (&wc, string+point, len, &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 48 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 49 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-050 b/src/patches/bash/bash32-050 new file mode 100644 index 0000000000..aef537e18c --- /dev/null +++ b/src/patches/bash/bash32-050 @@ -0,0 +1,56 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-050 + +Bug-Reported-by: Jan Hnatek +Bug-Reference-ID: <4A44991F.8010005@sun.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2009-06/msg00084.html + +Bug-Description: + +On systems where mbrtowc() returns -2 when passed a length argument with +value 0, when using a multibyte locale, Readline's emacs-mode forward-char +at the end of a line will leave the point beyond the end of the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/mbutil.c 2009-06-16 11:26:50.000000000 -0400 +--- lib/readline/mbutil.c 2009-01-04 14:32:33.000000000 -0500 +*************** +*** 132,141 **** + { + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); +! while (tmp > 0 && wcwidth (wc) == 0) + { + point += tmp; + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); +- if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp)) +- break; + } + } +--- 130,137 ---- + { + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); +! while (MB_NULLWCH (tmp) == 0 && MB_INVALIDCH (tmp) == 0 && wcwidth (wc) == 0) + { + point += tmp; + tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); + } + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 49 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 50 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash32-051 b/src/patches/bash/bash32-051 new file mode 100644 index 0000000000..404fbd6463 --- /dev/null +++ b/src/patches/bash/bash32-051 @@ -0,0 +1,46 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-051 + +Bug-Reported-by: werner@suse.de +Bug-Reference-ID: <201002251238.o1PCcYcg016893@boole.suse.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00132.html + +Bug-Description: + +When the `read' builtin times out after the timeout specified with -t is +exceeded, it does not reset the flags that tell signal handlers to process +signals immediately instead of deferring their handling. This can result +in unsafe functions being called from signal handlers, which can cause bash +to hang or dump core. + +Patch: + +*** ../bash-3.2-patched/builtins/read.def 2008-04-29 21:25:00.000000000 -0400 +--- builtins/read.def 2010-03-17 09:50:51.000000000 -0400 +*************** +*** 327,330 **** +--- 327,332 ---- + if (code) + { ++ interrupt_immediately--; ++ terminate_immediately = 0; + run_unwind_frame ("read_builtin"); + return (EXECUTION_FAILURE); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 50 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 51 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/binutils-2.18-configure-1.patch b/src/patches/binutils-2.18-configure-1.patch deleted file mode 100644 index ae6aaa3d9e..0000000000 --- a/src/patches/binutils-2.18-configure-1.patch +++ /dev/null @@ -1,19 +0,0 @@ -Submitted By: Matt Burgess (matthew at linuxfromscratch dot org) -Date: 2007-11-19 -Initial Package Version: 2.18 -Origin: Upstream (http://sourceware.org/cgi-bin/cvsweb.cgi/src/configure.diff?r1=1.268&r2=1.268.2.1&cvsroot=src) -Upstream Status: Applied -Description: Fixes the configure script to correctly dictate Texinfo > 4.9. - -diff -Naur binutils-2.18.orig/configure binutils-2.18/configure ---- binutils-2.18.orig/configure 2007-08-06 20:29:40.000000000 +0000 -+++ binutils-2.18/configure 2007-11-18 22:37:58.000000000 +0000 -@@ -6128,7 +6128,7 @@ - # For an installed makeinfo, we require it to be from texinfo 4.4 or - # higher, else we use the "missing" dummy. - if ${MAKEINFO} --version \ -- | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then -+ | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then - : - else - MAKEINFO="$MISSING makeinfo" diff --git a/src/patches/ccache-3.1.6-no_compiler_mtime.patch b/src/patches/ccache-3.1.6-no_compiler_mtime.patch deleted file mode 100644 index fd921cd7c8..0000000000 --- a/src/patches/ccache-3.1.6-no_compiler_mtime.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur ccache-3.1.org/ccache.c ccache-3.1/ccache.c ---- ccache-3.1.org/ccache.c 2010-09-16 19:01:09.000000000 +0200 -+++ ccache-3.1/ccache.c 2010-10-21 21:41:08.000000000 +0200 -@@ -805,13 +805,16 @@ - */ - compilercheck = getenv("CCACHE_COMPILERCHECK"); - if (!compilercheck) { -- compilercheck = "mtime"; -+ compilercheck = "size"; - } - if (str_eq(compilercheck, "none")) { - /* Do nothing. */ - } else if (str_eq(compilercheck, "content")) { - hash_delimiter(hash, "cc_content"); - hash_file(hash, args->argv[0]); -+ } else if (str_eq(compilercheck, "size")) { -+ hash_delimiter(hash, "cc_size"); -+ hash_int(hash, st.st_size); - } else if (str_eq(compilercheck, "mtime")) { - hash_delimiter(hash, "cc_mtime"); - hash_int(hash, st.st_size); diff --git a/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch b/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch new file mode 100644 index 0000000000..2e82157aaf --- /dev/null +++ b/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch @@ -0,0 +1,16 @@ +diff -Naur compat-wireless-3.5-1-snpc.org/config.mk compat-wireless-3.5/config.mk +--- compat-wireless-3.5-1-snpc.org/config.mk 2012-07-31 17:22:29.000000000 -0400 ++++ compat-wireless-3.5/config.mk 2012-08-13 13:09:55.913234600 -0400 +@@ -246,10 +246,12 @@ + # mac80211 test driver + export CONFIG_MAC80211_HWSIM=m + ++ifdef CONFIG_PCI + export CONFIG_ATH5K=m + # export CONFIG_ATH5K_DEBUG=y + # export CONFIG_ATH5K_TRACER=y + # export CONFIG_ATH5K_AHB=y ++endif #CONFIG_PCI + + export CONFIG_ATH9K=m + export CONFIG_ATH9K_HW=m diff --git a/src/patches/compat-wireless-3.0-libertas_uap.patch b/src/patches/compat-wireless-3.5-libertas_uap.patch similarity index 97% rename from src/patches/compat-wireless-3.0-libertas_uap.patch rename to src/patches/compat-wireless-3.5-libertas_uap.patch index 77bab835dd..633bb67720 100644 --- a/src/patches/compat-wireless-3.0-libertas_uap.patch +++ b/src/patches/compat-wireless-3.5-libertas_uap.patch @@ -1,6 +1,6 @@ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile 2011-10-21 11:13:58.697110085 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile 2012-07-31 14:23:04.000000000 +0200 @@ -0,0 +1,6 @@ +obj-$(CONFIG_LIBERTAS_UAP) += uap8xxx.o + @@ -8,9 +8,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile +uap8xxx-$(CONFIG_PROC_FS) += uap_proc.o uap_debug.o + +EXTRA_CFLAGS += -DFPNUM='"52"' -DPXA3XX_DMA_ALIGN -DDEBUG_LEVEL1 -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c 2011-10-21 11:13:58.707113466 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c 2012-07-31 14:23:04.000000000 +0200 @@ -0,0 +1,261 @@ +/** @file uap_debug.c + * @brief This file contains functions for debug proc file. @@ -273,9 +273,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug +} + +#endif -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h 2011-10-21 11:13:58.717113637 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h 2012-07-31 14:23:04.000000000 +0200 @@ -0,0 +1,667 @@ +/** @file uap_drv.h + * @brief This file contains Linux OS related definitions and @@ -944,9 +944,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h +int sbi_wakeup_firmware(uap_private * priv); + +#endif /* _UAP_DRV_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h 2011-10-21 11:13:58.727115088 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h 2012-07-31 14:23:04.000000000 +0200 @@ -0,0 +1,359 @@ +/** @file uap_fw.h + * @@ -1307,9 +1307,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h + u8 MacAddr[ETH_ALEN]; +} __ATTRIB_PACK__ AP_Event; +#endif /* _UAP_FW_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h 2011-10-21 11:13:58.727115088 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h 2012-07-31 14:23:04.000000000 +0200 @@ -0,0 +1,64 @@ +/** @file uap_headers.h + * @@ -1375,10 +1375,10 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_heade +#include "uap_sdio_mmc.h" + +#endif /* _UAP_HEADERS_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c 2011-10-21 11:13:58.767112032 +0200 -@@ -0,0 +1,1830 @@ +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c 2012-07-31 14:25:28.473230753 +0200 +@@ -0,0 +1,1815 @@ +/** @file uap_main.c + * @brief This file contains the major functions in uAP + * driver. It includes init, exit etc.. @@ -2703,20 +2703,6 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main. +} + +/** -+ * @brief This function sets multicast addresses to firmware -+ * -+ * @param dev A pointer to net_device structure -+ * @return n/a -+ */ -+static void -+uap_set_multicast_list(struct net_device *dev) -+{ -+ ENTER(); -+#warning uap_set_multicast_list not implemented. Expect problems with IPv6. -+ LEAVE(); -+} -+ -+/** + * @brief This function handles the timeout of packet + * transmission + * @@ -2939,7 +2925,6 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main. + .ndo_set_mac_address = uap_set_mac_address, + .ndo_tx_timeout = uap_tx_timeout, + .ndo_get_stats = uap_get_stats, -+ .ndo_set_multicast_list = uap_set_multicast_list, +}; +#endif + @@ -3209,10 +3194,10 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main. +MODULE_AUTHOR("Marvell International Ltd."); +MODULE_VERSION(DRIVER_VERSION); +MODULE_LICENSE("GPL"); -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c 2011-10-21 11:32:37.857111835 +0200 -@@ -0,0 +1,302 @@ +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c 2012-07-31 14:23:04.000000000 +0200 +@@ -0,0 +1,296 @@ +/** @file uap_proc.c + * @brief This file contains functions for proc file. + * @@ -3308,15 +3293,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc. + p += sprintf(p, + "MCAddr[%d]=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n", + i++, -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + ha->addr[0], ha->addr[1], + ha->addr[2], ha->addr[3], + ha->addr[4], ha->addr[5]); -+#else -+ ha->dmi_addr[0], ha->dmi_addr[1], -+ ha->dmi_addr[2], ha->dmi_addr[3], -+ ha->dmi_addr[4], ha->dmi_addr[5]); -+#endif + } + + p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes); @@ -3515,9 +3494,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc. +} + +#endif -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 2011-10-21 11:13:58.807113416 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 2012-07-31 14:23:04.000000000 +0200 @@ -0,0 +1,1428 @@ +/** @file uap_sdio_mmc.c + * @brief This file contains SDIO IF (interface) module @@ -4947,9 +4926,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_ + LEAVE(); + return ret; +} -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h ---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 1970-01-01 01:00:00.000000000 +0100 -+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 2011-10-21 11:13:58.807113416 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 1970-01-01 01:00:00.000000000 +0100 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 2012-07-31 14:23:04.000000000 +0200 @@ -0,0 +1,136 @@ +/** @file uap_sdio_mmc.h + * @brief This file contains SDIO IF (interface) module @@ -5087,9 +5066,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_ +}; + +#endif /* _UAP_SDIO_MMC_H */ -diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/Makefile compat-wireless-3.0-2/drivers/net/wireless/Makefile ---- compat-wireless-3.0-2.org/drivers/net/wireless/Makefile 2011-07-28 00:47:28.000000000 +0200 -+++ compat-wireless-3.0-2/drivers/net/wireless/Makefile 2011-10-21 11:13:58.697110085 +0200 +diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile +--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile 2012-07-05 03:48:01.000000000 +0200 ++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile 2012-07-31 14:20:01.343608619 +0200 @@ -22,6 +22,8 @@ obj-$(CONFIG_LIBERTAS_THINFIRM) += libertas_tf/ diff --git a/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch b/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch new file mode 100644 index 0000000000..602c1532f8 --- /dev/null +++ b/src/patches/compat-wireless-3.6.8-remove_3.1_cpufreq_backport.patch @@ -0,0 +1,48 @@ +diff -Naur compat-wireless-3.6.8-1-snp.org/compat/compat-3.1.c compat-wireless-3.6.8-1-snp/compat/compat-3.1.c +--- compat-wireless-3.6.8-1-snp.org/compat/compat-3.1.c 2012-11-29 06:03:45.000000000 +0100 ++++ compat-wireless-3.6.8-1-snp/compat/compat-3.1.c 2013-01-18 16:50:08.799491784 +0100 +@@ -9,30 +9,6 @@ + */ + + #include +-#include +- +-/* This backports: +- * commit 3d73710880afa3d61cf57b5d4eb192e812eb7e4f +- * Author: Jesse Barnes +- * Date: Tue Jun 28 10:59:12 2011 -0700 +- * +- * cpufreq: expose a cpufreq_quick_get_max routine +- */ +- +-unsigned int compat_cpufreq_quick_get_max(unsigned int cpu) +-{ +- struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); +- unsigned int ret_freq = 0; +- +- if (policy) { +- ret_freq = policy->max; +- cpufreq_cpu_put(policy); +- } +- +- return ret_freq; +-} +-EXPORT_SYMBOL(compat_cpufreq_quick_get_max); +- + + static DEFINE_SPINLOCK(compat_simple_ida_lock); + +diff -Naur compat-wireless-3.6.8-1-snp.org/include/linux/compat-3.1.h compat-wireless-3.6.8-1-snp/include/linux/compat-3.1.h +--- compat-wireless-3.6.8-1-snp.org/include/linux/compat-3.1.h 2012-10-24 15:22:50.000000000 +0200 ++++ compat-wireless-3.6.8-1-snp/include/linux/compat-3.1.h 2013-01-18 16:52:04.106154741 +0100 +@@ -111,10 +111,6 @@ + + void ida_simple_remove(struct ida *ida, unsigned int id); + +-/* mask cpufreq_quick_get_max as RHEL6 backports this */ +-#define cpufreq_quick_get_max(a) compat_cpufreq_quick_get_max(a) +- +-unsigned int cpufreq_quick_get_max(unsigned int cpu); + #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) */ + + #endif /* LINUX_3_1_COMPAT_H */ diff --git a/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch b/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch new file mode 100644 index 0000000000..210a58c6a7 --- /dev/null +++ b/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch @@ -0,0 +1,68 @@ +From patchwork Mon Jul 30 06:52:21 2012 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: codel: refine one condition to avoid a nul rec_inv_sqrt +Date: Sun, 29 Jul 2012 20:52:21 -0000 +From: Eric Dumazet +X-Patchwork-Id: 173968 +Message-Id: <1343631141.2626.13293.camel@edumazet-glaptop> +To: David Miller +Cc: netdev , Anton Mich + +From: Eric Dumazet + +One condition before codel_Newton_step() was not good if +we never left the dropping state for a flow. As a result +rec_inv_sqrt was 0, instead of the ~0 initial value. + +codel control law was then set to a very aggressive mode, dropping +many packets before reaching 'target' and recovering from this problem. + +To keep codel_vars_init() as efficient as possible, refine +the condition to make sure rec_inv_sqrt initial value is correct + +Many thanks to Anton Mich for discovering the issue and suggesting +a fix. + +Reported-by: Anton Mich +Signed-off-by: Eric Dumazet + +--- +include/net/codel.h | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + + + +-- +To unsubscribe from this list: send the line "unsubscribe netdev" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html + +diff --git a/include/net/codel.h b/include/net/codel.h +index 550debf..389cf62 100644 +--- a/include/net/codel.h ++++ b/include/net/codel.h +@@ -305,6 +305,8 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch, + } + } + } else if (drop) { ++ u32 delta; ++ + if (params->ecn && INET_ECN_set_ce(skb)) { + stats->ecn_mark++; + } else { +@@ -320,9 +322,11 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch, + * assume that the drop rate that controlled the queue on the + * last cycle is a good starting point to control it now. + */ +- if (codel_time_before(now - vars->drop_next, ++ delta = vars->count - vars->lastcount; ++ if (delta > 1 && ++ codel_time_before(now - vars->drop_next, + 16 * params->interval)) { +- vars->count = (vars->count - vars->lastcount) | 1; ++ vars->count = delta; + /* we dont care if rec_inv_sqrt approximation + * is not very precise : + * Next Newton steps will correct it quadratically. diff --git a/src/patches/coreutils-5.96-futimes.patch b/src/patches/coreutils-5.96-futimes.patch new file mode 100644 index 0000000000..e91f1df02a --- /dev/null +++ b/src/patches/coreutils-5.96-futimes.patch @@ -0,0 +1,56 @@ +--- coreutils-6.0.orig/lib/utimens.c 2006-06-11 09:14:31.000000000 +0200 ++++ coreutils-6.0/lib/utimens.c 2007-07-17 00:41:08.000000000 +0200 +@@ -75,7 +75,7 @@ + Return 0 on success, -1 (setting errno) on failure. */ + + int +-futimens (int fd ATTRIBUTE_UNUSED, ++cu_futimens (int fd ATTRIBUTE_UNUSED, + char const *file, struct timespec const timespec[2]) + { + /* There's currently no interface to set file timestamps with +@@ -168,5 +168,5 @@ + int + utimens (char const *file, struct timespec const timespec[2]) + { +- return futimens (-1, file, timespec); ++ return cu_futimens (-1, file, timespec); + } +--- coreutils-6.0.orig/lib/utimens.h 2004-11-23 21:41:51.000000000 +0100 ++++ coreutils-6.0/lib/utimens.h 2007-07-17 00:41:31.000000000 +0200 +@@ -1,3 +1,3 @@ + #include "timespec.h" +-int futimens (int, char const *, struct timespec const [2]); ++int cu_futimens (int, char const *, struct timespec const [2]); + int utimens (char const *, struct timespec const [2]); +--- coreutils-6.0.orig/src/copy.c 2007-07-16 23:18:42.000000000 +0200 ++++ coreutils-6.0/src/copy.c 2007-07-17 00:43:10.000000000 +0200 +@@ -648,7 +648,7 @@ + timespec[0] = get_stat_atime (src_sb); + timespec[1] = get_stat_mtime (src_sb); + +- if (futimens (dest_desc, dst_name, timespec) != 0) ++ if (cu_futimens (dest_desc, dst_name, timespec) != 0) + { + error (0, errno, _("preserving times for %s"), quote (dst_name)); + if (x->require_preserve) +--- coreutils-6.0.orig/src/touch.c 2005-11-02 11:01:07.000000000 +0100 ++++ coreutils-6.0/src/touch.c 2007-07-17 00:43:51.000000000 +0200 +@@ -167,7 +167,7 @@ + + if (amtime_now) + { +- /* Pass NULL to futimens so it will not fail if we have ++ /* Pass NULL to cu_futimens so it will not fail if we have + write access to the file, but don't own it. */ + t = NULL; + } +@@ -182,7 +182,7 @@ + t = timespec; + } + +- ok = (futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); ++ ok = (cu_futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0); + + if (fd == STDIN_FILENO) + { diff --git a/src/patches/cyrus-sasl-2.1.22-bad-elif.patch b/src/patches/cyrus-sasl-2.1.22-bad-elif.patch new file mode 100644 index 0000000000..33550c428d --- /dev/null +++ b/src/patches/cyrus-sasl-2.1.22-bad-elif.patch @@ -0,0 +1,21 @@ +diff -up cyrus-sasl-2.1.22/plugins/digestmd5.c.elif cyrus-sasl-2.1.22/plugins/digestmd5.c +--- cyrus-sasl-2.1.22/plugins/digestmd5.c.elif 2009-01-23 09:40:31.000000000 +0100 ++++ cyrus-sasl-2.1.22/plugins/digestmd5.c 2009-02-06 15:20:15.000000000 +0100 +@@ -2743,7 +2743,7 @@ static sasl_server_plug_t digestmd5_serv + "DIGEST-MD5", /* mech_name */ + #ifdef WITH_RC4 + 128, /* max_ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, +@@ -4071,7 +4071,7 @@ static sasl_client_plug_t digestmd5_clie + "DIGEST-MD5", + #ifdef WITH_RC4 /* mech_name */ + 128, /* max ssf */ +-#elif WITH_DES ++#elif defined(WITH_DES) + 112, + #else + 1, diff --git a/src/patches/dbus-1.0.3-compile-fix-1.patch b/src/patches/dbus-1.0.3-compile-fix-1.patch new file mode 100644 index 0000000000..86fd2b323a --- /dev/null +++ b/src/patches/dbus-1.0.3-compile-fix-1.patch @@ -0,0 +1,11 @@ +--- dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c 2009-01-01 03:50:33.000000000 +0200 ++++ dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c 2009-01-01 04:09:24.000000000 +0200 +@@ -992,7 +992,7 @@ + _dbus_verbose ("read credentials byte\n"); + + { +-#ifdef SO_PEERCRED ++#if defined(SO_PEERCRED) && defined(HAVE_GETPEERUCRED) + struct ucred cr; + int cr_len = sizeof (cr); + diff --git a/src/patches/dhcp-3.1_linux3.patch b/src/patches/dhcp-3.1_linux3.patch new file mode 100644 index 0000000000..44edb41d57 --- /dev/null +++ b/src/patches/dhcp-3.1_linux3.patch @@ -0,0 +1,11 @@ +diff -Naur dhcp-3.1-ESV-R3.org/configure dhcp-3.1-ESV-R3/configure +--- dhcp-3.1-ESV-R3.org/configure 2005-03-17 21:14:55.000000000 +0100 ++++ dhcp-3.1-ESV-R3/configure 2012-06-17 12:19:29.000000000 +0200 +@@ -104,6 +104,7 @@ + 2) sysname=linux-2.2 ;; + *) sysname=linux-2.2 ;; + esac;; ++ 3) sysname=linux-2.2 ;; + esac;; + SunOS) + release=`uname -r` diff --git a/src/patches/directfb-1.1.1-fix-mknod.patch b/src/patches/directfb-1.1.1-fix-mknod.patch new file mode 100644 index 0000000000..97633e2b10 --- /dev/null +++ b/src/patches/directfb-1.1.1-fix-mknod.patch @@ -0,0 +1,26 @@ +Description: directfb ftbfs on armel. Implicit declaration error + Fix for ARM builds failing on: + ../../../gfxdrivers/davinci/davinci_c64x.c: In function 'davinci_c64x_open': + ../../../gfxdrivers/davinci/davinci_c64x.c:1900:6: error: implicit declaration of function 'mknod' [-Werror=implicit-function-declaration] + cc1: some warnings being treated as errors + . + directfb (1.2.10.0-4.3) unstable; urgency=low + . + * Non-maintainer upload. + * Fix "directfb ftbfs on armel. Implicit declaration error" + - Thanks Peter Green for bug report and patch (Closes: #644782) + * Remove m4 macros when calling clean target +Author: Hector Oron +Bug-Debian: http://bugs.debian.org/644782 + +--- directfb-1.2.10.0.orig/gfxdrivers/davinci/davinci_c64x.c ++++ directfb-1.2.10.0/gfxdrivers/davinci/davinci_c64x.c +@@ -37,6 +37,8 @@ + #include + #include + #include ++#include ++ + #include + + #include diff --git a/src/patches/gcc-4.0.4-specs-1.patch b/src/patches/gcc-4.0.4-specs-1.patch deleted file mode 100644 index 46521e16ed..0000000000 --- a/src/patches/gcc-4.0.4-specs-1.patch +++ /dev/null @@ -1,336 +0,0 @@ -Submitted By: Robert Connolly (ashes) -Date: 2006-01-16 -Initial Package Version: 4.0.0 -Upstream Status: Not Sent - LFS Specfic -Origin: Idea originally developed by Ryan Oliver and Greg Schafer for - the Pure LFS project. - More architectures added by Zack Winkles. - Further fine tunings by Greg Schafer. - Modified for gcc 3.3.2 by Oliver Brakmann. -Rediffed against gcc 3.4.0 by Zack Winkles. - Rediffed against gcc 3.4.3 by Jim Gifford. - Rediffed against gcc 4.0.0 by Robert Connolly. -Description: This patch modifies the location of the dynamic linker for - the GCC Pass 2 build in LFS Chapter 5. - -diff -Naur gcc-20050116.orig/gcc/config/alpha/linux-elf.h gcc-20050116/gcc/config/alpha/linux-elf.h ---- gcc-20050116.orig/gcc/config/alpha/linux-elf.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/alpha/linux-elf.h 2005-01-17 00:46:14.560651027 +0000 -@@ -27,7 +27,7 @@ - #define SUBTARGET_EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define ELF_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ -diff -Naur gcc-20050116.orig/gcc/config/arm/linux-elf.h gcc-20050116/gcc/config/arm/linux-elf.h ---- gcc-20050116.orig/gcc/config/arm/linux-elf.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/arm/linux-elf.h 2005-01-17 00:46:50.538578614 +0000 -@@ -87,7 +87,7 @@ - %{shared:-shared} \ - %{symbolic:-Bsymbolic} \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2} \ - -X \ - %{mbig-endian:-EB}" \ - SUBTARGET_EXTRA_LINK_SPEC -diff -Naur gcc-20050116.orig/gcc/config/frv/linux.h gcc-20050116/gcc/config/frv/linux.h ---- gcc-20050116.orig/gcc/config/frv/linux.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/frv/linux.h 2005-01-17 01:33:50.600805260 +0000 -@@ -41,7 +41,7 @@ - %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \ - %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* Support for compile-time default CPU. */ -diff -Naur gcc-20050116.orig/gcc/config/i386/gnu.h gcc-20050116/gcc/config/i386/gnu.h ---- gcc-20050116.orig/gcc/config/i386/gnu.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/i386/gnu.h 2005-01-17 01:34:11.142021939 +0000 -@@ -27,7 +27,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \ - %{static:-static}}" - - #undef STARTFILE_SPEC -diff -Naur gcc-20050116.orig/gcc/config/i386/linux.h gcc-20050116/gcc/config/i386/linux.h ---- gcc-20050116.orig/gcc/config/i386/linux.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/i386/linux.h 2005-01-17 00:49:27.412667132 +0000 -@@ -105,7 +105,7 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #define LINK_EMULATION "elf_i386" --#define DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ -diff -Naur gcc-20050116.orig/gcc/config/i386/linux64.h gcc-20050116/gcc/config/i386/linux64.h ---- gcc-20050116.orig/gcc/config/i386/linux64.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/i386/linux64.h 2005-01-17 00:50:23.055094690 +0000 -@@ -60,8 +60,8 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ -+ %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ -+ %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \ - %{static:-static}}" - - #define MULTILIB_DEFAULTS { "m64" } -diff -Naur gcc-20050116.orig/gcc/config/ia64/linux.h gcc-20050116/gcc/config/ia64/linux.h ---- gcc-20050116.orig/gcc/config/ia64/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/ia64/linux.h 2005-01-17 00:50:43.146472133 +0000 -@@ -43,7 +43,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \ - %{static:-static}}" - - -diff -Naur gcc-20050116.orig/gcc/config/linux.h gcc-20050116/gcc/config/linux.h ---- gcc-20050116.orig/gcc/config/linux.h 2005-01-17 00:45:16.000000000 +0000 -+++ gcc-20050116/gcc/config/linux.h 2005-01-17 00:51:14.101809663 +0000 -@@ -104,3 +104,7 @@ - #define TARGET_C99_FUNCTIONS 1 - - #define TARGET_HAS_F_SETLKW -+ -+/* Remove /usr/include from the end of the include search path. */ -+#undef STANDARD_INCLUDE_DIR -+#define STANDARD_INCLUDE_DIR 0 -diff -Naur gcc-20050116.orig/gcc/config/m32r/linux.h gcc-20050116/gcc/config/m32r/linux.h ---- gcc-20050116.orig/gcc/config/m32r/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/m32r/linux.h 2005-01-17 00:51:39.720640870 +0000 -@@ -66,7 +66,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #else - #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \ -@@ -74,7 +74,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #endif - -diff -Naur gcc-20050116.orig/gcc/config/m68k/linux.h gcc-20050116/gcc/config/m68k/linux.h ---- gcc-20050116.orig/gcc/config/m68k/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/m68k/linux.h 2005-01-17 00:52:07.633830392 +0000 -@@ -132,7 +132,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* For compatibility with linux/a.out */ -diff -Naur gcc-20050116.orig/gcc/config/mips/linux.h gcc-20050116/gcc/config/mips/linux.h ---- gcc-20050116.orig/gcc/config/mips/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/mips/linux.h 2005-01-17 00:52:28.348034505 +0000 -@@ -115,7 +115,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef SUBTARGET_ASM_SPEC -diff -Naur gcc-20050116.orig/gcc/config/mips/linux64.h gcc-20050116/gcc/config/mips/linux64.h ---- gcc-20050116.orig/gcc/config/mips/linux64.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/mips/linux64.h 2005-01-17 00:53:04.645878728 +0000 -@@ -60,9 +60,9 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \ -- %{mabi=64: -dynamic-linker /lib64/ld.so.1} \ -- %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \ -+ %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \ -+ %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \ -+ %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \ - %{static:-static}}} \ - %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \ - %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \ -diff -Naur gcc-20050116.orig/gcc/config/mn10300/linux.h gcc-20050116/gcc/config/mn10300/linux.h ---- gcc-20050116.orig/gcc/config/mn10300/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/mn10300/linux.h 2005-01-17 00:53:23.477610026 +0000 -@@ -37,7 +37,7 @@ - #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}" - - #undef LIB_SPEC -diff -Naur gcc-20050116.orig/gcc/config/pa/pa-linux.h gcc-20050116/gcc/config/pa/pa-linux.h ---- gcc-20050116.orig/gcc/config/pa/pa-linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/pa/pa-linux.h 2005-01-17 00:53:45.334495141 +0000 -@@ -88,7 +88,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}" - - /* glibc's profiling functions don't need gcc to allocate counters. */ -diff -Naur gcc-20050116.orig/gcc/config/rs6000/linux64.h gcc-20050116/gcc/config/rs6000/linux64.h ---- gcc-20050116.orig/gcc/config/rs6000/linux64.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/rs6000/linux64.h 2005-01-17 00:54:28.524412534 +0000 -@@ -351,11 +351,11 @@ - - #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}" - - #undef TOC_SECTION_ASM_OP - #define TOC_SECTION_ASM_OP \ -diff -Naur gcc-20050116.orig/gcc/config/rs6000/sysv4.h gcc-20050116/gcc/config/rs6000/sysv4.h ---- gcc-20050116.orig/gcc/config/rs6000/sysv4.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/rs6000/sysv4.h 2005-01-17 01:26:39.126999460 +0000 -@@ -1131,7 +1131,7 @@ - - #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #if defined(HAVE_LD_EH_FRAME_HDR) - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -@@ -1162,7 +1162,7 @@ - - #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__ \ - %{!undef: \ -diff -Naur gcc-20050116.orig/gcc/config/s390/linux.h gcc-20050116/gcc/config/s390/linux.h ---- gcc-20050116.orig/gcc/config/s390/linux.h 2005-01-17 00:45:17.000000000 +0000 -+++ gcc-20050116/gcc/config/s390/linux.h 2005-01-17 01:26:58.672523211 +0000 -@@ -86,8 +86,8 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{m31:-dynamic-linker /lib/ld.so.1} \ -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ %{m31:-dynamic-linker /tools/lib/ld.so.1} \ -+ %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}" - - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack -diff -Naur gcc-20050116.orig/gcc/config/sh/linux.h gcc-20050116/gcc/config/sh/linux.h ---- gcc-20050116.orig/gcc/config/sh/linux.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/sh/linux.h 2005-01-17 01:27:19.588663163 +0000 -@@ -70,7 +70,7 @@ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}" - - #undef LIB_SPEC -diff -Naur gcc-20050116.orig/gcc/config/sparc/linux.h gcc-20050116/gcc/config/sparc/linux.h ---- gcc-20050116.orig/gcc/config/sparc/linux.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/sparc/linux.h 2005-01-17 01:30:07.282688639 +0000 -@@ -131,13 +131,13 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). -diff -Naur gcc-20050116.orig/gcc/config/sparc/linux64.h gcc-20050116/gcc/config/sparc/linux64.h ---- gcc-20050116.orig/gcc/config/sparc/linux64.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/sparc/linux64.h 2005-01-17 01:31:18.242712476 +0000 -@@ -167,21 +167,21 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - --#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}} \ - " - --#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - " - -@@ -257,12 +257,12 @@ - #else /* !SPARC_BI_ARCH */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - %{mlittle-endian:-EL} \ - %{!mno-relax:%{!r:-relax}} \ -diff -Naur gcc-20050116.orig/gcc/config/xtensa/linux.h gcc-20050116/gcc/config/xtensa/linux.h ---- gcc-20050116.orig/gcc/config/xtensa/linux.h 2005-01-17 00:45:18.000000000 +0000 -+++ gcc-20050116/gcc/config/xtensa/linux.h 2005-01-17 01:32:08.951429623 +0000 -@@ -50,7 +50,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef LOCAL_LABEL_PREFIX diff --git a/src/patches/gcc-4.1.2-arm-linux-soft-float.patch b/src/patches/gcc-4.1.2-arm-linux-soft-float.patch deleted file mode 100644 index c22bc385bc..0000000000 --- a/src/patches/gcc-4.1.2-arm-linux-soft-float.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -u -r gcc-4.0.2/gcc/config/arm/t-linux gcc-4.0.2/gcc/config/arm.new/t-linux ---- gcc-4.0.2/gcc/config/arm/t-linux 2005-10-18 22:04:44.000000000 +1000 -+++ gcc-4.0.2/gcc/config/arm.new/t-linux 2005-10-18 22:05:03.000000000 +1000 -@@ -4,7 +4,12 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi - LIBGCC2_DEBUG_CFLAGS = -g0 - - LIB1ASMSRC = arm/lib1funcs.asm --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf \ -+ _bb_init_func _call_via_rX _interwork_call_via_rX \ -+ _lshrdi3 _ashrdi3 _ashldi3 - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float - - ---- gcc-4.1.1/gcc/config/arm/linux-elf.h 2007-01-06 11:17:51.000000000 +0000 -+++ gcc-4.1.1/gcc/config/arm/linux-elf-soft.h 2007-01-06 11:22:01.000000000 +0000 -@@ -49,7 +49,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+/* #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" */ - - #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2" - diff --git a/src/patches/gcc-4.1.2-fix_linker_version_detection.patch b/src/patches/gcc-4.1.2-fix_linker_version_detection.patch deleted file mode 100644 index 36a756cef1..0000000000 --- a/src/patches/gcc-4.1.2-fix_linker_version_detection.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur gcc-4.1.2.org/libstdc++-v3/configure gcc-4.1.2/libstdc++-v3/configure ---- gcc-4.1.2.org/libstdc++-v3/configure 2007-01-29 11:51:01.000000000 +0100 -+++ gcc-4.1.2/libstdc++-v3/configure 2011-08-29 19:25:22.973430586 +0200 -@@ -8281,7 +8281,7 @@ - if test x"$with_gnu_ld" = x"yes"; then - - ldver=`$LD --version 2>/dev/null | head -1 | \ -- sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'` -+ sed -e 's/GNU ld .*) \([0-9.][0-9.]*\).*/\1/'` - - glibcxx_gnu_ld_version=`echo $ldver | \ - $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` diff --git a/src/patches/gcc-4.1.2-gcc_eh.patch b/src/patches/gcc-4.1.2-gcc_eh.patch deleted file mode 100644 index 9a2589a81c..0000000000 --- a/src/patches/gcc-4.1.2-gcc_eh.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ur gcc-4.1.2/gcc/cp/g++spec.c gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c ---- gcc-4.1.2/gcc/cp/g++spec.c 2005-06-25 02:59:41.000000000 +0200 -+++ gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c 2007-08-03 14:46:03.000000000 +0200 -@@ -251,7 +251,7 @@ - #endif - - /* Make sure to have room for the trailing NULL argument. */ -- num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1; -+ num_args = argc + added + need_math + shared_libgcc + 2 * (library > 0) + 1; - arglist = xmalloc (num_args * sizeof (char *)); - - i = 0; -@@ -311,7 +311,10 @@ - { - arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; - if (arglist[j][0] != '-' || arglist[j][1] == 'l') -- added_libraries++; -+ { -+ arglist[++j] = "-lgcc_eh"; -+ added_libraries += 2; -+ } - j++; - } - if (saw_math) diff --git a/src/patches/gcc-4.1.2-specs-1.patch b/src/patches/gcc-4.1.2-specs-1.patch deleted file mode 100644 index 28ebb433f2..0000000000 --- a/src/patches/gcc-4.1.2-specs-1.patch +++ /dev/null @@ -1,507 +0,0 @@ -diff -Naur gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h gcc-4.1.2/gcc/config/alpha/linux-elf.h ---- gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/alpha/linux-elf.h 2011-09-01 17:11:11.000000000 +0000 -@@ -27,7 +27,7 @@ - #define SUBTARGET_EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - --#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define ELF_DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ -diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h gcc-4.1.2/gcc/config/arm/linux-eabi.h ---- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h 2005-11-15 14:32:13.000000000 +0000 -+++ gcc-4.1.2/gcc/config/arm/linux-eabi.h 2011-09-01 17:11:47.000000000 +0000 -@@ -53,7 +53,7 @@ - /* Use ld-linux.so.3 so that it will be possible to run "classic" - GNU/Linux binaries on an EABI system. */ - #undef LINUX_TARGET_INTERPRETER --#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3" -+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.3" - - /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to - use the GNU/Linux version, not the generic BPABI version. */ -diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-elf.h gcc-4.1.2/gcc/config/arm/linux-elf.h ---- gcc-4.1.2.orig/gcc/config/arm/linux-elf.h 2005-10-10 01:04:31.000000000 +0000 -+++ gcc-4.1.2/gcc/config/arm/linux-elf.h 2011-09-01 17:11:11.000000000 +0000 -@@ -51,7 +51,7 @@ - - #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" - --#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2" -+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.2" - - #define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \ - %{b} \ -diff -Naur gcc-4.1.2.orig/gcc/config/frv/linux.h gcc-4.1.2/gcc/config/frv/linux.h ---- gcc-4.1.2.orig/gcc/config/frv/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/frv/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -41,7 +41,7 @@ - %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \ - %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* Support for compile-time default CPU. */ -diff -Naur gcc-4.1.2.orig/gcc/config/i386/gnu.h gcc-4.1.2/gcc/config/i386/gnu.h ---- gcc-4.1.2.orig/gcc/config/i386/gnu.h 2004-09-08 00:17:19.000000000 +0000 -+++ gcc-4.1.2/gcc/config/i386/gnu.h 2011-09-01 17:11:11.000000000 +0000 -@@ -27,7 +27,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \ - %{static:-static}}" - - #undef STARTFILE_SPEC -diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux64.h gcc-4.1.2/gcc/config/i386/linux64.h ---- gcc-4.1.2.orig/gcc/config/i386/linux64.h 2005-08-10 17:53:01.000000000 +0000 -+++ gcc-4.1.2/gcc/config/i386/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -60,8 +60,8 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ -+ %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ -+ %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \ - %{static:-static}}" - - /* Similar to standard Linux, but adding -ffast-math support. */ -diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux.h gcc-4.1.2/gcc/config/i386/linux.h ---- gcc-4.1.2.orig/gcc/config/i386/linux.h 2005-08-10 17:53:01.000000000 +0000 -+++ gcc-4.1.2/gcc/config/i386/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -105,7 +105,7 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #define LINK_EMULATION "elf_i386" --#define DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2" - - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ -diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h gcc-4.1.2/gcc/config/ia64/linux.h ---- gcc-4.1.2.orig/gcc/config/ia64/linux.h 2006-12-12 15:24:07.000000000 +0000 -+++ gcc-4.1.2/gcc/config/ia64/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -43,7 +43,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \ - %{static:-static}}" - - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig gcc-4.1.2/gcc/config/ia64/linux.h.orig ---- gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig 1970-01-01 00:00:00.000000000 +0000 -+++ gcc-4.1.2/gcc/config/ia64/linux.h.orig 2006-12-12 15:24:07.000000000 +0000 -@@ -0,0 +1,59 @@ -+/* Definitions for ia64-linux target. */ -+ -+/* This macro is a C statement to print on `stderr' a string describing the -+ particular machine description choice. */ -+ -+#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux"); -+ -+/* This is for -profile to use -lc_p instead of -lc. */ -+#undef CC1_SPEC -+#define CC1_SPEC "%{profile:-p} %{G*}" -+ -+/* Target OS builtins. */ -+#define TARGET_OS_CPP_BUILTINS() \ -+do { \ -+ LINUX_TARGET_OS_CPP_BUILTINS(); \ -+ builtin_define("_LONGLONG"); \ -+} while (0) -+ -+/* Need to override linux.h STARTFILE_SPEC, since it has crtbeginT.o in. */ -+#undef STARTFILE_SPEC -+#ifdef HAVE_LD_PIE -+#define STARTFILE_SPEC \ -+ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\ -+ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" -+#else -+#define STARTFILE_SPEC \ -+ "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}}\ -+ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" -+#endif -+ -+/* Similar to standard Linux, but adding -ffast-math support. */ -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC \ -+ "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ -+ %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" -+ -+/* Define this for shared library support because it isn't in the main -+ linux.h file. */ -+ -+#undef LINK_SPEC -+#define LINK_SPEC "\ -+ %{shared:-shared} \ -+ %{!shared: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{static:-static}}" -+ -+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -+ -+#define JMP_BUF_SIZE 76 -+ -+/* Override linux.h LINK_EH_SPEC definition. -+ Signalize that because we have fde-glibc, we don't need all C shared libs -+ linked against -lgcc_s. */ -+#undef LINK_EH_SPEC -+#define LINK_EH_SPEC "" -+ -+#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" -diff -Naur gcc-4.1.2.orig/gcc/config/linux.h gcc-4.1.2/gcc/config/linux.h ---- gcc-4.1.2.orig/gcc/config/linux.h 2005-08-06 13:26:35.000000000 +0000 -+++ gcc-4.1.2/gcc/config/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -104,3 +104,7 @@ - #define TARGET_C99_FUNCTIONS 1 - - #define TARGET_POSIX_IO -+ -+/* Remove /usr/include from the end of the include search path. */ -+#undef STANDARD_INCLUDE_DIR -+#define STANDARD_INCLUDE_DIR 0 -diff -Naur gcc-4.1.2.orig/gcc/config/m32r/linux.h gcc-4.1.2/gcc/config/m32r/linux.h ---- gcc-4.1.2.orig/gcc/config/m32r/linux.h 2005-07-08 10:00:15.000000000 +0000 -+++ gcc-4.1.2/gcc/config/m32r/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -66,7 +66,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #else - #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \ -@@ -74,7 +74,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - #endif - -diff -Naur gcc-4.1.2.orig/gcc/config/m68k/linux.h gcc-4.1.2/gcc/config/m68k/linux.h ---- gcc-4.1.2.orig/gcc/config/m68k/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/m68k/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -128,7 +128,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static}}" - - /* For compatibility with linux/a.out */ -diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h ---- gcc-4.1.2.orig/gcc/config/mips/linux64.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/mips/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -47,9 +47,9 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \ -- %{mabi=64: -dynamic-linker /lib64/ld.so.1} \ -- %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \ -+ %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \ -+ %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \ -+ %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \ - %{static:-static}}} \ - %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \ - %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \ -diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux.h gcc-4.1.2/gcc/config/mips/linux.h ---- gcc-4.1.2.orig/gcc/config/mips/linux.h 2006-12-17 13:57:31.000000000 +0000 -+++ gcc-4.1.2/gcc/config/mips/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -112,7 +112,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef SUBTARGET_ASM_SPEC -diff -Naur gcc-4.1.2.orig/gcc/config/mn10300/linux.h gcc-4.1.2/gcc/config/mn10300/linux.h ---- gcc-4.1.2.orig/gcc/config/mn10300/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/mn10300/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -37,7 +37,7 @@ - #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}" - - #undef PROCESSOR_DEFAULT -diff -Naur gcc-4.1.2.orig/gcc/config/pa/pa-linux.h gcc-4.1.2/gcc/config/pa/pa-linux.h ---- gcc-4.1.2.orig/gcc/config/pa/pa-linux.h 2007-01-12 02:23:38.000000000 +0000 -+++ gcc-4.1.2/gcc/config/pa/pa-linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -55,7 +55,7 @@ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}" - - /* glibc's profiling functions don't need gcc to allocate counters. */ -diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/linux64.h gcc-4.1.2/gcc/config/rs6000/linux64.h ---- gcc-4.1.2.orig/gcc/config/rs6000/linux64.h 2006-02-10 20:58:33.000000000 +0000 -+++ gcc-4.1.2/gcc/config/rs6000/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -339,11 +339,11 @@ - - #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}" - - #undef TOC_SECTION_ASM_OP - #define TOC_SECTION_ASM_OP \ -diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h gcc-4.1.2/gcc/config/rs6000/sysv4.h ---- gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h 2006-02-10 20:58:33.000000000 +0000 -+++ gcc-4.1.2/gcc/config/rs6000/sysv4.h 2011-09-01 17:11:11.000000000 +0000 -@@ -1041,7 +1041,7 @@ - - #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #if defined(HAVE_LD_EH_FRAME_HDR) - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -@@ -1072,7 +1072,7 @@ - - #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}" - - #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__ \ - %{!undef: \ -diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h gcc-4.1.2/gcc/config/s390/linux.h ---- gcc-4.1.2.orig/gcc/config/s390/linux.h 2006-12-12 15:24:07.000000000 +0000 -+++ gcc-4.1.2/gcc/config/s390/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -86,8 +86,8 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{m31:-dynamic-linker /lib/ld.so.1} \ -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ %{m31:-dynamic-linker /tools/lib/ld.so.1} \ -+ %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}" - - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" - -diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h.orig gcc-4.1.2/gcc/config/s390/linux.h.orig ---- gcc-4.1.2.orig/gcc/config/s390/linux.h.orig 1970-01-01 00:00:00.000000000 +0000 -+++ gcc-4.1.2/gcc/config/s390/linux.h.orig 2006-12-12 15:24:07.000000000 +0000 -@@ -0,0 +1,107 @@ -+/* Definitions for Linux for S/390. -+ Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. -+ Contributed by Hartmut Penner (hpenner@de.ibm.com) and -+ Ulrich Weigand (uweigand@de.ibm.com). -+ -+This file is part of GCC. -+ -+GCC 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 2, or (at your option) any later -+version. -+ -+GCC 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 GCC; see the file COPYING. If not, write to the Free -+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA -+02110-1301, USA. */ -+ -+#ifndef _LINUX_H -+#define _LINUX_H -+ -+/* Target specific version string. */ -+ -+#ifdef DEFAULT_TARGET_64BIT -+#undef TARGET_VERSION -+#define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)"); -+#else -+#undef TARGET_VERSION -+#define TARGET_VERSION fprintf (stderr, " (Linux for S/390)"); -+#endif -+ -+ -+/* Target specific type definitions. */ -+ -+/* ??? Do we really want long as size_t on 31-bit? */ -+#undef SIZE_TYPE -+#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int") -+#undef PTRDIFF_TYPE -+#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") -+ -+#undef WCHAR_TYPE -+#define WCHAR_TYPE "int" -+#undef WCHAR_TYPE_SIZE -+#define WCHAR_TYPE_SIZE 32 -+ -+ -+/* Target specific preprocessor settings. */ -+ -+#define TARGET_OS_CPP_BUILTINS() \ -+ do \ -+ { \ -+ LINUX_TARGET_OS_CPP_BUILTINS(); \ -+ if (flag_pic) \ -+ { \ -+ builtin_define ("__PIC__"); \ -+ builtin_define ("__pic__"); \ -+ } \ -+ } \ -+ while (0) -+ -+ -+/* Target specific assembler settings. */ -+ -+#undef ASM_SPEC -+#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}" -+ -+ -+/* Target specific linker settings. */ -+ -+#ifdef DEFAULT_TARGET_64BIT -+#define MULTILIB_DEFAULTS { "m64" } -+#else -+#define MULTILIB_DEFAULTS { "m31" } -+#endif -+ -+#undef LINK_SPEC -+#define LINK_SPEC \ -+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ -+ %{shared:-shared} \ -+ %{!shared: \ -+ %{static:-static} \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker: \ -+ %{m31:-dynamic-linker /lib/ld.so.1} \ -+ %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ -+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" -+ -+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack -+ -+#define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h" -+ -+#ifdef TARGET_LIBC_PROVIDES_SSP -+/* s390 glibc provides __stack_chk_guard in 0x14(tp), -+ s390x glibc provides it at 0x28(tp). */ -+#define TARGET_THREAD_SSP_OFFSET (TARGET_64BIT ? 0x28 : 0x14) -+#endif -+ -+/* Define if long doubles should be mangled as 'g'. */ -+#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING -+ -+#endif -diff -Naur gcc-4.1.2.orig/gcc/config/sh/linux.h gcc-4.1.2/gcc/config/sh/linux.h ---- gcc-4.1.2.orig/gcc/config/sh/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/sh/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -60,7 +60,7 @@ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}" - - /* Output assembler code to STREAM to call the profiler. */ -diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux64.h gcc-4.1.2/gcc/config/sparc/linux64.h ---- gcc-4.1.2.orig/gcc/config/sparc/linux64.h 2006-02-11 08:38:51.000000000 +0000 -+++ gcc-4.1.2/gcc/config/sparc/linux64.h 2011-09-01 17:11:11.000000000 +0000 -@@ -162,21 +162,21 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - --#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}} \ - " - --#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - " - -@@ -252,12 +252,12 @@ - #else /* !SPARC_BI_ARCH */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \ -+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \ - %{static:-static}}} \ - %{mlittle-endian:-EL} \ - %{!mno-relax:%{!r:-relax}} \ -diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux.h gcc-4.1.2/gcc/config/sparc/linux.h ---- gcc-4.1.2.orig/gcc/config/sparc/linux.h 2006-02-11 08:38:51.000000000 +0000 -+++ gcc-4.1.2/gcc/config/sparc/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -126,13 +126,13 @@ - /* If ELF is the default format, we should not use /lib/elf. */ - - #undef LINK_SPEC --#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ -+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \ - %{static:-static}}}" - - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). -diff -Naur gcc-4.1.2.orig/gcc/config/xtensa/linux.h gcc-4.1.2/gcc/config/xtensa/linux.h ---- gcc-4.1.2.orig/gcc/config/xtensa/linux.h 2005-06-25 01:22:41.000000000 +0000 -+++ gcc-4.1.2/gcc/config/xtensa/linux.h 2011-09-01 17:11:11.000000000 +0000 -@@ -50,7 +50,7 @@ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \ - %{static:-static}}}" - - #undef LOCAL_LABEL_PREFIX diff --git a/src/patches/gcc-4.4.3-startfiles_fix-1.patch b/src/patches/gcc-4.4.3-startfiles_fix-1.patch new file mode 100644 index 0000000000..a2eac9e462 --- /dev/null +++ b/src/patches/gcc-4.4.3-startfiles_fix-1.patch @@ -0,0 +1,33 @@ +Submitted By: Jeremy Huntwork (jhuntwork AT linuxfromscratch DOT org) +Date: 2008-12-05 +Initial Package Version: 4.3.2 +Upstream Status: See below. +Origin: DIY Linux, See below. +Description: Original patch follows: + +# DIY Linux Patch +Date: 2008-09-09 +Author: Refer Origin. +Origin: Partial revert of http://gcc.gnu.org/ml/gcc-cvs/2006-11/msg00416.html +Maker: Greg Schafer +Upstream Status: Not applicable. Tweak only for Temptools phase GCC-Pass2. +Description: Partially revert GCC driver to pre-GCC-4.3 state to allow startfiles to be + found in $prefix when GCC is configured for a non-standard prefix eg: /temptools. Full + background info in thread starting here: http://gcc.gnu.org/ml/gcc/2008-03/msg00095.html + and GCC bugzilla here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35532 + +diff -Naur gcc-4.3.0-RC-20080222.orig/gcc/gcc.c gcc-4.3.0-RC-20080222/gcc/gcc.c +--- gcc-4.3.0-RC-20080222.orig/gcc/gcc.c 2008-01-24 18:57:12.000000000 +0000 ++++ gcc-4.3.0-RC-20080222/gcc/gcc.c 2008-03-02 06:07:36.000000000 +0000 +@@ -6370,6 +6370,11 @@ + machine_suffix, + standard_startfile_prefix, NULL), + NULL, PREFIX_PRIORITY_LAST, 0, 1); ++ add_prefix (&startfile_prefixes, ++ concat (standard_exec_prefix, ++ machine_suffix, ++ standard_startfile_prefix, NULL), ++ NULL, PREFIX_PRIORITY_LAST, 0, 1); + } + + /* Sysrooted prefixes are relocated because target_system_root is diff --git a/src/patches/gcc-libstdc++-pic.patch b/src/patches/gcc-libstdc++-pic.patch deleted file mode 100644 index a9d6e7185f..0000000000 --- a/src/patches/gcc-libstdc++-pic.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- gcc-4.0.0/libstdc++-v3/src/Makefile.am -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.am -@@ -214,6 +214,10 @@ - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@ - - -+install-exec-local: -+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) -+ - # Added bits to build debug library. - if GLIBCXX_BUILD_DEBUG - all-local: build_debug ---- gcc-4.0.0/libstdc++-v3/src/Makefile.in -+++ gcc-4.0.0/libstdc++-v3/src/Makefile.in -@@ -625,7 +625,7 @@ - - install-data-am: install-data-local - --install-exec-am: install-toolexeclibLTLIBRARIES -+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local - - install-info: install-info-am - -@@ -664,7 +664,7 @@ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ -- uninstall-toolexeclibLTLIBRARIES -+ uninstall-toolexeclibLTLIBRARIES install-exec-local - - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcxx_srcdir}/$(SYMVER_MAP) - @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver -@@ -743,6 +743,11 @@ - install_debug: - (cd ${debugdir} && $(MAKE) \ - toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) -+ -+install-exec-local: -+ $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o -+ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: diff --git a/src/patches/gcc-sdk-libstdc++-includes.patch b/src/patches/gcc-sdk-libstdc++-includes.patch deleted file mode 100644 index c7676ae6a2..0000000000 --- a/src/patches/gcc-sdk-libstdc++-includes.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN gcc-4.0.0-100/libstdc++-v3/fragment.am gcc-4.0.0/libstdc++-v3/fragment.am ---- gcc-4.0.0-100/libstdc++-v3/fragment.am 2004-10-25 15:32:40.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/fragment.am 2005-04-28 21:48:43.000000000 -0500 -@@ -18,5 +18,5 @@ - $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once - - # -I/-D flags to pass when compiling. --AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include - -diff -urN gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am gcc-4.0.0/libstdc++-v3/libmath/Makefile.am ---- gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am 2003-08-27 16:29:42.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/libmath/Makefile.am 2005-04-28 21:48:43.000000000 -0500 -@@ -32,7 +32,7 @@ - - libmath_la_SOURCES = stubs.c - --AM_CPPFLAGS = $(CANADIAN_INCLUDES) -+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include - - # Only compiling "C" sources in this directory. - LIBTOOL = @LIBTOOL@ --tag CC diff --git a/src/patches/gcc-uclibc-conf.patch b/src/patches/gcc-uclibc-conf.patch deleted file mode 100644 index 3be7d0975d..0000000000 --- a/src/patches/gcc-uclibc-conf.patch +++ /dev/null @@ -1,553 +0,0 @@ ---- gcc-4.0.2/gcc/config/t-linux-uclibc -+++ gcc-4.0.2/gcc/config/t-linux-uclibc -@@ -0,0 +1,5 @@ -+# Remove glibc specific files added in t-linux -+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES)) -+ -+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc -+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH)) ---- gcc-4.0.2/gcc/config.gcc -+++ gcc-4.0.2/gcc/config.gcc -@@ -1778,7 +1778,7 @@ - ;; - sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \ - sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ -- sh-*-linux* | sh[346lbe]*-*-linux* | \ -+ sh*-*-linux* | sh[346lbe]*-*-linux* | \ - sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ - sh64-*-netbsd* | sh64l*-*-netbsd*) - tmake_file="${tmake_file} sh/t-sh sh/t-elf" -@@ -2234,10 +2234,16 @@ - *) - echo "*** Configuration ${target} not supported" 1>&2 - exit 1 - ;; - esac -+ -+# Rather than hook into each target, just do it after all the linux -+# targets have been processed -+case ${target} in -+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc" -+esac - - case ${target} in - i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1) - tmake_file="${tmake_file} i386/t-gmm_malloc" - ;; ---- gcc-4.0.2/gcc/config/alpha/linux-elf.h -+++ gcc-4.0.2/gcc/config/alpha/linux-elf.h -@@ -27,7 +27,11 @@ - #define SUBTARGET_EXTRA_SPECS \ - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER }, - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else - #define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - - #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ ---- gcc-4.0.2/gcc/config/arm/linux-elf.h -+++ gcc-4.0.2/gcc/config/arm/linux-elf.h -@@ -81,14 +81,19 @@ - #define ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "%{h*} %{version:-v} \ - %{b} %{Wl,*:%*} \ - %{static:-Bstatic} \ - %{shared:-shared} \ - %{symbolic:-Bsymbolic} \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \ - -X \ - %{mbig-endian:-EB}" \ - SUBTARGET_EXTRA_LINK_SPEC ---- gcc-4.0.2/gcc/config/cris/linux.h -+++ gcc-4.0.2/gcc/config/cris/linux.h -@@ -79,6 +79,25 @@ - #undef CRIS_DEFAULT_CPU_VERSION - #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG - -+#ifdef USE_UCLIBC -+ -+#undef CRIS_SUBTARGET_VERSION -+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc" -+ -+#undef CRIS_LINK_SUBTARGET_SPEC -+#define CRIS_LINK_SUBTARGET_SPEC \ -+ "-mcrislinux\ -+ -rpath-link include/asm/../..%s\ -+ %{shared} %{static}\ -+ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ -+ %{!shared: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \ -+ %{!r:%{O2|O3: --gc-sections}}" -+ -+#else /* USE_UCLIBC */ -+ - #undef CRIS_SUBTARGET_VERSION - #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu" - -@@ -93,6 +112,8 @@ - %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ - %{!r:%{O2|O3: --gc-sections}}" - -+#endif /* USE_UCLIBC */ -+ - - /* Node: Run-time Target */ - ---- gcc-4.0.2/gcc/config/i386/linux.h -+++ gcc-4.0.2/gcc/config/i386/linux.h -@@ -107,6 +107,11 @@ - #define LINK_EMULATION "elf_i386" - #define DYNAMIC_LINKER "/lib/ld-linux.so.2" - -+#ifdef USE_UCLIBC -+#undef DYNAMIC_LINKER -+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#endif -+ - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ - { "link_emulation", LINK_EMULATION },\ ---- gcc-4.0.2/gcc/config/i386/linux64.h -+++ gcc-4.0.2/gcc/config/i386/linux64.h -@@ -54,14 +54,21 @@ - When the -shared link option is used a final link is not being - done. */ - -+#ifdef USE_UCLIBC -+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" -+#else -+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -- %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \ -+ %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \ -+ %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \ - %{static:-static}}" - - #define MULTILIB_DEFAULTS { "m64" } ---- gcc-4.0.2/gcc/config/ia64/linux.h -+++ gcc-4.0.2/gcc/config/ia64/linux.h -@@ -37,13 +37,18 @@ - /* Define this for shared library support because it isn't in the main - linux.h file. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "\ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}" - - ---- gcc-4.0.2/gcc/config/m68k/linux.h -+++ gcc-4.0.2/gcc/config/m68k/linux.h -@@ -127,12 +127,17 @@ - - /* If ELF is the default format, we should not use /lib/elf. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "-m m68kelf %{shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static}}" - - /* For compatibility with linux/a.out */ ---- gcc-4.0.2/gcc/config/mips/linux.h -+++ gcc-4.0.2/gcc/config/mips/linux.h -@@ -108,14 +108,19 @@ - - /* Borrowed from sparc/linux.h */ - #undef LINK_SPEC -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #define LINK_SPEC \ - "%(endian_spec) \ - %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}}" - - #undef SUBTARGET_ASM_SPEC ---- gcc-4.0.2/gcc/config/pa/pa-linux.h -+++ gcc-4.0.2/gcc/config/pa/pa-linux.h -@@ -82,13 +82,18 @@ - /* Define this for shared library support because it isn't in the main - linux.h file. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "\ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}" - - /* glibc's profiling functions don't need gcc to allocate counters. */ ---- gcc-4.0.2/gcc/config/rs6000/linux.h -+++ gcc-4.0.2/gcc/config/rs6000/linux.h -@@ -69,7 +69,11 @@ - #define LINK_START_DEFAULT_SPEC "%(link_start_linux)" - - #undef LINK_OS_DEFAULT_SPEC -+#ifdef USE_UCLIBC -+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)" -+#else - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" -+#endif - - #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" ---- gcc-4.0.2/gcc/config/rs6000/sysv4.h -+++ gcc-4.0.2/gcc/config/rs6000/sysv4.h -@@ -949,6 +949,7 @@ - mcall-linux : %(link_os_linux) ; \ - mcall-gnu : %(link_os_gnu) ; \ - mcall-netbsd : %(link_os_netbsd) ; \ -+ mcall-linux-uclibc : %(link_os_linux_uclibc); \ - mcall-openbsd: %(link_os_openbsd) ; \ - : %(link_os_default) }" - -@@ -1127,6 +1128,10 @@ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}" - -+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}" -+ - #if defined(HAVE_LD_EH_FRAME_HDR) - # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " - #endif -@@ -1293,6 +1298,7 @@ - { "link_os_sim", LINK_OS_SIM_SPEC }, \ - { "link_os_freebsd", LINK_OS_FREEBSD_SPEC }, \ - { "link_os_linux", LINK_OS_LINUX_SPEC }, \ -+ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \ - { "link_os_gnu", LINK_OS_GNU_SPEC }, \ - { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ - { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ ---- gcc-4.0.2/gcc/config/s390/linux.h -+++ gcc-4.0.2/gcc/config/s390/linux.h -@@ -77,6 +77,13 @@ - #define MULTILIB_DEFAULTS { "m31" } - #endif - -+#ifdef USE_UCLIBC -+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0" -+#else -+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1" -+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1" -+#endif - #undef LINK_SPEC - #define LINK_SPEC \ - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ -@@ -86,8 +93,8 @@ - %{!static: \ - %{rdynamic:-export-dynamic} \ - %{!dynamic-linker: \ -- %{m31:-dynamic-linker /lib/ld.so.1} \ -- %{m64:-dynamic-linker /lib/ld64.so.1}}}}" -+ %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \ -+ %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}" - - - #define TARGET_ASM_FILE_END file_end_indicate_exec_stack ---- gcc-4.0.2/gcc/config/sh/linux.h -+++ gcc-4.0.2/gcc/config/sh/linux.h -@@ -67,11 +67,16 @@ - #undef SUBTARGET_LINK_EMUL_SUFFIX - #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" - #undef SUBTARGET_LINK_SPEC -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #define SUBTARGET_LINK_SPEC \ - "%{shared:-shared} \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}" - - #undef LIB_SPEC ---- gcc-4.0.2/gcc/config/sparc/linux.h -+++ gcc-4.0.2/gcc/config/sparc/linux.h -@@ -130,14 +130,19 @@ - - /* If ELF is the default format, we should not use /lib/elf. */ - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #undef LINK_SPEC - #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}}" - - /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). ---- gcc-4.0.2/gcc/config/sparc/linux64.h -+++ gcc-4.0.2/gcc/config/sparc/linux64.h -@@ -167,12 +166,17 @@ - { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, - -+#ifdef USE_UCLIBC -+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -+#else -+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" -+#endif - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ -+ %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \ - %{static:-static}}} \ - " - ---- gcc-4.0.2/libtool.m4 -+++ gcc-4.0.2/libtool.m4 -@@ -682,6 +682,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] ---- gcc-4.0.2/ltconfig -+++ gcc-4.0.2/ltconfig -@@ -603,6 +603,7 @@ - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in -+linux-uclibc*) ;; - linux-gnu*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac -@@ -1274,6 +1275,23 @@ - dynamic_linker='GNU/Linux ld.so' - ;; - -+linux-uclibc*) -+ version_type=linux -+ need_lib_prefix=no -+ need_version=no -+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' -+ soname_spec='${libname}${release}.so$major' -+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' -+ shlibpath_var=LD_LIBRARY_PATH -+ shlibpath_overrides_runpath=no -+ # This implies no fast_install, which is unacceptable. -+ # Some rework will be needed to allow for fast_install -+ # before this can be enabled. -+ hardcode_into_libs=yes -+ # Assume using the uClibc dynamic linker. -+ dynamic_linker="uClibc ld.so" -+ ;; -+ - netbsd*) - need_lib_prefix=no - need_version=no ---- gcc-4.0.2/libffi/configure -+++ gcc-4.0.2/libffi/configure -@@ -3457,6 +3457,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libgfortran/configure -+++ gcc-4.0.2/libgfortran/configure -@@ -3681,6 +3681,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libjava/configure -+++ gcc-4.0.2/libjava/configure -@@ -4351,6 +4351,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libmudflap/configure -+++ gcc-4.0.2/libmudflap/configure -@@ -5380,6 +5380,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/libobjc/configure -+++ gcc-4.0.2/libobjc/configure -@@ -3283,6 +3283,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/boehm-gc/configure -+++ gcc-4.0.2/boehm-gc/configure -@@ -4320,6 +4320,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' ---- gcc-4.0.2/configure -+++ gcc-4.0.2/configure -@@ -1141,7 +1141,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) ---- gcc-4.0.2/configure.in -+++ gcc-4.0.2/configure.in -@@ -350,7 +350,7 @@ - ;; - "") - case "${target}" in -- *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) -+ *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*) - # Enable libmudflap by default in GNU and friends. - ;; - *-*-freebsd*) ---- gcc-4.0.2/contrib/regression/objs-gcc.sh -+++ gcc-4.0.2/contrib/regression/objs-gcc.sh -@@ -105,6 +105,10 @@ - then - make all-gdb all-dejagnu all-ld || exit 1 - make install-gdb install-dejagnu install-ld || exit 1 -+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] -+ then -+ make all-gdb all-dejagnu all-ld || exit 1 -+ make install-gdb install-dejagnu install-ld || exit 1 - elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then - make bootstrap || exit 1 - make install || exit 1 ---- gcc-4.0.2/zlib/configure -+++ gcc-4.0.2/zlib/configure -@@ -3426,6 +3426,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff --git a/src/patches/gcc-uclibc-locale.patch b/src/patches/gcc-uclibc-locale.patch deleted file mode 100644 index ac4cf97209..0000000000 --- a/src/patches/gcc-uclibc-locale.patch +++ /dev/null @@ -1,3237 +0,0 @@ -diff -urN gcc-4.0.0-100/libstdc++-v3/acinclude.m4 gcc-4.0.0/libstdc++-v3/acinclude.m4 ---- gcc-4.0.0-100/libstdc++-v3/acinclude.m4 2005-04-30 13:06:53.000000000 -0500 -+++ gcc-4.0.0/libstdc++-v3/acinclude.m4 2005-04-28 20:19:01.000000000 -0500 -@@ -1104,7 +1104,7 @@ - AC_MSG_CHECKING([for C locale to use]) - GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@], - [use MODEL for target locale package], -- [permit generic|gnu|ieee_1003.1-2001|yes|no|auto]) -+ [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto]) - - # If they didn't use this option switch, or if they specified --enable - # with no specific model, we'll have to look for one. If they -@@ -1120,6 +1120,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ *-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - AC_EGREP_CPP([_GLIBCXX_ok], [ - #include -@@ -1263,6 +1266,40 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ AC_MSG_RESULT(uclibc) -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ AC_SUBST(glibcxx_MOFILES) -+ AC_SUBST(glibcxx_POFILES) -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,59 @@ -+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- -+ -+// Copyright (C) 2002, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// Written by Jakub Jelinek -+ -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning clean this up -+#endif -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ -+extern "C" __typeof(iswctype_l) __iswctype_l; -+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; -+extern "C" __typeof(strcoll_l) __strcoll_l; -+extern "C" __typeof(strftime_l) __strftime_l; -+extern "C" __typeof(strtod_l) __strtod_l; -+extern "C" __typeof(strtof_l) __strtof_l; -+extern "C" __typeof(strtold_l) __strtold_l; -+extern "C" __typeof(strxfrm_l) __strxfrm_l; -+extern "C" __typeof(towlower_l) __towlower_l; -+extern "C" __typeof(towupper_l) __towupper_l; -+extern "C" __typeof(wcscoll_l) __wcscoll_l; -+extern "C" __typeof(wcsftime_l) __wcsftime_l; -+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; -+extern "C" __typeof(wctype_l) __wctype_l; -+extern "C" __typeof(newlocale) __newlocale; -+extern "C" __typeof(freelocale) __freelocale; -+extern "C" __typeof(duplocale) __duplocale; -+extern "C" __typeof(uselocale) __uselocale; -+ -+#endif // GLIBC 2.3 and later -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,160 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik -+ -+#include // For errno -+#include -+#include -+#include -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) -+#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) -+#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) -+#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) -+#define __strtof_l(S, E, L) strtof((S), (E)) -+#define __strtod_l(S, E, L) strtod((S), (E)) -+#define __strtold_l(S, E, L) strtold((S), (E)) -+#warning should dummy __newlocale check for C|POSIX ? -+#define __newlocale(a, b, c) NULL -+#define __freelocale(a) ((void)0) -+#define __duplocale(a) __c_locale() -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ float __f = __strtof_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __f; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ double __d = __strtod_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __d; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, -+ const __c_locale& __cloc) -+ { -+ if (!(__err & ios_base::failbit)) -+ { -+ char* __sanity; -+ errno = 0; -+ long double __ld = __strtold_l(__s, &__sanity, __cloc); -+ if (__sanity != __s && errno != ERANGE) -+ __v = __ld; -+ else -+ __err |= ios_base::failbit; -+ } -+ } -+ -+ void -+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, -+ __c_locale __old) -+ { -+ __cloc = __newlocale(1 << LC_ALL, __s, __old); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ if (!__cloc) -+ { -+ // This named locale is not supported by the underlying OS. -+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale " -+ "name not valid")); -+ } -+#endif -+ } -+ -+ void -+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) -+ { -+ if (_S_get_c_locale() != __cloc) -+ __freelocale(__cloc); -+ } -+ -+ __c_locale -+ locale::facet::_S_clone_c_locale(__c_locale& __cloc) -+ { return __duplocale(__cloc); } -+} // namespace std -+ -+namespace __gnu_cxx -+{ -+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = -+ { -+ "LC_CTYPE", -+ "LC_NUMERIC", -+ "LC_TIME", -+ "LC_COLLATE", -+ "LC_MONETARY", -+ "LC_MESSAGES", -+#if _GLIBCXX_NUM_CATEGORIES != 0 -+ "LC_PAPER", -+ "LC_NAME", -+ "LC_ADDRESS", -+ "LC_TELEPHONE", -+ "LC_MEASUREMENT", -+ "LC_IDENTIFICATION" -+#endif -+ }; -+} -+ -+namespace std -+{ -+ const char* const* const locale::_S_categories = __gnu_cxx::category_names; -+} // namespace std -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,115 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik -+ -+#ifndef _C_LOCALE_H -+#define _C_LOCALE_H 1 -+ -+#pragma GCC system_header -+ -+#include // get std::strlen -+#include // get std::snprintf or std::sprintf -+#include -+#include // For codecvt -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC_HAS_LOCALE__ -+#include // For codecvt using iconv, iconv_t -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+#include // For messages -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning what is _GLIBCXX_C_LOCALE_GNU for -+#endif -+#define _GLIBCXX_C_LOCALE_GNU 1 -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix categories -+#endif -+// #define _GLIBCXX_NUM_CATEGORIES 6 -+#define _GLIBCXX_NUM_CATEGORIES 0 -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+namespace __gnu_cxx -+{ -+ extern "C" __typeof(uselocale) __uselocale; -+} -+#endif -+ -+namespace std -+{ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ typedef __locale_t __c_locale; -+#else -+ typedef int* __c_locale; -+#endif -+ -+ // Convert numeric value of type _Tv to string and return length of -+ // string. If snprintf is available use it, otherwise fall back to -+ // the unsafe sprintf which, in general, can be dangerous and should -+ // be avoided. -+ template -+ int -+ __convert_from_v(char* __out, const int __size, const char* __fmt, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ _Tv __v, const __c_locale& __cloc, int __prec) -+ { -+ __c_locale __old = __gnu_cxx::__uselocale(__cloc); -+#else -+ _Tv __v, const __c_locale&, int __prec) -+ { -+# ifdef __UCLIBC_HAS_LOCALE__ -+ char* __old = std::setlocale(LC_ALL, NULL); -+ char* __sav = new char[std::strlen(__old) + 1]; -+ std::strcpy(__sav, __old); -+ std::setlocale(LC_ALL, "C"); -+# endif -+#endif -+ -+ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __gnu_cxx::__uselocale(__old); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ std::setlocale(LC_ALL, __sav); -+ delete [] __sav; -+#endif -+ return __ret; -+ } -+} -+ -+#endif -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,306 @@ -+// std::codecvt implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.5 - Template class codecvt -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+namespace std -+{ -+ // Specializations. -+#ifdef _GLIBCXX_USE_WCHAR_T -+ codecvt_base::result -+ codecvt:: -+ do_out(state_type& __state, const intern_type* __from, -+ const intern_type* __from_end, const intern_type*& __from_next, -+ extern_type* __to, extern_type* __to_end, -+ extern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // wcsnrtombs is *very* fast but stops if encounters NUL characters: -+ // in case we fall back to wcrtomb and then continue, in a loop. -+ // NB: wcsnrtombs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0', -+ __from_end - __from_next); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ const size_t __conv = wcsnrtombs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // wcrtomb. -+ for (; __from < __from_next; ++__from) -+ __to_next += wcrtomb(__to_next, *__from, &__tmp_state); -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ extern_type __buf[MB_LEN_MAX]; -+ __tmp_state = __state; -+ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state); -+ if (__conv > static_cast(__to_end - __to_next)) -+ __ret = partial; -+ else -+ { -+ memcpy(__to_next, __buf, __conv); -+ __state = __tmp_state; -+ __to_next += __conv; -+ ++__from_next; -+ } -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ codecvt_base::result -+ codecvt:: -+ do_in(state_type& __state, const extern_type* __from, -+ const extern_type* __from_end, const extern_type*& __from_next, -+ intern_type* __to, intern_type* __to_end, -+ intern_type*& __to_next) const -+ { -+ result __ret = ok; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we store a L'\0' and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ for (__from_next = __from, __to_next = __to; -+ __from_next < __from_end && __to_next < __to_end -+ && __ret == ok;) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast(memchr(__from_next, '\0', -+ __from_end -+ - __from_next)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __from_end; -+ -+ __from = __from_next; -+ size_t __conv = mbsnrtowcs(__to_next, &__from_next, -+ __from_chunk_end - __from_next, -+ __to_end - __to_next, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (;; ++__to_next, __from += __conv) -+ { -+ __conv = mbrtowc(__to_next, __from, __from_end - __from, -+ &__tmp_state); -+ if (__conv == static_cast(-1) -+ || __conv == static_cast(-2)) -+ break; -+ } -+ __from_next = __from; -+ __state = __tmp_state; -+ __ret = error; -+ } -+ else if (__from_next && __from_next < __from_chunk_end) -+ { -+ // It is unclear what to return in this case (see DR 382). -+ __to_next += __conv; -+ __ret = partial; -+ } -+ else -+ { -+ __from_next = __from_chunk_end; -+ __to_next += __conv; -+ } -+ -+ if (__from_next < __from_end && __ret == ok) -+ { -+ if (__to_next < __to_end) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from_next; -+ *__to_next++ = L'\0'; -+ } -+ else -+ __ret = partial; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_encoding() const throw() -+ { -+ // XXX This implementation assumes that the encoding is -+ // stateless and is either single-byte or variable-width. -+ int __ret = 0; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ if (MB_CUR_MAX == 1) -+ __ret = 1; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_max_length() const throw() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ // XXX Probably wrong for stateful encodings. -+ int __ret = MB_CUR_MAX; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __ret; -+ } -+ -+ int -+ codecvt:: -+ do_length(state_type& __state, const extern_type* __from, -+ const extern_type* __end, size_t __max) const -+ { -+ int __ret = 0; -+ state_type __tmp_state(__state); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_codecvt); -+#endif -+ -+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters: -+ // in case we advance past it and then continue, in a loop. -+ // NB: mbsnrtowcs is a GNU extension -+ -+ // A dummy internal buffer is needed in order for mbsnrtocws to consider -+ // its fourth parameter (it wouldn't with NULL as first parameter). -+ wchar_t* __to = static_cast(__builtin_alloca(sizeof(wchar_t) -+ * __max)); -+ while (__from < __end && __max) -+ { -+ const extern_type* __from_chunk_end; -+ __from_chunk_end = static_cast(memchr(__from, '\0', -+ __end -+ - __from)); -+ if (!__from_chunk_end) -+ __from_chunk_end = __end; -+ -+ const extern_type* __tmp_from = __from; -+ size_t __conv = mbsnrtowcs(__to, &__from, -+ __from_chunk_end - __from, -+ __max, &__state); -+ if (__conv == static_cast(-1)) -+ { -+ // In case of error, in order to stop at the exact place we -+ // have to start again from the beginning with a series of -+ // mbrtowc. -+ for (__from = __tmp_from;; __from += __conv) -+ { -+ __conv = mbrtowc(NULL, __from, __end - __from, -+ &__tmp_state); -+ if (__conv == static_cast(-1) -+ || __conv == static_cast(-2)) -+ break; -+ } -+ __state = __tmp_state; -+ __ret += __from - __tmp_from; -+ break; -+ } -+ if (!__from) -+ __from = __from_chunk_end; -+ -+ __ret += __from - __tmp_from; -+ __max -= __conv; -+ -+ if (__from < __end && __max) -+ { -+ // XXX Probably wrong for stateful encodings -+ __tmp_state = __state; -+ ++__from; -+ ++__ret; -+ --__max; -+ } -+ } -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ -+ return __ret; -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,80 @@ -+// std::collate implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.4.1.2 collate virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) -+#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) -+#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) -+#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) -+#endif -+ -+namespace std -+{ -+ // These are basically extensions to char_traits, and perhaps should -+ // be put there instead of here. -+ template<> -+ int -+ collate::_M_compare(const char* __one, const char* __two) const -+ { -+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate::_M_transform(char* __to, const char* __from, -+ size_t __n) const -+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ int -+ collate::_M_compare(const wchar_t* __one, -+ const wchar_t* __two) const -+ { -+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate); -+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); -+ } -+ -+ template<> -+ size_t -+ collate::_M_transform(wchar_t* __to, const wchar_t* __from, -+ size_t __n) const -+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,300 @@ -+// std::ctype implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __wctype_l(S, L) wctype((S)) -+#define __towupper_l(C, L) towupper((C)) -+#define __towlower_l(C, L) towlower((C)) -+#define __iswctype_l(C, M, L) iswctype((C), (M)) -+#endif -+ -+namespace std -+{ -+ // NB: The other ctype specializations are in src/locale.cc and -+ // various /config/os/* files. -+ template<> -+ ctype_byname::ctype_byname(const char* __s, size_t __refs) -+ : ctype(0, false, __refs) -+ { -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_ctype); -+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper; -+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower; -+ this->_M_table = this->_M_c_locale_ctype->__ctype_b; -+#endif -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ ctype::__wmask_type -+ ctype::_M_convert_to_wmask(const mask __m) const -+ { -+ __wmask_type __ret; -+ switch (__m) -+ { -+ case space: -+ __ret = __wctype_l("space", _M_c_locale_ctype); -+ break; -+ case print: -+ __ret = __wctype_l("print", _M_c_locale_ctype); -+ break; -+ case cntrl: -+ __ret = __wctype_l("cntrl", _M_c_locale_ctype); -+ break; -+ case upper: -+ __ret = __wctype_l("upper", _M_c_locale_ctype); -+ break; -+ case lower: -+ __ret = __wctype_l("lower", _M_c_locale_ctype); -+ break; -+ case alpha: -+ __ret = __wctype_l("alpha", _M_c_locale_ctype); -+ break; -+ case digit: -+ __ret = __wctype_l("digit", _M_c_locale_ctype); -+ break; -+ case punct: -+ __ret = __wctype_l("punct", _M_c_locale_ctype); -+ break; -+ case xdigit: -+ __ret = __wctype_l("xdigit", _M_c_locale_ctype); -+ break; -+ case alnum: -+ __ret = __wctype_l("alnum", _M_c_locale_ctype); -+ break; -+ case graph: -+ __ret = __wctype_l("graph", _M_c_locale_ctype); -+ break; -+ default: -+ __ret = __wmask_type(); -+ } -+ return __ret; -+ } -+ -+ wchar_t -+ ctype::do_toupper(wchar_t __c) const -+ { return __towupper_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype::do_toupper(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towupper_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ wchar_t -+ ctype::do_tolower(wchar_t __c) const -+ { return __towlower_l(__c, _M_c_locale_ctype); } -+ -+ const wchar_t* -+ ctype::do_tolower(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = __towlower_l(*__lo, _M_c_locale_ctype); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ bool -+ ctype:: -+ do_is(mask __m, wchar_t __c) const -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ bool __ret = false; -+ const size_t __bitmasksize = 11; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__m & _M_bit[__bitcur] -+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ { -+ __ret = true; -+ break; -+ } -+ return __ret; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const -+ { -+ for (; __lo < __hi; ++__vec, ++__lo) -+ { -+ // Highest bitmask in ctype_base == 10, but extra in "C" -+ // library for blank. -+ const size_t __bitmasksize = 11; -+ mask __m = 0; -+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) -+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype)) -+ __m |= _M_bit[__bitcur]; -+ *__vec = __m; -+ } -+ return __hi; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi && !this->do_is(__m, *__lo)) -+ ++__lo; -+ return __lo; -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const -+ { -+ while (__lo < __hi && this->do_is(__m, *__lo) != 0) -+ ++__lo; -+ return __lo; -+ } -+ -+ wchar_t -+ ctype:: -+ do_widen(char __c) const -+ { return _M_widen[static_cast(__c)]; } -+ -+ const char* -+ ctype:: -+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const -+ { -+ while (__lo < __hi) -+ { -+ *__dest = _M_widen[static_cast(*__lo)]; -+ ++__lo; -+ ++__dest; -+ } -+ return __hi; -+ } -+ -+ char -+ ctype:: -+ do_narrow(wchar_t __wc, char __dfault) const -+ { -+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok) -+ return _M_narrow[__wc]; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ const int __c = wctob(__wc); -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return (__c == EOF ? __dfault : static_cast(__c)); -+ } -+ -+ const wchar_t* -+ ctype:: -+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, -+ char* __dest) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ if (_M_narrow_ok) -+ while (__lo < __hi) -+ { -+ if (*__lo >= 0 && *__lo < 128) -+ *__dest = _M_narrow[*__lo]; -+ else -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast(__c)); -+ } -+ ++__lo; -+ ++__dest; -+ } -+ else -+ while (__lo < __hi) -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast(__c)); -+ ++__lo; -+ ++__dest; -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ return __hi; -+ } -+ -+ void -+ ctype::_M_initialize_ctype() -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_ctype); -+#endif -+ wint_t __i; -+ for (__i = 0; __i < 128; ++__i) -+ { -+ const int __c = wctob(__i); -+ if (__c == EOF) -+ break; -+ else -+ _M_narrow[__i] = static_cast(__c); -+ } -+ if (__i == 128) -+ _M_narrow_ok = true; -+ else -+ _M_narrow_ok = false; -+ for (size_t __j = 0; -+ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j) -+ _M_widen[__j] = btowc(__j); -+ -+ for (size_t __k = 0; __k <= 11; ++__k) -+ { -+ _M_bit[__k] = static_cast(_ISbit(__k)); -+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]); -+ } -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#endif -+ } -+#endif // _GLIBCXX_USE_WCHAR_T -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,100 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix gettext stuff -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__dcgettext(const char *domainname, -+ const char *msgid, int category); -+#undef gettext -+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES) -+#else -+#undef gettext -+#define gettext(msgid) (msgid) -+#endif -+ -+namespace std -+{ -+ // Specializations. -+ template<> -+ string -+ messages::do_get(catalog, int, int, const string& __dfault) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ const char* __msg = const_cast(gettext(__dfault.c_str())); -+ __uselocale(__old); -+ return string(__msg); -+#elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ const char* __msg = gettext(__dfault.c_str()); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return string(__msg); -+#else -+ const char* __msg = gettext(__dfault.c_str()); -+ return string(__msg); -+#endif -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ wstring -+ messages::do_get(catalog, int, int, const wstring& __dfault) const -+ { -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(_M_c_locale_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ __uselocale(__old); -+ return _M_convert_from_char(__msg); -+# elif defined __UCLIBC_HAS_LOCALE__ -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_messages); -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ setlocale(LC_ALL, __old); -+ free(__old); -+ return _M_convert_from_char(__msg); -+# else -+ char* __msg = gettext(_M_convert_to_char(__dfault)); -+ return _M_convert_from_char(__msg); -+# endif -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,118 @@ -+// std::messages implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.7.1.2 messages functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix prototypes for *textdomain funcs -+#endif -+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ -+extern "C" char *__textdomain(const char *domainname); -+extern "C" char *__bindtextdomain(const char *domainname, -+ const char *dirname); -+#else -+#undef __textdomain -+#undef __bindtextdomain -+#define __textdomain(D) ((void)0) -+#define __bindtextdomain(D,P) ((void)0) -+#endif -+ -+ // Non-virtual member functions. -+ template -+ messages<_CharT>::messages(size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), -+ _M_name_messages(_S_get_c_name()) -+ { } -+ -+ template -+ messages<_CharT>::messages(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)), -+ _M_name_messages(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_messages = __tmp; -+ } -+ -+ template -+ typename messages<_CharT>::catalog -+ messages<_CharT>::open(const basic_string& __s, const locale& __loc, -+ const char* __dir) const -+ { -+ __bindtextdomain(__s.c_str(), __dir); -+ return this->do_open(__s, __loc); -+ } -+ -+ // Virtual member functions. -+ template -+ messages<_CharT>::~messages() -+ { -+ if (_M_name_messages != _S_get_c_name()) -+ delete [] _M_name_messages; -+ _S_destroy_c_locale(_M_c_locale_messages); -+ } -+ -+ template -+ typename messages<_CharT>::catalog -+ messages<_CharT>::do_open(const basic_string& __s, -+ const locale&) const -+ { -+ // No error checking is done, assume the catalog exists and can -+ // be used. -+ __textdomain(__s.c_str()); -+ return 0; -+ } -+ -+ template -+ void -+ messages<_CharT>::do_close(catalog) const -+ { } -+ -+ // messages_byname -+ template -+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) -+ : messages<_CharT>(__refs) -+ { -+ if (this->_M_name_messages != locale::facet::_S_get_c_name()) -+ delete [] this->_M_name_messages; -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ this->_M_name_messages = __tmp; -+ -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_messages); -+ this->_S_create_c_locale(this->_M_c_locale_messages, __s); -+ } -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2005-04-28 01:23:02.000000000 -0500 -@@ -0,0 +1,692 @@ -+// std::moneypunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning optimize this for uclibc -+#warning tailor for stub locale support -+#endif -+ -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ // Construct and return valid pattern consisting of some combination of: -+ // space none symbol sign value -+ money_base::pattern -+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn) -+ { -+ pattern __ret; -+ -+ // This insanely complicated routine attempts to construct a valid -+ // pattern for use with monyepunct. A couple of invariants: -+ -+ // if (__precedes) symbol -> value -+ // else value -> symbol -+ -+ // if (__space) space -+ // else none -+ -+ // none == never first -+ // space never first or last -+ -+ // Any elegant implementations of this are welcome. -+ switch (__posn) -+ { -+ case 0: -+ case 1: -+ // 1 The sign precedes the value and symbol. -+ __ret.field[0] = sign; -+ if (__space) -+ { -+ // Pattern starts with sign. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[3] = symbol; -+ } -+ __ret.field[2] = space; -+ } -+ else -+ { -+ // Pattern starts with sign and ends with none. -+ if (__precedes) -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[1] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[3] = none; -+ } -+ break; -+ case 2: -+ // 2 The sign follows the value and symbol. -+ if (__space) -+ { -+ // Pattern either ends with sign. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[2] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[2] = symbol; -+ } -+ __ret.field[1] = space; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ // Pattern ends with sign then none. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = value; -+ } -+ else -+ { -+ __ret.field[0] = value; -+ __ret.field[1] = symbol; -+ } -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ break; -+ case 3: -+ // 3 The sign immediately precedes the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = sign; -+ __ret.field[1] = symbol; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = sign; -+ __ret.field[3] = symbol; -+ } -+ else -+ { -+ __ret.field[1] = sign; -+ __ret.field[2] = symbol; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ case 4: -+ // 4 The sign immediately follows the symbol. -+ if (__precedes) -+ { -+ __ret.field[0] = symbol; -+ __ret.field[1] = sign; -+ if (__space) -+ { -+ __ret.field[2] = space; -+ __ret.field[3] = value; -+ } -+ else -+ { -+ __ret.field[2] = value; -+ __ret.field[3] = none; -+ } -+ } -+ else -+ { -+ __ret.field[0] = value; -+ if (__space) -+ { -+ __ret.field[1] = space; -+ __ret.field[2] = symbol; -+ __ret.field[3] = sign; -+ } -+ else -+ { -+ __ret.field[1] = symbol; -+ __ret.field[2] = sign; -+ __ret.field[3] = none; -+ } -+ } -+ break; -+ default: -+ __ret = pattern(); -+ } -+ return __ret; -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == true -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+ const char*) -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = ""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = ""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = ""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, -+ __cloc)); -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign); -+ -+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ if (!__nposn) -+ _M_data->_M_negative_sign = "()"; -+ else -+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, -+ __cloc); -+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign); -+ -+ // _Intl == false -+ _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol); -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ } -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { delete _M_data; } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, -+ __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ void -+ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const char*) -+#else -+ const char* __name) -+#endif -+ { -+ if (!_M_data) -+ _M_data = new __moneypunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = 0; -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = 0; -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = 0; -+ _M_data->_M_frac_digits = 0; -+ _M_data->_M_pos_format = money_base::_S_default_pattern; -+ _M_data->_M_neg_format = money_base::_S_default_pattern; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < money_base::_S_end; ++__i) -+ _M_data->_M_atoms[__i] = -+ static_cast(money_base::_S_atoms[__i]); -+ } -+ else -+ { -+ // Named locale. -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __c_locale __old = __uselocale(__cloc); -+#else -+ // Switch to named locale so that mbsrtowcs will work. -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, __name); -+#endif -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this... should be monetary -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ -+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); -+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); -+ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); -+ -+ wchar_t* __wcs_ps = 0; -+ wchar_t* __wcs_ns = 0; -+ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); -+ try -+ { -+ mbstate_t __state; -+ size_t __len; -+ __len = strlen(__cpossign); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ps = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state); -+ _M_data->_M_positive_sign = __wcs_ps; -+ } -+ else -+ _M_data->_M_positive_sign = L""; -+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign); -+ -+ __len = strlen(__cnegsign); -+ if (!__nposn) -+ _M_data->_M_negative_sign = L"()"; -+ else if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ __wcs_ns = new wchar_t[__len]; -+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state); -+ _M_data->_M_negative_sign = __wcs_ns; -+ } -+ else -+ _M_data->_M_negative_sign = L""; -+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign); -+ -+ // _Intl == true. -+ __len = strlen(__ccurr); -+ if (__len) -+ { -+ ++__len; -+ memset(&__state, 0, sizeof(mbstate_t)); -+ wchar_t* __wcs = new wchar_t[__len]; -+ mbsrtowcs(__wcs, &__ccurr, __len, &__state); -+ _M_data->_M_curr_symbol = __wcs; -+ } -+ else -+ _M_data->_M_curr_symbol = L""; -+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol); -+ } -+ catch (...) -+ { -+ delete _M_data; -+ _M_data = 0; -+ delete __wcs_ps; -+ delete __wcs_ns; -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ __throw_exception_again; -+ } -+ -+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); -+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); -+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); -+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); -+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, -+ __pposn); -+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); -+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); -+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, -+ __nposn); -+ -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __uselocale(__old); -+#else -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ } -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+ -+ template<> -+ moneypunct::~moneypunct() -+ { -+ if (_M_data->_M_positive_sign_size) -+ delete [] _M_data->_M_positive_sign; -+ if (_M_data->_M_negative_sign_size -+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0) -+ delete [] _M_data->_M_negative_sign; -+ if (_M_data->_M_curr_symbol_size) -+ delete [] _M_data->_M_curr_symbol; -+ delete _M_data; -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2005-04-28 01:20:20.000000000 -0500 -@@ -0,0 +1,173 @@ -+// std::numpunct implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#define _LIBC -+#include -+#undef _LIBC -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ numpunct::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = '.'; -+ _M_data->_M_thousands_sep = ','; -+ -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i]; -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j]; -+ } -+ else -+ { -+ // Named locale. -+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, -+ __cloc)); -+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, -+ __cloc)); -+ -+ // Check for NULL, which implies no grouping. -+ if (_M_data->_M_thousands_sep == '\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = "true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = "false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct::~numpunct() -+ { delete _M_data; } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ numpunct::_M_initialize_numpunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __numpunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_data->_M_grouping = ""; -+ _M_data->_M_grouping_size = 0; -+ _M_data->_M_use_grouping = false; -+ -+ _M_data->_M_decimal_point = L'.'; -+ _M_data->_M_thousands_sep = L','; -+ -+ // Use ctype::widen code without the facet... -+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i) -+ _M_data->_M_atoms_out[__i] = -+ static_cast(__num_base::_S_atoms_out[__i]); -+ -+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j) -+ _M_data->_M_atoms_in[__j] = -+ static_cast(__num_base::_S_atoms_in[__j]); -+ } -+ else -+ { -+ // Named locale. -+ // NB: In the GNU model wchar_t is always 32 bit wide. -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning fix this -+#endif -+#ifdef __UCLIBC__ -+# ifdef __UCLIBC_HAS_XLOCALE__ -+ _M_data->_M_decimal_point = __cloc->decimal_point_wc; -+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -+# else -+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; -+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; -+# endif -+#else -+ union { char *__s; wchar_t __w; } __u; -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); -+ _M_data->_M_decimal_point = __u.__w; -+ -+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); -+ _M_data->_M_thousands_sep = __u.__w; -+#endif -+ -+ if (_M_data->_M_thousands_sep == L'\0') -+ _M_data->_M_grouping = ""; -+ else -+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc); -+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping); -+ } -+ -+ // NB: There is no way to extact this info from posix locales. -+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); -+ _M_data->_M_truename = L"true"; -+ _M_data->_M_truename_size = 4; -+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); -+ _M_data->_M_falsename = L"false"; -+ _M_data->_M_falsename_size = 5; -+ } -+ -+ template<> -+ numpunct::~numpunct() -+ { delete _M_data; } -+ #endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc 2005-04-28 01:13:15.000000000 -0500 -@@ -0,0 +1,406 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions -+// -+ -+// Written by Benjamin Kosnik -+ -+#include -+#include -+ -+#ifdef __UCLIBC_MJN3_ONLY__ -+#warning tailor for stub locale support -+#endif -+#ifndef __UCLIBC_HAS_XLOCALE__ -+#define __nl_langinfo_l(N, L) nl_langinfo((N)) -+#endif -+ -+namespace std -+{ -+ template<> -+ void -+ __timepunct:: -+ _M_put(char* __s, size_t __maxlen, const char* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = strftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = '\0'; -+ } -+ -+ template<> -+ void -+ __timepunct::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache; -+ -+ if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = "%m/%d/%y"; -+ _M_data->_M_date_era_format = "%m/%d/%y"; -+ _M_data->_M_time_format = "%H:%M:%S"; -+ _M_data->_M_time_era_format = "%H:%M:%S"; -+ _M_data->_M_date_time_format = ""; -+ _M_data->_M_date_time_era_format = ""; -+ _M_data->_M_am = "AM"; -+ _M_data->_M_pm = "PM"; -+ _M_data->_M_am_pm_format = ""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = "Sunday"; -+ _M_data->_M_day2 = "Monday"; -+ _M_data->_M_day3 = "Tuesday"; -+ _M_data->_M_day4 = "Wednesday"; -+ _M_data->_M_day5 = "Thursday"; -+ _M_data->_M_day6 = "Friday"; -+ _M_data->_M_day7 = "Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = "Sun"; -+ _M_data->_M_aday2 = "Mon"; -+ _M_data->_M_aday3 = "Tue"; -+ _M_data->_M_aday4 = "Wed"; -+ _M_data->_M_aday5 = "Thu"; -+ _M_data->_M_aday6 = "Fri"; -+ _M_data->_M_aday7 = "Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = "January"; -+ _M_data->_M_month02 = "February"; -+ _M_data->_M_month03 = "March"; -+ _M_data->_M_month04 = "April"; -+ _M_data->_M_month05 = "May"; -+ _M_data->_M_month06 = "June"; -+ _M_data->_M_month07 = "July"; -+ _M_data->_M_month08 = "August"; -+ _M_data->_M_month09 = "September"; -+ _M_data->_M_month10 = "October"; -+ _M_data->_M_month11 = "November"; -+ _M_data->_M_month12 = "December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = "Jan"; -+ _M_data->_M_amonth02 = "Feb"; -+ _M_data->_M_amonth03 = "Mar"; -+ _M_data->_M_amonth04 = "Apr"; -+ _M_data->_M_amonth05 = "May"; -+ _M_data->_M_amonth06 = "Jun"; -+ _M_data->_M_amonth07 = "Jul"; -+ _M_data->_M_amonth08 = "Aug"; -+ _M_data->_M_amonth09 = "Sep"; -+ _M_data->_M_amonth10 = "Oct"; -+ _M_data->_M_amonth11 = "Nov"; -+ _M_data->_M_amonth12 = "Dec"; -+ } -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc); -+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc); -+ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc); -+ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, -+ __cloc); -+ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc); -+ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc); -+ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc); -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc); -+ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc); -+ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc); -+ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc); -+ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc); -+ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc); -+ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc); -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc); -+ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc); -+ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc); -+ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc); -+ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc); -+ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc); -+ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc); -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc); -+ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc); -+ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc); -+ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc); -+ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc); -+ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc); -+ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc); -+ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc); -+ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc); -+ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc); -+ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc); -+ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc); -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc); -+ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc); -+ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc); -+ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc); -+ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc); -+ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc); -+ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc); -+ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc); -+ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc); -+ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc); -+ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc); -+ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc); -+ } -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ template<> -+ void -+ __timepunct:: -+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, -+ const tm* __tm) const -+ { -+#ifdef __UCLIBC_HAS_XLOCALE__ -+ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); -+ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm, -+ _M_c_locale_timepunct); -+#else -+ char* __old = strdup(setlocale(LC_ALL, NULL)); -+ setlocale(LC_ALL, _M_name_timepunct); -+ const size_t __len = wcsftime(__s, __maxlen, __format, __tm); -+ setlocale(LC_ALL, __old); -+ free(__old); -+#endif -+ // Make sure __s is null terminated. -+ if (__len == 0) -+ __s[0] = L'\0'; -+ } -+ -+ template<> -+ void -+ __timepunct::_M_initialize_timepunct(__c_locale __cloc) -+ { -+ if (!_M_data) -+ _M_data = new __timepunct_cache; -+ -+#warning wide time stuff -+// if (!__cloc) -+ { -+ // "C" locale -+ _M_c_locale_timepunct = _S_get_c_locale(); -+ -+ _M_data->_M_date_format = L"%m/%d/%y"; -+ _M_data->_M_date_era_format = L"%m/%d/%y"; -+ _M_data->_M_time_format = L"%H:%M:%S"; -+ _M_data->_M_time_era_format = L"%H:%M:%S"; -+ _M_data->_M_date_time_format = L""; -+ _M_data->_M_date_time_era_format = L""; -+ _M_data->_M_am = L"AM"; -+ _M_data->_M_pm = L"PM"; -+ _M_data->_M_am_pm_format = L""; -+ -+ // Day names, starting with "C"'s Sunday. -+ _M_data->_M_day1 = L"Sunday"; -+ _M_data->_M_day2 = L"Monday"; -+ _M_data->_M_day3 = L"Tuesday"; -+ _M_data->_M_day4 = L"Wednesday"; -+ _M_data->_M_day5 = L"Thursday"; -+ _M_data->_M_day6 = L"Friday"; -+ _M_data->_M_day7 = L"Saturday"; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ _M_data->_M_aday1 = L"Sun"; -+ _M_data->_M_aday2 = L"Mon"; -+ _M_data->_M_aday3 = L"Tue"; -+ _M_data->_M_aday4 = L"Wed"; -+ _M_data->_M_aday5 = L"Thu"; -+ _M_data->_M_aday6 = L"Fri"; -+ _M_data->_M_aday7 = L"Sat"; -+ -+ // Month names, starting with "C"'s January. -+ _M_data->_M_month01 = L"January"; -+ _M_data->_M_month02 = L"February"; -+ _M_data->_M_month03 = L"March"; -+ _M_data->_M_month04 = L"April"; -+ _M_data->_M_month05 = L"May"; -+ _M_data->_M_month06 = L"June"; -+ _M_data->_M_month07 = L"July"; -+ _M_data->_M_month08 = L"August"; -+ _M_data->_M_month09 = L"September"; -+ _M_data->_M_month10 = L"October"; -+ _M_data->_M_month11 = L"November"; -+ _M_data->_M_month12 = L"December"; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ _M_data->_M_amonth01 = L"Jan"; -+ _M_data->_M_amonth02 = L"Feb"; -+ _M_data->_M_amonth03 = L"Mar"; -+ _M_data->_M_amonth04 = L"Apr"; -+ _M_data->_M_amonth05 = L"May"; -+ _M_data->_M_amonth06 = L"Jun"; -+ _M_data->_M_amonth07 = L"Jul"; -+ _M_data->_M_amonth08 = L"Aug"; -+ _M_data->_M_amonth09 = L"Sep"; -+ _M_data->_M_amonth10 = L"Oct"; -+ _M_data->_M_amonth11 = L"Nov"; -+ _M_data->_M_amonth12 = L"Dec"; -+ } -+#if 0 -+ else -+ { -+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); -+ -+ union { char *__s; wchar_t *__w; } __u; -+ -+ __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc); -+ _M_data->_M_date_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc); -+ _M_data->_M_date_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc); -+ _M_data->_M_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc); -+ _M_data->_M_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc); -+ _M_data->_M_date_time_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc); -+ _M_data->_M_date_time_era_format = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc); -+ _M_data->_M_am = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc); -+ _M_data->_M_pm = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc); -+ _M_data->_M_am_pm_format = __u.__w; -+ -+ // Day names, starting with "C"'s Sunday. -+ __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc); -+ _M_data->_M_day1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc); -+ _M_data->_M_day2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc); -+ _M_data->_M_day3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc); -+ _M_data->_M_day4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc); -+ _M_data->_M_day5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc); -+ _M_data->_M_day6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc); -+ _M_data->_M_day7 = __u.__w; -+ -+ // Abbreviated day names, starting with "C"'s Sun. -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc); -+ _M_data->_M_aday1 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc); -+ _M_data->_M_aday2 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc); -+ _M_data->_M_aday3 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc); -+ _M_data->_M_aday4 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc); -+ _M_data->_M_aday5 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc); -+ _M_data->_M_aday6 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc); -+ _M_data->_M_aday7 = __u.__w; -+ -+ // Month names, starting with "C"'s January. -+ __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc); -+ _M_data->_M_month01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc); -+ _M_data->_M_month02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc); -+ _M_data->_M_month03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc); -+ _M_data->_M_month04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc); -+ _M_data->_M_month05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc); -+ _M_data->_M_month06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc); -+ _M_data->_M_month07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc); -+ _M_data->_M_month08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc); -+ _M_data->_M_month09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc); -+ _M_data->_M_month10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc); -+ _M_data->_M_month11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc); -+ _M_data->_M_month12 = __u.__w; -+ -+ // Abbreviated month names, starting with "C"'s Jan. -+ __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc); -+ _M_data->_M_amonth01 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc); -+ _M_data->_M_amonth02 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc); -+ _M_data->_M_amonth03 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc); -+ _M_data->_M_amonth04 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc); -+ _M_data->_M_amonth05 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc); -+ _M_data->_M_amonth06 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc); -+ _M_data->_M_amonth07 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc); -+ _M_data->_M_amonth08 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc); -+ _M_data->_M_amonth09 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc); -+ _M_data->_M_amonth10 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc); -+ _M_data->_M_amonth11 = __u.__w; -+ __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc); -+ _M_data->_M_amonth12 = __u.__w; -+ } -+#endif // 0 -+ } -+#endif -+} -diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h ---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h 2004-05-22 18:46:31.000000000 -0500 -@@ -0,0 +1,68 @@ -+// std::time_get, std::time_put implementation, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.2.5.1.2 - time_get functions -+// ISO C++ 14882: 22.2.5.3.2 - time_put functions -+// -+ -+// Written by Benjamin Kosnik -+ -+ template -+ __timepunct<_CharT>::__timepunct(size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template -+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) -+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(_S_get_c_name()) -+ { _M_initialize_timepunct(); } -+ -+ template -+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, -+ size_t __refs) -+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), -+ _M_name_timepunct(__s) -+ { -+ char* __tmp = new char[std::strlen(__s) + 1]; -+ std::strcpy(__tmp, __s); -+ _M_name_timepunct = __tmp; -+ _M_initialize_timepunct(__cloc); -+ } -+ -+ template -+ __timepunct<_CharT>::~__timepunct() -+ { -+ if (_M_name_timepunct != _S_get_c_name()) -+ delete [] _M_name_timepunct; -+ delete _M_data; -+ _S_destroy_c_locale(_M_c_locale_timepunct); -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,64 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+/** @file ctype_base.h -+ * This is an internal header file, included by other library headers. -+ * You should not attempt to use it directly. -+ */ -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ /// @brief Base class for ctype. -+ struct ctype_base -+ { -+ // Note: In uClibc, the following two types depend on configuration. -+ -+ // Non-standard typedefs. -+ typedef const __ctype_touplow_t* __to_type; -+ -+ // NB: Offsets into ctype::_M_table force a particular size -+ // on the mask type. Because of this, we don't use an enum. -+ typedef __ctype_mask_t mask; -+ static const mask upper = _ISupper; -+ static const mask lower = _ISlower; -+ static const mask alpha = _ISalpha; -+ static const mask digit = _ISdigit; -+ static const mask xdigit = _ISxdigit; -+ static const mask space = _ISspace; -+ static const mask print = _ISprint; -+ static const mask graph = _ISalpha | _ISdigit | _ISpunct; -+ static const mask cntrl = _IScntrl; -+ static const mask punct = _ISpunct; -+ static const mask alnum = _ISalpha | _ISdigit; -+ }; -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h 2002-06-24 00:49:19.000000000 -0500 -@@ -0,0 +1,69 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 2000, 2002 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) -+// functions go in ctype.cc -+ -+ bool -+ ctype:: -+ is(mask __m, char __c) const -+ { return _M_table[static_cast(__c)] & __m; } -+ -+ const char* -+ ctype:: -+ is(const char* __low, const char* __high, mask* __vec) const -+ { -+ while (__low < __high) -+ *__vec++ = _M_table[static_cast(*__low++)]; -+ return __high; -+ } -+ -+ const char* -+ ctype:: -+ scan_is(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && !(_M_table[static_cast(*__low)] & __m)) -+ ++__low; -+ return __low; -+ } -+ -+ const char* -+ ctype:: -+ scan_not(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high -+ && (_M_table[static_cast(*__low)] & __m) != 0) -+ ++__low; -+ return __low; -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,92 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+ const ctype_base::mask* -+ ctype::classic_table() throw() -+ { return __C_ctype_b; } -+ -+ ctype::ctype(__c_locale, const mask* __table, bool __del, -+ size_t __refs) -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ } -+ -+ ctype::ctype(const mask* __table, bool __del, size_t __refs) -+ : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), -+ _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0) -+ { -+ _M_toupper = __C_ctype_toupper; -+ _M_tolower = __C_ctype_tolower; -+ _M_table = __table ? __table : __C_ctype_b; -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ } -+ -+ char -+ ctype::do_toupper(char __c) const -+ { return _M_toupper[static_cast(__c)]; } -+ -+ const char* -+ ctype::do_toupper(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_toupper[static_cast(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -+ -+ char -+ ctype::do_tolower(char __c) const -+ { return _M_tolower[static_cast(__c)]; } -+ -+ const char* -+ ctype::do_tolower(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = _M_tolower[static_cast(*__low)]; -+ ++__low; -+ } -+ return __high; -+ } -diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h ---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h 1969-12-31 18:00:00.000000000 -0600 -+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h 2005-04-28 01:10:27.000000000 -0500 -@@ -0,0 +1,44 @@ -+// Specific definitions for GNU/Linux -*- C++ -*- -+ -+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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 2, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING. If not, write to the Free -+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, -+// USA. -+ -+// As a special exception, you may use this file as part of a free software -+// library without restriction. Specifically, if other files instantiate -+// templates or use macros or inline functions from this file, or you compile -+// this file and link it with other files to produce an executable, this -+// file does not by itself cause the resulting executable to be covered by -+// the GNU General Public License. This exception does not however -+// invalidate any other reasons why the executable file might be covered by -+// the GNU General Public License. -+ -+#ifndef _GLIBCXX_OS_DEFINES -+#define _GLIBCXX_OS_DEFINES 1 -+ -+// System-specific #define, typedefs, corrections, etc, go here. This -+// file will come before all others. -+ -+// This keeps isanum, et al from being propagated as macros. -+#define __NO_CTYPE 1 -+ -+#include -+ -+// We must not see the optimized string functions GNU libc defines. -+#define __NO_STRING_INLINES -+ -+#endif -diff -urN gcc-4.0.0-100/libstdc++-v3/configure gcc-4.0.0/libstdc++-v3/configure ---- gcc-4.0.0-100/libstdc++-v3/configure 2005-04-30 13:06:53.683055232 -0500 -+++ gcc-4.0.0/libstdc++-v3/configure 2005-04-30 12:24:24.000000000 -0500 -@@ -3998,6 +3998,11 @@ - lt_cv_deplibs_check_method=pass_all - ;; - -+linux-uclibc*) -+ lt_cv_deplibs_check_method=pass_all -+ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` -+ ;; -+ - netbsd* | knetbsd*-gnu) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' -@@ -5672,7 +5677,7 @@ - enableval="$enable_clocale" - - case "$enableval" in -- generic|gnu|ieee_1003.1-2001|yes|no|auto) ;; -+ generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;; - *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5 - echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;} - { (exit 1); exit 1; }; } ;; -@@ -5697,6 +5702,9 @@ - # Default to "generic". - if test $enable_clocale_flag = auto; then - case ${target_os} in -+ linux-uclibc*) -+ enable_clocale_flag=uclibc -+ ;; - linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu) - cat >conftest.$ac_ext <<_ACEOF - /* confdefs.h. */ -@@ -5927,6 +5935,76 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ uclibc) -+ echo "$as_me:$LINENO: result: uclibc" >&5 -+echo "${ECHO_T}uclibc" >&6 -+ -+ # Declare intention to use gettext, and add support for specific -+ # languages. -+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT -+ ALL_LINGUAS="de fr" -+ -+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. -+ # Extract the first word of "msgfmt", so it can be a program name with args. -+set dummy msgfmt; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_check_msgfmt+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$check_msgfmt"; then -+ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_check_msgfmt="yes" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no" -+fi -+fi -+check_msgfmt=$ac_cv_prog_check_msgfmt -+if test -n "$check_msgfmt"; then -+ echo "$as_me:$LINENO: result: $check_msgfmt" >&5 -+echo "${ECHO_T}$check_msgfmt" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+ -+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then -+ USE_NLS=yes -+ fi -+ # Export the build objects. -+ for ling in $ALL_LINGUAS; do \ -+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \ -+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \ -+ done -+ -+ -+ -+ CLOCALE_H=config/locale/uclibc/c_locale.h -+ CLOCALE_CC=config/locale/uclibc/c_locale.cc -+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc -+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc -+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc -+ CMESSAGES_H=config/locale/uclibc/messages_members.h -+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc -+ CMONEY_CC=config/locale/uclibc/monetary_members.cc -+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc -+ CTIME_H=config/locale/uclibc/time_members.h -+ CTIME_CC=config/locale/uclibc/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h -+ ;; - esac - - # This is where the testsuite looks for locale catalogs, using the -diff -urN gcc-4.0.0-100/libstdc++-v3/configure.host gcc-4.0.0/libstdc++-v3/configure.host ---- gcc-4.0.0-100/libstdc++-v3/configure.host 2005-04-30 13:06:53.688054472 -0500 -+++ gcc-4.0.0/libstdc++-v3/configure.host 2005-04-28 20:20:32.000000000 -0500 -@@ -249,6 +249,12 @@ - ;; - esac - -+# Override for uClibc since linux-uclibc gets mishandled above. -+case "${host_os}" in -+ *-uclibc*) -+ os_include_dir="os/uclibc" -+ ;; -+esac - - # Set any OS-dependent and CPU-dependent bits. - # THIS TABLE IS SORTED. KEEP IT THAT WAY. -diff -urN gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 gcc-4.0.0/libstdc++-v3/crossconfig.m4 ---- gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 2005-04-30 13:06:53.689054320 -0500 -+++ gcc-4.0.0/libstdc++-v3/crossconfig.m4 2005-04-28 20:27:15.000000000 -0500 -@@ -142,6 +142,98 @@ - ;; - esac - ;; -+ *-uclibc*) -+# Temporary hack until we implement the float versions of the libm funcs -+ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ -+ machine/endian.h machine/param.h sys/machine.h sys/types.h \ -+ fp.h float.h endian.h inttypes.h locale.h float.h stdint.h]) -+ SECTION_FLAGS='-ffunction-sections -fdata-sections' -+ AC_SUBST(SECTION_FLAGS) -+ GLIBCXX_CHECK_LINKER_FEATURES -+ GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT -+ GLIBCXX_CHECK_WCHAR_T_SUPPORT -+ -+ # For LFS. -+ AC_DEFINE(HAVE_INT64_T) -+ case "$target" in -+ *-uclinux*) -+ # Don't enable LFS with uClinux -+ ;; -+ *) -+ AC_DEFINE(_GLIBCXX_USE_LFS) -+ esac -+ -+ # For showmanyc_helper(). -+ AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) -+ GLIBCXX_CHECK_POLL -+ GLIBCXX_CHECK_S_ISREG_OR_S_IFREG -+ -+ # For xsputn_2(). -+ AC_CHECK_HEADERS(sys/uio.h) -+ GLIBCXX_CHECK_WRITEV -+ -+# AC_DEFINE(HAVE_ACOSF) -+# AC_DEFINE(HAVE_ASINF) -+# AC_DEFINE(HAVE_ATANF) -+# AC_DEFINE(HAVE_ATAN2F) -+ AC_DEFINE(HAVE_CEILF) -+ AC_DEFINE(HAVE_COPYSIGN) -+# AC_DEFINE(HAVE_COPYSIGNF) -+# AC_DEFINE(HAVE_COSF) -+# AC_DEFINE(HAVE_COSHF) -+# AC_DEFINE(HAVE_EXPF) -+# AC_DEFINE(HAVE_FABSF) -+ AC_DEFINE(HAVE_FINITE) -+ AC_DEFINE(HAVE_FINITEF) -+ AC_DEFINE(HAVE_FLOORF) -+# AC_DEFINE(HAVE_FMODF) -+# AC_DEFINE(HAVE_FREXPF) -+ AC_DEFINE(HAVE_HYPOT) -+# AC_DEFINE(HAVE_HYPOTF) -+ AC_DEFINE(HAVE_ISINF) -+ AC_DEFINE(HAVE_ISINFF) -+ AC_DEFINE(HAVE_ISNAN) -+ AC_DEFINE(HAVE_ISNANF) -+# AC_DEFINE(HAVE_LOGF) -+# AC_DEFINE(HAVE_LOG10F) -+# AC_DEFINE(HAVE_MODFF) -+# AC_DEFINE(HAVE_SINF) -+# AC_DEFINE(HAVE_SINHF) -+# AC_DEFINE(HAVE_SINCOS) -+# AC_DEFINE(HAVE_SINCOSF) -+ AC_DEFINE(HAVE_SQRTF) -+# AC_DEFINE(HAVE_TANF) -+# AC_DEFINE(HAVE_TANHF) -+ if test x"long_double_math_on_this_cpu" = x"yes"; then -+# AC_DEFINE(HAVE_ACOSL) -+# AC_DEFINE(HAVE_ASINL) -+# AC_DEFINE(HAVE_ATANL) -+# AC_DEFINE(HAVE_ATAN2L) -+# AC_DEFINE(HAVE_CEILL) -+# AC_DEFINE(HAVE_COPYSIGNL) -+# AC_DEFINE(HAVE_COSL) -+# AC_DEFINE(HAVE_COSHL) -+# AC_DEFINE(HAVE_EXPL) -+# AC_DEFINE(HAVE_FABSL) -+# AC_DEFINE(HAVE_FINITEL) -+# AC_DEFINE(HAVE_FLOORL) -+# AC_DEFINE(HAVE_FMODL) -+# AC_DEFINE(HAVE_FREXPL) -+# AC_DEFINE(HAVE_HYPOTL) -+# AC_DEFINE(HAVE_ISINFL) -+# AC_DEFINE(HAVE_ISNANL) -+# AC_DEFINE(HAVE_LOGL) -+# AC_DEFINE(HAVE_LOG10L) -+# AC_DEFINE(HAVE_MODFL) -+# AC_DEFINE(HAVE_POWL) -+# AC_DEFINE(HAVE_SINL) -+# AC_DEFINE(HAVE_SINHL) -+# AC_DEFINE(HAVE_SINCOSL) -+# AC_DEFINE(HAVE_SQRTL) -+# AC_DEFINE(HAVE_TANL) -+# AC_DEFINE(HAVE_TANHL) -+ fi -+ ;; - *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu) - AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ - machine/endian.h machine/param.h sys/machine.h sys/types.h \ -@@ -156,7 +248,7 @@ - AC_DEFINE(HAVE_INT64_T) - case "$target" in - *-uclinux*) -- # Don't enable LFS with uClibc -+ # Don't enable LFS with uClinux - ;; - *) - AC_DEFINE(_GLIBCXX_USE_LFS) -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h ---- gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-30 13:06:53.690054168 -0500 -+++ gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-28 20:15:56.000000000 -0500 -@@ -101,7 +101,9 @@ - using std::wmemcpy; - using std::wmemmove; - using std::wmemset; -+#if _GLIBCXX_HAVE_WCSFTIME - using std::wcsftime; -+#endif - - #if _GLIBCXX_USE_C99 - using std::wcstold; -diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h ---- gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h 2005-04-30 13:06:53.691054016 -0500 -+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h 2005-04-28 20:15:56.000000000 -0500 -@@ -179,7 +179,9 @@ - using ::wcscoll; - using ::wcscpy; - using ::wcscspn; -+#if _GLIBCXX_HAVE_WCSFTIME - using ::wcsftime; -+#endif - using ::wcslen; - using ::wcsncat; - using ::wcsncmp; diff --git a/src/patches/gcc/gcc44-build-id.patch b/src/patches/gcc/gcc44-build-id.patch new file mode 100644 index 0000000000..f76f9396fd --- /dev/null +++ b/src/patches/gcc/gcc44-build-id.patch @@ -0,0 +1,52 @@ +2007-07-22 Roland McGrath + + * config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for + non-relocatable link. + * config/linux.h (LINK_EH_SPEC): Likewise. + * config/alpha/elf.h (LINK_EH_SPEC): Likewise. + * config/ia64/linux.h (LINK_EH_SPEC): Likewise. + +--- gcc/config/rs6000/sysv4.h.~1~ ++++ gcc/config/rs6000/sysv4.h +@@ -906,7 +906,7 @@ extern int fixuplabelno; + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" + + #if defined(HAVE_LD_EH_FRAME_HDR) +-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ +--- gcc/config/linux.h.~1~ ++++ gcc/config/linux.h +@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA. */ + } while (0) + + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* Define this so we can compile MS code for use with WINE. */ +--- gcc/config/alpha/elf.h.~1~ ++++ gcc/config/alpha/elf.h +@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu + I imagine that other systems will catch up. In the meantime, it + doesn't harm to make sure that the data exists to be used later. */ + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " ++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* A C statement (sans semicolon) to output to the stdio stream STREAM +--- gcc/config/ia64/linux.h.~1~ ++++ gcc/config/ia64/linux.h +@@ -56,7 +56,7 @@ do { \ + Signalize that because we have fde-glibc, we don't need all C shared libs + linked against -lgcc_s. */ + #undef LINK_EH_SPEC +-#define LINK_EH_SPEC "" ++#define LINK_EH_SPEC "%{!r:--build-id} " + + #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" + diff --git a/src/patches/gcc/gcc44-c++-builtin-redecl.patch b/src/patches/gcc/gcc44-c++-builtin-redecl.patch new file mode 100644 index 0000000000..1f36f1fe04 --- /dev/null +++ b/src/patches/gcc/gcc44-c++-builtin-redecl.patch @@ -0,0 +1,102 @@ +2007-10-02 Jakub Jelinek + + * decl.c (duplicate_decls): When redeclaring a builtin function, + keep the merged decl builtin whenever types match, even if new + decl defines a function. + + * gcc.dg/builtins-65.c: New test. + * g++.dg/ext/builtin10.C: New test. + +--- gcc/cp/decl.c.jj 2007-10-01 22:11:09.000000000 +0200 ++++ gcc/cp/decl.c 2007-10-02 11:39:46.000000000 +0200 +@@ -2001,23 +2001,21 @@ duplicate_decls (tree newdecl, tree oldd + DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl); + DECL_RESULT (olddecl) = DECL_RESULT (newdecl); + } ++ /* If redeclaring a builtin function, it stays built in. */ ++ if (types_match && DECL_BUILT_IN (olddecl)) ++ { ++ DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl); ++ DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl); ++ /* If we're keeping the built-in definition, keep the rtl, ++ regardless of declaration matches. */ ++ COPY_DECL_RTL (olddecl, newdecl); ++ } + if (new_defines_function) + /* If defining a function declared with other language + linkage, use the previously declared language linkage. */ + SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl)); + else if (types_match) + { +- /* If redeclaring a builtin function, and not a definition, +- it stays built in. */ +- if (DECL_BUILT_IN (olddecl)) +- { +- DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl); +- DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl); +- /* If we're keeping the built-in definition, keep the rtl, +- regardless of declaration matches. */ +- COPY_DECL_RTL (olddecl, newdecl); +- } +- + DECL_RESULT (newdecl) = DECL_RESULT (olddecl); + /* Don't clear out the arguments if we're just redeclaring a + function. */ +--- gcc/testsuite/gcc.dg/builtins-65.c.jj 2007-10-02 11:23:51.000000000 +0200 ++++ gcc/testsuite/gcc.dg/builtins-65.c 2007-10-02 11:24:12.000000000 +0200 +@@ -0,0 +1,25 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef __SIZE_TYPE__ size_t; ++extern void __chk_fail (void); ++extern int snprintf (char *, size_t, const char *, ...); ++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...) ++{ ++ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b) ++ __chk_fail (); ++ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ()); ++} ++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf"); ++ ++char buf[10]; ++ ++int ++main (void) ++{ ++ snprintf (buf, 10, "%d%d\n", 10, 10); ++ return 0; ++} ++ ++/* { dg-final { scan-assembler "mysnprintf" } } */ ++/* { dg-final { scan-assembler-not "__chk_fail" } } */ +--- gcc/testsuite/g++.dg/ext/builtin10.C.jj 2007-10-02 11:19:45.000000000 +0200 ++++ gcc/testsuite/g++.dg/ext/builtin10.C 2007-10-02 11:23:26.000000000 +0200 +@@ -0,0 +1,27 @@ ++// { dg-do compile } ++// { dg-options "-O2" } ++ ++typedef __SIZE_TYPE__ size_t; ++extern "C" { ++extern void __chk_fail (void); ++extern int snprintf (char *, size_t, const char *, ...); ++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...) ++{ ++ if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b) ++ __chk_fail (); ++ return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ()); ++} ++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf"); ++} ++ ++char buf[10]; ++ ++int ++main (void) ++{ ++ snprintf (buf, 10, "%d%d\n", 10, 10); ++ return 0; ++} ++ ++// { dg-final { scan-assembler "mysnprintf" } } ++// { dg-final { scan-assembler-not "__chk_fail" } } diff --git a/src/patches/gcc/gcc44-i386-libgomp.patch b/src/patches/gcc/gcc44-i386-libgomp.patch new file mode 100644 index 0000000000..5d1eea84c3 --- /dev/null +++ b/src/patches/gcc/gcc44-i386-libgomp.patch @@ -0,0 +1,61 @@ +Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486 +hardware isn't supported because NPTL doesn't support it anyway. + +--- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100 ++++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100 +@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then + ;; + + # Note that bare i386 is not included here. We need cmpxchg. +- i[456]86-*-linux*) ++ i[3456]86-*-linux*) + config_path="linux/x86 linux posix" + case " ${CC} ${CFLAGS} " in + *" -m64 "*) + ;; + *) + if test -z "$with_arch"; then +- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}" ++ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" + fi + esac + ;; +@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then + config_path="linux/x86 linux posix" + case " ${CC} ${CFLAGS} " in + *" -m32 "*) +- XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686" ++ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" + ;; + esac + ;; +--- libstdc++-v3/libsupc++/guard.cc.jj 2008-03-01 00:58:24.000000000 +0100 ++++ libstdc++-v3/libsupc++/guard.cc 2008-03-27 14:08:44.000000000 +0100 +@@ -35,6 +35,27 @@ + #include + #include + #include ++#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS_4 ++# define _GLIBCXX_ATOMIC_BUILTINS_4 1 ++# define __sync_val_compare_and_swap(a, b, c) \ ++ ({ \ ++ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \ ++ int sltas; \ ++ __asm __volatile ("lock; cmpxchgl %3, (%1)" \ ++ : "=a" (sltas) \ ++ : "r" (a), "0" (b), "r" (c) : "memory"); \ ++ sltas; \ ++ }) ++# define __sync_lock_test_and_set(a, b) \ ++ ({ \ ++ typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1]; \ ++ int sltas; \ ++ __asm __volatile ("xchgl (%1), %0" \ ++ : "=r" (sltas) \ ++ : "r" (a), "0" (b) : "memory"); \ ++ sltas; \ ++ }) ++#endif + #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \ + && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX) + # include diff --git a/src/patches/gcc/gcc44-libtool-no-rpath.patch b/src/patches/gcc/gcc44-libtool-no-rpath.patch new file mode 100644 index 0000000000..466c661e0c --- /dev/null +++ b/src/patches/gcc/gcc44-libtool-no-rpath.patch @@ -0,0 +1,27 @@ +libtool sucks. +--- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100 ++++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200 +@@ -5394,6 +5394,7 @@ EOF + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then +@@ -6071,6 +6072,7 @@ EOF + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then +@@ -6120,6 +6122,7 @@ EOF + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do ++ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then diff --git a/src/patches/gcc/gcc44-no-add-needed.patch b/src/patches/gcc/gcc44-no-add-needed.patch new file mode 100644 index 0000000000..4570c0c054 --- /dev/null +++ b/src/patches/gcc/gcc44-no-add-needed.patch @@ -0,0 +1,52 @@ +2010-02-08 Roland McGrath + + * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the + linker. + * config/linux.h (LINK_EH_SPEC): Likewise. + * config/alpha/elf.h (LINK_EH_SPEC): Likewise. + * config/ia64/linux.h (LINK_EH_SPEC): Likewise. + +--- gcc/config/alpha/elf.h.~1~ ++++ gcc/config/alpha/elf.h +@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu + I imagine that other systems will catch up. In the meantime, it + doesn't harm to make sure that the data exists to be used later. */ + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " ++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* A C statement (sans semicolon) to output to the stdio stream STREAM +--- gcc/config/ia64/linux.h.~1~ ++++ gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ do { \ + Signalize that because we have fde-glibc, we don't need all C shared libs + linked against -lgcc_s. */ + #undef LINK_EH_SPEC +-#define LINK_EH_SPEC "%{!r:--build-id} " ++#define LINK_EH_SPEC "--no-add-needed %{!r:--build-id} " + + #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h" + +--- gcc/config/linux.h.~1~ ++++ gcc/config/linux.h +@@ -89,7 +89,7 @@ see the files COPYING3 and COPYING.RUNTI + } while (0) + + #if defined(HAVE_LD_EH_FRAME_HDR) +-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " ++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + /* Define this so we can compile MS code for use with WINE. */ +--- gcc/config/rs6000/sysv4.h.~1~ ++++ gcc/config/rs6000/sysv4.h +@@ -917,7 +917,7 @@ SVR4_ASM_SPEC \ + %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}" + + #if defined(HAVE_LD_EH_FRAME_HDR) +-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} " ++# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} " + #endif + + #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ diff --git a/src/patches/gcc/gcc44-pr33763.patch b/src/patches/gcc/gcc44-pr33763.patch new file mode 100644 index 0000000000..86c8ac7e13 --- /dev/null +++ b/src/patches/gcc/gcc44-pr33763.patch @@ -0,0 +1,153 @@ +2007-11-06 Jakub Jelinek + + PR tree-optimization/33763 + * gcc.dg/pr33763.c: New test. + * g++.dg/opt/inline13.C: New test. + +2007-11-06 Jan Hubicka + + PR tree-optimization/33763 + * tree-inline.c (expand_call_inline): Silently ignore always_inline + attribute for redefined extern inline functions. + +--- gcc/tree-inline.c.jj 2007-11-06 09:29:04.000000000 +0100 ++++ gcc/tree-inline.c 2007-11-06 16:19:12.000000000 +0100 +@@ -3157,6 +3157,12 @@ expand_call_inline (basic_block bb, gimp + goto egress; + + if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) ++ /* For extern inline functions that get redefined we always ++ silently ignored alway_inline flag. Better behaviour would ++ be to be able to keep both bodies and use extern inline body ++ for inlining, but we can't do that because frontends overwrite ++ the body. */ ++ && !cg_edge->callee->local.redefined_extern_inline + /* Avoid warnings during early inline pass. */ + && cgraph_global_info_ready) + { +--- gcc/testsuite/gcc.dg/pr33763.c.jj 2007-11-06 16:19:12.000000000 +0100 ++++ gcc/testsuite/gcc.dg/pr33763.c 2007-11-06 16:19:12.000000000 +0100 +@@ -0,0 +1,60 @@ ++/* PR tree-optimization/33763 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef struct ++{ ++ void *a; ++ void *b; ++} T; ++extern void *foo (const char *, const char *); ++extern void *bar (void *, const char *, T); ++extern int baz (const char *, int); ++ ++extern inline __attribute__ ((always_inline, gnu_inline)) int ++baz (const char *x, int y) ++{ ++ return 2; ++} ++ ++int ++baz (const char *x, int y) ++{ ++ return 1; ++} ++ ++int xa, xb; ++ ++static void * ++inl (const char *x, const char *y) ++{ ++ T t = { &xa, &xb }; ++ int *f = (int *) __builtin_malloc (sizeof (int)); ++ const char *z; ++ int o = 0; ++ void *r = 0; ++ ++ for (z = y; *z; z++) ++ { ++ if (*z == 'r') ++ o |= 1; ++ if (*z == 'w') ++ o |= 2; ++ } ++ if (o == 1) ++ *f = baz (x, 0); ++ if (o == 2) ++ *f = baz (x, 1); ++ if (o == 3) ++ *f = baz (x, 2); ++ ++ if (o && *f > 0) ++ r = bar (f, "w", t); ++ return r; ++} ++ ++void * ++foo (const char *x, const char *y) ++{ ++ return inl (x, y); ++} +--- gcc/testsuite/g++.dg/opt/inline13.C.jj 2007-11-06 16:20:20.000000000 +0100 ++++ gcc/testsuite/g++.dg/opt/inline13.C 2007-11-06 16:21:30.000000000 +0100 +@@ -0,0 +1,60 @@ ++// PR tree-optimization/33763 ++// { dg-do compile } ++// { dg-options "-O2" } ++ ++typedef struct ++{ ++ void *a; ++ void *b; ++} T; ++extern void *foo (const char *, const char *); ++extern void *bar (void *, const char *, T); ++extern int baz (const char *, int); ++ ++extern inline __attribute__ ((always_inline, gnu_inline)) int ++baz (const char *x, int y) ++{ ++ return 2; ++} ++ ++int ++baz (const char *x, int y) ++{ ++ return 1; ++} ++ ++int xa, xb; ++ ++static void * ++inl (const char *x, const char *y) ++{ ++ T t = { &xa, &xb }; ++ int *f = (int *) __builtin_malloc (sizeof (int)); ++ const char *z; ++ int o = 0; ++ void *r = 0; ++ ++ for (z = y; *z; z++) ++ { ++ if (*z == 'r') ++ o |= 1; ++ if (*z == 'w') ++ o |= 2; ++ } ++ if (o == 1) ++ *f = baz (x, 0); ++ if (o == 2) ++ *f = baz (x, 1); ++ if (o == 3) ++ *f = baz (x, 2); ++ ++ if (o && *f > 0) ++ r = bar (f, "w", t); ++ return r; ++} ++ ++void * ++foo (const char *x, const char *y) ++{ ++ return inl (x, y); ++} diff --git a/src/patches/gcc/gcc44-rh330771.patch b/src/patches/gcc/gcc44-rh330771.patch new file mode 100644 index 0000000000..f7c365dc8a --- /dev/null +++ b/src/patches/gcc/gcc44-rh330771.patch @@ -0,0 +1,34 @@ +2007-10-16 Jakub Jelinek + + * Makefile.am (libgcj_tools_la_LIBADD): Add. + * Makefile.in: Regenerated. + +--- libjava/Makefile.am.jj 2009-05-06 08:14:50.000000000 +0200 ++++ libjava/Makefile.am 2009-05-06 10:26:43.000000000 +0200 +@@ -314,6 +314,8 @@ libgcj_tools_la_SOURCES = classpath/tool + libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \ + -fno-bootstrap-classes -fno-indirect-classes \ + -fsource-filename=$(here)/classpath/tools/all-classes.lst ++## See jv_convert_LDADD. ++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la + libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) +--- libjava/Makefile.in.jj 2009-05-06 08:14:49.000000000 +0200 ++++ libjava/Makefile.in 2009-05-06 10:27:18.000000000 +0200 +@@ -160,7 +160,6 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt + am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1) + lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS) + @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir) +-libgcj_tools_la_LIBADD = + am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo + libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS) + @INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \ +@@ -1041,6 +1040,7 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS + -fno-bootstrap-classes -fno-indirect-classes \ + -fsource-filename=$(here)/classpath/tools/all-classes.lst + ++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la + libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) diff --git a/src/patches/gcc/gcc44-rh533181.patch b/src/patches/gcc/gcc44-rh533181.patch new file mode 100644 index 0000000000..76326e2994 --- /dev/null +++ b/src/patches/gcc/gcc44-rh533181.patch @@ -0,0 +1,153 @@ +2010-07-22 Jakub Jelinek + + * gimplify.c (enum gimplify_omp_var_data): Add + GOVD_THREADPRIVATE_WARNED. + (gimplify_bind_expr): Add GOVD_LOCAL | GOVD_SEEN even for global vars. + (omp_notice_threadprivate_variable): Note used threadprivate vars + with current function's context in shared clauses. + (gimplify_adjust_omp_clauses_1): Allow globals with current function's + context in taskreg shared clause. + * omp-low.c (lower_rec_input_clauses): For function-local is_global_var + VAR_DECLs in shared clauses add a decl copy with DECL_VALUE_EXPR + pointing to the original. + + * trans-openmp.c (gfc_omp_private_debug_clause): Return false for + threadprivate decls. + + * gcc.dg/gomp/tls-3.c: New test. + +--- gcc/fortran/trans-openmp.c.jj 2010-06-24 21:47:09.908230044 +0200 ++++ gcc/fortran/trans-openmp.c 2010-07-26 10:45:15.830229443 +0200 +@@ -351,6 +351,18 @@ gfc_omp_disregard_value_expr (tree decl, + bool + gfc_omp_private_debug_clause (tree decl, bool shared) + { ++ if (TREE_STATIC (decl) || DECL_EXTERNAL (decl)) ++ { ++ if (DECL_THREAD_LOCAL_P (decl)) ++ return false; ++ if (DECL_HAS_VALUE_EXPR_P (decl)) ++ { ++ tree value = get_base_address (DECL_VALUE_EXPR (decl)); ++ if (value && DECL_P (value) && DECL_THREAD_LOCAL_P (value)) ++ return false; ++ } ++ } ++ + if (GFC_DECL_CRAY_POINTEE (decl)) + return true; + +--- gcc/gimplify.c.jj 2010-07-09 09:01:37.049604412 +0200 ++++ gcc/gimplify.c 2010-07-26 10:50:05.646291216 +0200 +@@ -66,6 +66,7 @@ enum gimplify_omp_var_data + GOVD_LOCAL = 128, + GOVD_DEBUG_PRIVATE = 256, + GOVD_PRIVATE_OUTER_REF = 512, ++ GOVD_THREADPRIVATE_WARNED = 1024, + GOVD_DATA_SHARE_CLASS = (GOVD_SHARED | GOVD_PRIVATE | GOVD_FIRSTPRIVATE + | GOVD_LASTPRIVATE | GOVD_REDUCTION | GOVD_LOCAL) + }; +@@ -1234,7 +1235,7 @@ gimplify_bind_expr (tree *expr_p, gimple + struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp; + + /* Mark variable as local. */ +- if (ctx && !is_global_var (t) ++ if (ctx + && (! DECL_SEEN_IN_BIND_EXPR_P (t) + || splay_tree_lookup (ctx->variables, + (splay_tree_key) t) == NULL)) +@@ -5339,18 +5340,36 @@ omp_notice_threadprivate_variable (struc + { + splay_tree_node n; + +- if (ctx->region_type != ORT_UNTIED_TASK) ++ while (ctx && ctx->region_type == ORT_WORKSHARE) ++ { ++ n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl); ++ if (n != NULL) ++ { ++ gcc_assert (n->value & GOVD_LOCAL); ++ return false; ++ } ++ ctx = ctx->outer_context; ++ } ++ if (ctx == NULL) + return false; ++ + n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl); + if (n == NULL) ++ n = splay_tree_insert (ctx->variables, (splay_tree_key)decl, ++ DECL_CONTEXT (decl) == current_function_decl ++ ? GOVD_SHARED | GOVD_SEEN : 0); ++ if (ctx->region_type == ORT_UNTIED_TASK ++ && (n->value & GOVD_THREADPRIVATE_WARNED) == 0) + { + error ("threadprivate variable %qs used in untied task", + IDENTIFIER_POINTER (DECL_NAME (decl))); + error ("%Henclosing task", &ctx->location); +- splay_tree_insert (ctx->variables, (splay_tree_key)decl, 0); ++ n->value |= GOVD_THREADPRIVATE_WARNED; + } + if (decl2) +- splay_tree_insert (ctx->variables, (splay_tree_key)decl2, 0); ++ splay_tree_insert (ctx->variables, (splay_tree_key)decl2, ++ DECL_CONTEXT (decl2) == current_function_decl ++ ? GOVD_SHARED | GOVD_SEEN : 0); + return false; + } + +@@ -5779,7 +5798,9 @@ gimplify_adjust_omp_clauses_1 (splay_tre + break; + ctx = ctx->outer_context; + } +- if (ctx == NULL) ++ if (ctx == NULL ++ && (DECL_CONTEXT (decl) != current_function_decl ++ || gimplify_omp_ctxp->region_type == ORT_WORKSHARE)) + return 0; + } + code = OMP_CLAUSE_SHARED; +--- gcc/omp-low.c.jj 2010-06-11 11:06:00.913659301 +0200 ++++ gcc/omp-low.c 2010-07-26 10:45:15.866229447 +0200 +@@ -2222,6 +2222,17 @@ lower_rec_input_clauses (tree clauses, g + continue; + break; + case OMP_CLAUSE_SHARED: ++ if (pass == 0 ++ && is_global_var (OMP_CLAUSE_DECL (c)) ++ && (DECL_CONTEXT (OMP_CLAUSE_DECL (c)) ++ == current_function_decl) ++ && is_taskreg_ctx (ctx) ++ && !DECL_IGNORED_P (OMP_CLAUSE_DECL (c))) ++ { ++ new_var = omp_copy_decl_1 (OMP_CLAUSE_DECL (c), ctx); ++ SET_DECL_VALUE_EXPR (new_var, OMP_CLAUSE_DECL (c)); ++ DECL_HAS_VALUE_EXPR_P (new_var) = 1; ++ } + if (maybe_lookup_decl (OMP_CLAUSE_DECL (c), ctx) == NULL) + { + gcc_assert (is_global_var (OMP_CLAUSE_DECL (c))); +--- gcc/testsuite/gcc.dg/gomp/tls-3.c.jj 2010-07-26 10:45:15.868228753 +0200 ++++ gcc/testsuite/gcc.dg/gomp/tls-3.c 2010-07-26 10:45:15.868228753 +0200 +@@ -0,0 +1,21 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target tls_native } */ ++ ++int thr; ++#pragma omp threadprivate(thr) ++ ++void ++foo (void) ++{ ++ #pragma omp task untied /* { dg-error "enclosing task" } */ ++ { ++ static int thr2; ++ #pragma omp threadprivate(thr2) ++ static int thr3; ++ #pragma omp threadprivate(thr3) ++ thr++; /* { dg-error "used in untied task" } */ ++ thr2++; /* { dg-error "used in untied task" } */ ++ thr++; ++ thr2++; ++ } ++} diff --git a/src/patches/gcc/gcc44-rh610785.patch b/src/patches/gcc/gcc44-rh610785.patch new file mode 100644 index 0000000000..91d093469a --- /dev/null +++ b/src/patches/gcc/gcc44-rh610785.patch @@ -0,0 +1,74 @@ +2010-07-07 Jakub Jelinek + + * tree-sra.c (sra_build_assignment): Don't add BIT_XOR_EXPR/MINUS_EXPR + of signbit if signbit is the most significant bit of utype already. + + * gcc.c-torture/execute/20100707-1.c: New test. + +--- gcc/tree-sra.c.jj 2010-05-13 13:08:52.000000000 +0200 ++++ gcc/tree-sra.c 2010-07-06 19:50:09.000000000 +0200 +@@ -2211,7 +2211,10 @@ sra_build_assignment (tree dst, tree src + + /* Perform sign extension, if required. + ??? This should never be necessary. */ +- if (!unsignedp) ++ if (!unsignedp ++ && (TREE_INT_CST_LOW (width) != TYPE_PRECISION (utype) ++ || (TREE_INT_CST_LOW (width) ++ != GET_MODE_BITSIZE (TYPE_MODE (utype))))) + { + tree signbit = int_const_binop (LSHIFT_EXPR, + build_int_cst_wide (utype, 1, 0), +--- gcc/testsuite/gcc.c-torture/execute/20100707-1.c 2010-05-27 15:41:40.446237053 +0200 ++++ gcc/testsuite/gcc.c-torture/execute/20100707-1.c 2010-07-06 13:55:35.000000000 +0200 +@@ -0,0 +1,50 @@ ++struct S { int s; }; ++struct T { int w; int h; }; ++int vr; ++ ++inline struct T ++bar (const struct S * x) ++{ ++ struct T t; ++ t.w = vr; ++ t.h = x->s; ++ return t; ++} ++ ++__attribute__ ((noinline)) ++void foo (struct S * w, unsigned char *x, int y, int *z[2]) ++{ ++ struct T t; ++ int i, j, k; ++ t = bar (w); ++ k = t.w + 2; ++ for (i = 0; i <= t.h; i++) ++ { ++ int *u = z[i > 0] + 1; ++ unsigned char *v; ++ int q = 0; ++ v = x + k * i + 1; ++ for (j = 0; j < t.w; j++) ++ { ++ int m = u[j]; ++ if (m > y && !q && v[j - k] != 2) ++ v[j] = 0; ++ } ++ } ++} ++ ++unsigned char b[64]; ++ ++int ++main (void) ++{ ++ int v[32], *z[2]; ++ struct S s; ++ __builtin_memset (v, 0, sizeof (v)); ++ vr = 16; ++ s.s = 16; ++ z[0] = v; ++ z[1] = v; ++ foo (&s, b + 32, -1, z); ++ return 0; ++} diff --git a/src/patches/gcc/gcc44-unwind-debug-hook.patch b/src/patches/gcc/gcc44-unwind-debug-hook.patch new file mode 100644 index 0000000000..9b7c59eb0f --- /dev/null +++ b/src/patches/gcc/gcc44-unwind-debug-hook.patch @@ -0,0 +1,51 @@ +2010-04-27 Jakub Jelinek + + * unwind-dw2.c (_Unwind_DebugHook): Add used attribute. + +2009-05-27 Tom Tromey + + * unwind-dw2.c (_Unwind_DebugHook): New function. + (uw_install_context): Call _Unwind_DebugHook. + +--- gcc/unwind-dw2.c (revision 147933) ++++ gcc/unwind-dw2.c (revision 147934) +@@ -1473,18 +1473,32 @@ uw_init_context_1 (struct _Unwind_Contex + context->ra = __builtin_extract_return_addr (outer_ra); + } + ++static void _Unwind_DebugHook (void *, void *) ++ __attribute__ ((__noinline__, __used__)); ++ ++/* This function is called during unwinding. It is intended as a hook ++ for a debugger to intercept exceptions. CFA is the CFA of the ++ target frame. HANDLER is the PC to which control will be ++ transferred. */ ++static void ++_Unwind_DebugHook (void *cfa __attribute__ ((__unused__)), ++ void *handler __attribute__ ((__unused__))) ++{ ++ asm (""); ++} + + /* Install TARGET into CURRENT so that we can return to it. This is a + macro because __builtin_eh_return must be invoked in the context of + our caller. */ + +-#define uw_install_context(CURRENT, TARGET) \ +- do \ +- { \ +- long offset = uw_install_context_1 ((CURRENT), (TARGET)); \ +- void *handler = __builtin_frob_return_addr ((TARGET)->ra); \ +- __builtin_eh_return (offset, handler); \ +- } \ ++#define uw_install_context(CURRENT, TARGET) \ ++ do \ ++ { \ ++ long offset = uw_install_context_1 ((CURRENT), (TARGET)); \ ++ void *handler = __builtin_frob_return_addr ((TARGET)->ra); \ ++ _Unwind_DebugHook ((TARGET)->cfa, handler); \ ++ __builtin_eh_return (offset, handler); \ ++ } \ + while (0) + + static long diff --git a/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch b/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch deleted file mode 100644 index 26c8ac8a52..0000000000 --- a/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -Naur glibc-2.3.6.org/elf/dl-load.c glibc-2.3.6/elf/dl-load.c ---- glibc-2.3.6.org/elf/dl-load.c 2005-04-06 04:50:10.000000000 +0200 -+++ glibc-2.3.6/elf/dl-load.c 2010-10-19 17:41:09.000000000 +0200 -@@ -176,8 +176,7 @@ - - - static size_t --is_dst (const char *start, const char *name, const char *str, -- int is_path, int secure) -+is_dst (const char *start, const char *name, const char *str, int is_path) - { - size_t len; - bool is_curly = false; -@@ -206,11 +205,6 @@ - && (!is_path || name[len] != ':')) - return 0; - -- if (__builtin_expect (secure, 0) -- && ((name[len] != '\0' && (!is_path || name[len] != ':')) -- || (name != start + 1 && (!is_path || name[-2] != ':')))) -- return 0; -- - return len; - } - -@@ -225,13 +219,12 @@ - { - size_t len; - -- /* $ORIGIN is not expanded for SUID/GUID programs (except if it -- is $ORIGIN alone) and it must always appear first in path. */ -+ /* $ORIGIN is not expanded for SUID/GUID programs. */ - ++name; -- if ((len = is_dst (start, name, "ORIGIN", is_path, -- INTUSE(__libc_enable_secure))) != 0 -- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 -- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) -+ if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0 -+ && !INTUSE(__libc_enable_secure)) -+ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 -+ || (len = is_dst (start, name, "LIB", is_path)) != 0) - ++cnt; - - name = strchr (name + len, '$'); -@@ -263,12 +256,17 @@ - size_t len; - - ++name; -- if ((len = is_dst (start, name, "ORIGIN", is_path, -- INTUSE(__libc_enable_secure))) != 0) -- repl = l->l_origin; -- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) -+ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) -+ { -+ // Ignore this path at SUID/GUID -+ if (INTUSE(__libc_enable_secure)) -+ repl = (const char *) -1; -+ else -+ repl = l->l_origin; -+ } -+ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) - repl = GLRO(dl_platform); -- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) -+ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) - repl = DL_DST_LIB; - - if (repl != NULL && repl != (const char *) -1) diff --git a/src/patches/glibc-2.3.6-inotify-1.patch b/src/patches/glibc-2.3.6-inotify-1.patch deleted file mode 100644 index 30af30c500..0000000000 --- a/src/patches/glibc-2.3.6-inotify-1.patch +++ /dev/null @@ -1,45 +0,0 @@ -Submitted By: Dan Nicholson -Date: 2006-09-01 -Initial Package Version: 2.3.6 -Origin: udev-096, syscall functions generated by Alexander E. Patrakov -Upstream Status: Added to syscall list in 2.4 -Description: Adds inotify syscall functions for use in userspace. Minimal - syscall functions borrowed from udev local implementation to - provide system inotify support. -Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify - -diff -pNur glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h ---- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h 1970-01-01 00:00:00.000000000 +0000 -+++ glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h 2006-08-01 05:48:27.000000000 +0000 -@@ -0,0 +1,31 @@ -+/* -+ * Inode based directory notification for Linux -+ * -+ * Copyright (C) 2005 John McCutchan -+ */ -+ -+#ifndef _SYS_INOTIFY_H -+#define _SYS_INOTIFY_H -+ -+#include -+#include -+#include -+ -+extern long int syscall (long int __sysno, ...) __THROW; -+ -+static inline int inotify_init(void) -+{ -+ return syscall(__NR_inotify_init); -+} -+ -+static inline int inotify_add_watch(int fd, const char *name, uint32_t mask) -+{ -+ return syscall(__NR_inotify_add_watch, fd, name, mask); -+} -+ -+static inline int inotify_rm_watch (int fd, uint32_t wd) -+{ -+ return syscall(__NR_inotify_rm_watch, fd, wd); -+} -+ -+#endif /* _SYS_INOTIFY_H */ diff --git a/src/patches/glibc-2.3.6-linux_types-1.patch b/src/patches/glibc-2.3.6-linux_types-1.patch deleted file mode 100644 index a365b81d8e..0000000000 --- a/src/patches/glibc-2.3.6-linux_types-1.patch +++ /dev/null @@ -1,33 +0,0 @@ -Submitted By: DJ Lucas -Date: 2006-04-05 -Initial Package Version: 2.3.6 -Upstream Status: Committed -Origin: Glibc CVS -Description: Fixes build errors where linux/types.h is included after sys/kd.h. - -diff -Naur glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h ---- glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h 2001-07-05 23:56:21.000000000 -0500 -+++ glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h 2006-04-04 21:40:50.000000000 -0500 -@@ -1,4 +1,4 @@ --/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. -+/* Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -21,9 +21,15 @@ - - /* Make sure the header is not loaded. */ - #ifndef _LINUX_TYPES_H --# define _LINUX_TYPES_H 1 -+# define _LINUX_TYPES_H 1 -+# define __undef_LINUX_TYPES_H - #endif - - #include - -+#ifdef __undef_LINUX_TYPES_H -+# undef _LINUX_TYPES_H -+# undef __undef_LINUX_TYPES_H -+#endif -+ - #endif /* sys/kd.h */ diff --git a/src/patches/glibc-arm-dont-use-swp.patch b/src/patches/glibc-arm-dont-use-swp.patch new file mode 100644 index 0000000000..293c20c0de --- /dev/null +++ b/src/patches/glibc-arm-dont-use-swp.patch @@ -0,0 +1,305 @@ +commit 1ba025a9a21eda65d8c36cc0dbb51d214a3ebb1a +Author: Daniel Jacobowitz +Date: Mon Jun 2 01:57:03 2008 +0000 + + 2008-06-01 Paul Brook + Zack Weinberg + Daniel Jacobowitz + + * sysdeps/arm/nptl/pthread_spin_lock.S, + sysdeps/arm/nptl/pthread_spin_trylock.S: Delete. + * sysdeps/arm/nptl/pthread_spin_lock.c, + sysdeps/arm/nptl/pthread_spin_trylock.c: New files using + atomic_compare_and_exchange_val_acq to take spinlocks. + * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (lll_trylock, + lll_cond_trylock): Use atomic_compare_and_exchange_val_acq. + (__lll_trylock, __lll_cond_trylock): Delete. + * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h + (atomic_exchange_acq): Delete. + (atomic_full_barrier): Define. + (__arch_compare_and_exchange_val_32_acq): Use named operands. + * sysdeps/unix/sysv/linux/arm/eabi/configure.in: Update + arch_minimum_kernel to 2.6.16. + * sysdeps/unix/sysv/linux/arm/eabi/configure: Regenerated. + +diff --git a/sysdeps/arm/nptl/pthread_spin_lock.S b/sysdeps/arm/nptl/pthread_spin_lock.S +deleted file mode 100644 +index bd6adf7..0000000 +--- a/sysdeps/arm/nptl/pthread_spin_lock.S ++++ /dev/null +@@ -1,31 +0,0 @@ +-/* Copyright (C) 2005 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#include +- +- .text +- .align 4 +- +-ENTRY (pthread_spin_lock) +- mov r1, #1 +-1: swp r2, r1, [r0] +- teq r2, #0 +- bne 1b +- mov r0, #0 +- PSEUDO_RET_NOERRNO +-END (pthread_spin_lock) +diff --git a/sysdeps/arm/nptl/pthread_spin_lock.c b/sysdeps/arm/nptl/pthread_spin_lock.c +new file mode 100644 +index 0000000..1217b89 +--- /dev/null ++++ b/sysdeps/arm/nptl/pthread_spin_lock.c +@@ -0,0 +1,30 @@ ++/* Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include "pthreadP.h" ++ ++int ++pthread_spin_lock (pthread_spinlock_t *lock) ++{ ++ while (atomic_compare_and_exchange_val_acq (lock, 1, 0) != 0) ++ while (*lock != 0) ++ ; ++ ++ return 0; ++} +diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.S b/sysdeps/arm/nptl/pthread_spin_trylock.S +deleted file mode 100644 +index 8593150..0000000 +--- a/sysdeps/arm/nptl/pthread_spin_trylock.S ++++ /dev/null +@@ -1,34 +0,0 @@ +-/* Copyright (C) 2005 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library 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 +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +- 02111-1307 USA. */ +- +-#define _ERRNO_H 1 +-#include +- +-#include +- +- .text +- .align 4 +- +-ENTRY (pthread_spin_trylock) +- mov r1, #1 +- swp r2, r1, [r0] +- teq r2, #0 +- moveq r0, #0 +- movne r0, #EBUSY +- PSEUDO_RET_NOERRNO +-END (pthread_spin_trylock) +diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.c b/sysdeps/arm/nptl/pthread_spin_trylock.c +new file mode 100644 +index 0000000..fb998d2 +--- /dev/null ++++ b/sysdeps/arm/nptl/pthread_spin_trylock.c +@@ -0,0 +1,27 @@ ++/* Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include "pthreadP.h" ++ ++int ++pthread_spin_trylock (pthread_spinlock_t *lock) ++{ ++ return atomic_compare_and_exchange_val_acq (lock, 1, 0) ? EBUSY : 0; ++} +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure b/sysdeps/unix/sysv/linux/arm/eabi/configure +index ab83048..28fb9ef 100644 +--- a/sysdeps/unix/sysv/linux/arm/eabi/configure ++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure +@@ -1,5 +1,5 @@ + # This file is generated from configure.in by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi. + +-arch_minimum_kernel=2.6.14 ++arch_minimum_kernel=2.6.16 + libc_cv_gcc_unwind_find_fde=no +diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure.in b/sysdeps/unix/sysv/linux/arm/eabi/configure.in +index 83aa8fc..d1fb7f4 100644 +--- a/sysdeps/unix/sysv/linux/arm/eabi/configure.in ++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure.in +@@ -1,5 +1,5 @@ + GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. + # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi. + +-arch_minimum_kernel=2.6.14 ++arch_minimum_kernel=2.6.16 + libc_cv_gcc_unwind_find_fde=no +diff --git a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h +index 71ed714..247ddd3 100644 +--- a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h ++++ b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h +@@ -37,22 +37,12 @@ typedef uintmax_t uatomic_max_t; + + void __arm_link_error (void); + +-#define atomic_exchange_acq(mem, newvalue) \ +- ({ __typeof (*mem) result; \ +- if (sizeof (*mem) == 1) \ +- __asm__ __volatile__ ("swpb %0, %1, [%2]" \ +- : "=&r,&r" (result) \ +- : "r,0" (newvalue), "r,r" (mem) : "memory"); \ +- else if (sizeof (*mem) == 4) \ +- __asm__ __volatile__ ("swp %0, %1, [%2]" \ +- : "=&r,&r" (result) \ +- : "r,0" (newvalue), "r,r" (mem) : "memory"); \ +- else \ +- { \ +- result = 0; \ +- abort (); \ +- } \ +- result; }) ++#define atomic_full_barrier() \ ++ __asm__ __volatile__ \ ++ ("mov\tip, #0xffff0fff\n\t" \ ++ "mov\tlr, pc\n\t" \ ++ "add\tpc, ip, #(0xffff0fa0 - 0xffff0fff)" \ ++ : : : "ip", "lr", "cc", "memory"); + + /* Atomic compare and exchange. This sequence relies on the kernel to + provide a compare and exchange operation which is atomic on the +@@ -76,18 +66,19 @@ void __arm_link_error (void); + register __typeof (oldval) a_tmp asm ("r3"); \ + register __typeof (oldval) a_oldval2 asm ("r4") = (oldval); \ + __asm__ __volatile__ \ +- ("0:\tldr\t%1,[%3]\n\t" \ +- "cmp\t%1, %4\n\t" \ ++ ("0:\tldr\t%[tmp],[%[ptr]]\n\t" \ ++ "cmp\t%[tmp], %[old2]\n\t" \ + "bne\t1f\n\t" \ +- "mov\t%0, %4\n\t" \ +- "mov\t%1, #0xffff0fff\n\t" \ ++ "mov\t%[old], %[old2]\n\t" \ ++ "mov\t%[tmp], #0xffff0fff\n\t" \ + "mov\tlr, pc\n\t" \ +- "add\tpc, %1, #(0xffff0fc0 - 0xffff0fff)\n\t" \ ++ "add\tpc, %[tmp], #(0xffff0fc0 - 0xffff0fff)\n\t" \ + "bcc\t0b\n\t" \ +- "mov\t%1, %4\n\t" \ ++ "mov\t%[tmp], %[old2]\n\t" \ + "1:" \ +- : "=&r" (a_oldval), "=&r" (a_tmp) \ +- : "r" (a_newval), "r" (a_ptr), "r" (a_oldval2) \ ++ : [old] "=&r" (a_oldval), [tmp] "=&r" (a_tmp) \ ++ : [new] "r" (a_newval), [ptr] "r" (a_ptr), \ ++ [old2] "r" (a_oldval2) \ + : "ip", "lr", "cc", "memory"); \ + a_tmp; }) + +diff --git a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +index f48e867..889f97c 100644 +--- a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h ++++ b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +@@ -126,43 +126,11 @@ + }) + + +-static inline int __attribute__((always_inline)) +-__lll_mutex_trylock (int *futex) +-{ +- int flag = 1, old; +- asm volatile ( +- "\tswp %[old], %[flag], [%[futex]] @ try to take the lock\n" +- "\tcmp %[old], #1 @ check old lock value\n" +- "\tmovlo %[flag], #0 @ if we got it, return 0\n" +- "\tswphi %[flag], %[old], [%[futex]] @ if it was contested,\n" +- " @ restore the contested flag,\n" +- " @ and check whether that won." +- : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old) +- : : "memory" ); +- +- return flag; +-} +-#define lll_mutex_trylock(lock) __lll_mutex_trylock (&(lock)) +- +- +-static inline int __attribute__((always_inline)) +-__lll_mutex_cond_trylock (int *futex) +-{ +- int flag = 2, old; +- asm volatile ( +- "\tswp %[old], %[flag], [%[futex]] @ try to take the lock\n" +- "\tcmp %[old], #1 @ check old lock value\n" +- "\tmovlo %[flag], #0 @ if we got it, return 0\n" +- "\tswphi %[flag], %[old], [%[futex]] @ if it was contested,\n" +- " @ restore the contested flag,\n" +- " @ and check whether that won." +- : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old) +- : : "memory" ); +- +- return flag; +-} +-#define lll_mutex_cond_trylock(lock) __lll_mutex_cond_trylock (&(lock)) ++#define lll_mutex_trylock(lock) \ ++ atomic_compare_and_exchange_val_acq(&(lock), 1, 0) + ++#define lll_mutex_cond_trylock(lock) \ ++ atomic_compare_and_exchange_val_acq(&(lock), 2, 0) + + #define __lll_robust_trylock(futex, id) \ + (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0) diff --git a/src/patches/glibc-cfi-entry-not-closed.patch b/src/patches/glibc-cfi-entry-not-closed.patch new file mode 100644 index 0000000000..02cfe8fa67 --- /dev/null +++ b/src/patches/glibc-cfi-entry-not-closed.patch @@ -0,0 +1,23 @@ +--- glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S 2011-09-08 22:22:41.000000000 +0400 ++++ glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S 2011-09-08 21:44:49.000000000 +0400 +@@ -18,16 +18,20 @@ + + #include + ++ .text ++ + /* If no SA_RESTORER function was specified by the application we use + one of these. This avoids the need for the kernel to synthesise a return + instruction on the stack, which would involve expensive cache flushes. */ + + ENTRY(__default_sa_restorer) + swi SYS_ify(sigreturn) ++PSEUDO_END (__default_sa_restorer) + + #ifdef __NR_rt_sigreturn + + ENTRY(__default_rt_sa_restorer) + swi SYS_ify(rt_sigreturn) ++PSEUDO_END (__default_rt_sa_restorer) + + #endif diff --git a/src/patches/glibc-ports-avoid-using-asm-procinfo.patch b/src/patches/glibc-ports-avoid-using-asm-procinfo.patch deleted file mode 100644 index 53a6d1b4d6..0000000000 --- a/src/patches/glibc-ports-avoid-using-asm-procinfo.patch +++ /dev/null @@ -1,340 +0,0 @@ -# -# Submitted-By: Marc Kleine-Budde, 2006-11-22 -# Committed-By: Marc Kleine-Budde -# -# Error: -# -# try to compile glibc-ports with sanitized headers -# -# arm-v4t-linux-gnueabi-gcc ../ports/sysdeps/arm/eabi/setfpucw.c -c -#-std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -#-g -Wstrict-prototypes -Wno-uninitialized -D__NO_MATH_INLINES -#-D__LIBC_INTERNAL_MATH_INLINES -DNO_LONG_DOUBLE -#-D_Mlong_double_=double -I../include -#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math -#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build -#-I../ports/sysdeps/arm/elf -#-I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl -#-I../ports/sysdeps/unix/sysv/linux/arm/eabi -#-I../ports/sysdeps/unix/sysv/linux/arm/nptl -#-I../ports/sysdeps/unix/sysv/linux/arm -#-I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -#-I../nptl/sysdeps/pthread -I../sysdeps/pthread -#-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -#-I../sysdeps/unix/common -I../sysdeps/unix/mman -#-I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -#-I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -#-I../ports/sysdeps/unix/arm -I../ports/sysdeps/unix -#-I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -#-I../ports/sysdeps/arm/eabi -I../ports/sysdeps/arm/nptl -#-I../ports/sysdeps/arm -I../sysdeps/wordsize-32 -#-I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -#-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -#-I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem -#/ptx/work/mkl/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/bin/../lib/gcc/arm-v4t-linux-gnueabi/4.1.1/include -#-isystem -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/sysroot-arm-v4t-linux-gnueabi/usr/include -#-D_LIBC_REENTRANT -include ../include/libc-symbols.h -o -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o -#-MD -MP -MF -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o.dt -#-MT -#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o -# ../ports/sysdeps/arm/eabi/setfpucw.c:26:26: error: asm/procinfo.h: No such file or directory -# ../ports/sysdeps/arm/eabi/setfpucw.c: In function '__setfpucw': -# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: 'HWCAP_VFP' undeclared (first use in this function) -# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: (Each undeclared identifier is reported only once -# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: for each function it appears in.) -# -# Description: -# -# http://sourceware.org/ml/libc-ports/2006-10/msg00040.html -# -# State: -# -# added to glibc-ports on 10/31/2006 06:20 PM -# -Date: Tue, 24 Oct 2006 19:25:12 +0000 (UTC) -From: "Joseph S. Myers" -To: libc-ports@sourceware.org -Subject: Avoid using asm/procinfo.h - -I previously noted - that the -use of , a Linux-specific kernel header, in -sysdeps/arm/eabi, is an abstraction violation, and that in principle -all the files in sysdeps/arm/eabi should use sysdep.h not -asm/procinfo.h for HWCAP_VFP. - -The ARM kernel maintainers have now declared that -should not be used outside the kernel at all (and in particular that -headers_install is correct in not exporting it), and that these -definitions will move to a different kernel header. This gives a -concrete reason for making the change to use glibc's internal -definitions, which this patch does, thereby allowing glibc to build -with the exported headers. - -2006-10-24 Joseph S. Myers - - * sysdeps/arm/eabi/fclrexcpt.c: Include instead of - . Use HWCAP_ARM_VFP instead of HWCAP_VFP. - * sysdeps/arm/eabi/fedisblxcpt.c: Likewise. - * sysdeps/arm/eabi/feenablxcpt.c: Likewise. - * sysdeps/arm/eabi/fegetenv.c: Likewise. - * sysdeps/arm/eabi/fegetexcept.c: Likewise. - * sysdeps/arm/eabi/fegetround.c: Likewise. - * sysdeps/arm/eabi/feholdexcpt.c: Likewise. - * sysdeps/arm/eabi/fesetenv.c: Likewise. - * sysdeps/arm/eabi/fesetround.c: Likewise. - * sysdeps/arm/eabi/fraiseexcpt.c: Likewise. - * sysdeps/arm/eabi/fsetexcptflg.c: Likewise. - * sysdeps/arm/eabi/ftestexcept.c: Likewise. - * sysdeps/arm/eabi/setfpucw.c: Likewise. - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fclrexcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - int - __feclearexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fedisblxcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c -@@ -24,12 +24,12 @@ - #include - #include - #include --#include -+#include - - int - fedisableexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int new_exc, old_exc; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feenablxcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c -@@ -24,12 +24,12 @@ - #include - #include - #include --#include -+#include - - int - feenableexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int new_exc, old_exc; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetenv.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - int - __fegetenv (fenv_t *envp) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int temp; - _FPU_GETCW (temp); -Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetexcept.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c -@@ -24,12 +24,12 @@ - #include - #include - #include --#include -+#include - - int - fegetexcept (void) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetround.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - int - fegetround (void) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feholdexcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - int - feholdexcept (fenv_t *envp) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned long int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetenv.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - int - __fesetenv (const fenv_t *envp) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - unsigned int temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetround.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - int - fesetround (int round) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fpu_control_t temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fraiseexcpt.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c -@@ -24,12 +24,12 @@ - #include - #include - #include --#include -+#include - - int - feraiseexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - int fpscr; - const float fp_zero = 0.0, fp_one = 1.0, fp_max = FLT_MAX, -Index: glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fsetexcptflg.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c -@@ -24,12 +24,12 @@ - #include - #include - #include --#include -+#include - - int - __fesetexceptflag (const fexcept_t *flagp, int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fexcept_t temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/ftestexcept.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - int - fetestexcept (int excepts) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fexcept_t temp; - -Index: glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c -=================================================================== ---- glibc-ports-2.5.orig/sysdeps/arm/eabi/setfpucw.c -+++ glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c -@@ -23,12 +23,12 @@ - #include - #include - #include --#include -+#include - - void - __setfpucw (fpu_control_t set) - { -- if (GLRO (dl_hwcap) & HWCAP_VFP) -+ if (GLRO (dl_hwcap) & HWCAP_ARM_VFP) - { - fpu_control_t cw; - diff --git a/src/patches/glibc-remove-ctors-dtors-output-sections.patch b/src/patches/glibc-remove-ctors-dtors-output-sections.patch new file mode 100644 index 0000000000..91155c9afb --- /dev/null +++ b/src/patches/glibc-remove-ctors-dtors-output-sections.patch @@ -0,0 +1,150 @@ +From 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 Mon Sep 17 00:00:00 2001 +From: H.J. Lu +Date: Fri, 24 Dec 2010 20:14:37 -0500 +Subject: [PATCH] Remove `.ctors' and `.dtors' output sections + +--- + config.h.in | 3 + + configure.in | 2 + + elf/sofini.c | 2 + + elf/soinit.c | 2 + + sysdeps/i386/init-first.c | 2 + + sysdeps/mach/hurd/i386/init-first.c | 2 +- + sysdeps/mach/hurd/powerpc/init-first.c | 2 +- + sysdeps/sh/init-first.c | 2 + + sysdeps/unix/sysv/linux/init-first.c | 2 +- + 9 files changed, 16 insertions(+), 3 deletions(-) + +diff --git a/config.h.in b/config.h.in +index 18bf01a..9e797eb 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -201,6 +201,9 @@ + /* Define if multi-arch DSOs should be generated. */ + #undef USE_MULTIARCH + ++/* Define if `.ctors' and `.dtors' sections shouldn't be used. */ ++#undef NO_CTORS_DTORS_SECTIONS ++ + /* + */ + +diff --git a/configure.in b/configure.in +index d8cd5f1..ad25b9b 100644 +--- a/configure.in ++++ b/configure.in +@@ -1497,6 +1497,8 @@ EOF + rm -f conftest*]) + if test $libc_cv_initfini_array != yes; then + AC_MSG_ERROR([Need linker with .init_array/.fini_array support.]) ++ elif AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then ++ AC_DEFINE(NO_CTORS_DTORS_SECTIONS) + fi + + AC_CACHE_CHECK(for libunwind-support in compiler, +diff --git a/elf/sofini.c b/elf/sofini.c +index 5e06f0c..13e74b7 100644 +--- a/elf/sofini.c ++++ b/elf/sofini.c +@@ -1,12 +1,14 @@ + /* Finalizer module for ELF shared C library. This provides terminating + null pointer words in the `.ctors' and `.dtors' sections. */ + ++#ifndef NO_CTORS_DTORS_SECTIONS + static void (*const __CTOR_END__[1]) (void) + __attribute__ ((used, section (".ctors"))) + = { 0 }; + static void (*const __DTOR_END__[1]) (void) + __attribute__ ((used, section (".dtors"))) + = { 0 }; ++#endif + + /* Terminate the frame unwind info section with a 4byte 0 as a sentinel; + this would be the 'length' field in a real FDE. */ +diff --git a/elf/soinit.c b/elf/soinit.c +index 6fecbb5..1db676a 100644 +--- a/elf/soinit.c ++++ b/elf/soinit.c +@@ -3,6 +3,7 @@ + the `.ctors' and `.dtors' sections so the lists are terminated, and + calling those lists of functions. */ + ++#ifndef NO_CTORS_DTORS_SECTIONS + #include + #include + +@@ -40,3 +41,4 @@ __libc_fini (void) + + void (*_fini_ptr) (void) __attribute__ ((section (".fini_array"))) + = &__libc_fini; ++#endif +diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c +index c6355a8..2af042f 100644 +--- a/sysdeps/i386/init-first.c ++++ b/sysdeps/i386/init-first.c +@@ -59,7 +59,9 @@ _init (int argc, ...) + { + init (&argc); + ++#ifndef NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); ++#endif + } + #endif + +diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c +index f9a7a58..60823bd 100644 +--- a/sysdeps/mach/hurd/i386/init-first.c ++++ b/sysdeps/mach/hurd/i386/init-first.c +@@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp) + __getopt_clean_environment (envp); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c +index 20fa1d4..21b5054 100644 +--- a/sysdeps/mach/hurd/powerpc/init-first.c ++++ b/sysdeps/mach/hurd/powerpc/init-first.c +@@ -82,7 +82,7 @@ posixland_init (int argc, char **argv, char **envp) + __getopt_clean_environment (__environ); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c +index d816625..1f3a821 100644 +--- a/sysdeps/sh/init-first.c ++++ b/sysdeps/sh/init-first.c +@@ -59,7 +59,9 @@ _init (int argc, ...) + { + init (&argc); + ++#ifndef NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); ++#endif + } + #endif + +diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c +index 7b2333d..a60212f 100644 +--- a/sysdeps/unix/sysv/linux/init-first.c ++++ b/sysdeps/unix/sysv/linux/init-first.c +@@ -93,7 +93,7 @@ _init (int argc, char **argv, char **envp) + __getopt_clean_environment (envp); + #endif + +-#ifdef SHARED ++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS + __libc_global_ctors (); + #endif + } +-- +1.7.3.4 + diff --git a/src/patches/glibc-resolv-stack_chk_fail.patch b/src/patches/glibc-resolv-stack_chk_fail.patch new file mode 100644 index 0000000000..00bb710abb --- /dev/null +++ b/src/patches/glibc-resolv-stack_chk_fail.patch @@ -0,0 +1,35 @@ +From e057a1b5930ec538c2b8abbba700a436ef2c81d5 Mon Sep 17 00:00:00 2001 +From: Joseph Myers +Date: Wed, 21 Sep 2011 13:27:50 -0700 +Subject: [PATCH] Link libresolv.so with ld.so for __stack_chk_guard. + +--- + resolv/Makefile | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +diff --git a/resolv/Makefile b/resolv/Makefile +index ec3788f..b4287de 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -1,4 +1,5 @@ +-# Copyright (C) 1994-2001,2003,2004,2007,2008 Free Software Foundation, Inc. ++# Copyright (C) 1994-2001,2003,2004,2007,2008,2011 ++# Free Software Foundation, Inc. + # This file is part of the GNU C Library. + + # The GNU C Library is free software; you can redistribute it and/or +@@ -88,6 +89,11 @@ CFLAGS-res_hconf.c = -fexceptions + # This ensures they will load libc.so for needed symbols if loaded by + # a statically-linked program that hasn't already loaded it. + $(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a ++# Some hosts need '__stack_chk_guard', so pull in the definition from ++# ld.so if required. ++ifeq (yesyes,$(have-ssp)$(elf)) ++LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed) ++endif + + # The DNS NSS modules needs the resolver. + $(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so \ +-- +1.7.3.4 + diff --git a/src/patches/glibc-test-installation.pl-libgcc_s.patch b/src/patches/glibc-test-installation.pl-libgcc_s.patch new file mode 100644 index 0000000000..a63d5d826d --- /dev/null +++ b/src/patches/glibc-test-installation.pl-libgcc_s.patch @@ -0,0 +1,97 @@ +From 6e236b92765cdafb46d19e4907471699accc8269 Mon Sep 17 00:00:00 2001 +From: Siddhesh Poyarekar +Date: Thu, 26 Apr 2012 09:18:48 +0530 +Subject: [PATCH] move libgcc_s soname definition to shlib-versions + +diff --git a/nptl/sysdeps/pthread/unwind-forcedunwind.c b/nptl/sysdeps/pthread/unwind-forcedunwind.c +index adce6e7..60dfbe6 100644 +--- a/nptl/sysdeps/pthread/unwind-forcedunwind.c ++++ b/nptl/sysdeps/pthread/unwind-forcedunwind.c +@@ -21,7 +21,7 @@ + #include + #include + #include +-#include ++#include + + static void *libgcc_s_handle; + static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); +diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl +index c4f3d6d..1b22086 100755 +--- a/scripts/test-installation.pl ++++ b/scripts/test-installation.pl + +@@ -105,9 +105,10 @@ while () { + # - libnss1_* from glibc-compat add-on + # - libthread_db since it contains unresolved references + # - it's just a test NSS module ++ # - We don't provide the libgcc so we don't test it + if ($name ne "nss_ldap" && $name ne "db1" + && !($name =~/^nss1_/) && $name ne "thread_db" +- && $name ne "nss_test1") { ++ && $name ne "nss_test1" && $name ne "libgcc_s") { + $link_libs .= " -l$name"; + $versions{$name} = $version; + } +diff --git a/shlib-versions b/shlib-versions +index c530a44..840e08f 100644 +--- a/shlib-versions ++++ b/shlib-versions +@@ -124,3 +124,7 @@ sparc64.*-.*-.* libBrokenLocale=1 GLIBC_2.2 + + # The asynchronous name lookup library. + .*-.*-.* libanl=1 ++ ++# This defines the libgcc soname version this glibc is to load for ++# asynchronous cancellation to work correctly. ++.*-.*-.* libgcc_s=1 +diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c +index 3638bbe..3bad5b5 100644 +--- a/sysdeps/generic/framestate.c ++++ b/sysdeps/generic/framestate.c +@@ -1,5 +1,5 @@ + /* __frame_state_for unwinder helper function wrapper. +- Copyright (C) 2001, 2003 Free Software Foundation, Inc. ++ Copyright (C) 2001-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek , 2001. + +@@ -23,7 +23,7 @@ + #define __frame_state_for fallback_frame_state_for + #include + #undef __frame_state_for +-#include ++#include + + typedef struct frame_state * (*framesf)(void *pc, struct frame_state *); + struct frame_state *__frame_state_for (void *pc, +diff --git a/sysdeps/generic/libgcc_s.h b/sysdeps/generic/libgcc_s.h +deleted file mode 100644 +index e74a103..0000000 +--- a/sysdeps/generic/libgcc_s.h ++++ /dev/null +@@ -1,2 +0,0 @@ +-/* Name of libgcc_s library provided by gcc. */ +-#define LIBGCC_S_SO "libgcc_s.so.1" +diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c +index 1d3e33f..6afaebd 100644 +--- a/sysdeps/gnu/unwind-resume.c ++++ b/sysdeps/gnu/unwind-resume.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2003 Free Software Foundation, Inc. ++/* Copyright (C) 2003-2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek . + +@@ -19,7 +19,7 @@ + #include + #include + #include +-#include ++#include + + static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); + static _Unwind_Reason_Code (*libgcc_s_personality) +-- +1.7.3.4 + diff --git a/src/patches/glibc-test-installation.pl-nss_test1.patch b/src/patches/glibc-test-installation.pl-nss_test1.patch new file mode 100644 index 0000000000..8881d94986 --- /dev/null +++ b/src/patches/glibc-test-installation.pl-nss_test1.patch @@ -0,0 +1,31 @@ +From 9191c04a7e19fffbea0a08523e579cd8e55142df Mon Sep 17 00:00:00 2001 +From: Ulrich Drepper +Date: Sat, 23 Jul 2011 15:28:31 -0400 +Subject: [PATCH] Adjust test for correct installation + +diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl +index 90cd9d7..25a919b 100755 +--- a/scripts/test-installation.pl ++++ b/scripts/test-installation.pl +@@ -1,5 +1,5 @@ + #! /usr/bin/perl -w +-# Copyright (C) 1997, 1998, 1999, 2004 Free Software Foundation, Inc. ++# Copyright (C) 1997, 1998, 1999, 2004, 2011 Free Software Foundation, Inc. + # This file is part of the GNU C Library. + # Contributed by Andreas Jaeger , 1997. + +@@ -105,8 +105,10 @@ while () { + # - libdb1 since it conflicts with libdb + # - libnss1_* from glibc-compat add-on + # - libthread_db since it contains unresolved references ++ # - it's just a test NSS module + if ($name ne "nss_ldap" && $name ne "db1" +- && !($name =~/^nss1_/) && $name ne "thread_db") { ++ && !($name =~/^nss1_/) && $name ne "thread_db" ++ && $name ne "nss_test1") { + $link_libs .= " -l$name"; + $versions{$name} = $version; + } +-- +1.7.3.4 + diff --git a/src/patches/glibc/glibc-aliasing.patch b/src/patches/glibc/glibc-aliasing.patch new file mode 100644 index 0000000000..016a4d4962 --- /dev/null +++ b/src/patches/glibc/glibc-aliasing.patch @@ -0,0 +1,87 @@ +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -129,6 +129,7 @@ include ../Makeconfig + ifeq ($(unwind-find-fde),yes) + routines += unwind-dw2-fde-glibc + shared-only-routines += unwind-dw2-fde-glibc ++CFLAGS-unwind-dw2-fde-glibc.c += -fno-strict-aliasing + endif + + before-compile = $(objpfx)trusted-dirs.h +Index: glibc-2.12-2-gc4ccff1/inet/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/inet/Makefile ++++ glibc-2.12-2-gc4ccff1/inet/Makefile +@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa + + include ../Rules + ++CFLAGS-tst-inet6_rth.c += -fno-strict-aliasing ++ + ifeq ($(have-thread-library),yes) + + CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions +Index: glibc-2.12-2-gc4ccff1/nis/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nis/Makefile ++++ glibc-2.12-2-gc4ccff1/nis/Makefile +@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out + + include ../Rules + ++CFLAGS-nis_findserv.c += -fno-strict-aliasing ++CFLAGS-ypclnt.c += -fno-strict-aliasing + + $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) + $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \ +Index: glibc-2.12-2-gc4ccff1/nss/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile ++++ glibc-2.12-2-gc4ccff1/nss/Makefile +@@ -74,6 +74,7 @@ endif + + include ../Rules + ++CFLAGS-files-hosts.c += -fno-strict-aliasing + + ifeq (yes,$(build-static-nss)) + $(objpfx)getent: $(objpfx)libnss_files.a +Index: glibc-2.12-2-gc4ccff1/resolv/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/resolv/Makefile ++++ glibc-2.12-2-gc4ccff1/resolv/Makefile +@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostb + -Dgetnetbyaddr=res_getnetbyaddr + + CFLAGS-res_hconf.c = -fexceptions ++CFLAGS-res_send.c += -fno-strict-aliasing + + # The BIND code elicits some harmless warnings. + +cflags += -Wno-strict-prototypes -Wno-write-strings +Index: glibc-2.12-2-gc4ccff1/sunrpc/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sunrpc/Makefile ++++ glibc-2.12-2-gc4ccff1/sunrpc/Makefile +@@ -129,6 +129,10 @@ CFLAGS-openchild.c = -fexceptions + + CPPFLAGS += -D_RPC_THREAD_SAFE_ + ++CFLAGS-clnt_tcp.c += -fno-strict-aliasing ++CFLAGS-clnt_udp.c += -fno-strict-aliasing ++CFLAGS-clnt_unix.c += -fno-strict-aliasing ++ + include ../Rules + + $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \ +Index: glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/powerpc/powerpc64/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile +@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re + CFLAGS-rtld-memmove.os = $(no-special-regs) + CFLAGS-rtld-memchr.os = $(no-special-regs) + CFLAGS-rtld-strnlen.os = $(no-special-regs) ++ ++CFLAGS-gmon-start.c += -fno-strict-aliasing diff --git a/src/patches/glibc/glibc-fedora.patch b/src/patches/glibc/glibc-fedora.patch new file mode 100644 index 0000000000..5a7fce94dd --- /dev/null +++ b/src/patches/glibc/glibc-fedora.patch @@ -0,0 +1,2106 @@ +--- glibc-2.12-2-gc4ccff1/ChangeLog ++++ glibc-2.12-1/ChangeLog +@@ -241,6 +241,12 @@ + + * Makerules (libc-abis): Fix search for libc-abis in add-ons. + ++2010-04-06 Ulrich Drepper ++ ++ * sysdeps/posix/getaddrinfo.c (default_scopes): Assign global ++ scope to RFC 1918 addresses. ++ * posix/gai.conf: Document difference from RFC 3484. ++ + 2010-04-05 Thomas Schwinge + + * sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/. +@@ -995,6 +1001,19 @@ + * sysdeps/x86_64/fpu/fegetenv.c: Likewise + * sysdeps/s390/fpu/fegetenv.c: Likewise. Remove unused headers. + ++2009-10-27 Aurelien Jarno ++ ++ [BZ #10855] ++ * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory ++ used later with MMAP_FIXED | MMAP_SHARED to cope with different ++ alignment restrictions. ++ ++2010-02-08 Andreas Schwab ++ ++ [BZ #11155] ++ * sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c: Include i386 ++ version. ++ + 2010-02-05 H.J. Lu + + [BZ #11230] +@@ -2938,6 +2957,11 @@ d2009-10-30 Ulrich Drepper ++ ++ * Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS). ++ * sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686. ++ + 2009-07-21 Ulrich Drepper + + * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups. Remove +@@ -3203,6 +3227,11 @@ d2009-10-30 Ulrich Drepper ++ ++ * timezone/zic.c (stringzone): Don't try to generate a POSIX TZ ++ string when the timezone ends in DST. ++ + 2009-06-26 Ulrich Drepper + + * resolv/resolv.h: Define RES_SNGLKUPREOP. +@@ -11896,6 +11925,10 @@ d2009-10-30 Ulrich Drepper ++ ++ * locale/programs/locarchive.c (add_alias, insert_name): Remove static. ++ + 2007-04-16 Ulrich Drepper + + [BZ #4364] +@@ -13153,6 +13186,15 @@ d2009-10-30 Ulrich Drepper ++ ++ * sysdeps/unix/sysv/linux/netlinkaccess.h: Include linux/if_addr.h ++ if IFA_MAX is not defined. ++ (IFA_RTA, IFA_PAYLOAD, IFLA_RTA, IFLA_PAYLOAD): Define if not ++ defined. ++ * sysdeps/unix/sysv/linux/check_pf.c: Include netlinkaccess.h ++ instead of asm/types.h, linux/netlink.h and linux/rtnetlink.h. ++ + 2006-12-09 Ulrich Drepper + + [BZ #3632] +--- glibc-2.12-2-gc4ccff1/ChangeLog.15 ++++ glibc-2.12-1/ChangeLog.15 +@@ -477,6 +477,14 @@ + + 2004-11-26 Jakub Jelinek + ++ * posix/Makefile (generated: Add getconf.speclist. ++ ($(inst_libexecdir)/getconf): Use getconf.speclist instead of ++ getconf output. ++ ($(objpfx)getconf.speclist): New rule. ++ * posix/getconf.speclist.h: New file. ++ ++2004-11-26 Jakub Jelinek ++ + * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR. + + 2004-11-26 Kaz Kojima +@@ -1103,6 +1111,13 @@ + * sysdeps/generic/tempname.c (__path_search): Add missing argument + TRY_TMPDIR. + ++2004-11-02 Jakub Jelinek ++ ++ * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat ++ GCC 3.4.x-RH >= 3.4.2-8. ++ * debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not ++ being able to recognize subobjects. ++ + 2004-10-31 Mariusz Mazur + + * sysdeps/unix/sysv/linux/alpha/setregid.c: New file. +@@ -1443,6 +1458,11 @@ + * sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ... + (__readonly_area): ... this. + ++2004-10-19 Jakub Jelinek ++ ++ * include/features.h (__USE_FORTIFY_LEVEL): Enable even with ++ Red Hat gcc4 4.0.0 and above. ++ + 2004-10-18 Jakub Jelinek + + * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking +@@ -3182,6 +3202,23 @@ + before return type. + * locale/localename.c (__current_locale_name): Likewise. + ++2004-08-31 Jakub Jelinek ++ ++ * elf/ldconfig.c (parse_conf): Add prefix argument, prepend it ++ before arguments to add_dir and pass to parse_conf_include. ++ (parse_conf_include): Add prefix argument, pass it down to ++ parse_conf. ++ (main): Call arch_startup. Adjust parse_conf caller. ++ Call add_arch_dirs. ++ * sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define. ++ * sysdeps/unix/sysv/linux/i386/dl-cache.h: New file. ++ * sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup, ++ add_arch_dirs): Define. ++ * sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend ++ /emul/ia32-linux before the 32-bit ld.so pathname. ++ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file. ++ * sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file. ++ + 2004-08-30 Roland McGrath + + * scripts/extract-abilist.awk: If `lastversion' variable defined, omit +--- glibc-2.12-2-gc4ccff1/ChangeLog.16 ++++ glibc-2.12-1/ChangeLog.16 +@@ -2042,6 +2042,9 @@ + (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT + followed by __THROW. + ++ * sysdeps/unix/sysv/linux/futimesat.c (futimesat): If ++ file == NULL, use __futimes unconditionally. ++ + 2006-02-02 Ulrich Drepper + + * sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat] +@@ -2101,6 +2104,11 @@ + * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo. + * sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps. + ++2006-01-30 Jakub Jelinek ++ ++ * include/bits/stdlib-ldbl.h: New file. ++ * include/bits/wchar-ldbl.h: New file. ++ + 2006-01-19 Thomas Schwinge + + * libio/genops.c: Include . +@@ -8922,6 +8930,12 @@ + * argp/argp-help.c (__argp_error): __asprintf -> vasprintf. + (__argp_failure): Likewise. + ++2005-08-08 Jakub Jelinek ++ ++ * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard): ++ Shift marked &errno down on big-endian instead of up. ++ * elf/tst-stackguard1.c (do_test): Fix a typo. ++ + 2005-08-08 Ulrich Drepper + + * nscd/cache.c (cache_add): Commit hash table and header to disk. +@@ -9046,6 +9060,17 @@ + __syslog_chk. + * misc/Versions: Export __syslog_chk and __vsyslog_chk. + ++2005-07-29 Jakub Jelinek ++ ++ * sysdeps/unix/sysv/linux/dl-osinfo.h: Include errno.h, hp-timing.h, ++ endian.h. ++ (_dl_setup_stack_chk_guard): Even without ++ --enable-stackguard-randomization attempt to do some guard ++ randomization using hp-timing (if available) and kernel stack and ++ mmap randomization. ++ * elf/tst-stackguard1.c (do_test): Don't fail if the poor man's ++ randomization doesn't work well enough. ++ + 2005-07-28 Thomas Schwinge + + [BZ #1137] +--- glibc-2.12-2-gc4ccff1/Makeconfig ++++ glibc-2.12-1/Makeconfig +@@ -789,12 +789,12 @@ endif + # The assembler can generate debug information too. + ifndef ASFLAGS + ifeq ($(have-cpp-asm-debuginfo),yes) +-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) ++ASFLAGS = $(filter -g% -fdebug-prefix-map=%,$(CFLAGS)) + else +-ASFLAGS := ++ASFLAGS = + endif + endif +-ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) ++ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) $(sysdep-ASFLAGS) + + ifndef BUILD_CC + BUILD_CC = $(CC) +--- glibc-2.12-2-gc4ccff1/csu/Makefile ++++ glibc-2.12-1/csu/Makefile +@@ -93,7 +93,8 @@ omit-deps += $(crtstuff) + $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h + $(compile.S) -g0 $(ASFLAGS-.os) -o $@ + +-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ ++ -fno-asynchronous-unwind-tables + + vpath initfini.c $(sysdirs) + +--- glibc-2.12-2-gc4ccff1/csu/elf-init.c ++++ glibc-2.12-1/csu/elf-init.c +@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int, + extern void (*__fini_array_start []) (void) attribute_hidden; + extern void (*__fini_array_end []) (void) attribute_hidden; + ++#if defined HAVE_VISIBILITY_ATTRIBUTE \ ++ && (defined SHARED || defined LIBC_NONSHARED) ++# define hidden_undef_2(x) #x ++# define hidden_undef_1(x) hidden_undef_2 (x) ++# define hidden_undef(x) \ ++ __asm (hidden_undef_1 (ASM_GLOBAL_DIRECTIVE) " " #x); \ ++ __asm (".hidden " #x); ++#else ++# define hidden_undef(x) ++#endif ++ ++hidden_undef (__preinit_array_start) ++hidden_undef (__preinit_array_end) ++hidden_undef (__init_array_start) ++hidden_undef (__init_array_end) ++hidden_undef (__fini_array_start) ++hidden_undef (__fini_array_end) + + /* These function symbols are provided for the .init/.fini section entry + points automagically by the linker. */ +--- glibc-2.12-2-gc4ccff1/debug/tst-chk1.c ++++ glibc-2.12-1/debug/tst-chk1.c +@@ -17,6 +17,9 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++/* Hack: make sure GCC doesn't know __chk_fail () will not return. */ ++#define __noreturn__ ++ + #include + #include + #include +@@ -242,7 +245,7 @@ do_test (void) + if (memcmp (a.buf1, "aabcdabcjj", 10)) + FAIL (); + +-#if __USE_FORTIFY_LEVEL < 2 ++#if __USE_FORTIFY_LEVEL < 2 || !__GNUC_PREREQ (4, 0) + /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2 + and sufficient GCC support, as the string operations overflow + from a.buf1 into a.buf2. */ +@@ -357,7 +360,7 @@ do_test (void) + memset (a.buf1 + 9, 'j', l0 + 2); + CHK_FAIL_END + +-# if __USE_FORTIFY_LEVEL >= 2 ++# if __USE_FORTIFY_LEVEL >= 2 && __GNUC_PREREQ (4, 0) + # define O 0 + # else + # define O 1 +--- glibc-2.12-2-gc4ccff1/elf/ldconfig.c ++++ glibc-2.12-1/elf/ldconfig.c +@@ -1031,17 +1031,19 @@ search_dirs (void) + + + static void parse_conf_include (const char *config_file, unsigned int lineno, +- bool do_chroot, const char *pattern); ++ const char *prefix, bool do_chroot, ++ const char *pattern); + + /* Parse configuration file. */ + static void +-parse_conf (const char *filename, bool do_chroot) ++parse_conf (const char *filename, const char *prefix, bool do_chroot) + { + FILE *file = NULL; + char *line = NULL; + const char *canon; + size_t len = 0; + unsigned int lineno; ++ size_t prefix_len = prefix ? strlen (prefix) : 0; + + if (do_chroot && opt_chroot) + { +@@ -1102,7 +1104,14 @@ parse_conf (const char *filename, bool d + cp += 8; + while ((dir = strsep (&cp, " \t")) != NULL) + if (dir[0] != '\0') +- parse_conf_include (filename, lineno, do_chroot, dir); ++ parse_conf_include (filename, lineno, prefix, do_chroot, dir); ++ } ++ else if (prefix != NULL) ++ { ++ size_t cp_len = strlen (cp); ++ char new_cp [prefix_len + cp_len + 1]; ++ memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1); ++ add_dir (new_cp); + } + else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5])) + { +@@ -1165,7 +1174,7 @@ parse_conf (const char *filename, bool d + config files to read. */ + static void + parse_conf_include (const char *config_file, unsigned int lineno, +- bool do_chroot, const char *pattern) ++ const char *prefix, bool do_chroot, const char *pattern) + { + if (opt_chroot && pattern[0] != '/') + error (EXIT_FAILURE, 0, +@@ -1197,7 +1206,7 @@ parse_conf_include (const char *config_f + { + case 0: + for (size_t i = 0; i < gl.gl_pathc; ++i) +- parse_conf (gl.gl_pathv[i], false); ++ parse_conf (gl.gl_pathv[i], prefix, false); + globfree64 (&gl); + break; + +@@ -1240,6 +1249,8 @@ main (int argc, char **argv) + /* Set the text message domain. */ + textdomain (_libc_intl_domainname); + ++ arch_startup (argc, argv); ++ + /* Parse and process arguments. */ + int remaining; + argp_parse (&argp, argc, argv, 0, &remaining, NULL); +@@ -1349,12 +1360,14 @@ main (int argc, char **argv) + + if (!opt_only_cline) + { +- parse_conf (config_file, true); ++ parse_conf (config_file, NULL, true); + + /* Always add the standard search paths. */ + add_system_dir (SLIBDIR); + if (strcmp (SLIBDIR, LIBDIR)) + add_system_dir (LIBDIR); ++ ++ add_arch_dirs (config_file); + } + + char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE; +--- glibc-2.12-2-gc4ccff1/elf/tst-stackguard1.c ++++ glibc-2.12-1/elf/tst-stackguard1.c +@@ -160,17 +160,21 @@ do_test (void) + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); +--- glibc-2.12-2-gc4ccff1/include/bits/stdlib-ldbl.h ++++ glibc-2.12-1/include/bits/stdlib-ldbl.h +@@ -0,0 +1 @@ ++#include +--- glibc-2.12-2-gc4ccff1/include/bits/wchar-ldbl.h ++++ glibc-2.12-1/include/bits/wchar-ldbl.h +@@ -0,0 +1 @@ ++#include +--- glibc-2.12-2-gc4ccff1/include/features.h ++++ glibc-2.12-1/include/features.h +@@ -308,8 +308,13 @@ + #endif + + #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \ +- && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 +-# if _FORTIFY_SOURCE > 1 ++ && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 ++# if !__GNUC_PREREQ (4, 1) ++# ifdef __GNUC_RH_RELEASE__ ++# warning _FORTIFY_SOURCE supported only with GCC 4.1 and later ++# endif ++# define __USE_FORTIFY_LEVEL 0 ++# elif _FORTIFY_SOURCE > 1 + # define __USE_FORTIFY_LEVEL 2 + # else + # define __USE_FORTIFY_LEVEL 1 +--- glibc-2.12-2-gc4ccff1/intl/locale.alias ++++ glibc-2.12-1/intl/locale.alias +@@ -57,8 +57,6 @@ korean ko_KR.eucKR + korean.euc ko_KR.eucKR + ko_KR ko_KR.eucKR + lithuanian lt_LT.ISO-8859-13 +-no_NO nb_NO.ISO-8859-1 +-no_NO.ISO-8859-1 nb_NO.ISO-8859-1 + norwegian nb_NO.ISO-8859-1 + nynorsk nn_NO.ISO-8859-1 + polish pl_PL.ISO-8859-2 +--- glibc-2.12-2-gc4ccff1/libio/stdio.h ++++ glibc-2.12-1/libio/stdio.h +@@ -165,10 +165,12 @@ typedef _G_fpos64_t fpos64_t; + extern struct _IO_FILE *stdin; /* Standard input stream. */ + extern struct _IO_FILE *stdout; /* Standard output stream. */ + extern struct _IO_FILE *stderr; /* Standard error output stream. */ ++#ifdef __STDC__ + /* C89/C99 say they're macros. Make them happy. */ + #define stdin stdin + #define stdout stdout + #define stderr stderr ++#endif + + __BEGIN_NAMESPACE_STD + /* Remove file FILENAME. */ +--- glibc-2.12-2-gc4ccff1/locale/iso-4217.def ++++ glibc-2.12-1/locale/iso-4217.def +@@ -8,6 +8,7 @@ + * + * !!! The list has to be sorted !!! + */ ++DEFINE_INT_CURR("ADP") /* Andorran Peseta -> EUR */ + DEFINE_INT_CURR("AED") /* United Arab Emirates Dirham */ + DEFINE_INT_CURR("AFN") /* Afghanistan Afgani */ + DEFINE_INT_CURR("ALL") /* Albanian Lek */ +@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD") /* Armenia Dram + DEFINE_INT_CURR("ANG") /* Netherlands Antilles */ + DEFINE_INT_CURR("AOA") /* Angolan Kwanza */ + DEFINE_INT_CURR("ARS") /* Argentine Peso */ ++DEFINE_INT_CURR("ATS") /* Austrian Schilling -> EUR */ + DEFINE_INT_CURR("AUD") /* Australian Dollar */ + DEFINE_INT_CURR("AWG") /* Aruba Guilder */ + DEFINE_INT_CURR("AZM") /* Azerbaijan Manat */ + DEFINE_INT_CURR("BAM") /* Bosnian and Herzegovina Convertible Mark */ + DEFINE_INT_CURR("BBD") /* Barbados Dollar */ + DEFINE_INT_CURR("BDT") /* Bangladesh Taka */ ++DEFINE_INT_CURR("BEF") /* Belgian Franc -> EUR */ + DEFINE_INT_CURR("BGN") /* Bulgarian Lev */ + DEFINE_INT_CURR("BHD") /* Bahraini Dinar */ + DEFINE_INT_CURR("BIF") /* Burundi Franc */ +@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP") /* Cuban Peso * + DEFINE_INT_CURR("CVE") /* Cape Verde Escudo */ + DEFINE_INT_CURR("CYP") /* Cypriot Pound */ + DEFINE_INT_CURR("CZK") /* Czech Koruna */ ++DEFINE_INT_CURR("DEM") /* German Mark -> EUR */ + DEFINE_INT_CURR("DJF") /* Djibouti Franc */ + DEFINE_INT_CURR("DKK") /* Danish Krone (Faroe Islands, Greenland) */ + DEFINE_INT_CURR("DOP") /* Dominican Republic */ +@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD") /* Algerian Dina + DEFINE_INT_CURR("EEK") /* Estonian Kroon */ + DEFINE_INT_CURR("EGP") /* Egyptian Pound */ + DEFINE_INT_CURR("ERN") /* Eritrean Nakfa */ ++DEFINE_INT_CURR("ESP") /* Spanish Peseta -> EUR */ + DEFINE_INT_CURR("ETB") /* Ethiopian Birr */ + DEFINE_INT_CURR("EUR") /* European Union Euro */ ++DEFINE_INT_CURR("FIM") /* Finnish Markka -> EUR */ + DEFINE_INT_CURR("FJD") /* Fiji Dollar */ + DEFINE_INT_CURR("FKP") /* Falkland Islands Pound (Malvinas) */ ++DEFINE_INT_CURR("FRF") /* French Franc -> EUR */ + DEFINE_INT_CURR("GBP") /* British Pound */ + DEFINE_INT_CURR("GEL") /* Georgia Lari */ + DEFINE_INT_CURR("GHC") /* Ghana Cedi */ + DEFINE_INT_CURR("GIP") /* Gibraltar Pound */ + DEFINE_INT_CURR("GMD") /* Gambian Dalasi */ + DEFINE_INT_CURR("GNF") /* Guinea Franc */ ++DEFINE_INT_CURR("GRD") /* Greek Drachma -> EUR */ + DEFINE_INT_CURR("GTQ") /* Guatemala Quetzal */ + DEFINE_INT_CURR("GYD") /* Guyana Dollar */ + DEFINE_INT_CURR("HKD") /* Hong Kong Dollar */ +@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK") /* Croatia Kuna + DEFINE_INT_CURR("HTG") /* Haiti Gourde */ + DEFINE_INT_CURR("HUF") /* Hungarian Forint */ + DEFINE_INT_CURR("IDR") /* Indonesia Rupiah */ ++DEFINE_INT_CURR("IEP") /* Irish Pound -> EUR */ + DEFINE_INT_CURR("ILS") /* Israeli Shekel */ + DEFINE_INT_CURR("IMP") /* Isle of Man Pounds */ + DEFINE_INT_CURR("INR") /* Indian Rupee (Bhutan) */ + DEFINE_INT_CURR("IQD") /* Iraqi Dinar */ + DEFINE_INT_CURR("IRR") /* Iranian Rial */ + DEFINE_INT_CURR("ISK") /* Iceland Krona */ ++DEFINE_INT_CURR("ITL") /* Italian Lira -> EUR */ + DEFINE_INT_CURR("JEP") /* Jersey Pound */ + DEFINE_INT_CURR("JMD") /* Jamaican Dollar */ + DEFINE_INT_CURR("JOD") /* Jordanian Dinar */ +@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR") /* Sri Lankan Ru + DEFINE_INT_CURR("LRD") /* Liberian Dollar */ + DEFINE_INT_CURR("LSL") /* Lesotho Maloti */ + DEFINE_INT_CURR("LTL") /* Lithuanian Litas */ ++DEFINE_INT_CURR("LUF") /* Luxembourg Franc -> EUR */ + DEFINE_INT_CURR("LVL") /* Latvia Lat */ + DEFINE_INT_CURR("LYD") /* Libyan Arab Jamahiriya Dinar */ + DEFINE_INT_CURR("MAD") /* Moroccan Dirham */ +@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM") /* Mozambique Me + DEFINE_INT_CURR("NAD") /* Namibia Dollar */ + DEFINE_INT_CURR("NGN") /* Nigeria Naira */ + DEFINE_INT_CURR("NIO") /* Nicaragua Cordoba Oro */ ++DEFINE_INT_CURR("NLG") /* Netherlands Guilder -> EUR */ + DEFINE_INT_CURR("NOK") /* Norwegian Krone */ + DEFINE_INT_CURR("NPR") /* Nepalese Rupee */ + DEFINE_INT_CURR("NZD") /* New Zealand Dollar */ +@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK") /* Papau New Gui + DEFINE_INT_CURR("PHP") /* Philippines Peso */ + DEFINE_INT_CURR("PKR") /* Pakistan Rupee */ + DEFINE_INT_CURR("PLN") /* Polish Zloty */ ++DEFINE_INT_CURR("PTE") /* Portugese Escudo -> EUR */ + DEFINE_INT_CURR("PYG") /* Paraguay Guarani */ + DEFINE_INT_CURR("QAR") /* Qatar Rial */ + DEFINE_INT_CURR("ROL") /* Romanian Leu */ +--- glibc-2.12-2-gc4ccff1/locale/programs/locarchive.c ++++ glibc-2.12-1/locale/programs/locarchive.c +@@ -134,7 +134,7 @@ create_archive (const char *archivefname + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -241,9 +241,9 @@ oldlocrecentcmp (const void *a, const vo + /* forward decls for below */ + static uint32_t add_locale (struct locarhandle *ah, const char *name, + locale_data_t data, bool replace); +-static void add_alias (struct locarhandle *ah, const char *alias, +- bool replace, const char *oldname, +- uint32_t *locrec_offset_p); ++void add_alias (struct locarhandle *ah, const char *alias, ++ bool replace, const char *oldname, ++ uint32_t *locrec_offset_p); + + + static bool +@@ -396,7 +396,7 @@ enlarge_archive (struct locarhandle *ah, + size_t reserved = RESERVE_MMAP_SIZE; + int xflags = 0; + if (total < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -614,7 +614,7 @@ open_archive (struct locarhandle *ah, bo + int xflags = 0; + void *p; + if (st.st_size < reserved +- && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON, ++ && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON, + -1, 0)) != MAP_FAILED)) + xflags = MAP_FIXED; + else +@@ -649,7 +649,7 @@ close_archive (struct locarhandle *ah) + #include "../../intl/explodename.c" + #include "../../intl/l10nflist.c" + +-static struct namehashent * ++struct namehashent * + insert_name (struct locarhandle *ah, + const char *name, size_t name_len, bool replace) + { +@@ -707,7 +707,7 @@ insert_name (struct locarhandle *ah, + return &namehashtab[idx]; + } + +-static void ++void + add_alias (struct locarhandle *ah, const char *alias, bool replace, + const char *oldname, uint32_t *locrec_offset_p) + { +--- glibc-2.12-2-gc4ccff1/localedata/Makefile ++++ glibc-2.12-1/localedata/Makefile +@@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo + echo -n '...'; \ + input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ + $(LOCALEDEF) --alias-file=../intl/locale.alias \ ++ --no-archive \ + -i locales/$$input -c -f charmaps/$$charset \ + $(addprefix --prefix=,$(install_root)) $$locale; \ + echo ' done'; \ +--- glibc-2.12-2-gc4ccff1/localedata/SUPPORTED ++++ glibc-2.12-1/localedata/SUPPORTED +@@ -85,6 +85,7 @@ cy_GB.UTF-8/UTF-8 \ + cy_GB/ISO-8859-14 \ + da_DK.UTF-8/UTF-8 \ + da_DK/ISO-8859-1 \ ++da_DK.ISO-8859-15/ISO-8859-15 \ + de_AT.UTF-8/UTF-8 \ + de_AT/ISO-8859-1 \ + de_AT@euro/ISO-8859-15 \ +@@ -116,6 +117,7 @@ en_DK.UTF-8/UTF-8 \ + en_DK/ISO-8859-1 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ ++en_GB.ISO-8859-15/ISO-8859-15 \ + en_HK.UTF-8/UTF-8 \ + en_HK/ISO-8859-1 \ + en_IE.UTF-8/UTF-8 \ +@@ -131,6 +133,7 @@ en_SG.UTF-8/UTF-8 \ + en_SG/ISO-8859-1 \ + en_US.UTF-8/UTF-8 \ + en_US/ISO-8859-1 \ ++en_US.ISO-8859-15/ISO-8859-15 \ + en_ZA.UTF-8/UTF-8 \ + en_ZA/ISO-8859-1 \ + en_ZW.UTF-8/UTF-8 \ +@@ -307,6 +310,8 @@ nl_NL/ISO-8859-1 \ + nl_NL@euro/ISO-8859-15 \ + nn_NO.UTF-8/UTF-8 \ + nn_NO/ISO-8859-1 \ ++no_NO.UTF-8/UTF-8 \ ++no_NO/ISO-8859-1 \ + nr_ZA/UTF-8 \ + nso_ZA/UTF-8 \ + oc_FR.UTF-8/UTF-8 \ +@@ -367,6 +372,7 @@ sv_FI/ISO-8859-1 \ + sv_FI@euro/ISO-8859-15 \ + sv_SE.UTF-8/UTF-8 \ + sv_SE/ISO-8859-1 \ ++sv_SE.ISO-8859-15/ISO-8859-15 \ + ta_IN/UTF-8 \ + te_IN/UTF-8 \ + tg_TJ.UTF-8/UTF-8 \ +--- glibc-2.12-2-gc4ccff1/localedata/locales/cy_GB ++++ glibc-2.12-1/localedata/locales/cy_GB +@@ -248,8 +248,11 @@ mon "" + d_fmt "" + t_fmt "" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "";"" ++t_fmt_ampm "" ++date_fmt "/ ++/ ++" + END LC_TIME + + LC_MESSAGES +--- glibc-2.12-2-gc4ccff1/localedata/locales/en_GB ++++ glibc-2.12-1/localedata/locales/en_GB +@@ -116,8 +116,8 @@ mon "" + d_fmt "" + t_fmt "" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "";"" ++t_fmt_ampm "" + date_fmt "/ + / + " +--- glibc-2.12-2-gc4ccff1/localedata/locales/no_NO ++++ glibc-2.12-1/localedata/locales/no_NO +@@ -0,0 +1,69 @@ ++escape_char / ++comment_char % ++ ++% Norwegian language locale for Norway ++% Source: Norsk Standardiseringsforbund ++% Address: University Library, ++% Drammensveien 41, N-9242 Oslo, Norge ++% Contact: Kolbjoern Aamboe ++% Tel: +47 - 22859109 ++% Fax: +47 - 22434497 ++% Email: kolbjorn.aambo@usit.uio.no ++% Language: no ++% Territory: NO ++% Revision: 4.3 ++% Date: 1996-10-15 ++% Application: general ++% Users: general ++% Repertoiremap: mnemonic.ds ++% Charset: ISO-8859-1 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++copy "nb_NO" ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "nb_NO" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "nb_NO" ++END LC_CTYPE ++ ++LC_MONETARY ++copy "nb_NO" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "nb_NO" ++END LC_NUMERIC ++ ++LC_TIME ++copy "nb_NO" ++END LC_TIME ++ ++LC_MESSAGES ++copy "nb_NO" ++END LC_MESSAGES ++ ++LC_PAPER ++copy "nb_NO" ++END LC_PAPER ++ ++LC_TELEPHONE ++copy "nb_NO" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "nb_NO" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "nb_NO" ++END LC_NAME ++ ++LC_ADDRESS ++copy "nb_NO" ++END LC_ADDRESS +--- glibc-2.12-2-gc4ccff1/localedata/locales/zh_TW ++++ glibc-2.12-1/localedata/locales/zh_TW +@@ -1,7 +1,7 @@ + comment_char % + escape_char / + % +-% Chinese language locale for Taiwan R.O.C. ++% Chinese language locale for Taiwan + % charmap: BIG5-CP950 + % + % Original Author: +@@ -17,7 +17,7 @@ escape_char / + % Reference: http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf + + LC_IDENTIFICATION +-title "Chinese locale for Taiwan R.O.C." ++title "Chinese locale for Taiwan" + source "" + address "" + contact "" +@@ -25,7 +25,7 @@ email "bug-glibc-locales@gnu.org" + tel "" + fax "" + language "Chinese" +-territory "Taiwan R.O.C." ++territory "Taiwan" + revision "0.2" + date "2000-08-02" + % +--- glibc-2.12-2-gc4ccff1/malloc/mcheck.c ++++ glibc-2.12-1/malloc/mcheck.c +@@ -24,9 +24,25 @@ + # include + # include + # include ++# include + # include + #endif + ++#ifdef _LIBC ++extern __typeof (malloc) __libc_malloc; ++extern __typeof (free) __libc_free; ++extern __typeof (realloc) __libc_realloc; ++libc_hidden_proto (__libc_malloc) ++libc_hidden_proto (__libc_realloc) ++libc_hidden_proto (__libc_free) ++libc_hidden_proto (__libc_memalign) ++#else ++# define __libc_malloc(sz) malloc (sz) ++# define __libc_free(ptr) free (ptr) ++# define __libc_realloc(ptr, sz) realloc (ptr, sz) ++# define __libc_memalign(al, sz) memalign (al, sz) ++#endif ++ + /* Old hook values. */ + static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t); + static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t); +@@ -197,7 +213,7 @@ freehook (__ptr_t ptr, const __ptr_t cal + if (old_free_hook != NULL) + (*old_free_hook) (ptr, caller); + else +- free (ptr); ++ __libc_free (ptr); + __free_hook = freehook; + } + +@@ -214,7 +230,7 @@ mallochook (__malloc_size_t size, const + hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1, + caller); + else +- hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1); ++ hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1); + __malloc_hook = mallochook; + if (hdr == NULL) + return NULL; +@@ -245,7 +261,7 @@ memalignhook (__malloc_size_t alignment, + if (old_memalign_hook != NULL) + block = (*old_memalign_hook) (alignment, slop + size + 1, caller); + else +- block = memalign (alignment, slop + size + 1); ++ block = __libc_memalign (alignment, slop + size + 1); + __memalign_hook = memalignhook; + if (block == NULL) + return NULL; +@@ -300,8 +316,8 @@ reallochook (__ptr_t ptr, __malloc_size_ + sizeof (struct hdr) + size + 1, + caller); + else +- hdr = (struct hdr *) realloc ((__ptr_t) hdr, +- sizeof (struct hdr) + size + 1); ++ hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr, ++ sizeof (struct hdr) + size + 1); + __free_hook = freehook; + __malloc_hook = mallochook; + __memalign_hook = memalignhook; +@@ -361,8 +377,8 @@ mcheck (func) + if (__malloc_initialized <= 0 && !mcheck_used) + { + /* We call malloc() once here to ensure it is initialized. */ +- void *p = malloc (0); +- free (p); ++ void *p = __libc_malloc (0); ++ __libc_free (p); + + old_free_hook = __free_hook; + __free_hook = freehook; +--- glibc-2.12-2-gc4ccff1/manual/libc.texinfo ++++ glibc-2.12-1/manual/libc.texinfo +@@ -5,7 +5,7 @@ + @c setchapternewpage odd + + @comment Tell install-info what to do. +-@dircategory Software libraries ++@dircategory Libraries + @direntry + * Libc: (libc). C library. + @end direntry +--- glibc-2.12-2-gc4ccff1/misc/sys/cdefs.h ++++ glibc-2.12-1/misc/sys/cdefs.h +@@ -132,7 +132,10 @@ + #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) + #define __bos0(ptr) __builtin_object_size (ptr, 0) + +-#if __GNUC_PREREQ (4,3) ++#if __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # define __warndecl(name, msg) \ + extern void name (void) __attribute__((__warning__ (msg))) + # define __warnattr(msg) __attribute__((__warning__ (msg))) +@@ -291,10 +294,16 @@ + + /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. */ +-#if !defined __cplusplus || __GNUC_PREREQ (4,3) ++#if !defined __cplusplus || __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # if defined __GNUC_STDC_INLINE__ || defined __cplusplus + # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +-# if __GNUC_PREREQ (4,3) ++# if __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # define __extern_always_inline \ + extern __always_inline __attribute__ ((__gnu_inline__, __artificial__)) + # else +@@ -314,7 +323,10 @@ + + /* GCC 4.3 and above allow passing all anonymous arguments of an + __extern_always_inline function to some other vararg function. */ +-#if __GNUC_PREREQ (4,3) ++#if __GNUC_PREREQ (4,3) \ ++ || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ ++ && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ ++ && __GNUC_RH_RELEASE__ >= 31) + # define __va_arg_pack() __builtin_va_arg_pack () + # define __va_arg_pack_len() __builtin_va_arg_pack_len () + #endif +--- glibc-2.12-2-gc4ccff1/nis/nss ++++ glibc-2.12-1/nis/nss +@@ -25,7 +25,7 @@ + # memory with every getXXent() call. Otherwise each getXXent() call + # might result into a network communication with the server to get + # the next entry. +-#SETENT_BATCH_READ=TRUE ++SETENT_BATCH_READ=TRUE + # + # ADJUNCT_AS_SHADOW + # If set to TRUE, the passwd routines in the NIS NSS module will not +--- glibc-2.12-2-gc4ccff1/nptl/ChangeLog ++++ glibc-2.12-1/nptl/ChangeLog +@@ -3884,6 +3884,15 @@ + Use __sigfillset. Document that sigfillset does the right thing wrt + to SIGSETXID. + ++2005-08-08 Jakub Jelinek ++ ++ * tst-stackguard1.c (do_test): Likewise. ++ ++2005-07-29 Jakub Jelinek ++ ++ * tst-stackguard1.c (do_test): Don't fail if the poor man's ++ randomization doesn't work well enough. ++ + 2005-07-11 Jakub Jelinek + + [BZ #1102] +@@ -4620,6 +4629,11 @@ + Move definition inside libpthread, libc, librt check. Provide + definition for rtld. + ++2004-09-02 Jakub Jelinek ++ ++ * pthread_cond_destroy.c (__pthread_cond_destroy): If there are ++ waiters, awake all waiters on the associated mutex. ++ + 2004-09-02 Ulrich Drepper + + * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp. +@@ -6694,6 +6708,11 @@ + + * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules). + ++2003-07-22 Jakub Jelinek ++ ++ * descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h ++ if __need_struct_pthread_size, instead define lll_lock_t. ++ + 2003-07-25 Jakub Jelinek + + * tst-cancel17.c (do_test): Check if aio_cancel failed. +--- glibc-2.12-2-gc4ccff1/nptl/Makefile ++++ glibc-2.12-1/nptl/Makefile +@@ -341,7 +341,8 @@ endif + extra-objs += $(crti-objs) $(crtn-objs) + omit-deps += crti crtn + +-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) ++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \ ++ -fno-asynchronous-unwind-tables + endif + + CFLAGS-flockfile.c = -D_IO_MTSAFE_IO +@@ -527,15 +528,19 @@ $(addprefix $(objpfx), \ + $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ + $(objpfx)libpthread_nonshared.a + $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so +-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so, ++# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so, + # since otherwise libpthread.so comes before libc.so when linking. + $(addprefix $(objpfx), $(tests-reverse)): \ +- $(objpfx)../libc.so $(objpfx)libpthread.so \ ++ $(objpfx)linklibc.so $(objpfx)libpthread.so \ + $(objpfx)libpthread_nonshared.a + $(objpfx)../libc.so: $(common-objpfx)libc.so ; + $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a + + $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so ++ ++$(objpfx)linklibc.so: $(common-objpfx)libc.so ++ ln -s ../libc.so $@ ++generated += libclink.so + else + $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a + endif +--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h ++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h +@@ -189,4 +189,7 @@ + /* Typed memory objects are not available. */ + #define _POSIX_TYPED_MEMORY_OBJECTS -1 + ++/* Streams are not available. */ ++#define _XOPEN_STREAMS -1 ++ + #endif /* bits/posix_opt.h */ +--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/kernel-features.h ++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/kernel-features.h +@@ -0,0 +1,6 @@ ++#include_next ++ ++/* NPTL can always assume all clone thread flags work. */ ++#ifndef __ASSUME_CLONE_THREAD_FLAGS ++# define __ASSUME_CLONE_THREAD_FLAGS 1 ++#endif +--- glibc-2.12-2-gc4ccff1/nptl/tst-stackguard1.c ++++ glibc-2.12-1/nptl/tst-stackguard1.c +@@ -190,17 +190,21 @@ do_test (void) + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); +--- glibc-2.12-2-gc4ccff1/nscd/nscd.conf ++++ glibc-2.12-1/nscd/nscd.conf +@@ -33,7 +33,7 @@ + # logfile /var/log/nscd.log + # threads 4 + # max-threads 32 +-# server-user nobody ++ server-user nscd + # stat-user somebody + debug-level 0 + # reload-count 5 +--- glibc-2.12-2-gc4ccff1/nscd/nscd.init ++++ glibc-2.12-1/nscd/nscd.init +@@ -9,6 +9,7 @@ + # slow naming services like NIS, NIS+, LDAP, or hesiod. + # processname: /usr/sbin/nscd + # config: /etc/nscd.conf ++# config: /etc/sysconfig/nscd + # + ### BEGIN INIT INFO + # Provides: nscd +@@ -28,20 +29,8 @@ + # Source function library. + . /etc/init.d/functions + +-# nscd does not run on any kernel lower than 2.2.0 because of threading +-# problems, so we require that in first place. +-case $(uname -r) in +- 2.[2-9].*) +- # this is okay +- ;; +- [3-9]*) +- # these are of course also okay +- ;; +- *) +- #this is not +- exit 1 +- ;; +-esac ++# Source an auxiliary options file if we have one, and pick up NSCD_OPTIONS. ++[ -r /etc/sysconfig/nscd ] && . /etc/sysconfig/nscd + + RETVAL=0 + prog=nscd +@@ -50,7 +39,7 @@ start () { + [ -d /var/run/nscd ] || mkdir /var/run/nscd + [ -d /var/db/nscd ] || mkdir /var/db/nscd + echo -n $"Starting $prog: " +- daemon /usr/sbin/nscd ++ daemon /usr/sbin/nscd $NSCD_OPTIONS + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd +@@ -83,7 +72,7 @@ restart() { + # See how we were called. + case "$1" in + start) +- start ++ [ -e /var/lock/subsys/nscd ] || start + RETVAL=$? + ;; + stop) +@@ -99,14 +88,17 @@ case "$1" in + RETVAL=$? + ;; + try-restart | condrestart) +- [ -e /var/lock/subsys/nscd ] && restart ++ [ ! -e /var/lock/subsys/nscd ] || restart + RETVAL=$? + ;; + force-reload | reload) + echo -n $"Reloading $prog: " +- killproc /usr/sbin/nscd -HUP +- RETVAL=$? +- echo ++ RETVAL=0 ++ /usr/sbin/nscd -i passwd || RETVAL=$? ++ /usr/sbin/nscd -i group || RETVAL=$? ++ /usr/sbin/nscd -i hosts || RETVAL=$? ++ /usr/sbin/nscd -i services || RETVAL=$? ++ echo + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" +--- glibc-2.12-2-gc4ccff1/posix/Makefile ++++ glibc-2.12-1/posix/Makefile +@@ -305,15 +305,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi + mv -f $@/$$spec.new $@/$$spec; \ + done < $(objpfx)getconf.speclist + +-$(objpfx)getconf.speclist: $(objpfx)getconf +-ifeq (no,$(cross-compiling)) +- LC_ALL=C GETCONF_DIR=/dev/null \ +- $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new +- LC_ALL=C GETCONF_DIR=/dev/null \ +- $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new +- LC_ALL=C GETCONF_DIR=/dev/null \ +- $(run-program-prefix) $< _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new +-else +- > $@.new +-endif ++$(objpfx)getconf.speclist: getconf.speclist.h ++ $(CC) -E $(CFLAGS) $(CPPFLAGS) $< \ ++ | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|_XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \ ++ > $@.new + mv -f $@.new $@ +--- glibc-2.12-2-gc4ccff1/posix/gai.conf ++++ glibc-2.12-1/posix/gai.conf +@@ -41,7 +41,7 @@ + # + # precedence + # Add another rule to the RFC 3484 precedence table. See section 2.1 +-# and 10.3 in RFC 3484. The default is: ++# and 10.3 in RFC 3484. The RFC requires: + # + #precedence ::1/128 50 + #precedence ::/0 40 +@@ -58,7 +58,7 @@ + # Add another rule to the RFC 3484 scope table for IPv4 addresses. + # By default the scope IDs described in section 3.2 in RFC 3484 are + # used. Changing these defaults should hardly ever be necessary. +-# The defaults are equivalent to: ++# The definitions in RFC 1918 are equivalent to: + # + #scopev4 ::ffff:169.254.0.0/112 2 + #scopev4 ::ffff:127.0.0.0/104 2 +@@ -75,3 +75,5 @@ + #scopev4 ::ffff:169.254.0.0/112 2 + #scopev4 ::ffff:127.0.0.0/104 2 + #scopev4 ::ffff:0.0.0.0/96 14 ++# ++# This is what the Red Hat setting currently uses. +--- glibc-2.12-2-gc4ccff1/posix/getconf.speclist.h ++++ glibc-2.12-1/posix/getconf.speclist.h +@@ -0,0 +1,39 @@ ++#include ++const char *START_OF_STRINGS = ++#if _POSIX_V7_ILP32_OFF32 == 1 ++"POSIX_V7_ILP32_OFF32" ++#endif ++#if _POSIX_V7_ILP32_OFFBIG == 1 ++"POSIX_V7_ILP32_OFFBIG" ++#endif ++#if _POSIX_V7_LP64_OFF64 == 1 ++"POSIX_V7_LP64_OFF64" ++#endif ++#if _POSIX_V7_LPBIG_OFFBIG == 1 ++"POSIX_V7_LPBIG_OFFBIG" ++#endif ++#if _POSIX_V6_ILP32_OFF32 == 1 ++"POSIX_V6_ILP32_OFF32" ++#endif ++#if _POSIX_V6_ILP32_OFFBIG == 1 ++"POSIX_V6_ILP32_OFFBIG" ++#endif ++#if _POSIX_V6_LP64_OFF64 == 1 ++"POSIX_V6_LP64_OFF64" ++#endif ++#if _POSIX_V6_LPBIG_OFFBIG == 1 ++"POSIX_V6_LPBIG_OFFBIG" ++#endif ++#if _XBS5_ILP32_OFF32 == 1 ++"XBS5_ILP32_OFF32" ++#endif ++#if _XBS5_ILP32_OFFBIG == 1 ++"XBS5_ILP32_OFFBIG" ++#endif ++#if _XBS5_LP64_OFF64 == 1 ++"XBS5_LP64_OFF64" ++#endif ++#if _XBS5_LPBIG_OFFBIG == 1 ++"XBS5_LPBIG_OFFBIG" ++#endif ++""; +--- glibc-2.12-2-gc4ccff1/streams/Makefile ++++ glibc-2.12-1/streams/Makefile +@@ -21,7 +21,7 @@ + # + subdir := streams + +-headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h ++#headers = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h + routines = isastream getmsg getpmsg putmsg putpmsg fattach fdetach + + include ../Rules +--- glibc-2.12-2-gc4ccff1/sysdeps/generic/dl-cache.h ++++ glibc-2.12-1/sysdeps/generic/dl-cache.h +@@ -36,6 +36,14 @@ + # define add_system_dir(dir) add_dir (dir) + #endif + ++#ifndef arch_startup ++# define arch_startup(argc, argv) do { } while (0) ++#endif ++ ++#ifndef add_arch_dirs ++# define add_arch_dirs(config_file) do { } while (0) ++#endif ++ + #define CACHEMAGIC "ld.so-1.7.0" + + /* libc5 and glibc 2.0/2.1 use the same format. For glibc 2.2 another +--- glibc-2.12-2-gc4ccff1/sysdeps/i386/Makefile ++++ glibc-2.12-1/sysdeps/i386/Makefile +@@ -2,6 +2,8 @@ + # Every i386 port in use uses gas syntax (I think). + asm-CPPFLAGS += -DGAS_SYNTAX + ++sysdep-ASFLAGS += -U__i686 ++ + # The i386 `long double' is a distinct type we support. + long-double-fcts = yes + +@@ -64,6 +66,14 @@ endif + + ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS))) + defines += -DNO_TLS_DIRECT_SEG_REFS ++else ++# .a libraries are not performance critical and so we ++# build them without direct TLS segment references ++# always. ++CPPFLAGS-.o += -DNO_TLS_DIRECT_SEG_REFS ++CFLAGS-.o += -mno-tls-direct-seg-refs ++CPPFLAGS-.oS += -DNO_TLS_DIRECT_SEG_REFS ++CFLAGS-.oS += -mno-tls-direct-seg-refs + endif + + ifeq ($(subdir),elf) +--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/Makefile ++++ glibc-2.12-1/sysdeps/ia64/Makefile +@@ -12,8 +12,8 @@ elide-routines.os += hp-timing + + ifeq (yes,$(build-shared)) + # Compatibility +-sysdep_routines += ia64libgcc +-shared-only-routines += ia64libgcc ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat + endif + endif + +--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/ia64libgcc.S ++++ glibc-2.12-1/sysdeps/ia64/ia64libgcc.S +@@ -1,350 +0,0 @@ +-/* From the Intel IA-64 Optimization Guide, choose the minimum latency +- alternative. */ +- +-#include +-#undef ret +- +-#include +- +-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) +- +-/* __divtf3 +- Compute a 80-bit IEEE double-extended quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divtf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fnma.s1 f11 = farg1, f10, f1 +-(p6) fma.s1 f12 = farg0, f10, f0 +- ;; +-(p6) fma.s1 f13 = f11, f11, f0 +-(p6) fma.s1 f14 = f11, f11, f11 +- ;; +-(p6) fma.s1 f11 = f13, f13, f11 +-(p6) fma.s1 f13 = f14, f10, f10 +- ;; +-(p6) fma.s1 f10 = f13, f11, f10 +-(p6) fnma.s1 f11 = farg1, f12, farg0 +- ;; +-(p6) fma.s1 f11 = f11, f10, f12 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fnma.s1 f12 = farg1, f11, farg0 +- ;; +-(p6) fma.s0 fret0 = f12, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +-END(___divtf3) +- .symver ___divtf3, __divtf3@GLIBC_2.2 +- +-/* __divdf3 +- Compute a 64-bit IEEE double quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divdf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f11 = farg0, f10 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f11 = f12, f11, f11 +-(p6) fmpy.s1 f13 = f12, f12 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fma.s1 f11 = f13, f11, f11 +- ;; +-(p6) fmpy.s1 f12 = f13, f13 +-(p6) fma.s1 f10 = f13, f10, f10 +- ;; +-(p6) fma.d.s1 f11 = f12, f11, f11 +-(p6) fma.s1 f10 = f12, f10, f10 +- ;; +-(p6) fnma.d.s1 f8 = farg1, f11, farg0 +- ;; +-(p6) fma.d fret0 = f8, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdf3) +- .symver ___divdf3, __divdf3@GLIBC_2.2 +- +-/* __divsf3 +- Compute a 32-bit IEEE float quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divsf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f8 = farg0, f10 +-(p6) fnma.s1 f9 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.d.s1 f10 = f9, f8, f8 +- ;; +-(p6) fnorm.s.s0 fret0 = f10 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divsf3) +- .symver ___divsf3, __divsf3@GLIBC_2.2 +- +-/* __divdi3 +- Compute a 64-bit integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___divdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f8 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an integer. */ +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdi3) +- .symver ___divdi3, __divdi3@GLIBC_2.2 +- +-/* __moddi3 +- Compute a 64-bit integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___moddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f14 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___moddi3) +- .symver ___moddi3, __moddi3@GLIBC_2.2 +- +-/* __udivdi3 +- Compute a 64-bit unsigned integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___udivdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software-assist faults. */ +- fcvt.xuf.s1 f8 = f8 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___udivdi3) +- .symver ___udivdi3, __udivdi3@GLIBC_2.2 +- +-/* __umoddi3 +- Compute a 64-bit unsigned integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___umoddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software assist faults. */ +- fcvt.xuf.s1 f8 = f14 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___umoddi3) +- .symver ___umoddi3, __umoddi3@GLIBC_2.2 +- +-/* __multi3 +- Compute a 128-bit multiply of 128-bit multiplicands. +- in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b). */ +- +-ENTRY(___multi3) +- .regstk 4,0,0,0 +- setf.sig f6 = in1 +- movl r19 = 0xffffffff +- setf.sig f7 = in2 +- ;; +- and r14 = r19, in0 +- ;; +- setf.sig f10 = r14 +- and r14 = r19, in2 +- xmpy.l f9 = f6, f7 +- ;; +- setf.sig f6 = r14 +- shr.u r14 = in0, 32 +- ;; +- setf.sig f7 = r14 +- shr.u r14 = in2, 32 +- ;; +- setf.sig f8 = r14 +- xmpy.l f11 = f10, f6 +- xmpy.l f6 = f7, f6 +- ;; +- getf.sig r16 = f11 +- xmpy.l f7 = f7, f8 +- ;; +- shr.u r14 = r16, 32 +- and r16 = r19, r16 +- getf.sig r17 = f6 +- setf.sig f6 = in0 +- ;; +- setf.sig f11 = r14 +- getf.sig r21 = f7 +- setf.sig f7 = in3 +- ;; +- xma.l f11 = f10, f8, f11 +- xma.l f6 = f6, f7, f9 +- ;; +- getf.sig r18 = f11 +- ;; +- add r18 = r18, r17 +- ;; +- and r15 = r19, r18 +- cmp.ltu p7, p6 = r18, r17 +- ;; +- getf.sig r22 = f6 +-(p7) adds r14 = 1, r19 +- ;; +-(p7) add r21 = r21, r14 +- shr.u r14 = r18, 32 +- shl r15 = r15, 32 +- ;; +- add r20 = r21, r14 +- ;; +- add ret0 = r15, r16 +- add ret1 = r22, r20 +- br.ret.sptk rp +- ;; +-END(___multi3) +- .symver ___multi3, __multi3@GLIBC_2.2 +- +-#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/libgcc-compat.c ++++ glibc-2.12-1/sysdeps/ia64/libgcc-compat.c +@@ -0,0 +1,84 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) ++ ++typedef int int128_t __attribute__((__mode__(TI))); ++ ++extern long double __divtf3 (long double, long double) attribute_hidden; ++long double INTUSE (__divtf3) (long double x, long double y) ++{ ++ return __divtf3 (x, y); ++} ++symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2); ++ ++extern double __divdf3 (double, double) attribute_hidden; ++double INTUSE (__divdf3) (double x, double y) ++{ ++ return __divdf3 (x, y); ++} ++symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2); ++ ++extern float __divsf3 (float, float) attribute_hidden; ++float INTUSE (__divsf3) (float x, float y) ++{ ++ return __divsf3 (x, y); ++} ++symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2); ++ ++extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__divdi3) (int64_t x, int64_t y) ++{ ++ return __divdi3 (x, y); ++} ++symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2); ++ ++extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__moddi3) (int64_t x, int64_t y) ++{ ++ return __moddi3 (x, y); ++} ++symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2); ++ ++extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y) ++{ ++ return __udivdi3 (x, y); ++} ++symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2); ++ ++extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y) ++{ ++ return __umoddi3 (x, y); ++} ++symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2); ++ ++extern int128_t __multi3 (int128_t, int128_t) attribute_hidden; ++int128_t INTUSE (__multi3) (int128_t x, int128_t y) ++{ ++ return __multi3 (x, y); ++} ++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); ++ ++#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c ++++ glibc-2.12-1/sysdeps/posix/getaddrinfo.c +@@ -1099,10 +1099,12 @@ static const struct scopeentry + /* Link-local addresses: scope 2. */ + { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 }, + { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 }, ++#if 0 + /* Site-local addresses: scope 5. */ + { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 }, + { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 }, + { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 }, ++#endif + /* Default: scope 14. */ + { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } + }; +--- glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/Makefile ++++ glibc-2.12-1/sysdeps/powerpc/powerpc64/Makefile +@@ -30,6 +30,7 @@ ifneq ($(elf),no) + # we use -fpic instead which is much better. + CFLAGS-initfini.s += -fpic -O1 + endif ++CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables + endif + + ifeq ($(subdir),elf) +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/nice.c ++++ glibc-2.12-1/sysdeps/unix/nice.c +@@ -42,7 +42,12 @@ nice (int incr) + __set_errno (save); + } + +- result = setpriority (PRIO_PROCESS, 0, prio + incr); ++ prio += incr; ++ if (prio < PRIO_MIN) ++ prio = PRIO_MIN; ++ else if (prio >= PRIO_MAX) ++ prio = PRIO_MAX - 1; ++ result = setpriority (PRIO_PROCESS, 0, prio); + if (result == -1) + { + if (errno == EACCES) +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/check_pf.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/check_pf.c +@@ -27,13 +27,10 @@ + #include + #include + +-#include +-#include +-#include +- + #include + #include + ++#include "netlinkaccess.h" + + #ifndef IFA_F_HOMEADDRESS + # define IFA_F_HOMEADDRESS 0 +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/dl-osinfo.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/dl-osinfo.h +@@ -17,10 +17,13 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include + #include + #include + #include + #include ++#include ++#include + + #ifndef MIN + # define MIN(a,b) (((a)<(b))?(a):(b)) +@@ -80,6 +83,32 @@ _dl_setup_stack_chk_guard (void *dl_rand + unsigned char *p = (unsigned char *) &ret; + p[sizeof (ret) - 1] = 255; + p[sizeof (ret) - 2] = '\n'; ++#ifdef HP_TIMING_NOW ++ hp_timing_t hpt; ++ HP_TIMING_NOW (hpt); ++ hpt = (hpt & 0xffff) << 8; ++ ret ^= hpt; ++#endif ++ uintptr_t stk; ++ /* Avoid GCC being too smart. */ ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7ffff0; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 23); ++#elif __WORDSIZE == 64 ++ stk <<= 31; ++#endif ++ ret ^= stk; ++ /* Avoid GCC being too smart. */ ++ p = (unsigned char *) &errno; ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7fff00; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 29); ++#else ++ stk >>= 8; ++#endif ++ ret ^= stk; + } + else + #endif +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/futimesat.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/futimesat.c +@@ -37,14 +37,14 @@ futimesat (fd, file, tvp) + { + int result; + ++ if (file == NULL) ++ return __futimes (fd, tvp); ++ + #ifdef __NR_futimesat + # ifndef __ASSUME_ATFCTS + if (__have_atfcts >= 0) + # endif + { +- if (file == NULL) +- return __futimes (fd, tvp); +- + result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp); + # ifndef __ASSUME_ATFCTS + if (result == -1 && errno == ENOSYS) +@@ -58,22 +58,7 @@ futimesat (fd, file, tvp) + #ifndef __ASSUME_ATFCTS + char *buf = NULL; + +- if (file == NULL) +- { +- static const char procfd[] = "/proc/self/fd/%d"; +- /* Buffer for the path name we are going to use. It consists of +- - the string /proc/self/fd/ +- - the file descriptor number. +- The final NUL is included in the sizeof. A bit of overhead +- due to the format elements compensates for possible negative +- numbers. */ +- size_t buflen = sizeof (procfd) + sizeof (int) * 3; +- buf = alloca (buflen); +- +- __snprintf (buf, buflen, procfd, fd); +- file = buf; +- } +- else if (fd != AT_FDCWD && file[0] != '/') ++ if (fd != AT_FDCWD && file[0] != '/') + { + size_t filelen = strlen (file); + if (__builtin_expect (filelen == 0, 0)) +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/dl-cache.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/i386/dl-cache.h +@@ -0,0 +1,59 @@ ++/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. ++ Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++static inline int ++is_ia64 (void) ++{ ++ unsigned int fl1, fl2; ++ ++ /* See if we can use cpuid. */ ++ __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;" ++ "pushl %0; popfl; pushfl; popl %0; popfl" ++ : "=&r" (fl1), "=&r" (fl2) ++ : "i" (0x00200000)); ++ if (((fl1 ^ fl2) & 0x00200000) == 0) ++ return 0; ++ ++ /* Host supports cpuid. See if cpuid gives capabilities, try ++ CPUID(0). Preserve %ebx and %ecx; cpuid insn clobbers these, we ++ don't need their CPUID values here, and %ebx may be the PIC ++ register. */ ++ __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" ++ : "=a" (fl1) : "0" (0) : "edx", "cc"); ++ if (fl1 == 0) ++ return 0; ++ ++ /* Invoke CPUID(1), return %edx; caller can examine bits to ++ determine what's supported. */ ++ __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx" ++ : "=d" (fl2), "=a" (fl1) : "1" (1) : "cc"); ++ return (fl2 & (1 << 30)) != 0; ++} ++ ++#define arch_startup(argc, argv) \ ++ do { \ ++ /* On IA-64, try to execute 64-bit ldconfig if possible. \ ++ This is because the badly designed /emul/ia32-linux hack \ ++ will cause 32-bit ldconfig to do all sorts of weird things. */ \ ++ if (is_ia64 ()) \ ++ execv ("/emul/ia32-linux/../../sbin/ldconfig", \ ++ (char *const *) argv); \ ++ } while (0) ++ ++#include_next +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-cache.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-cache.h +@@ -22,4 +22,31 @@ + #define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + ++#define EMUL_HACK "/emul/ia32-linux" ++ ++#define arch_startup(argc, argv) unlink (EMUL_HACK LD_SO_CACHE) ++ ++#define add_arch_dirs(config_file) \ ++ do { \ ++ int save_verbose = opt_verbose; \ ++ opt_verbose = 0; \ ++ \ ++ parse_conf (config_file, EMUL_HACK, true); \ ++ \ ++ /* Always add the standard search paths. */ \ ++ add_system_dir (EMUL_HACK SLIBDIR); \ ++ if (strcmp (SLIBDIR, LIBDIR)) \ ++ add_system_dir (EMUL_HACK LIBDIR); \ ++ \ ++ char emul_config_file[strlen (config_file) \ ++ + sizeof EMUL_HACK]; \ ++ strcpy (mempcpy (emul_config_file, EMUL_HACK, \ ++ strlen (EMUL_HACK)), config_file); \ ++ \ ++ if (! access (emul_config_file, R_OK)) \ ++ parse_conf (emul_config_file, EMUL_HACK, true); \ ++ \ ++ opt_verbose = save_verbose; \ ++ } while (0) ++ + #include_next +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c +@@ -0,0 +1,5 @@ ++#ifdef IS_IN_ldconfig ++#include ++#else ++#include ++#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h +@@ -0,0 +1,5 @@ ++#ifdef IS_IN_ldconfig ++#include ++#else ++#include ++#endif +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed +@@ -1 +1 @@ +-s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_ ++s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_ +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/netlinkaccess.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/netlinkaccess.h +@@ -25,6 +25,24 @@ + + #include + ++#ifndef IFA_MAX ++/* 2.6.19 kernel headers helpfully removed some macros and ++ moved lots of stuff into new headers, some of which aren't ++ included by linux/rtnetlink.h. */ ++#include ++#endif ++ ++#ifndef IFA_RTA ++# define IFA_RTA(r) \ ++ ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifaddrmsg)))) ++# define IFA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifaddrmsg)) ++#endif ++ ++#ifndef IFLA_RTA ++# define IFLA_RTA(r) \ ++ ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifinfomsg)))) ++# define IFLA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifinfomsg)) ++#endif + + struct netlink_res + { +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/paths.h ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/paths.h +@@ -62,7 +62,7 @@ + #define _PATH_TTY "/dev/tty" + #define _PATH_UNIX "/boot/vmlinux" + #define _PATH_UTMP "/var/run/utmp" +-#define _PATH_VI "/usr/bin/vi" ++#define _PATH_VI "/bin/vi" + #define _PATH_WTMP "/var/log/wtmp" + + /* Provide trailing slash, since mostly used for building pathnames. */ +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c +@@ -1 +1 @@ +-#include "../../fxstat.c" ++#include "../../i386/fxstat.c" +--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/tcsetattr.c ++++ glibc-2.12-1/sysdeps/unix/sysv/linux/tcsetattr.c +@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios + { + struct __kernel_termios k_termios; + unsigned long int cmd; ++ int retval; + + switch (optional_actions) + { +@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios + memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], + __KERNEL_NCCS * sizeof (cc_t)); + +- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ ++ if (retval == 0 && cmd == TCSETS) ++ { ++ /* The Linux kernel has a bug which silently ignore the invalid ++ c_cflag on pty. We have to check it here. */ ++ int save = errno; ++ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); ++ if (retval) ++ { ++ /* We cannot verify if the setting is ok. We don't return ++ an error (?). */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((termios_p->c_cflag & (PARENB | CREAD)) ++ != (k_termios.c_cflag & (PARENB | CREAD)) ++ || ((termios_p->c_cflag & CSIZE) ++ && ((termios_p->c_cflag & CSIZE) ++ != (k_termios.c_cflag & CSIZE)))) ++ { ++ /* It looks like the Linux kernel silently changed the ++ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an ++ error. */ ++ __set_errno (EINVAL); ++ retval = -1; ++ } ++ } ++ ++ return retval; + } + libc_hidden_def (tcsetattr) +--- glibc-2.12-2-gc4ccff1/timezone/zic.c ++++ glibc-2.12-1/timezone/zic.c +@@ -1921,7 +1921,7 @@ const int zonecount; + if (stdrp != NULL && stdrp->r_hiyear == 2037) + return; + } +- if (stdrp == NULL && zp->z_nrules != 0) ++ if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0)) + return; + abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar; + doabbr(result, zp->z_format, abbrvar, FALSE, TRUE); diff --git a/src/patches/glibc/glibc-getlogin-r.patch b/src/patches/glibc/glibc-getlogin-r.patch new file mode 100644 index 0000000000..9181ce12c5 --- /dev/null +++ b/src/patches/glibc/glibc-getlogin-r.patch @@ -0,0 +1,36 @@ +2010-05-05 Ulrich Drepper + + [BZ #11571] + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle + too small buffers according to the standard. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -81,13 +81,22 @@ __getlogin_r_loginuid (name, namesize) + if (tpwd == NULL) + goto fail; + +- strncpy (name, pwd.pw_name, namesize - 1); +- name[namesize - 1] = '\0'; ++ int result = 0; ++ size_t needed = strlen (pwd.pw_name) + 1; ++ if (needed > namesize) ++ { ++ __set_errno (ERANGE); ++ result = ERANGE; ++ goto out; ++ } + ++ memcpy (name, pwd.pw_name, needed); ++ ++ out: + if (use_malloc) + free (buf); + +- return 0; ++ return result; + } + + diff --git a/src/patches/glibc/glibc-localedata.patch b/src/patches/glibc/glibc-localedata.patch new file mode 100644 index 0000000000..15de7c6d64 --- /dev/null +++ b/src/patches/glibc/glibc-localedata.patch @@ -0,0 +1,18 @@ +2010-05-04 Andreas Schwab + + * SUPPORTED (SUPPORTED-LOCALES): Fix name of tt_RU.UTF-8@iqtelif + locale. + +Index: glibc-2.12-2-gc4ccff1/localedata/SUPPORTED +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/SUPPORTED ++++ glibc-2.12-2-gc4ccff1/localedata/SUPPORTED +@@ -392,7 +392,7 @@ tr_TR.UTF-8/UTF-8 \ + tr_TR/ISO-8859-9 \ + ts_ZA/UTF-8 \ + tt_RU.UTF-8/UTF-8 \ +-tt_RU@iqtelif.UTF-8/UTF-8 \ ++tt_RU.UTF-8@iqtelif/UTF-8 \ + ug_CN/UTF-8 \ + uk_UA.UTF-8/UTF-8 \ + uk_UA/KOI8-U \ diff --git a/src/patches/glibc/glibc-recvmmsg.patch b/src/patches/glibc/glibc-recvmmsg.patch new file mode 100644 index 0000000000..9e3aa7ade8 --- /dev/null +++ b/src/patches/glibc/glibc-recvmmsg.patch @@ -0,0 +1,182 @@ +2010-05-21 Andreas Schwab + + * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add recvmmsg + and internal_recvmmsg. + * sysdeps/unix/sysv/linux/recvmmsg.c: New file. + * sysdeps/unix/sysv/linux/internal_recvmmsg.S: New file. + * sysdeps/unix/sysv/linux/socketcall.h (SOCKOP_recvmmsg): Define. + * sysdeps/unix/sysv/linux/syscalls.list (recvmmsg): Remove. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile +@@ -12,7 +12,7 @@ CFLAGS-malloc.c += -DMORECORE_CLEARS=2 + endif + + ifeq ($(subdir),socket) +-sysdep_routines += internal_accept4 ++sysdep_routines += internal_accept4 recvmmsg internal_recvmmsg + endif + + ifeq ($(subdir),misc) +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S +@@ -0,0 +1,14 @@ ++#include ++#include ++#if !defined __NR_recvmmsg && defined __NR_socketcall ++# define socket recvmmsg ++# ifdef __ASSUME_RECVMMSG ++# define __socket recvmmsg ++# else ++# define __socket __internal_recvmmsg ++# endif ++# define NARGS 5 ++# define NEED_CANCELLATION ++# define NO_WEAK_ALIAS ++# include ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +@@ -547,3 +547,8 @@ + #if __LINUX_KERNEL_VERSION >= 0x020620 + # define __ASSUME_F_GETOWN_EX 1 + #endif ++ ++/* Support for the recvmmsg syscall was added in 2.6.33. */ ++#if __LINUX_KERNEL_VERSION >= 0x020621 ++# define __ASSUME_RECVMMSG 1 ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c +@@ -0,0 +1,100 @@ ++/* Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Schwab , 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++ ++#ifdef __NR_recvmmsg ++int ++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, ++ const struct timespec *tmo) ++{ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++#elif defined __NR_socketcall ++# ifndef __ASSUME_RECVMMSG ++extern int __internal_recvmmsg (int fd, struct mmsghdr *vmessages, ++ unsigned int vlen, int flags, ++ const struct timespec *tmo) ++ attribute_hidden; ++ ++static int have_recvmmsg; ++ ++int ++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, ++ const struct timespec *tmo) ++{ ++ if (__builtin_expect (have_recvmmsg >= 0, 1)) ++ { ++ int ret = __internal_recvmmsg (fd, vmessages, vlen, flags, tmo); ++ /* The kernel returns -EINVAL for unknown socket operations. ++ We need to convert that error to an ENOSYS error. */ ++ if (__builtin_expect (ret < 0, 0) ++ && have_recvmmsg == 0 ++ && errno == EINVAL) ++ { ++ /* Try another call, this time with an invalid file ++ descriptor and all other parameters cleared. This call ++ will not cause any harm and it will return ++ immediately. */ ++ ret = __internal_recvmmsg (-1, 0, 0, 0, 0); ++ if (errno == EINVAL) ++ { ++ have_recvmmsg = -1; ++ __set_errno (ENOSYS); ++ } ++ else ++ { ++ have_recvmmsg = 1; ++ __set_errno (EINVAL); ++ } ++ return -1; ++ } ++ return ret; ++ } ++ __set_errno (ENOSYS); ++ return -1; ++} ++# else ++/* When __ASSUME_RECVMMSG recvmmsg is defined in internal_recvmmsg.S. */ ++# endif ++#else ++int ++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, ++ const struct timespec *tmo) ++{ ++ __set_errno (ENOSYS); ++ return -1; ++} ++stub_warning (recvmmsg) ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/socketcall.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h +@@ -44,5 +44,6 @@ + #define SOCKOP_sendmsg 16 + #define SOCKOP_recvmsg 17 + #define SOCKOP_accept4 18 ++#define SOCKOP_recvmmsg 19 + + #endif /* sys/socketcall.h */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/syscalls.list ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list +@@ -53,7 +53,6 @@ prctl EXTRA prctl i:iiiii __prctl prc + putpmsg - putpmsg i:ippii putpmsg + query_module EXTRA query_module i:sipip query_module + quotactl EXTRA quotactl i:isip quotactl +-recvmmsg EXTRA recvmmsg Ci:ipiip recvmmsg + remap_file_pages - remap_file_pages i:piiii __remap_file_pages remap_file_pages + sched_getp - sched_getparam i:ip __sched_getparam sched_getparam + sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler diff --git a/src/patches/glibc/glibc-rh580498.patch b/src/patches/glibc/glibc-rh580498.patch new file mode 100644 index 0000000000..05b673a9f9 --- /dev/null +++ b/src/patches/glibc/glibc-rh580498.patch @@ -0,0 +1,296 @@ +2010-07-03 Ulrich Drepper + + * tst-abstime.c (do_test): Some more cleanups + +2010-07-02 Ulrich Drepper + + * tst-abstime.c: Correct testing and add test for sem_timedwait. + +2010-07-01 Andreas Schwab + Ulrich Drepper + + * Makefile (tests): Add tst-abstime. + * tst-abstime.c: New file. + * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S + (__lll_timedlock_wait): Check for timestamp before the Epoch. + * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S + (__lll_timedlock_wait): Likewise. + * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S + (__lll_robust_timedlock_wait): Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S + (__pthread_cond_timedwait): Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S + (pthread_rwlock_timedrdlock): Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S + (pthread_rwlock_timedwrlock): Likewise. + * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): + Likewise. + +Index: glibc-2.12-2-gc4ccff1/nptl/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/Makefile ++++ glibc-2.12-2-gc4ccff1/nptl/Makefile +@@ -256,6 +256,7 @@ tests = tst-typesizes \ + tst-sched1 \ + tst-backtrace1 \ + tst-oddstacklimit \ ++ tst-abstime \ + tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \ + tst-getpid1 tst-getpid2 tst-getpid3 \ + tst-initializers1 $(patsubst %,tst-initializers1-%,c89 gnu89 c99 gnu99) +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S +@@ -188,6 +188,9 @@ __lll_timedlock_wait: + je .Lreltmo + # endif + ++ cmpl $0, (%edx) ++ js 8f ++ + movl %ecx, %ebx + movl %esi, %ecx + movl %edx, %esi +@@ -223,6 +226,9 @@ __lll_timedlock_wait: + cfi_restore(%ebp) + ret + ++8: movl $ETIMEDOUT, %eax ++ jmp 7b ++ + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: + /* Check for a valid timeout value. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S +@@ -169,9 +169,13 @@ __lll_timedlock_wait: + je .Lreltmo + # endif + ++ cmpq $0, (%rdx) ++ js 5f ++ + pushq %r9 + cfi_adjust_cfa_offset(8) + cfi_rel_offset(%r9, 0) ++ + movq %rdx, %r10 + movl $0xffffffff, %r9d + LOAD_FUTEX_WAIT_ABS (%esi) +@@ -202,6 +206,9 @@ __lll_timedlock_wait: + cfi_restore(%r9) + retq + ++5: movl $ETIMEDOUT, %eax ++ retq ++ + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: + /* Check for a valid timeout value. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S +@@ -125,6 +125,9 @@ __lll_robust_timedlock_wait: + je .Lreltmo + # endif + ++ cmpq $0, (%rdx) ++ js 7f ++ + pushq %r9 + cfi_adjust_cfa_offset(8) + cfi_rel_offset(%r9, 0) +@@ -180,6 +183,9 @@ __lll_robust_timedlock_wait: + cfi_adjust_cfa_offset(-8) + cfi_restore(%r9) + ++7: movl $ETIMEDOUT, %eax ++ retq ++ + + # ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -144,6 +144,10 @@ __pthread_cond_timedwait: + movq %r9, 24(%rsp) + movl %edx, 4(%rsp) + ++ cmpq $0, (%r13) ++ movq $-ETIMEDOUT, %r14 ++ js 36f ++ + 38: movl cond_futex(%rdi), %r12d + + /* Unlock. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S +@@ -102,6 +102,9 @@ pthread_rwlock_timedrdlock: + je .Lreltmo + #endif + ++ cmpq $0, (%r13) ++ js 16f /* Time is already up. */ ++ + movl $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi + xorl PSHARED(%r12), %esi + movq %r13, %r10 +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S +@@ -99,6 +99,9 @@ pthread_rwlock_timedwrlock: + je .Lreltmo + #endif + ++ cmpq $0, (%r13) ++ js 16f /* Time is already up. */ ++ + movl $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi + xorl PSHARED(%r12), %esi + movq %r13, %r10 +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S +@@ -77,6 +77,9 @@ sem_timedwait: + je .Lreltmo + #endif + ++ cmpq $0, (%rsi) ++ js 16f ++ + /* This push is only needed to store the sem_t pointer for the + exception handler. */ + pushq %rdi +@@ -169,6 +172,19 @@ sem_timedwait: + + retq + ++16: ++#if USE___THREAD ++ movq errno@gottpoff(%rip), %rdx ++ movl $ETIMEDOUT, %fs:(%rdx) ++#else ++ callq __errno_location@plt ++ movl $ETIMEDOUT, (%rax) ++#endif ++ ++ orl $-1, %eax ++ ++ retq ++ + #ifndef __ASSUME_FUTEX_CLOCK_REALTIME + .Lreltmo: + pushq %r12 +Index: glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c +@@ -0,0 +1,98 @@ ++/* Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Schwab , 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++static pthread_cond_t c = PTHREAD_COND_INITIALIZER; ++static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER; ++static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER; ++static pthread_rwlock_t rw1 = PTHREAD_RWLOCK_INITIALIZER; ++static pthread_rwlock_t rw2 = PTHREAD_RWLOCK_INITIALIZER; ++static sem_t sem; ++ ++static void * ++th (void *arg) ++{ ++ long int res = 0; ++ int r; ++ struct timespec t = { -2, 0 }; ++ ++ r = pthread_mutex_timedlock (&m1, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_mutex_timedlock did not return ETIMEDOUT"); ++ res = 1; ++ } ++ r = pthread_rwlock_timedrdlock (&rw1, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT"); ++ res = 1; ++ } ++ r = pthread_rwlock_timedwrlock (&rw2, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT"); ++ res = 1; ++ } ++ return (void *) res; ++} ++ ++static int ++do_test (void) ++{ ++ int res = 0; ++ int r; ++ struct timespec t = { -2, 0 }; ++ pthread_t pth; ++ ++ sem_init (&sem, 0, 0); ++ r = sem_timedwait (&sem, &t); ++ if (r != -1 || errno != ETIMEDOUT) ++ { ++ puts ("sem_timedwait did not fail with ETIMEDOUT"); ++ res = 1; ++ } ++ ++ pthread_mutex_lock (&m1); ++ pthread_rwlock_wrlock (&rw1); ++ pthread_rwlock_rdlock (&rw2); ++ pthread_mutex_lock (&m2); ++ if (pthread_create (&pth, 0, th, 0) != 0) ++ { ++ puts ("cannot create thread"); ++ return 1; ++ } ++ r = pthread_cond_timedwait (&c, &m2, &t); ++ if (r != ETIMEDOUT) ++ { ++ puts ("pthread_cond_timedwait did not return ETIMEDOUT"); ++ res = 1; ++ } ++ void *thres; ++ pthread_join (pth, &thres); ++ return res | (thres != NULL); ++} ++ ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" diff --git a/src/patches/glibc/glibc-rh582738.patch b/src/patches/glibc/glibc-rh582738.patch new file mode 100644 index 0000000000..40f7b80ffe --- /dev/null +++ b/src/patches/glibc/glibc-rh582738.patch @@ -0,0 +1,13 @@ +Index: glibc-2.11-382-g1cdb215/nscd/nscd.init +=================================================================== +--- glibc-2.11-382-g1cdb215.orig/nscd/nscd.init ++++ glibc-2.11-382-g1cdb215/nscd/nscd.init +@@ -76,7 +76,7 @@ case "$1" in + RETVAL=$? + ;; + stop) +- stop ++ [ ! -e /var/lock/subsys/nscd ] || stop + RETVAL=$? + ;; + status) diff --git a/src/patches/glibc/glibc-rh587360.patch b/src/patches/glibc/glibc-rh587360.patch new file mode 100644 index 0000000000..07b62e60b4 --- /dev/null +++ b/src/patches/glibc/glibc-rh587360.patch @@ -0,0 +1,13 @@ +Index: glibc-2.11-382-g1cdb215/posix/regexec.c +=================================================================== +--- glibc-2.11-382-g1cdb215.orig/posix/regexec.c ++++ glibc-2.11-382-g1cdb215/posix/regexec.c +@@ -4031,7 +4031,7 @@ find_collation_sequence_value (const uns + /* Skip the collation sequence value. */ + idx += sizeof (uint32_t); + /* Skip the wide char sequence of the collating element. */ +- idx = idx + sizeof (uint32_t) * (extra[idx] + 1); ++ idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1); + /* If we found the entry, return the sequence value. */ + if (found) + return *(uint32_t *) (extra + idx); diff --git a/src/patches/glibc/glibc-rh593396.patch b/src/patches/glibc/glibc-rh593396.patch new file mode 100644 index 0000000000..b907a364df --- /dev/null +++ b/src/patches/glibc/glibc-rh593396.patch @@ -0,0 +1,42 @@ +2010-05-06 Ulrich Drepper + + * malloc/malloc.c (_int_free): Possible race in the most recently + added check. Only act on the data if no current modification + happened. + +Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c ++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c +@@ -4859,6 +4859,7 @@ _int_free(mstate av, mchunkptr p) + #ifdef ATOMIC_FASTBINS + mchunkptr fd; + mchunkptr old = *fb; ++ unsigned int old_idx = ~0u; + do + { + /* Another simple check: make sure the top of the bin is not the +@@ -4868,15 +4869,17 @@ _int_free(mstate av, mchunkptr p) + errstr = "double free or corruption (fasttop)"; + goto errout; + } +- if (old != NULL +- && __builtin_expect (fastbin_index(chunksize(old)) != idx, 0)) +- { +- errstr = "invalid fastbin entry (free)"; +- goto errout; +- } ++ if (old != NULL) ++ old_idx = fastbin_index(chunksize(old)); + p->fd = fd = old; + } + while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd); ++ ++ if (fd != NULL && __builtin_expect (old_idx != idx, 0)) ++ { ++ errstr = "invalid fastbin entry (free)"; ++ goto errout; ++ } + #else + /* Another simple check: make sure the top of the bin is not the + record we are going to add (i.e., double free). */ diff --git a/src/patches/glibc/glibc-rh593686.patch b/src/patches/glibc/glibc-rh593686.patch new file mode 100644 index 0000000000..3eceb6829c --- /dev/null +++ b/src/patches/glibc/glibc-rh593686.patch @@ -0,0 +1,179 @@ +2010-05-26 Andreas Schwab + + * elf/Makefile: Add rules to build and run unload8 test. + * elf/unload8.c: New file. + * elf/unload8mod1.c: New file. + * elf/unload8mod1x.c: New file. + * elf/unload8mod2.c: New file. + * elf/unload8mod3.c: New file. + + * elf/dl-close.c (_dl_close_worker): Reset private search list if + it wasn't used. + +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -89,6 +89,7 @@ distribute := rtld-Rules \ + unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \ + unload6mod1.c unload6mod2.c unload6mod3.c \ + unload7mod1.c unload7mod2.c \ ++ unload8mod1.c unload8mod1x.c unload8mod2.c unload8mod3.c \ + tst-audit1.c tst-audit2.c tst-audit3.c tst-audit4.c \ + tst-auditmod1.c tst-auditmod3a.c tst-auditmod3b.c \ + tst-auditmod4a.c tst-auditmod4b.c \ +@@ -196,7 +197,7 @@ tests += loadtest restest1 preloadtest l + tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \ + tst-dlmodcount tst-dlopenrpath tst-deep1 \ + tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \ +- unload3 unload4 unload5 unload6 unload7 tst-global1 order2 \ ++ unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \ + tst-audit1 tst-audit2 \ + tst-stackguard1 tst-addr1 tst-thrlock \ + tst-unique1 tst-unique2 +@@ -247,6 +248,7 @@ modules-names = testobj1 testobj2 testob + unload4mod1 unload4mod2 unload4mod3 unload4mod4 \ + unload6mod1 unload6mod2 unload6mod3 \ + unload7mod1 unload7mod2 \ ++ unload8mod1 unload8mod1x unload8mod2 unload8mod3 \ + order2mod1 order2mod2 order2mod3 order2mod4 \ + tst-unique1mod1 tst-unique1mod2 \ + tst-unique2mod1 tst-unique2mod2 +@@ -522,6 +524,9 @@ $(objpfx)unload6mod2.so: $(libdl) + $(objpfx)unload6mod3.so: $(libdl) + $(objpfx)unload7mod1.so: $(libdl) + $(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so ++$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so ++$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so ++$(objpfx)unload8mod3.so: $(libdl) + + LDFLAGS-tst-tlsmod5.so = -nostdlib + LDFLAGS-tst-tlsmod6.so = -nostdlib +@@ -823,6 +828,9 @@ $(objpfx)unload7: $(libdl) + $(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so + unload7-ENV = MALLOC_PERTURB_=85 + ++$(objpfx)unload8: $(libdl) ++$(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so ++ + ifdef libdl + $(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a + $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so +Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c +@@ -421,6 +421,13 @@ _dl_close_worker (struct link_map *map) + + imap->l_scope_max = new_size; + } ++ else if (new_list != NULL) ++ { ++ /* We didn't change the scope array, so reset the search ++ list. */ ++ imap->l_searchlist.r_list = NULL; ++ imap->l_searchlist.r_nlist = 0; ++ } + + /* The loader is gone, so mark the object as not having one. + Note: l_idx != IDX_STILL_USED -> object will be removed. */ +Index: glibc-2.12-2-gc4ccff1/elf/unload8.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8.c +@@ -0,0 +1,33 @@ ++#include ++#include ++ ++int ++main (void) ++{ ++ void *h = dlopen ("$ORIGIN/unload8mod1.so", RTLD_LAZY); ++ if (h == NULL) ++ { ++ puts ("dlopen unload8mod1.so failed"); ++ return 1; ++ } ++ ++ void *h2 = dlopen ("$ORIGIN/unload8mod1x.so", RTLD_LAZY); ++ if (h2 == NULL) ++ { ++ puts ("dlopen unload8mod1x.so failed"); ++ return 1; ++ } ++ dlclose (h2); ++ ++ int (*mod1) (void) = dlsym (h, "mod1"); ++ if (mod1 == NULL) ++ { ++ puts ("dlsym failed"); ++ return 1; ++ } ++ ++ mod1 (); ++ dlclose (h); ++ ++ return 0; ++} +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1.c +@@ -0,0 +1,7 @@ ++extern void mod2 (void); ++ ++void ++mod1 (void) ++{ ++ mod2 (); ++} +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c +@@ -0,0 +1 @@ ++int mod1x; +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod2.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod2.c +@@ -0,0 +1,7 @@ ++extern void mod3 (void); ++ ++void ++mod2 (void) ++{ ++ mod3 (); ++} +Index: glibc-2.12-2-gc4ccff1/elf/unload8mod3.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/elf/unload8mod3.c +@@ -0,0 +1,27 @@ ++#include ++#include ++#include ++ ++void ++mod3_fini2 (void) ++{ ++} ++ ++void ++mod3_fini (void) ++{ ++ mod3_fini2 (); ++} ++ ++void ++mod3 (void) ++{ ++ void *h = dlopen ("$ORIGIN/unload8mod2.so", RTLD_LAZY); ++ if (h == NULL) ++ { ++ puts ("dlopen unload8mod2.so failed"); ++ exit (1); ++ } ++ ++ atexit (mod3_fini); ++} diff --git a/src/patches/glibc/glibc-rh601686.patch b/src/patches/glibc/glibc-rh601686.patch new file mode 100644 index 0000000000..01e42dce4f --- /dev/null +++ b/src/patches/glibc/glibc-rh601686.patch @@ -0,0 +1,4640 @@ +2010-11-09 H.J. Lu + + [BZ #12205] + * string/test-strncasecmp.c (check_result): New function. + (do_one_test): Use it. + (check1): New function. + (test_main): Use it. + * sysdeps/i386/i686/multiarch/strcmp.S (nibble_ashr_use_sse4_2_exit): + Support strcasecmp and strncasecmp. + +2010-10-03 Ulrich Drepper + + [BZ #12077] + * sysdeps/x86_64/strcmp.S: Fix handling of remaining bytes in buffer + for strncmp and strncasecmp. + * string/stratcliff.c: Add tests for strcmp and strncmp. + * wcsmbs/wcsatcliff.c: Adjust for stratcliff change. + +2010-09-20 Ulrich Drepper + + * sysdeps/x86_64/strcmp.S: Fix another type in strncasecmp limit + detection. + +2010-08-19 Ulrich Drepper + + * sysdeps/x86_64/multiarch/strcmp.S: Fix two typos in strncasecmp + handling. + +2010-08-15 Ulrich Drepper + + * sysdeps/x86_64/strcmp.S: Use correct register for fourth parameter + of strncasecmp_l. + * sysdeps/multiarch/strcmp.S: Likewise. + +2010-08-14 Ulrich Drepper + + * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add + strncase_l-nonascii. + * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines): + Add strncase_l-ssse3. + * sysdeps/x86_64/multiarch/strcmp.S: Prepare for use as strncasecmp. + * sysdeps/x86_64/strcmp.S: Likewise. + * sysdeps/x86_64/multiarch/strncase_l-ssse3.S: New file. + * sysdeps/x86_64/multiarch/strncase_l.S: New file. + * sysdeps/x86_64/strncase.S: New file. + * sysdeps/x86_64/strncase_l-nonascii.c: New file. + * sysdeps/x86_64/strncase_l.S: New file. + * string/Makefile (strop-tests): Add strncasecmp. + * string/test-strncasecmp.c: New file. + + * sysdeps/x86_64/strcasecmp_l-nonascii.c: Add prototype to avoid + warning. + + * sysdeps/x86_64/strcmp.S: Move definition of NO_NOLOCALE_ALIAS to... + * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: ... here. + +2010-07-31 Ulrich Drepper + + * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines): + Add strcasecmp_l-ssse3. + * sysdeps/x86_64/multiarch/strcmp.S: Add support to compile for + strcasecmp. + * sysdeps/x86_64/strcmp.S: Allow more flexible compiling of strcasecmp. + * sysdeps/x86_64/multiarch/strcasecmp_l.S: New file. + * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: New file. + +2010-07-30 Ulrich Drepper + + * sysdeps/x86_64/multiarch/strcmp.S: Pretty printing. + + * string/Makefile (strop-tests): Add strcasecmp. + * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add + strcasecmp_l-nonascii. + (gen-as-const-headers): Add locale-defines.sym. + * sysdeps/x86_64/strcmp.S: Add support for strcasecmp implementation. + * sysdeps/x86_64/strcasecmp.S: New file. + * sysdeps/x86_64/strcasecmp_l.S: New file. + * sysdeps/x86_64/strcasecmp_l-nonascii.c: New file. + * sysdeps/x86_64/locale-defines.sym: New file. + * string/test-strcasecmp.c: New file. + + * string/test-strcasestr.c: Test both ends of the range of characters. + * sysdeps/x86_64/multiarch/strstr.c: Fix UCHIGH definition. + +2010-07-26 Ulrich Drepper + + * string/test-strnlen.c: New file. + * string/Makefile (strop-tests): Add strnlen. + * string/tester.c (test_strnlen): Add a few more test cases. + * string/tst-strlen.c: Better error reporting. + + * sysdeps/x86_64/strnlen.S: New file. + +2010-07-24 Ulrich Drepper + + * sysdeps/x86_64/multiarch/strstr.c (__m128i_strloadu_tolower): Use + lower-latency instructions. + +2010-07-23 Ulrich Drepper + + * string/test-strcasestr.c: New file. + * string/test-strstr.c: New file. + * string/Makefile (strop-tests): Add strstr and strcasestr. + * string/str-two-way.h: Don't undefine MAX. + * string/strcasestr.c: Don't define alias if NO_ALIAS is defined. + +2010-07-21 Andreas Schwab + + * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add + strcasestr-nonascii. + (CFLAGS-strcasestr-nonascii.c): Define. + * sysdeps/i386/i686/multiarch/strcasestr-nonascii.c: New file. + * sysdeps/x86_64/multiarch/strcasestr-nonascii.c (STRSTR_SSE42): + Remove unused attribute. + +2010-07-16 Ulrich Drepper + + * sysdeps/x86_64/multiarch/strstr.c: Rewrite to avoid indirect function + call in strcasestr. + * sysdeps/x86_64/multiarch/strcasestr.c: Declare + __strcasestr_sse42_nonascii. + * sysdeps/x86_64/multiarch/Makefile: Add rules to build + strcasestr-nonascii.c. + * sysdeps/x86_64/multiarch/strcasestr-nonascii.c: New file. + +Index: glibc-2.12-2-gc4ccff1/string/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/Makefile ++++ glibc-2.12-2-gc4ccff1/string/Makefile +@@ -48,7 +48,8 @@ o-objects.ob := memcpy.o memset.o memchr + + strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \ + stpcpy stpncpy strcat strchr strcmp strcpy strcspn \ +- strlen strncmp strncpy strpbrk strrchr strspn memmem ++ strlen strncmp strncpy strpbrk strrchr strspn memmem \ ++ strstr strcasestr strnlen strcasecmp strncasecmp + tests := tester inl-tester noinl-tester testcopy test-ffs \ + tst-strlen stratcliff tst-svc tst-inlcall \ + bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ +Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h ++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h +@@ -426,5 +426,4 @@ two_way_long_needle (const unsigned char + #undef AVAILABLE + #undef CANON_ELEMENT + #undef CMP_FUNC +-#undef MAX + #undef RETURN_TYPE +Index: glibc-2.12-2-gc4ccff1/string/stratcliff.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/stratcliff.c ++++ glibc-2.12-2-gc4ccff1/string/stratcliff.c +@@ -47,6 +47,8 @@ + # define MEMCPY memcpy + # define MEMPCPY mempcpy + # define MEMCHR memchr ++# define STRCMP strcmp ++# define STRNCMP strncmp + #endif + + +@@ -277,7 +279,74 @@ do_test (void) + + adr[inner] = L('T'); + } +- } ++ } ++ ++ /* strcmp/wcscmp tests */ ++ for (outer = 1; outer < 32; ++outer) ++ for (middle = 0; middle < 16; ++middle) ++ { ++ MEMSET (adr + middle, L('T'), 256); ++ adr[256] = L('\0'); ++ MEMSET (dest + nchars - outer, L('T'), outer - 1); ++ dest[nchars - 1] = L('\0'); ++ ++ if (STRCMP (adr + middle, dest + nchars - outer) <= 0) ++ { ++ printf ("%s 1 flunked for outer = %d, middle = %d\n", ++ STRINGIFY (STRCMP), outer, middle); ++ result = 1; ++ } ++ ++ if (STRCMP (dest + nchars - outer, adr + middle) >= 0) ++ { ++ printf ("%s 2 flunked for outer = %d, middle = %d\n", ++ STRINGIFY (STRCMP), outer, middle); ++ result = 1; ++ } ++ } ++ ++ /* strncmp/wcsncmp tests */ ++ for (outer = 1; outer < 32; ++outer) ++ for (middle = 0; middle < 16; ++middle) ++ { ++ MEMSET (adr + middle, L('T'), 256); ++ adr[256] = L('\0'); ++ MEMSET (dest + nchars - outer, L('T'), outer - 1); ++ dest[nchars - 1] = L('U'); ++ ++ for (inner = 0; inner < outer; ++inner) ++ { ++ if (STRNCMP (adr + middle, dest + nchars - outer, inner) != 0) ++ { ++ printf ("%s 1 flunked for outer = %d, middle = %d, " ++ "inner = %d\n", ++ STRINGIFY (STRNCMP), outer, middle, inner); ++ result = 1; ++ } ++ ++ if (STRNCMP (dest + nchars - outer, adr + middle, inner) != 0) ++ { ++ printf ("%s 2 flunked for outer = %d, middle = %d, " ++ "inner = %d\n", ++ STRINGIFY (STRNCMP), outer, middle, inner); ++ result = 1; ++ } ++ } ++ ++ if (STRNCMP (adr + middle, dest + nchars - outer, outer) >= 0) ++ { ++ printf ("%s 1 flunked for outer = %d, middle = %d, full\n", ++ STRINGIFY (STRNCMP), outer, middle); ++ result = 1; ++ } ++ ++ if (STRNCMP (dest + nchars - outer, adr + middle, outer) <= 0) ++ { ++ printf ("%s 2 flunked for outer = %d, middle = %d, full\n", ++ STRINGIFY (STRNCMP), outer, middle); ++ result = 1; ++ } ++ } + + /* strncpy/wcsncpy tests */ + adr[nchars - 1] = L('T'); +Index: glibc-2.12-2-gc4ccff1/string/strcasestr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/strcasestr.c ++++ glibc-2.12-2-gc4ccff1/string/strcasestr.c +@@ -103,4 +103,6 @@ STRCASESTR (const char *haystack_start, + + #undef LONG_NEEDLE_THRESHOLD + ++#ifndef NO_ALIAS + weak_alias (__strcasestr, strcasestr) ++#endif +Index: glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c +@@ -0,0 +1,276 @@ ++/* Test and measure strcasecmp functions. ++ Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Jakub Jelinek , 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#define TEST_MAIN ++#include "test-string.h" ++ ++typedef int (*proto_t) (const char *, const char *); ++static int simple_strcasecmp (const char *, const char *); ++static int stupid_strcasecmp (const char *, const char *); ++ ++IMPL (stupid_strcasecmp, 0) ++IMPL (simple_strcasecmp, 0) ++IMPL (strcasecmp, 1) ++ ++static int ++simple_strcasecmp (const char *s1, const char *s2) ++{ ++ int ret; ++ ++ while ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) == 0 ++ && *s1++) ++ ++s2; ++ return ret; ++} ++ ++static int ++stupid_strcasecmp (const char *s1, const char *s2) ++{ ++ size_t ns1 = strlen (s1) + 1, ns2 = strlen (s2) + 1; ++ size_t n = ns1 < ns2 ? ns1 : ns2; ++ int ret = 0; ++ ++ while (n--) ++ { ++ if ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) != 0) ++ break; ++ ++s1; ++ ++s2; ++ } ++ return ret; ++} ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result) ++{ ++ int result = CALL (impl, s1, s2); ++ if ((exp_result == 0 && result != 0) ++ || (exp_result < 0 && result >= 0) ++ || (exp_result > 0 && result <= 0)) ++ { ++ error (0, 0, "Wrong result in function %s %d %d", impl->name, ++ result, exp_result); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~ (hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++static void ++do_test (size_t align1, size_t align2, size_t len, int max_char, ++ int exp_result) ++{ ++ size_t i; ++ char *s1, *s2; ++ ++ if (len == 0) ++ return; ++ ++ align1 &= 7; ++ if (align1 + len + 1 >= page_size) ++ return; ++ ++ align2 &= 7; ++ if (align2 + len + 1 >= page_size) ++ return; ++ ++ s1 = (char *) (buf1 + align1); ++ s2 = (char *) (buf2 + align2); ++ ++ for (i = 0; i < len; i++) ++ { ++ s1[i] = toupper (1 + 23 * i % max_char); ++ s2[i] = tolower (s1[i]); ++ } ++ ++ s1[len] = s2[len] = 0; ++ s1[len + 1] = 23; ++ s2[len + 1] = 24 + exp_result; ++ if ((s2[len - 1] == 'z' && exp_result == -1) ++ || (s2[len - 1] == 'a' && exp_result == 1)) ++ s1[len - 1] += exp_result; ++ else ++ s2[len - 1] -= exp_result; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, exp_result); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++static void ++do_random_tests (void) ++{ ++ size_t i, j, n, align1, align2, pos, len1, len2; ++ int result; ++ long r; ++ unsigned char *p1 = buf1 + page_size - 512; ++ unsigned char *p2 = buf2 + page_size - 512; ++ ++ for (n = 0; n < ITERATIONS; n++) ++ { ++ align1 = random () & 31; ++ if (random () & 1) ++ align2 = random () & 31; ++ else ++ align2 = align1 + (random () & 24); ++ pos = random () & 511; ++ j = align1 > align2 ? align1 : align2; ++ if (pos + j >= 511) ++ pos = 510 - j - (random () & 7); ++ len1 = random () & 511; ++ if (pos >= len1 && (random () & 1)) ++ len1 = pos + (random () & 7); ++ if (len1 + j >= 512) ++ len1 = 511 - j - (random () & 7); ++ if (pos >= len1) ++ len2 = len1; ++ else ++ len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0); ++ j = (pos > len2 ? pos : len2) + align1 + 64; ++ if (j > 512) ++ j = 512; ++ for (i = 0; i < j; ++i) ++ { ++ p1[i] = tolower (random () & 255); ++ if (i < len1 + align1 && !p1[i]) ++ { ++ p1[i] = tolower (random () & 255); ++ if (!p1[i]) ++ p1[i] = tolower (1 + (random () & 127)); ++ } ++ } ++ for (i = 0; i < j; ++i) ++ { ++ p2[i] = toupper (random () & 255); ++ if (i < len2 + align2 && !p2[i]) ++ { ++ p2[i] = toupper (random () & 255); ++ if (!p2[i]) ++ toupper (p2[i] = 1 + (random () & 127)); ++ } ++ } ++ ++ result = 0; ++ memcpy (p2 + align2, p1 + align1, pos); ++ if (pos < len1) ++ { ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ { ++ p2[align2 + pos] = toupper (random () & 255); ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ p2[align2 + pos] = toupper (p1[align1 + pos] ++ + 3 + (random () & 127)); ++ } ++ ++ if (p1[align1 + pos] < tolower (p2[align2 + pos])) ++ result = -1; ++ else ++ result = 1; ++ } ++ p1[len1 + align1] = 0; ++ p2[len2 + align2] = 0; ++ ++ FOR_EACH_IMPL (impl, 1) ++ { ++ r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2)); ++ /* Test whether on 64-bit architectures where ABI requires ++ callee to promote has the promotion been done. */ ++ asm ("" : "=g" (r) : "0" (r)); ++ if ((r == 0 && result) ++ || (r < 0 && result >= 0) ++ || (r > 0 && result <= 0)) ++ { ++ error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p", ++ n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2); ++ ret = 1; ++ } ++ } ++ } ++} ++ ++int ++test_main (void) ++{ ++ size_t i; ++ ++ test_init (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (i = 1; i < 16; ++i) ++ { ++ do_test (i, i, i, 127, 0); ++ do_test (i, i, i, 127, 1); ++ do_test (i, i, i, 127, -1); ++ } ++ ++ for (i = 1; i < 10; ++i) ++ { ++ do_test (0, 0, 2 << i, 127, 0); ++ do_test (0, 0, 2 << i, 254, 0); ++ do_test (0, 0, 2 << i, 127, 1); ++ do_test (0, 0, 2 << i, 254, 1); ++ do_test (0, 0, 2 << i, 127, -1); ++ do_test (0, 0, 2 << i, 254, -1); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (i, 2 * i, 8 << i, 127, 0); ++ do_test (2 * i, i, 8 << i, 254, 0); ++ do_test (i, 2 * i, 8 << i, 127, 1); ++ do_test (2 * i, i, 8 << i, 254, 1); ++ do_test (i, 2 * i, 8 << i, 127, -1); ++ do_test (2 * i, i, 8 << i, 254, -1); ++ } ++ ++ do_random_tests (); ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strcasestr.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strcasestr.c +@@ -0,0 +1,197 @@ ++/* Test and measure strcasestr functions. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Ulrich Drepper , 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define TEST_MAIN ++#include "test-string.h" ++ ++ ++#define STRCASESTR simple_strcasestr ++#define NO_ALIAS ++#define __strncasecmp strncasecmp ++#include "strcasestr.c" ++ ++ ++static char * ++stupid_strcasestr (const char *s1, const char *s2) ++{ ++ ssize_t s1len = strlen (s1); ++ ssize_t s2len = strlen (s2); ++ ++ if (s2len > s1len) ++ return NULL; ++ ++ for (ssize_t i = 0; i <= s1len - s2len; ++i) ++ { ++ size_t j; ++ for (j = 0; j < s2len; ++j) ++ if (tolower (s1[i + j]) != tolower (s2[j])) ++ break; ++ if (j == s2len) ++ return (char *) s1 + i; ++ } ++ ++ return NULL; ++} ++ ++ ++typedef char *(*proto_t) (const char *, const char *); ++ ++IMPL (stupid_strcasestr, 0) ++IMPL (simple_strcasestr, 0) ++IMPL (strcasestr, 1) ++ ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result) ++{ ++ char *result = CALL (impl, s1, s2); ++ if (result != exp_result) ++ { ++ error (0, 0, "Wrong result in function %s %s %s", impl->name, ++ result, exp_result); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~(hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++ ++static void ++do_test (size_t align1, size_t align2, size_t len1, size_t len2, ++ int fail) ++{ ++ char *s1 = (char *) (buf1 + align1); ++ char *s2 = (char *) (buf2 + align2); ++ ++ static const char d[] = "1234567890abcxyz"; ++#define dl (sizeof (d) - 1) ++ char *ss2 = s2; ++ for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ ss2 = mempcpy (ss2, d, t); ++ } ++ s2[len2] = '\0'; ++ ++ if (fail) ++ { ++ char *ss1 = s1; ++ for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ memcpy (ss1, d, t); ++ ++ss1[len2 > 7 ? 7 : len2 - 1]; ++ ss1 += t; ++ } ++ } ++ else ++ { ++ memset (s1, '0', len1); ++ for (size_t i = 0; i < len2; ++i) ++ s1[len1 - len2 + i] = toupper (s2[i]); ++ } ++ s1[len1] = '\0'; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:", ++ len1, len2, align1, align2, fail ? "fail" : "found"); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++ ++static int ++test_main (void) ++{ ++ test_init (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (size_t klen = 2; klen < 32; ++klen) ++ for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen) ++ { ++ do_test (0, 0, hlen, klen, 0); ++ do_test (0, 0, hlen, klen, 1); ++ do_test (0, 3, hlen, klen, 0); ++ do_test (0, 3, hlen, klen, 1); ++ do_test (0, 9, hlen, klen, 0); ++ do_test (0, 9, hlen, klen, 1); ++ do_test (0, 15, hlen, klen, 0); ++ do_test (0, 15, hlen, klen, 1); ++ ++ do_test (3, 0, hlen, klen, 0); ++ do_test (3, 0, hlen, klen, 1); ++ do_test (3, 3, hlen, klen, 0); ++ do_test (3, 3, hlen, klen, 1); ++ do_test (3, 9, hlen, klen, 0); ++ do_test (3, 9, hlen, klen, 1); ++ do_test (3, 15, hlen, klen, 0); ++ do_test (3, 15, hlen, klen, 1); ++ ++ do_test (9, 0, hlen, klen, 0); ++ do_test (9, 0, hlen, klen, 1); ++ do_test (9, 3, hlen, klen, 0); ++ do_test (9, 3, hlen, klen, 1); ++ do_test (9, 9, hlen, klen, 0); ++ do_test (9, 9, hlen, klen, 1); ++ do_test (9, 15, hlen, klen, 0); ++ do_test (9, 15, hlen, klen, 1); ++ ++ do_test (15, 0, hlen, klen, 0); ++ do_test (15, 0, hlen, klen, 1); ++ do_test (15, 3, hlen, klen, 0); ++ do_test (15, 3, hlen, klen, 1); ++ do_test (15, 9, hlen, klen, 0); ++ do_test (15, 9, hlen, klen, 1); ++ do_test (15, 15, hlen, klen, 0); ++ do_test (15, 15, hlen, klen, 1); ++ } ++ ++ do_test (0, 0, page_size - 1, 16, 0); ++ do_test (0, 0, page_size - 1, 16, 1); ++ ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c +@@ -0,0 +1,349 @@ ++/* Test and measure strncasecmp functions. ++ Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Jakub Jelinek , 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#define TEST_MAIN ++#include "test-string.h" ++ ++typedef int (*proto_t) (const char *, const char *, size_t); ++static int simple_strncasecmp (const char *, const char *, size_t); ++static int stupid_strncasecmp (const char *, const char *, size_t); ++ ++IMPL (stupid_strncasecmp, 0) ++IMPL (simple_strncasecmp, 0) ++IMPL (strncasecmp, 1) ++ ++static int ++simple_strncasecmp (const char *s1, const char *s2, size_t n) ++{ ++ int ret; ++ ++ if (n == 0) ++ return 0; ++ ++ while ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) == 0 ++ && *s1++) ++ { ++ if (--n == 0) ++ return 0; ++ ++s2; ++ } ++ return ret; ++} ++ ++static int ++stupid_strncasecmp (const char *s1, const char *s2, size_t max) ++{ ++ size_t ns1 = strlen (s1) + 1; ++ size_t ns2 = strlen (s2) + 1; ++ size_t n = ns1 < ns2 ? ns1 : ns2; ++ if (n > max) ++ n = max; ++ int ret = 0; ++ ++ while (n--) ++ { ++ if ((ret = ((unsigned char) tolower (*s1) ++ - (unsigned char) tolower (*s2))) != 0) ++ break; ++ ++s1; ++ ++s2; ++ } ++ return ret; ++} ++ ++static int ++check_result (impl_t *impl, const char *s1, const char *s2, size_t n, ++ int exp_result) ++{ ++ int result = CALL (impl, s1, s2, n); ++ if ((exp_result == 0 && result != 0) ++ || (exp_result < 0 && result >= 0) ++ || (exp_result > 0 && result <= 0)) ++ { ++ error (0, 0, "Wrong result in function %s %d %d", impl->name, ++ result, exp_result); ++ ret = 1; ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n, ++ int exp_result) ++{ ++ if (check_result (impl, s1, s2, n, exp_result) < 0) ++ return; ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~ (hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2, n); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++static void ++do_test (size_t align1, size_t align2, size_t n, size_t len, int max_char, ++ int exp_result) ++{ ++ size_t i; ++ char *s1, *s2; ++ ++ if (len == 0) ++ return; ++ ++ align1 &= 7; ++ if (align1 + len + 1 >= page_size) ++ return; ++ ++ align2 &= 7; ++ if (align2 + len + 1 >= page_size) ++ return; ++ ++ s1 = (char *) (buf1 + align1); ++ s2 = (char *) (buf2 + align2); ++ ++ for (i = 0; i < len; i++) ++ { ++ s1[i] = toupper (1 + 23 * i % max_char); ++ s2[i] = tolower (s1[i]); ++ } ++ ++ s1[len] = s2[len] = 0; ++ s1[len + 1] = 23; ++ s2[len + 1] = 24 + exp_result; ++ if ((s2[len - 1] == 'z' && exp_result == -1) ++ || (s2[len - 1] == 'a' && exp_result == 1)) ++ s1[len - 1] += exp_result; ++ else ++ s2[len - 1] -= exp_result; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, n, exp_result); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++static void ++do_random_tests (void) ++{ ++ size_t i, j, n, align1, align2, pos, len1, len2; ++ int result; ++ long r; ++ unsigned char *p1 = buf1 + page_size - 512; ++ unsigned char *p2 = buf2 + page_size - 512; ++ ++ for (n = 0; n < ITERATIONS; n++) ++ { ++ align1 = random () & 31; ++ if (random () & 1) ++ align2 = random () & 31; ++ else ++ align2 = align1 + (random () & 24); ++ pos = random () & 511; ++ j = align1 > align2 ? align1 : align2; ++ if (pos + j >= 511) ++ pos = 510 - j - (random () & 7); ++ len1 = random () & 511; ++ if (pos >= len1 && (random () & 1)) ++ len1 = pos + (random () & 7); ++ if (len1 + j >= 512) ++ len1 = 511 - j - (random () & 7); ++ if (pos >= len1) ++ len2 = len1; ++ else ++ len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0); ++ j = (pos > len2 ? pos : len2) + align1 + 64; ++ if (j > 512) ++ j = 512; ++ for (i = 0; i < j; ++i) ++ { ++ p1[i] = tolower (random () & 255); ++ if (i < len1 + align1 && !p1[i]) ++ { ++ p1[i] = tolower (random () & 255); ++ if (!p1[i]) ++ p1[i] = tolower (1 + (random () & 127)); ++ } ++ } ++ for (i = 0; i < j; ++i) ++ { ++ p2[i] = toupper (random () & 255); ++ if (i < len2 + align2 && !p2[i]) ++ { ++ p2[i] = toupper (random () & 255); ++ if (!p2[i]) ++ toupper (p2[i] = 1 + (random () & 127)); ++ } ++ } ++ ++ result = 0; ++ memcpy (p2 + align2, p1 + align1, pos); ++ if (pos < len1) ++ { ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ { ++ p2[align2 + pos] = toupper (random () & 255); ++ if (tolower (p2[align2 + pos]) == p1[align1 + pos]) ++ p2[align2 + pos] = toupper (p1[align1 + pos] ++ + 3 + (random () & 127)); ++ } ++ ++ if (p1[align1 + pos] < tolower (p2[align2 + pos])) ++ result = -1; ++ else ++ result = 1; ++ } ++ p1[len1 + align1] = 0; ++ p2[len2 + align2] = 0; ++ ++ FOR_EACH_IMPL (impl, 1) ++ { ++ r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2), ++ pos + 1 + (random () & 255)); ++ /* Test whether on 64-bit architectures where ABI requires ++ callee to promote has the promotion been done. */ ++ asm ("" : "=g" (r) : "0" (r)); ++ if ((r == 0 && result) ++ || (r < 0 && result >= 0) ++ || (r > 0 && result <= 0)) ++ { ++ error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p", ++ n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2); ++ ret = 1; ++ } ++ } ++ } ++} ++ ++ ++static void ++check1 (void) ++{ ++ static char cp [4096+16] __attribute__ ((aligned(4096))); ++ static char gotrel[4096] __attribute__ ((aligned(4096))); ++ char *s1 = cp + 0xffa; ++ char *s2 = gotrel + 0xcbe; ++ int exp_result; ++ size_t n = 6; ++ ++ strcpy (s1, "gottpoff"); ++ strcpy (s2, "GOTPLT"); ++ ++ exp_result = simple_strncasecmp (s1, s2, n); ++ FOR_EACH_IMPL (impl, 0) ++ check_result (impl, s1, s2, n, exp_result); ++} ++ ++int ++test_main (void) ++{ ++ size_t i; ++ ++ test_init (); ++ ++ check1 (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (i = 1; i < 16; ++i) ++ { ++ do_test (i, i, i - 1, i, 127, 0); ++ ++ do_test (i, i, i, i, 127, 0); ++ do_test (i, i, i, i, 127, 1); ++ do_test (i, i, i, i, 127, -1); ++ ++ do_test (i, i, i + 1, i, 127, 0); ++ do_test (i, i, i + 1, i, 127, 1); ++ do_test (i, i, i + 1, i, 127, -1); ++ } ++ ++ for (i = 1; i < 10; ++i) ++ { ++ do_test (0, 0, (2 << i) - 1, 2 << i, 127, 0); ++ do_test (0, 0, 2 << i, 2 << i, 254, 0); ++ do_test (0, 0, (2 << i) + 1, 2 << i, 127, 0); ++ ++ do_test (0, 0, (2 << i) + 1, 2 << i, 254, 0); ++ ++ do_test (0, 0, 2 << i, 2 << i, 127, 1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 127, 1); ++ ++ do_test (0, 0, 2 << i, 2 << i, 254, 1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 254, 1); ++ ++ do_test (0, 0, 2 << i, 2 << i, 127, -1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 127, -1); ++ ++ do_test (0, 0, 2 << i, 2 << i, 254, -1); ++ do_test (0, 0, (2 << i) + 10, 2 << i, 254, -1); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (i, 2 * i, (8 << i) - 1, 8 << i, 127, 0); ++ do_test (i, 2 * i, 8 << i, 8 << i, 127, 0); ++ do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 0); ++ ++ do_test (2 * i, i, (8 << i) - 1, 8 << i, 254, 0); ++ do_test (2 * i, i, 8 << i, 8 << i, 254, 0); ++ do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 0); ++ ++ do_test (i, 2 * i, 8 << i, 8 << i, 127, 1); ++ do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 1); ++ ++ do_test (2 * i, i, 8 << i, 8 << i, 254, 1); ++ do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 1); ++ ++ do_test (i, 2 * i, 8 << i, 8 << i, 127, -1); ++ do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, -1); ++ ++ do_test (2 * i, i, 8 << i, 8 << i, 254, -1); ++ do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, -1); ++ } ++ ++ do_random_tests (); ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strnlen.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strnlen.c +@@ -0,0 +1,197 @@ ++/* Test and measure strlen functions. ++ Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Jakub Jelinek , 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define TEST_MAIN ++#include "test-string.h" ++ ++typedef size_t (*proto_t) (const char *, size_t); ++size_t simple_strnlen (const char *, size_t); ++ ++IMPL (simple_strnlen, 0) ++IMPL (strnlen, 1) ++ ++size_t ++simple_strnlen (const char *s, size_t maxlen) ++{ ++ size_t i; ++ ++ for (i = 0; i < maxlen && s[i]; ++i); ++ return i; ++} ++ ++static void ++do_one_test (impl_t *impl, const char *s, size_t maxlen, size_t exp_len) ++{ ++ size_t len = CALL (impl, s, maxlen); ++ if (len != exp_len) ++ { ++ error (0, 0, "Wrong result in function %s %zd %zd", impl->name, ++ len, exp_len); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~ (hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s, maxlen); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++static void ++do_test (size_t align, size_t len, size_t maxlen, int max_char) ++{ ++ size_t i; ++ ++ align &= 7; ++ if (align + len >= page_size) ++ return; ++ ++ for (i = 0; i < len; ++i) ++ buf1[align + i] = 1 + 7 * i % max_char; ++ buf1[align + len] = 0; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd, alignment %2zd:", len, align); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, (char *) (buf1 + align), maxlen, MIN (len, maxlen)); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++static void ++do_random_tests (void) ++{ ++ size_t i, j, n, align, len; ++ unsigned char *p = buf1 + page_size - 512; ++ ++ for (n = 0; n < ITERATIONS; n++) ++ { ++ align = random () & 15; ++ len = random () & 511; ++ if (len + align > 510) ++ len = 511 - align - (random () & 7); ++ j = len + align + 64; ++ if (j > 512) ++ j = 512; ++ ++ for (i = 0; i < j; i++) ++ { ++ if (i == len + align) ++ p[i] = 0; ++ else ++ { ++ p[i] = random () & 255; ++ if (i >= align && i < len + align && !p[i]) ++ p[i] = (random () & 127) + 1; ++ } ++ } ++ ++ FOR_EACH_IMPL (impl, 1) ++ { ++ if (len > 0 ++ && CALL (impl, (char *) (p + align), len - 1) != len - 1) ++ { ++ error (0, 0, "Iteration %zd (limited) - wrong result in function %s (%zd) %zd != %zd, p %p", ++ n, impl->name, align, ++ CALL (impl, (char *) (p + align), len - 1), len - 1, p); ++ ret = 1; ++ } ++ if (CALL (impl, (char *) (p + align), len) != len) ++ { ++ error (0, 0, "Iteration %zd (exact) - wrong result in function %s (%zd) %zd != %zd, p %p", ++ n, impl->name, align, ++ CALL (impl, (char *) (p + align), len), len, p); ++ ret = 1; ++ } ++ if (CALL (impl, (char *) (p + align), len + 1) != len) ++ { ++ error (0, 0, "Iteration %zd (long) - wrong result in function %s (%zd) %zd != %zd, p %p", ++ n, impl->name, align, ++ CALL (impl, (char *) (p + align), len + 1), len, p); ++ ret = 1; ++ } ++ } ++ } ++} ++ ++int ++test_main (void) ++{ ++ size_t i; ++ ++ test_init (); ++ ++ printf ("%20s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (0, i, i - 1, 127); ++ do_test (0, i, i, 127); ++ do_test (0, i, i + 1, 127); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ { ++ do_test (i, i, i - 1, 127); ++ do_test (i, i, i, 127); ++ do_test (i, i, i + 1, 127); ++ } ++ ++ for (i = 2; i <= 10; ++i) ++ { ++ do_test (0, 1 << i, 5000, 127); ++ do_test (1, 1 << i, 5000, 127); ++ } ++ ++ for (i = 1; i < 8; ++i) ++ do_test (0, i, 5000, 255); ++ ++ for (i = 1; i < 8; ++i) ++ do_test (i, i, 5000, 255); ++ ++ for (i = 2; i <= 10; ++i) ++ { ++ do_test (0, 1 << i, 5000, 255); ++ do_test (1, 1 << i, 5000, 255); ++ } ++ ++ do_random_tests (); ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/test-strstr.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/test-strstr.c +@@ -0,0 +1,194 @@ ++/* Test and measure strstr functions. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Written by Ulrich Drepper , 2010. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#define TEST_MAIN ++#include "test-string.h" ++ ++ ++#define STRSTR simple_strstr ++#include "strstr.c" ++ ++ ++static char * ++stupid_strstr (const char *s1, const char *s2) ++{ ++ ssize_t s1len = strlen (s1); ++ ssize_t s2len = strlen (s2); ++ ++ if (s2len > s1len) ++ return NULL; ++ ++ for (ssize_t i = 0; i <= s1len - s2len; ++i) ++ { ++ size_t j; ++ for (j = 0; j < s2len; ++j) ++ if (s1[i + j] != s2[j]) ++ break; ++ if (j == s2len) ++ return (char *) s1 + i; ++ } ++ ++ return NULL; ++} ++ ++ ++typedef char *(*proto_t) (const char *, const char *); ++ ++IMPL (stupid_strstr, 0) ++IMPL (simple_strstr, 0) ++IMPL (strstr, 1) ++ ++ ++static void ++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result) ++{ ++ char *result = CALL (impl, s1, s2); ++ if (result != exp_result) ++ { ++ error (0, 0, "Wrong result in function %s %s %s", impl->name, ++ result, exp_result); ++ ret = 1; ++ return; ++ } ++ ++ if (HP_TIMING_AVAIL) ++ { ++ hp_timing_t start __attribute ((unused)); ++ hp_timing_t stop __attribute ((unused)); ++ hp_timing_t best_time = ~(hp_timing_t) 0; ++ size_t i; ++ ++ for (i = 0; i < 32; ++i) ++ { ++ HP_TIMING_NOW (start); ++ CALL (impl, s1, s2); ++ HP_TIMING_NOW (stop); ++ HP_TIMING_BEST (best_time, start, stop); ++ } ++ ++ printf ("\t%zd", (size_t) best_time); ++ } ++} ++ ++ ++static void ++do_test (size_t align1, size_t align2, size_t len1, size_t len2, ++ int fail) ++{ ++ char *s1 = (char *) (buf1 + align1); ++ char *s2 = (char *) (buf2 + align2); ++ ++ static const char d[] = "1234567890abcdef"; ++#define dl (sizeof (d) - 1) ++ char *ss2 = s2; ++ for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ ss2 = mempcpy (ss2, d, t); ++ } ++ s2[len2] = '\0'; ++ ++ if (fail) ++ { ++ char *ss1 = s1; ++ for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0) ++ { ++ size_t t = l > dl ? dl : l; ++ memcpy (ss1, d, t); ++ ++ss1[len2 > 7 ? 7 : len2 - 1]; ++ ss1 += t; ++ } ++ } ++ else ++ { ++ memset (s1, '0', len1); ++ memcpy (s1 + len1 - len2, s2, len2); ++ } ++ s1[len1] = '\0'; ++ ++ if (HP_TIMING_AVAIL) ++ printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:", ++ len1, len2, align1, align2, fail ? "fail" : "found"); ++ ++ FOR_EACH_IMPL (impl, 0) ++ do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2); ++ ++ if (HP_TIMING_AVAIL) ++ putchar ('\n'); ++} ++ ++ ++static int ++test_main (void) ++{ ++ test_init (); ++ ++ printf ("%23s", ""); ++ FOR_EACH_IMPL (impl, 0) ++ printf ("\t%s", impl->name); ++ putchar ('\n'); ++ ++ for (size_t klen = 2; klen < 32; ++klen) ++ for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen) ++ { ++ do_test (0, 0, hlen, klen, 0); ++ do_test (0, 0, hlen, klen, 1); ++ do_test (0, 3, hlen, klen, 0); ++ do_test (0, 3, hlen, klen, 1); ++ do_test (0, 9, hlen, klen, 0); ++ do_test (0, 9, hlen, klen, 1); ++ do_test (0, 15, hlen, klen, 0); ++ do_test (0, 15, hlen, klen, 1); ++ ++ do_test (3, 0, hlen, klen, 0); ++ do_test (3, 0, hlen, klen, 1); ++ do_test (3, 3, hlen, klen, 0); ++ do_test (3, 3, hlen, klen, 1); ++ do_test (3, 9, hlen, klen, 0); ++ do_test (3, 9, hlen, klen, 1); ++ do_test (3, 15, hlen, klen, 0); ++ do_test (3, 15, hlen, klen, 1); ++ ++ do_test (9, 0, hlen, klen, 0); ++ do_test (9, 0, hlen, klen, 1); ++ do_test (9, 3, hlen, klen, 0); ++ do_test (9, 3, hlen, klen, 1); ++ do_test (9, 9, hlen, klen, 0); ++ do_test (9, 9, hlen, klen, 1); ++ do_test (9, 15, hlen, klen, 0); ++ do_test (9, 15, hlen, klen, 1); ++ ++ do_test (15, 0, hlen, klen, 0); ++ do_test (15, 0, hlen, klen, 1); ++ do_test (15, 3, hlen, klen, 0); ++ do_test (15, 3, hlen, klen, 1); ++ do_test (15, 9, hlen, klen, 0); ++ do_test (15, 9, hlen, klen, 1); ++ do_test (15, 15, hlen, klen, 0); ++ do_test (15, 15, hlen, klen, 1); ++ } ++ ++ do_test (0, 0, page_size - 1, 16, 0); ++ do_test (0, 0, page_size - 1, 16, 1); ++ ++ return ret; ++} ++ ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/string/tester.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/tester.c ++++ glibc-2.12-2-gc4ccff1/string/tester.c +@@ -441,20 +441,21 @@ test_strnlen (void) + check (strnlen ("", 10) == 0, 1); /* Empty. */ + check (strnlen ("a", 10) == 1, 2); /* Single char. */ + check (strnlen ("abcd", 10) == 4, 3); /* Multiple chars. */ +- check (strnlen ("foo", (size_t)-1) == 3, 4); /* limits of n. */ ++ check (strnlen ("foo", (size_t) -1) == 3, 4); /* limits of n. */ ++ check (strnlen ("abcd", 0) == 0, 5); /* Restricted. */ ++ check (strnlen ("abcd", 1) == 1, 6); /* Restricted. */ ++ check (strnlen ("abcd", 2) == 2, 7); /* Restricted. */ ++ check (strnlen ("abcd", 3) == 3, 8); /* Restricted. */ ++ check (strnlen ("abcd", 4) == 4, 9); /* Restricted. */ + +- { +- char buf[4096]; +- int i; +- char *p; +- for (i=0; i < 0x100; i++) +- { +- p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i; +- strcpy (p, "OK"); +- strcpy (p+3, "BAD/WRONG"); +- check (strnlen (p, 100) == 2, 5+i); +- } +- } ++ char buf[4096]; ++ for (int i = 0; i < 0x100; ++i) ++ { ++ char *p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i; ++ strcpy (p, "OK"); ++ strcpy (p + 3, "BAD/WRONG"); ++ check (strnlen (p, 100) == 2, 10 + i); ++ } + } + + static void +Index: glibc-2.12-2-gc4ccff1/string/tst-strlen.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/tst-strlen.c ++++ glibc-2.12-2-gc4ccff1/string/tst-strlen.c +@@ -31,11 +31,21 @@ main(int argc, char *argv[]) + buf[words * 4 + 3] = (last & 8) != 0 ? 'e' : '\0'; + buf[words * 4 + 4] = '\0'; + +- if (strlen (buf) != words * 4 + lens[last] +- || strnlen (buf, -1) != words * 4 + lens[last]) ++ if (strlen (buf) != words * 4 + lens[last]) + { +- printf ("failed for base=%Zu, words=%Zu, and last=%Zu\n", +- base, words, last); ++ printf ("\ ++strlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n", ++ base, words, last, ++ strlen (buf), words * 4 + lens[last]); ++ return 1; ++ } ++ ++ if (strnlen (buf, -1) != words * 4 + lens[last]) ++ { ++ printf ("\ ++strnlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n", ++ base, words, last, ++ strnlen (buf, -1), words * 4 + lens[last]); + return 1; + } + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +@@ -9,7 +9,7 @@ sysdep_routines += bzero-sse2 memset-sse + memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \ + memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \ + strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \ +- memcmp-ssse3 memcmp-sse4 ++ memcmp-ssse3 memcmp-sse4 strcasestr-nonascii + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +@@ -17,6 +17,7 @@ CFLAGS-strpbrk-c.c += -msse4 + CFLAGS-strspn-c.c += -msse4 + CFLAGS-strstr.c += -msse4 + CFLAGS-strcasestr.c += -msse4 ++CFLAGS-strcasestr-nonascii.c += -msse4 + endif + endif + +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c +@@ -0,0 +1,2 @@ ++#include ++#include +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile +@@ -12,7 +12,8 @@ sysdep_routines += _mcount + endif + + ifeq ($(subdir),string) +-sysdep_routines += cacheinfo ++sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii ++gen-as-const-headers += locale-defines.sym + endif + + ifeq ($(subdir),elf) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym +@@ -0,0 +1,11 @@ ++#include ++#include ++#include ++ ++-- ++ ++LOCALE_T___LOCALES offsetof (struct __locale_struct, __locales) ++LC_CTYPE ++_NL_CTYPE_NONASCII_CASE ++LOCALE_DATA_VALUES offsetof (struct __locale_data, values) ++SIZEOF_VALUES sizeof (((struct __locale_data *) 0)->values[0]) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +@@ -5,7 +5,9 @@ endif + + ifeq ($(subdir),string) + sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ +- strend-sse4 memcmp-sse4 ++ strend-sse4 memcmp-sse4 \ ++ strcasestr-nonascii strcasecmp_l-ssse3 \ ++ strncase_l-ssse3 + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +@@ -13,5 +15,6 @@ CFLAGS-strpbrk-c.c += -msse4 + CFLAGS-strspn-c.c += -msse4 + CFLAGS-strstr.c += -msse4 + CFLAGS-strcasestr.c += -msse4 ++CFLAGS-strcasestr-nonascii.c += -msse4 + endif + endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S +@@ -0,0 +1,6 @@ ++#define USE_SSSE3 1 ++#define USE_AS_STRCASECMP_L ++#define NO_NOLOCALE_ALIAS ++#define STRCMP __strcasecmp_l_ssse3 ++#define __strcasecmp __strcasecmp_ssse3 ++#include "../strcmp.S" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strcasecmp_l ++#define USE_AS_STRCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strcasecmp_l, strcasecmp_l) ++libc_hidden_def (strcasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c +@@ -0,0 +1,50 @@ ++/* strstr with SSE4.2 intrinsics ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++# include ++ ++ ++/* Similar to __m128i_strloadu. Convert to lower case for none-POSIX/C ++ locale. */ ++static inline __m128i ++__m128i_strloadu_tolower (const unsigned char *p) ++{ ++ union ++ { ++ char b[16]; ++ __m128i x; ++ } u; ++ ++ for (int i = 0; i < 16; ++i) ++ if (p[i] == 0) ++ { ++ u.b[i] = 0; ++ break; ++ } ++ else ++ u.b[i] = tolower (p[i]); ++ ++ return u.x; ++} ++ ++ ++#define STRCASESTR_NONASCII ++#define USE_AS_STRCASESTR ++#define STRSTR_SSE42 __strcasestr_sse42_nonascii ++#include "strstr.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcasestr.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c +@@ -1,3 +1,7 @@ ++extern char *__strcasestr_sse42_nonascii (const unsigned char *s1, ++ const unsigned char *s2) ++ attribute_hidden; ++ + #define USE_AS_STRCASESTR + #define STRSTR_SSE42 __strcasestr_sse42 + #include "strstr.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +@@ -24,7 +24,7 @@ + #ifdef USE_AS_STRNCMP + /* Since the counter, %r11, is unsigned, we branch to strcmp_exitz + if the new counter > the old one or is 0. */ +-#define UPDATE_STRNCMP_COUNTER \ ++# define UPDATE_STRNCMP_COUNTER \ + /* calculate left number to compare */ \ + lea -16(%rcx, %r11), %r9; \ + cmp %r9, %r11; \ +@@ -33,23 +33,50 @@ + je LABEL(strcmp_exitz_sse4_2); \ + mov %r9, %r11 + +-#define STRCMP_SSE42 __strncmp_sse42 +-#define STRCMP_SSSE3 __strncmp_ssse3 +-#define STRCMP_SSE2 __strncmp_sse2 +-#define __GI_STRCMP __GI_strncmp ++# define STRCMP_SSE42 __strncmp_sse42 ++# define STRCMP_SSSE3 __strncmp_ssse3 ++# define STRCMP_SSE2 __strncmp_sse2 ++# define __GI_STRCMP __GI_strncmp ++#elif defined USE_AS_STRCASECMP_L ++# include "locale-defines.h" ++ ++# define UPDATE_STRNCMP_COUNTER ++ ++# define STRCMP_SSE42 __strcasecmp_l_sse42 ++# define STRCMP_SSSE3 __strcasecmp_l_ssse3 ++# define STRCMP_SSE2 __strcasecmp_l_sse2 ++# define __GI_STRCMP __GI___strcasecmp_l ++#elif defined USE_AS_STRNCASECMP_L ++# include "locale-defines.h" ++ ++/* Since the counter, %r11, is unsigned, we branch to strcmp_exitz ++ if the new counter > the old one or is 0. */ ++# define UPDATE_STRNCMP_COUNTER \ ++ /* calculate left number to compare */ \ ++ lea -16(%rcx, %r11), %r9; \ ++ cmp %r9, %r11; \ ++ jb LABEL(strcmp_exitz_sse4_2); \ ++ test %r9, %r9; \ ++ je LABEL(strcmp_exitz_sse4_2); \ ++ mov %r9, %r11 ++ ++# define STRCMP_SSE42 __strncasecmp_l_sse42 ++# define STRCMP_SSSE3 __strncasecmp_l_ssse3 ++# define STRCMP_SSE2 __strncasecmp_l_sse2 ++# define __GI_STRCMP __GI___strncasecmp_l + #else +-#define UPDATE_STRNCMP_COUNTER +-#ifndef STRCMP +-#define STRCMP strcmp +-#define STRCMP_SSE42 __strcmp_sse42 +-#define STRCMP_SSSE3 __strcmp_ssse3 +-#define STRCMP_SSE2 __strcmp_sse2 +-#define __GI_STRCMP __GI_strcmp +-#endif ++# define UPDATE_STRNCMP_COUNTER ++# ifndef STRCMP ++# define STRCMP strcmp ++# define STRCMP_SSE42 __strcmp_sse42 ++# define STRCMP_SSSE3 __strcmp_ssse3 ++# define STRCMP_SSE2 __strcmp_sse2 ++# define __GI_STRCMP __GI_strcmp ++# endif + #endif + + #ifndef LABEL +-#define LABEL(l) L(l) ++# define LABEL(l) L(l) + #endif + + /* Define multiple versions only for the definition in libc. Don't +@@ -73,6 +100,43 @@ ENTRY(STRCMP) + 2: ret + END(STRCMP) + ++# ifdef USE_AS_STRCASECMP_L ++ENTRY(__strcasecmp) ++ .type __strcasecmp, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: ++ leaq __strcasecmp_sse42(%rip), %rax ++ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) ++ jnz 2f ++ leaq __strcasecmp_ssse3(%rip), %rax ++ testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) ++ jnz 2f ++ leaq __strcasecmp_sse2(%rip), %rax ++2: ret ++END(__strcasecmp) ++weak_alias (__strcasecmp, strcasecmp) ++# endif ++# ifdef USE_AS_STRNCASECMP_L ++ENTRY(__strncasecmp) ++ .type __strncasecmp, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: ++ leaq __strncasecmp_sse42(%rip), %rax ++ testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) ++ jnz 2f ++ leaq __strncasecmp_ssse3(%rip), %rax ++ testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip) ++ jnz 2f ++ leaq __strncasecmp_sse2(%rip), %rax ++2: ret ++END(__strncasecmp) ++weak_alias (__strncasecmp, strncasecmp) ++# endif ++ + /* We use 0x1a: + _SIDD_SBYTE_OPS + | _SIDD_CMP_EQUAL_EACH +@@ -101,8 +165,31 @@ END(STRCMP) + + /* Put all SSE 4.2 functions together. */ + .section .text.sse4.2,"ax",@progbits +- .align 16 ++ .align 16 + .type STRCMP_SSE42, @function ++# ifdef USE_AS_STRCASECMP_L ++ENTRY (__strcasecmp_sse42) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rdx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END (__strcasecmp_sse42) ++ /* FALLTHROUGH to strcasecmp_l. */ ++# endif ++# ifdef USE_AS_STRNCASECMP_L ++ENTRY (__strncasecmp_sse42) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rcx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END (__strncasecmp_sse42) ++ /* FALLTHROUGH to strncasecmp_l. */ ++# endif ++ + STRCMP_SSE42: + cfi_startproc + CALL_MCOUNT +@@ -110,24 +197,87 @@ STRCMP_SSE42: + /* + * This implementation uses SSE to compare up to 16 bytes at a time. + */ +-#ifdef USE_AS_STRNCMP ++# ifdef USE_AS_STRCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax ++# else ++ movq (%rdx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strcasecmp_l_nonascii ++# endif ++# ifdef USE_AS_STRNCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax ++# else ++ movq (%rcx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strncasecmp_l_nonascii ++# endif ++ ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + test %rdx, %rdx + je LABEL(strcmp_exitz_sse4_2) + cmp $1, %rdx + je LABEL(Byte0_sse4_2) + mov %rdx, %r11 +-#endif ++# endif + mov %esi, %ecx + mov %edi, %eax + /* Use 64bit AND here to avoid long NOP padding. */ + and $0x3f, %rcx /* rsi alignment in cache line */ + and $0x3f, %rax /* rdi alignment in cache line */ ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ .section .rodata.cst16,"aM",@progbits,16 ++ .align 16 ++.Lbelowupper_sse4: ++ .quad 0x4040404040404040 ++ .quad 0x4040404040404040 ++.Ltopupper_sse4: ++ .quad 0x5b5b5b5b5b5b5b5b ++ .quad 0x5b5b5b5b5b5b5b5b ++.Ltouppermask_sse4: ++ .quad 0x2020202020202020 ++ .quad 0x2020202020202020 ++ .previous ++ movdqa .Lbelowupper_sse4(%rip), %xmm4 ++# define UCLOW_reg %xmm4 ++ movdqa .Ltopupper_sse4(%rip), %xmm5 ++# define UCHIGH_reg %xmm5 ++ movdqa .Ltouppermask_sse4(%rip), %xmm6 ++# define LCQWORD_reg %xmm6 ++# endif + cmp $0x30, %ecx + ja LABEL(crosscache_sse4_2)/* rsi: 16-byte load will cross cache line */ + cmp $0x30, %eax + ja LABEL(crosscache_sse4_2)/* rdi: 16-byte load will cross cache line */ + movdqu (%rdi), %xmm1 + movdqu (%rsi), %xmm2 ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++# define TOLOWER(reg1, reg2) \ ++ movdqa reg1, %xmm7; \ ++ movdqa UCHIGH_reg, %xmm8; \ ++ movdqa reg2, %xmm9; \ ++ movdqa UCHIGH_reg, %xmm10; \ ++ pcmpgtb UCLOW_reg, %xmm7; \ ++ pcmpgtb reg1, %xmm8; \ ++ pcmpgtb UCLOW_reg, %xmm9; \ ++ pcmpgtb reg2, %xmm10; \ ++ pand %xmm8, %xmm7; \ ++ pand %xmm10, %xmm9; \ ++ pand LCQWORD_reg, %xmm7; \ ++ pand LCQWORD_reg, %xmm9; \ ++ por %xmm7, reg1; \ ++ por %xmm9, reg2 ++ TOLOWER (%xmm1, %xmm2) ++# else ++# define TOLOWER(reg1, reg2) ++# endif + pxor %xmm0, %xmm0 /* clear %xmm0 for null char checks */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pcmpeqb %xmm2, %xmm1 /* compare first 16 bytes for equality */ +@@ -135,10 +285,10 @@ STRCMP_SSE42: + pmovmskb %xmm1, %edx + sub $0xffff, %edx /* if first 16 bytes are same, edx == 0xffff */ + jnz LABEL(less16bytes_sse4_2)/* If not, find different value or null char */ +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2)/* finish comparision */ +-#endif ++# endif + add $16, %rsi /* prepare to search next 16 bytes */ + add $16, %rdi /* prepare to search next 16 bytes */ + +@@ -180,7 +330,13 @@ LABEL(ashr_0_sse4_2): + movdqa (%rsi), %xmm1 + pxor %xmm0, %xmm0 /* clear %xmm0 for null char check */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpeqb (%rdi), %xmm1 /* compare 16 bytes for equality */ ++# else ++ movdqa (%rdi), %xmm2 ++ TOLOWER (%xmm1, %xmm2) ++ pcmpeqb %xmm2, %xmm1 /* compare 16 bytes for equality */ ++# endif + psubb %xmm0, %xmm1 /* packed sub of comparison results*/ + pmovmskb %xmm1, %r9d + shr %cl, %edx /* adjust 0xffff for offset */ +@@ -204,44 +360,60 @@ LABEL(ashr_0_sse4_2): + .p2align 4 + LABEL(ashr_0_use_sse4_2): + movdqa (%rdi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + lea 16(%rdx), %rdx + jbe LABEL(ashr_0_use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + movdqa (%rdi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + lea 16(%rdx), %rdx + jbe LABEL(ashr_0_use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + jmp LABEL(ashr_0_use_sse4_2) + + + .p2align 4 + LABEL(ashr_0_use_sse4_2_exit): + jnc LABEL(strcmp_exitz_sse4_2) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rcx, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + lea -16(%rdx, %rcx), %rcx + movzbl (%rdi, %rcx), %eax + movzbl (%rsi, %rcx), %edx ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx ++ movl (%rcx,%rax,4), %eax ++ movl (%rcx,%rdx,4), %edx ++# endif + sub %edx, %eax + ret + + + +- + /* + * The following cases will be handled by ashr_1 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case ++ * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case + * n(15) n -15 0(15 +(n-15) - n) ashr_1 + */ + .p2align 4 +@@ -251,6 +423,7 @@ LABEL(ashr_1_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pslldq $15, %xmm2 /* shift first string to align with second */ ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 /* compare 16 bytes for equality */ + psubb %xmm0, %xmm2 /* packed sub of comparison results*/ + pmovmskb %xmm2, %r9d +@@ -281,12 +454,18 @@ LABEL(loop_ashr_1_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $1, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -294,12 +473,18 @@ LABEL(loop_ashr_1_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $1, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_1_use_sse4_2) + +@@ -309,10 +494,10 @@ LABEL(nibble_ashr_1_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $1, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $14, %ecx + ja LABEL(loop_ashr_1_use_sse4_2) + +@@ -320,7 +505,7 @@ LABEL(nibble_ashr_1_use_sse4_2): + + /* + * The following cases will be handled by ashr_2 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case ++ * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case + * n(14~15) n -14 1(15 +(n-14) - n) ashr_2 + */ + .p2align 4 +@@ -330,6 +515,7 @@ LABEL(ashr_2_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $14, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -360,12 +546,18 @@ LABEL(loop_ashr_2_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $2, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -373,12 +565,18 @@ LABEL(loop_ashr_2_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $2, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_2_use_sse4_2) + +@@ -388,10 +586,10 @@ LABEL(nibble_ashr_2_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $2, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $13, %ecx + ja LABEL(loop_ashr_2_use_sse4_2) + +@@ -409,6 +607,7 @@ LABEL(ashr_3_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $13, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -439,12 +638,18 @@ LABEL(loop_ashr_3_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $3, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -452,12 +657,18 @@ LABEL(loop_ashr_3_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $3, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_3_use_sse4_2) + +@@ -467,10 +678,10 @@ LABEL(nibble_ashr_3_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $3, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $12, %ecx + ja LABEL(loop_ashr_3_use_sse4_2) + +@@ -488,6 +699,7 @@ LABEL(ashr_4_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $12, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -519,12 +731,18 @@ LABEL(loop_ashr_4_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $4, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -532,12 +750,18 @@ LABEL(loop_ashr_4_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $4, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_4_use_sse4_2) + +@@ -547,10 +771,10 @@ LABEL(nibble_ashr_4_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $4, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $11, %ecx + ja LABEL(loop_ashr_4_use_sse4_2) + +@@ -559,7 +783,7 @@ LABEL(nibble_ashr_4_use_sse4_2): + /* + * The following cases will be handled by ashr_5 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(11~15) n - 11 4(15 +(n-11) - n) ashr_5 ++ * n(11~15) n - 11 4(15 +(n-11) - n) ashr_5 + */ + .p2align 4 + LABEL(ashr_5_sse4_2): +@@ -568,6 +792,7 @@ LABEL(ashr_5_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $11, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -599,12 +824,18 @@ LABEL(loop_ashr_5_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $5, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -613,12 +844,18 @@ LABEL(loop_ashr_5_use_sse4_2): + movdqa (%rdi, %rdx), %xmm0 + + palignr $5, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_5_use_sse4_2) + +@@ -628,10 +865,10 @@ LABEL(nibble_ashr_5_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $5, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $10, %ecx + ja LABEL(loop_ashr_5_use_sse4_2) + +@@ -640,7 +877,7 @@ LABEL(nibble_ashr_5_use_sse4_2): + /* + * The following cases will be handled by ashr_6 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(10~15) n - 10 5(15 +(n-10) - n) ashr_6 ++ * n(10~15) n - 10 5(15 +(n-10) - n) ashr_6 + */ + .p2align 4 + LABEL(ashr_6_sse4_2): +@@ -649,6 +886,7 @@ LABEL(ashr_6_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $10, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -680,12 +918,18 @@ LABEL(loop_ashr_6_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $6, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -693,12 +937,18 @@ LABEL(loop_ashr_6_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $6, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_6_use_sse4_2) + +@@ -708,10 +958,10 @@ LABEL(nibble_ashr_6_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $6, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $9, %ecx + ja LABEL(loop_ashr_6_use_sse4_2) + +@@ -720,7 +970,7 @@ LABEL(nibble_ashr_6_use_sse4_2): + /* + * The following cases will be handled by ashr_7 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(9~15) n - 9 6(15 +(n - 9) - n) ashr_7 ++ * n(9~15) n - 9 6(15 +(n - 9) - n) ashr_7 + */ + .p2align 4 + LABEL(ashr_7_sse4_2): +@@ -729,6 +979,7 @@ LABEL(ashr_7_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $9, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -760,12 +1011,18 @@ LABEL(loop_ashr_7_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $7, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -773,12 +1030,18 @@ LABEL(loop_ashr_7_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $7, -16(%rdi, %rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_7_use_sse4_2) + +@@ -788,10 +1051,10 @@ LABEL(nibble_ashr_7_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $7, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $8, %ecx + ja LABEL(loop_ashr_7_use_sse4_2) + +@@ -800,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2): + /* + * The following cases will be handled by ashr_8 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(8~15) n - 8 7(15 +(n - 8) - n) ashr_8 ++ * n(8~15) n - 8 7(15 +(n - 8) - n) ashr_8 + */ + .p2align 4 + LABEL(ashr_8_sse4_2): +@@ -809,6 +1072,7 @@ LABEL(ashr_8_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $8, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -840,12 +1104,18 @@ LABEL(loop_ashr_8_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $8, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -853,12 +1123,18 @@ LABEL(loop_ashr_8_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $8, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_8_use_sse4_2) + +@@ -868,10 +1144,10 @@ LABEL(nibble_ashr_8_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $8, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $7, %ecx + ja LABEL(loop_ashr_8_use_sse4_2) + +@@ -880,7 +1156,7 @@ LABEL(nibble_ashr_8_use_sse4_2): + /* + * The following cases will be handled by ashr_9 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(7~15) n - 7 8(15 +(n - 7) - n) ashr_9 ++ * n(7~15) n - 7 8(15 +(n - 7) - n) ashr_9 + */ + .p2align 4 + LABEL(ashr_9_sse4_2): +@@ -889,6 +1165,7 @@ LABEL(ashr_9_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $7, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -921,12 +1198,18 @@ LABEL(loop_ashr_9_use_sse4_2): + movdqa (%rdi, %rdx), %xmm0 + + palignr $9, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -934,12 +1217,18 @@ LABEL(loop_ashr_9_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $9, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_9_use_sse4_2) + +@@ -949,10 +1238,10 @@ LABEL(nibble_ashr_9_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $9, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $6, %ecx + ja LABEL(loop_ashr_9_use_sse4_2) + +@@ -961,7 +1250,7 @@ LABEL(nibble_ashr_9_use_sse4_2): + /* + * The following cases will be handled by ashr_10 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(6~15) n - 6 9(15 +(n - 6) - n) ashr_10 ++ * n(6~15) n - 6 9(15 +(n - 6) - n) ashr_10 + */ + .p2align 4 + LABEL(ashr_10_sse4_2): +@@ -970,6 +1259,7 @@ LABEL(ashr_10_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $6, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1001,12 +1291,18 @@ LABEL(loop_ashr_10_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $10, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1014,12 +1310,18 @@ LABEL(loop_ashr_10_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $10, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_10_use_sse4_2) + +@@ -1029,10 +1331,10 @@ LABEL(nibble_ashr_10_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $10, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $5, %ecx + ja LABEL(loop_ashr_10_use_sse4_2) + +@@ -1041,7 +1343,7 @@ LABEL(nibble_ashr_10_use_sse4_2): + /* + * The following cases will be handled by ashr_11 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(5~15) n - 5 10(15 +(n - 5) - n) ashr_11 ++ * n(5~15) n - 5 10(15 +(n - 5) - n) ashr_11 + */ + .p2align 4 + LABEL(ashr_11_sse4_2): +@@ -1050,6 +1352,7 @@ LABEL(ashr_11_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $5, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1081,12 +1384,18 @@ LABEL(loop_ashr_11_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $11, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1094,12 +1403,18 @@ LABEL(loop_ashr_11_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $11, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_11_use_sse4_2) + +@@ -1109,10 +1424,10 @@ LABEL(nibble_ashr_11_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $11, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $4, %ecx + ja LABEL(loop_ashr_11_use_sse4_2) + +@@ -1121,7 +1436,7 @@ LABEL(nibble_ashr_11_use_sse4_2): + /* + * The following cases will be handled by ashr_12 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(4~15) n - 4 11(15 +(n - 4) - n) ashr_12 ++ * n(4~15) n - 4 11(15 +(n - 4) - n) ashr_12 + */ + .p2align 4 + LABEL(ashr_12_sse4_2): +@@ -1130,6 +1445,7 @@ LABEL(ashr_12_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $4, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1161,12 +1477,18 @@ LABEL(loop_ashr_12_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $12, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1174,12 +1496,18 @@ LABEL(loop_ashr_12_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $12, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_12_use_sse4_2) + +@@ -1189,10 +1517,10 @@ LABEL(nibble_ashr_12_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $12, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $3, %ecx + ja LABEL(loop_ashr_12_use_sse4_2) + +@@ -1201,7 +1529,7 @@ LABEL(nibble_ashr_12_use_sse4_2): + /* + * The following cases will be handled by ashr_13 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(3~15) n - 3 12(15 +(n - 3) - n) ashr_13 ++ * n(3~15) n - 3 12(15 +(n - 3) - n) ashr_13 + */ + .p2align 4 + LABEL(ashr_13_sse4_2): +@@ -1210,6 +1538,7 @@ LABEL(ashr_13_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $3, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1242,12 +1571,18 @@ LABEL(loop_ashr_13_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $13, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1255,12 +1590,18 @@ LABEL(loop_ashr_13_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $13, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_13_use_sse4_2) + +@@ -1270,10 +1611,10 @@ LABEL(nibble_ashr_13_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $13, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $2, %ecx + ja LABEL(loop_ashr_13_use_sse4_2) + +@@ -1282,7 +1623,7 @@ LABEL(nibble_ashr_13_use_sse4_2): + /* + * The following cases will be handled by ashr_14 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(2~15) n - 2 13(15 +(n - 2) - n) ashr_14 ++ * n(2~15) n - 2 13(15 +(n - 2) - n) ashr_14 + */ + .p2align 4 + LABEL(ashr_14_sse4_2): +@@ -1291,6 +1632,7 @@ LABEL(ashr_14_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $2, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1323,12 +1665,18 @@ LABEL(loop_ashr_14_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $14, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1336,12 +1684,18 @@ LABEL(loop_ashr_14_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $14, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_14_use_sse4_2) + +@@ -1351,10 +1705,10 @@ LABEL(nibble_ashr_14_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $14, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $1, %ecx + ja LABEL(loop_ashr_14_use_sse4_2) + +@@ -1363,7 +1717,7 @@ LABEL(nibble_ashr_14_use_sse4_2): + /* + * The following cases will be handled by ashr_15 + * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case +- * n(1~15) n - 1 14(15 +(n - 1) - n) ashr_15 ++ * n(1~15) n - 1 14(15 +(n - 1) - n) ashr_15 + */ + .p2align 4 + LABEL(ashr_15_sse4_2): +@@ -1372,6 +1726,7 @@ LABEL(ashr_15_sse4_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $1, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1406,12 +1761,18 @@ LABEL(loop_ashr_15_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $15, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + + add $16, %rdx + add $16, %r10 +@@ -1419,12 +1780,18 @@ LABEL(loop_ashr_15_use_sse4_2): + + movdqa (%rdi, %rdx), %xmm0 + palignr $15, -16(%rdi, %rdx), %xmm0 +- pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L ++ pcmpistri $0x1a, (%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + jbe LABEL(use_sse4_2_exit) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add $16, %rdx + jmp LABEL(loop_ashr_15_use_sse4_2) + +@@ -1434,22 +1801,28 @@ LABEL(nibble_ashr_15_use_sse4_2): + movdqa -16(%rdi, %rdx), %xmm0 + psrldq $15, %xmm0 + pcmpistri $0x3a,%xmm0, %xmm0 +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + cmp %r11, %rcx + jae LABEL(nibble_ashr_use_sse4_2_exit) +-#endif ++# endif + cmp $0, %ecx + ja LABEL(loop_ashr_15_use_sse4_2) + + LABEL(nibble_ashr_use_sse4_2_exit): ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpistri $0x1a,(%rsi,%rdx), %xmm0 ++# else ++ movdqa (%rsi,%rdx), %xmm1 ++ TOLOWER (%xmm0, %xmm1) ++ pcmpistri $0x1a, %xmm1, %xmm0 ++# endif + .p2align 4 + LABEL(use_sse4_2_exit): + jnc LABEL(strcmp_exitz_sse4_2) +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rcx, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + add %rcx, %rdx + lea -16(%rdi, %r9), %rdi + movzbl (%rdi, %rdx), %eax +@@ -1458,6 +1831,12 @@ LABEL(use_sse4_2_exit): + jz LABEL(use_sse4_2_ret_sse4_2) + xchg %eax, %edx + LABEL(use_sse4_2_ret_sse4_2): ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx ++ movl (%rcx,%rdx,4), %edx ++ movl (%rcx,%rax,4), %eax ++# endif ++ + sub %edx, %eax + ret + +@@ -1473,13 +1852,19 @@ LABEL(ret_sse4_2): + LABEL(less16bytes_sse4_2): + bsf %rdx, %rdx /* find and store bit index in %rdx */ + +-#ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rdx, %r11 + jbe LABEL(strcmp_exitz_sse4_2) +-#endif ++# endif + movzbl (%rsi, %rdx), %ecx + movzbl (%rdi, %rdx), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + +@@ -1488,15 +1873,27 @@ LABEL(strcmp_exitz_sse4_2): + ret + + .p2align 4 ++ // XXX Same as code above + LABEL(Byte0_sse4_2): + movzx (%rsi), %ecx + movzx (%rdi), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + cfi_endproc + .size STRCMP_SSE42, .-STRCMP_SSE42 + ++# undef UCLOW_reg ++# undef UCHIGH_reg ++# undef LCQWORD_reg ++# undef TOLOWER ++ + /* Put all SSE 4.2 functions together. */ + .section .rodata.sse4.2,"a",@progbits + .p2align 3 +@@ -1528,6 +1925,27 @@ LABEL(unaligned_table_sse4_2): + # undef END + # define END(name) \ + cfi_endproc; .size STRCMP_SSE2, .-STRCMP_SSE2 ++ ++# ifdef USE_AS_STRCASECMP_L ++# define ENTRY2(name) \ ++ .type __strcasecmp_sse2, @function; \ ++ .align 16; \ ++ __strcasecmp_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# define END2(name) \ ++ cfi_endproc; .size __strcasecmp_sse2, .-__strcasecmp_sse2 ++# endif ++ ++# ifdef USE_AS_STRNCASECMP_L ++# define ENTRY2(name) \ ++ .type __strncasecmp_sse2, @function; \ ++ .align 16; \ ++ __strncasecmp_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# define END2(name) \ ++ cfi_endproc; .size __strncasecmp_sse2, .-__strncasecmp_sse2 ++# endif ++ + # undef libc_hidden_builtin_def + /* It doesn't make sense to send libc-internal strcmp calls through a PLT. + The speedup we get from using SSE4.2 instruction is likely eaten away +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S +@@ -0,0 +1,6 @@ ++#define USE_SSSE3 1 ++#define USE_AS_STRNCASECMP_L ++#define NO_NOLOCALE_ALIAS ++#define STRCMP __strncasecmp_l_ssse3 ++#define __strncasecmp __strncasecmp_ssse3 ++#include "../strcmp.S" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strncasecmp_l ++#define USE_AS_STRNCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strncasecmp_l, strncasecmp_l) ++libc_hidden_def (strncasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strstr.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c +@@ -67,10 +67,10 @@ + + case ECX CFlag ZFlag SFlag + 3 X 1 0 0/1 +- 4a 0 1 0 0 +- 4b 0 1 0 1 +- 4c 0 < X 1 0 0/1 +- 5 16 0 1 0 ++ 4a 0 1 0 0 ++ 4b 0 1 0 1 ++ 4c 0 < X 1 0 0/1 ++ 5 16 0 1 0 + + 3. An initial ordered-comparison fragment match, we fix up to do + subsequent string comparison +@@ -147,8 +147,7 @@ __m128i_shift_right (__m128i value, int + If EOS occurs within less than 16B before 4KB boundary, we don't + cross to next page. */ + +-static __m128i +-__attribute__ ((section (".text.sse4.2"))) ++static inline __m128i + __m128i_strloadu (const unsigned char * p) + { + int offset = ((size_t) p & (16 - 1)); +@@ -164,59 +163,36 @@ __m128i_strloadu (const unsigned char * + return _mm_loadu_si128 ((__m128i *) p); + } + +-#ifdef USE_AS_STRCASESTR ++#if defined USE_AS_STRCASESTR && !defined STRCASESTR_NONASCII + + /* Similar to __m128i_strloadu. Convert to lower case for POSIX/C + locale. */ +- +-static __m128i +-__attribute__ ((section (".text.sse4.2"))) +-__m128i_strloadu_tolower_posix (const unsigned char * p) ++static inline __m128i ++__m128i_strloadu_tolower (const unsigned char *p, __m128i rangeuc, ++ __m128i u2ldelta) + { + __m128i frag = __m128i_strloadu (p); + +- /* Convert frag to lower case for POSIX/C locale. */ +- __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41); +- __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0); +- __m128i mask1 = _mm_cmpistrm (rangeuc, frag, 0x44); +- __m128i mask2 = _mm_blendv_epi8 (u2ldelta, frag, mask1); +- mask2 = _mm_sub_epi8 (mask2, u2ldelta); +- return _mm_blendv_epi8 (frag, mask2, mask1); ++#define UCLOW 0x4040404040404040ULL ++#define UCHIGH 0x5b5b5b5b5b5b5b5bULL ++#define LCQWORD 0x2020202020202020ULL ++ /* Compare if 'Z' > bytes. Inverted way to get a mask for byte <= 'Z'. */ ++ __m128i r2 = _mm_cmpgt_epi8 (_mm_set1_epi64x (UCHIGH), frag); ++ /* Compare if bytes are > 'A' - 1. */ ++ __m128i r1 = _mm_cmpgt_epi8 (frag, _mm_set1_epi64x (UCLOW)); ++ /* Mask byte == ff if byte(r2) <= 'Z' and byte(r1) > 'A' - 1. */ ++ __m128i mask = _mm_and_si128 (r2, r1); ++ /* Apply lowercase bit 6 mask for above mask bytes == ff. */ ++ return _mm_or_si128 (frag, _mm_and_si128 (mask, _mm_set1_epi64x (LCQWORD))); + } + +-/* Similar to __m128i_strloadu. Convert to lower case for none-POSIX/C +- locale. */ +- +-static __m128i +-__attribute__ ((section (".text.sse4.2"))) +-__m128i_strloadu_tolower (const unsigned char * p) +-{ +- union +- { +- char b[16]; +- __m128i x; +- } u; +- +- for (int i = 0; i < 16; i++) +- if (p[i] == 0) +- { +- u.b[i] = 0; +- break; +- } +- else +- u.b[i] = tolower (p[i]); +- +- return u.x; +-} + #endif + + /* Calculate Knuth-Morris-Pratt string searching algorithm (or KMP + algorithm) overlap for a fully populated 16B vector. + Input parameter: 1st 16Byte loaded from the reference string of a + strstr function. +- We don't use KMP algorithm if reference string is less than 16B. +- */ +- ++ We don't use KMP algorithm if reference string is less than 16B. */ + static int + __inline__ __attribute__ ((__always_inline__,)) + KMP16Bovrlap (__m128i s2) +@@ -236,7 +212,7 @@ KMP16Bovrlap (__m128i s2) + return 1; + else if (!k1) + { +- /* There are al least two ditinct char in s2. If byte 0 and 1 are ++ /* There are al least two distinct chars in s2. If byte 0 and 1 are + idential and the distinct value lies farther down, we can deduce + the next byte offset to restart full compare is least no earlier + than byte 3. */ +@@ -256,23 +232,30 @@ STRSTR_SSE42 (const unsigned char *s1, c + #define p1 s1 + const unsigned char *p2 = s2; + +- if (p2[0] == '\0') ++#ifndef STRCASESTR_NONASCII ++ if (__builtin_expect (p2[0] == '\0', 0)) + return (char *) p1; + +- if (p1[0] == '\0') ++ if (__builtin_expect (p1[0] == '\0', 0)) + return NULL; + + /* Check if p1 length is 1 byte long. */ +- if (p1[1] == '\0') ++ if (__builtin_expect (p1[1] == '\0', 0)) + return p2[1] == '\0' && CMPBYTE (p1[0], p2[0]) ? (char *) p1 : NULL; ++#endif + + #ifdef USE_AS_STRCASESTR +- __m128i (*strloadu) (const unsigned char *); +- +- if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE) == 0) +- strloadu = __m128i_strloadu_tolower_posix; +- else +- strloadu = __m128i_strloadu_tolower; ++# ifndef STRCASESTR_NONASCII ++ if (__builtin_expect (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE) ++ != 0, 0)) ++ return __strcasestr_sse42_nonascii (s1, s2); ++ ++ const __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41); ++ const __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0); ++# define strloadu(p) __m128i_strloadu_tolower (p, rangeuc, u2ldelta) ++# else ++# define strloadu __m128i_strloadu_tolower ++# endif + #else + # define strloadu __m128i_strloadu + #endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S +@@ -0,0 +1 @@ ++/* In strcasecmp_l.S. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c +@@ -0,0 +1,8 @@ ++#include ++ ++extern int __strcasecmp_l_nonascii (__const char *__s1, __const char *__s2, ++ __locale_t __loc); ++ ++#define __strcasecmp_l __strcasecmp_l_nonascii ++#define USE_IN_EXTENDED_LOCALE_MODEL 1 ++#include +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strcasecmp_l ++#define USE_AS_STRCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strcasecmp_l, strcasecmp_l) ++libc_hidden_def (strcasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strcmp.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S +@@ -51,6 +51,31 @@ + je LABEL(strcmp_exitz); \ + mov %r9, %r11 + ++#elif defined USE_AS_STRCASECMP_L ++# include "locale-defines.h" ++ ++/* No support for strcasecmp outside libc so far since it is not needed. */ ++# ifdef NOT_IN_lib ++# error "strcasecmp_l not implemented so far" ++# endif ++ ++# define UPDATE_STRNCMP_COUNTER ++#elif defined USE_AS_STRNCASECMP_L ++# include "locale-defines.h" ++ ++/* No support for strncasecmp outside libc so far since it is not needed. */ ++# ifdef NOT_IN_lib ++# error "strncasecmp_l not implemented so far" ++# endif ++ ++# define UPDATE_STRNCMP_COUNTER \ ++ /* calculate left number to compare */ \ ++ lea -16(%rcx, %r11), %r9; \ ++ cmp %r9, %r11; \ ++ jb LABEL(strcmp_exitz); \ ++ test %r9, %r9; \ ++ je LABEL(strcmp_exitz); \ ++ mov %r9, %r11 + #else + # define UPDATE_STRNCMP_COUNTER + # ifndef STRCMP +@@ -64,6 +89,46 @@ + .section .text.ssse3,"ax",@progbits + #endif + ++#ifdef USE_AS_STRCASECMP_L ++# ifndef ENTRY2 ++# define ENTRY2(name) ENTRY (name) ++# define END2(name) END (name) ++# endif ++ ++ENTRY2 (__strcasecmp) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rdx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END2 (__strcasecmp) ++# ifndef NO_NOLOCALE_ALIAS ++weak_alias (__strcasecmp, strcasecmp) ++libc_hidden_def (__strcasecmp) ++# endif ++ /* FALLTHROUGH to strcasecmp_l. */ ++#elif defined USE_AS_STRNCASECMP_L ++# ifndef ENTRY2 ++# define ENTRY2(name) ENTRY (name) ++# define END2(name) END (name) ++# endif ++ ++ENTRY2 (__strncasecmp) ++ movq __libc_tsd_LOCALE@gottpoff(%rip),%rax ++ movq %fs:(%rax),%rcx ++ ++ // XXX 5 byte should be before the function ++ /* 5-byte NOP. */ ++ .byte 0x0f,0x1f,0x44,0x00,0x00 ++END2 (__strncasecmp) ++# ifndef NO_NOLOCALE_ALIAS ++weak_alias (__strncasecmp, strncasecmp) ++libc_hidden_def (__strncasecmp) ++# endif ++ /* FALLTHROUGH to strncasecmp_l. */ ++#endif ++ + ENTRY (BP_SYM (STRCMP)) + #ifdef NOT_IN_libc + /* Simple version since we can't use SSE registers in ld.so. */ +@@ -84,10 +149,32 @@ L(neq): movl $1, %eax + ret + END (BP_SYM (STRCMP)) + #else /* NOT_IN_libc */ ++# ifdef USE_AS_STRCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax ++# else ++ movq (%rdx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strcasecmp_l_nonascii ++# elif defined USE_AS_STRNCASECMP_L ++ /* We have to fall back on the C implementation for locales ++ with encodings not matching ASCII for single bytes. */ ++# if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0 ++ movq LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax ++# else ++ movq (%rcx), %rax ++# endif ++ testl $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax) ++ jne __strncasecmp_l_nonascii ++# endif ++ + /* + * This implementation uses SSE to compare up to 16 bytes at a time. + */ +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + test %rdx, %rdx + je LABEL(strcmp_exitz) + cmp $1, %rdx +@@ -99,6 +186,26 @@ END (BP_SYM (STRCMP)) + /* Use 64bit AND here to avoid long NOP padding. */ + and $0x3f, %rcx /* rsi alignment in cache line */ + and $0x3f, %rax /* rdi alignment in cache line */ ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ .section .rodata.cst16,"aM",@progbits,16 ++ .align 16 ++.Lbelowupper: ++ .quad 0x4040404040404040 ++ .quad 0x4040404040404040 ++.Ltopupper: ++ .quad 0x5b5b5b5b5b5b5b5b ++ .quad 0x5b5b5b5b5b5b5b5b ++.Ltouppermask: ++ .quad 0x2020202020202020 ++ .quad 0x2020202020202020 ++ .previous ++ movdqa .Lbelowupper(%rip), %xmm5 ++# define UCLOW_reg %xmm5 ++ movdqa .Ltopupper(%rip), %xmm6 ++# define UCHIGH_reg %xmm6 ++ movdqa .Ltouppermask(%rip), %xmm7 ++# define LCQWORD_reg %xmm7 ++# endif + cmp $0x30, %ecx + ja LABEL(crosscache) /* rsi: 16-byte load will cross cache line */ + cmp $0x30, %eax +@@ -107,6 +214,26 @@ END (BP_SYM (STRCMP)) + movlpd (%rsi), %xmm2 + movhpd 8(%rdi), %xmm1 + movhpd 8(%rsi), %xmm2 ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++# define TOLOWER(reg1, reg2) \ ++ movdqa reg1, %xmm8; \ ++ movdqa UCHIGH_reg, %xmm9; \ ++ movdqa reg2, %xmm10; \ ++ movdqa UCHIGH_reg, %xmm11; \ ++ pcmpgtb UCLOW_reg, %xmm8; \ ++ pcmpgtb reg1, %xmm9; \ ++ pcmpgtb UCLOW_reg, %xmm10; \ ++ pcmpgtb reg2, %xmm11; \ ++ pand %xmm9, %xmm8; \ ++ pand %xmm11, %xmm10; \ ++ pand LCQWORD_reg, %xmm8; \ ++ pand LCQWORD_reg, %xmm10; \ ++ por %xmm8, reg1; \ ++ por %xmm10, reg2 ++ TOLOWER (%xmm1, %xmm2) ++# else ++# define TOLOWER(reg1, reg2) ++# endif + pxor %xmm0, %xmm0 /* clear %xmm0 for null char checks */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pcmpeqb %xmm2, %xmm1 /* compare first 16 bytes for equality */ +@@ -114,7 +241,7 @@ END (BP_SYM (STRCMP)) + pmovmskb %xmm1, %edx + sub $0xffff, %edx /* if first 16 bytes are same, edx == 0xffff */ + jnz LABEL(less16bytes) /* If not, find different value or null char */ +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) /* finish comparision */ + # endif +@@ -159,7 +286,13 @@ LABEL(ashr_0): + movdqa (%rsi), %xmm1 + pxor %xmm0, %xmm0 /* clear %xmm0 for null char check */ + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ ++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L + pcmpeqb (%rdi), %xmm1 /* compare 16 bytes for equality */ ++# else ++ movdqa (%rdi), %xmm2 ++ TOLOWER (%xmm1, %xmm2) ++ pcmpeqb %xmm2, %xmm1 /* compare 16 bytes for equality */ ++# endif + psubb %xmm0, %xmm1 /* packed sub of comparison results*/ + pmovmskb %xmm1, %r9d + shr %cl, %edx /* adjust 0xffff for offset */ +@@ -183,6 +316,7 @@ LABEL(ashr_0): + LABEL(loop_ashr_0): + movdqa (%rsi, %rcx), %xmm1 + movdqa (%rdi, %rcx), %xmm2 ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -191,13 +325,14 @@ LABEL(loop_ashr_0): + sub $0xffff, %edx + jnz LABEL(exit) /* mismatch or null char seen */ + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif + add $16, %rcx + movdqa (%rsi, %rcx), %xmm1 + movdqa (%rdi, %rcx), %xmm2 ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -205,7 +340,7 @@ LABEL(loop_ashr_0): + pmovmskb %xmm1, %edx + sub $0xffff, %edx + jnz LABEL(exit) +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -214,7 +349,7 @@ LABEL(loop_ashr_0): + + /* + * The following cases will be handled by ashr_1 +- * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case ++ * rcx(offset of rsi) rax(offset of rdi) relative offset corresponding case + * n(15) n -15 0(15 +(n-15) - n) ashr_1 + */ + .p2align 4 +@@ -224,6 +359,7 @@ LABEL(ashr_1): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 /* Any null chars? */ + pslldq $15, %xmm2 /* shift first string to align with second */ ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 /* compare 16 bytes for equality */ + psubb %xmm0, %xmm2 /* packed sub of comparison results*/ + pmovmskb %xmm2, %r9d +@@ -263,6 +399,7 @@ LABEL(gobble_ashr_1): + # else + palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -271,7 +408,7 @@ LABEL(gobble_ashr_1): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -292,6 +429,7 @@ LABEL(gobble_ashr_1): + # else + palignr $1, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -300,7 +438,7 @@ LABEL(gobble_ashr_1): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -319,8 +457,8 @@ LABEL(nibble_ashr_1): + test $0xfffe, %edx + jnz LABEL(ashr_1_exittail) /* find null char*/ + +-# ifdef USE_AS_STRNCMP +- cmp $14, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $15, %r11 + jbe LABEL(ashr_1_exittail) + # endif + +@@ -351,6 +489,7 @@ LABEL(ashr_2): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $14, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -390,6 +529,7 @@ LABEL(gobble_ashr_2): + # else + palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -398,7 +538,7 @@ LABEL(gobble_ashr_2): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -420,6 +560,7 @@ LABEL(gobble_ashr_2): + # else + palignr $2, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -428,7 +569,7 @@ LABEL(gobble_ashr_2): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -444,8 +585,8 @@ LABEL(nibble_ashr_2): + test $0xfffc, %edx + jnz LABEL(ashr_2_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $13, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $14, %r11 + jbe LABEL(ashr_2_exittail) + # endif + +@@ -472,6 +613,7 @@ LABEL(ashr_3): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $13, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -512,6 +654,7 @@ LABEL(gobble_ashr_3): + # else + palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -520,7 +663,7 @@ LABEL(gobble_ashr_3): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -542,6 +685,7 @@ LABEL(gobble_ashr_3): + # else + palignr $3, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -550,7 +694,7 @@ LABEL(gobble_ashr_3): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -566,8 +710,8 @@ LABEL(nibble_ashr_3): + test $0xfff8, %edx + jnz LABEL(ashr_3_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $12, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $13, %r11 + jbe LABEL(ashr_3_exittail) + # endif + +@@ -594,6 +738,7 @@ LABEL(ashr_4): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $12, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -634,6 +779,7 @@ LABEL(gobble_ashr_4): + # else + palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -642,7 +788,7 @@ LABEL(gobble_ashr_4): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -664,6 +810,7 @@ LABEL(gobble_ashr_4): + # else + palignr $4, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -672,7 +819,7 @@ LABEL(gobble_ashr_4): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -688,8 +835,8 @@ LABEL(nibble_ashr_4): + test $0xfff0, %edx + jnz LABEL(ashr_4_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $11, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $12, %r11 + jbe LABEL(ashr_4_exittail) + # endif + +@@ -716,6 +863,7 @@ LABEL(ashr_5): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $11, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -756,6 +904,7 @@ LABEL(gobble_ashr_5): + # else + palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -764,7 +913,7 @@ LABEL(gobble_ashr_5): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -786,6 +935,7 @@ LABEL(gobble_ashr_5): + # else + palignr $5, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -794,7 +944,7 @@ LABEL(gobble_ashr_5): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -810,8 +960,8 @@ LABEL(nibble_ashr_5): + test $0xffe0, %edx + jnz LABEL(ashr_5_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $10, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $11, %r11 + jbe LABEL(ashr_5_exittail) + # endif + +@@ -838,6 +988,7 @@ LABEL(ashr_6): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $10, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -878,6 +1029,7 @@ LABEL(gobble_ashr_6): + # else + palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -886,7 +1038,7 @@ LABEL(gobble_ashr_6): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -908,6 +1060,7 @@ LABEL(gobble_ashr_6): + # else + palignr $6, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -916,7 +1069,7 @@ LABEL(gobble_ashr_6): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -932,8 +1085,8 @@ LABEL(nibble_ashr_6): + test $0xffc0, %edx + jnz LABEL(ashr_6_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $9, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $10, %r11 + jbe LABEL(ashr_6_exittail) + # endif + +@@ -960,6 +1113,7 @@ LABEL(ashr_7): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $9, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1000,6 +1154,7 @@ LABEL(gobble_ashr_7): + # else + palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1008,7 +1163,7 @@ LABEL(gobble_ashr_7): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1030,6 +1185,7 @@ LABEL(gobble_ashr_7): + # else + palignr $7, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1038,7 +1194,7 @@ LABEL(gobble_ashr_7): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1054,8 +1210,8 @@ LABEL(nibble_ashr_7): + test $0xff80, %edx + jnz LABEL(ashr_7_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $8, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $9, %r11 + jbe LABEL(ashr_7_exittail) + # endif + +@@ -1082,6 +1238,7 @@ LABEL(ashr_8): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $8, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1122,6 +1279,7 @@ LABEL(gobble_ashr_8): + # else + palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1130,7 +1288,7 @@ LABEL(gobble_ashr_8): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1152,6 +1310,7 @@ LABEL(gobble_ashr_8): + # else + palignr $8, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1160,7 +1319,7 @@ LABEL(gobble_ashr_8): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1176,8 +1335,8 @@ LABEL(nibble_ashr_8): + test $0xff00, %edx + jnz LABEL(ashr_8_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $7, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $8, %r11 + jbe LABEL(ashr_8_exittail) + # endif + +@@ -1204,6 +1363,7 @@ LABEL(ashr_9): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $7, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1244,6 +1404,7 @@ LABEL(gobble_ashr_9): + # else + palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1252,7 +1413,7 @@ LABEL(gobble_ashr_9): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1274,6 +1435,7 @@ LABEL(gobble_ashr_9): + # else + palignr $9, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1282,7 +1444,7 @@ LABEL(gobble_ashr_9): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1298,8 +1460,8 @@ LABEL(nibble_ashr_9): + test $0xfe00, %edx + jnz LABEL(ashr_9_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $6, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $7, %r11 + jbe LABEL(ashr_9_exittail) + # endif + +@@ -1326,6 +1488,7 @@ LABEL(ashr_10): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $6, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1366,6 +1529,7 @@ LABEL(gobble_ashr_10): + # else + palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1374,7 +1538,7 @@ LABEL(gobble_ashr_10): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1396,6 +1560,7 @@ LABEL(gobble_ashr_10): + # else + palignr $10, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1404,7 +1569,7 @@ LABEL(gobble_ashr_10): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1420,8 +1585,8 @@ LABEL(nibble_ashr_10): + test $0xfc00, %edx + jnz LABEL(ashr_10_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $5, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $6, %r11 + jbe LABEL(ashr_10_exittail) + # endif + +@@ -1448,6 +1613,7 @@ LABEL(ashr_11): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $5, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1488,6 +1654,7 @@ LABEL(gobble_ashr_11): + # else + palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1496,7 +1663,7 @@ LABEL(gobble_ashr_11): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1518,6 +1685,7 @@ LABEL(gobble_ashr_11): + # else + palignr $11, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1526,7 +1694,7 @@ LABEL(gobble_ashr_11): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1542,8 +1710,8 @@ LABEL(nibble_ashr_11): + test $0xf800, %edx + jnz LABEL(ashr_11_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $4, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $5, %r11 + jbe LABEL(ashr_11_exittail) + # endif + +@@ -1570,6 +1738,7 @@ LABEL(ashr_12): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $4, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1610,6 +1779,7 @@ LABEL(gobble_ashr_12): + # else + palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1618,7 +1788,7 @@ LABEL(gobble_ashr_12): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1640,6 +1810,7 @@ LABEL(gobble_ashr_12): + # else + palignr $12, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1648,7 +1819,7 @@ LABEL(gobble_ashr_12): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1664,8 +1835,8 @@ LABEL(nibble_ashr_12): + test $0xf000, %edx + jnz LABEL(ashr_12_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $3, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $4, %r11 + jbe LABEL(ashr_12_exittail) + # endif + +@@ -1692,6 +1863,7 @@ LABEL(ashr_13): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $3, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1732,6 +1904,7 @@ LABEL(gobble_ashr_13): + # else + palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1740,7 +1913,7 @@ LABEL(gobble_ashr_13): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1762,6 +1935,7 @@ LABEL(gobble_ashr_13): + # else + palignr $13, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1770,7 +1944,7 @@ LABEL(gobble_ashr_13): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1786,8 +1960,8 @@ LABEL(nibble_ashr_13): + test $0xe000, %edx + jnz LABEL(ashr_13_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $2, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $3, %r11 + jbe LABEL(ashr_13_exittail) + # endif + +@@ -1814,6 +1988,7 @@ LABEL(ashr_14): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $2, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1854,6 +2029,7 @@ LABEL(gobble_ashr_14): + # else + palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1862,7 +2038,7 @@ LABEL(gobble_ashr_14): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1884,6 +2060,7 @@ LABEL(gobble_ashr_14): + # else + palignr $14, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1892,7 +2069,7 @@ LABEL(gobble_ashr_14): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP | defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -1908,8 +2085,8 @@ LABEL(nibble_ashr_14): + test $0xc000, %edx + jnz LABEL(ashr_14_exittail) + +-# ifdef USE_AS_STRNCMP +- cmp $1, %r11 ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmp $2, %r11 + jbe LABEL(ashr_14_exittail) + # endif + +@@ -1936,6 +2113,7 @@ LABEL(ashr_15): + movdqa (%rsi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pslldq $1, %xmm2 ++ TOLOWER (%xmm1, %xmm2) + pcmpeqb %xmm1, %xmm2 + psubb %xmm0, %xmm2 + pmovmskb %xmm2, %r9d +@@ -1978,6 +2156,7 @@ LABEL(gobble_ashr_15): + # else + palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -1986,7 +2165,7 @@ LABEL(gobble_ashr_15): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -2008,6 +2187,7 @@ LABEL(gobble_ashr_15): + # else + palignr $15, %xmm3, %xmm2 /* merge into one 16byte value */ + # endif ++ TOLOWER (%xmm1, %xmm2) + + pcmpeqb %xmm1, %xmm0 + pcmpeqb %xmm2, %xmm1 +@@ -2016,7 +2196,7 @@ LABEL(gobble_ashr_15): + sub $0xffff, %edx + jnz LABEL(exit) + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub $16, %r11 + jbe LABEL(strcmp_exitz) + # endif +@@ -2032,9 +2212,9 @@ LABEL(nibble_ashr_15): + test $0x8000, %edx + jnz LABEL(ashr_15_exittail) + +-# ifdef USE_AS_STRNCMP +- test %r11, %r11 +- je LABEL(ashr_15_exittail) ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L ++ cmpq $1, %r11 ++ jbe LABEL(ashr_15_exittail) + # endif + + pxor %xmm0, %xmm0 +@@ -2049,6 +2229,7 @@ LABEL(ashr_15_exittail): + + .p2align 4 + LABEL(aftertail): ++ TOLOWER (%xmm1, %xmm3) + pcmpeqb %xmm3, %xmm1 + psubb %xmm0, %xmm1 + pmovmskb %xmm1, %edx +@@ -2069,13 +2250,19 @@ LABEL(ret): + LABEL(less16bytes): + bsf %rdx, %rdx /* find and store bit index in %rdx */ + +-# ifdef USE_AS_STRNCMP ++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L + sub %rdx, %r11 + jbe LABEL(strcmp_exitz) + # endif + movzbl (%rsi, %rdx), %ecx + movzbl (%rdi, %rdx), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + +@@ -2088,6 +2275,12 @@ LABEL(Byte0): + movzx (%rsi), %ecx + movzx (%rdi), %eax + ++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L ++ leaq _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx ++ movl (%rdx,%rcx,4), %ecx ++ movl (%rdx,%rax,4), %eax ++# endif ++ + sub %ecx, %eax + ret + END (BP_SYM (STRCMP)) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S +@@ -0,0 +1 @@ ++/* In strncase_l.S. */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c +@@ -0,0 +1,8 @@ ++#include ++ ++extern int __strncasecmp_l_nonascii (__const char *__s1, __const char *__s2, ++ size_t __n, __locale_t __loc); ++ ++#define __strncasecmp_l __strncasecmp_l_nonascii ++#define USE_IN_EXTENDED_LOCALE_MODEL 1 ++#include +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S +@@ -0,0 +1,6 @@ ++#define STRCMP __strncasecmp_l ++#define USE_AS_STRNCASECMP_L ++#include "strcmp.S" ++ ++weak_alias (__strncasecmp_l, strncasecmp_l) ++libc_hidden_def (strncasecmp_l) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S +@@ -0,0 +1,64 @@ ++/* strnlen(str,maxlen) -- determine the length of the string STR up to MAXLEN. ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Ulrich Drepper . ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++ ++ ++ .text ++ENTRY(__strnlen) ++ movq %rsi, %rax ++ testq %rsi, %rsi ++ jz 3f ++ pxor %xmm2, %xmm2 ++ movq %rdi, %rcx ++ movq %rdi, %r8 ++ movq $16, %r9 ++ andq $~15, %rdi ++ movdqa %xmm2, %xmm1 ++ pcmpeqb (%rdi), %xmm2 ++ orl $0xffffffff, %r10d ++ subq %rdi, %rcx ++ shll %cl, %r10d ++ subq %rcx, %r9 ++ pmovmskb %xmm2, %edx ++ andl %r10d, %edx ++ jnz 1f ++ subq %r9, %rsi ++ jbe 3f ++ ++2: movdqa 16(%rdi), %xmm0 ++ leaq 16(%rdi), %rdi ++ pcmpeqb %xmm1, %xmm0 ++ pmovmskb %xmm0, %edx ++ testl %edx, %edx ++ jnz 1f ++ subq $16, %rsi ++ jnbe 2b ++3: ret ++ ++1: subq %r8, %rdi ++ bsfl %edx, %edx ++ addq %rdi, %rdx ++ cmpq %rdx, %rax ++ cmovnbq %rdx, %rax ++ ret ++END(__strnlen) ++weak_alias (__strnlen, strnlen) ++libc_hidden_def (strnlen) +Index: glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wcsatcliff.c ++++ glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c +@@ -16,6 +16,8 @@ + #define MEMCPY wmemcpy + #define MEMPCPY wmempcpy + #define MEMCHR wmemchr ++#define STRCMP wcscmp ++#define STRNCMP wcsncmp + + + #include "../string/stratcliff.c" diff --git a/src/patches/glibc/glibc-rh607010.patch b/src/patches/glibc/glibc-rh607010.patch new file mode 100644 index 0000000000..6952dad851 --- /dev/null +++ b/src/patches/glibc/glibc-rh607010.patch @@ -0,0 +1,26 @@ +2010-09-07 H.J. Lu + + * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Round cache sizes + up to multiple of 256 bytes. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +@@ -661,12 +661,16 @@ init_cacheinfo (void) + + if (data > 0) + { ++ /* Round data cache size up to multiple of 256 bytes. */ ++ data = (data + 255) & ~255L; + __x86_64_data_cache_size_half = data / 2; + __x86_64_data_cache_size = data; + } + + if (shared > 0) + { ++ /* Round shared cache size up to multiple of 256 bytes. */ ++ shared = (shared + 255) & ~255L; + __x86_64_shared_cache_size_half = shared / 2; + __x86_64_shared_cache_size = shared; + } diff --git a/src/patches/glibc/glibc-rh607461.patch b/src/patches/glibc/glibc-rh607461.patch new file mode 100644 index 0000000000..79fc72cb6a --- /dev/null +++ b/src/patches/glibc/glibc-rh607461.patch @@ -0,0 +1,22 @@ +Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c ++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +@@ -994,7 +994,16 @@ setxid_mark_thread (struct xid_command * + + /* If the thread is exiting right now, ignore it. */ + if ((ch & EXITING_BITMASK) != 0) +- return; ++ { ++ /* Release the futex if there is no other setxid in ++ progress. */ ++ if ((ch & SETXID_BITMASK) == 0) ++ { ++ t->setxid_futex = 1; ++ lll_futex_wake (&t->setxid_futex, 1, LLL_PRIVATE); ++ } ++ return; ++ } + } + while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling, + ch | SETXID_BITMASK, ch)); diff --git a/src/patches/glibc/glibc-rh615090.patch b/src/patches/glibc/glibc-rh615090.patch new file mode 100644 index 0000000000..e6c00f05b3 --- /dev/null +++ b/src/patches/glibc/glibc-rh615090.patch @@ -0,0 +1,21 @@ +2010-07-27 Andreas Schwab + + * manual/memory.texi (Malloc Tunable Parameters): Document + M_PERTURB. + +Index: glibc-2.12-2-gc4ccff1/manual/memory.texi +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/manual/memory.texi ++++ glibc-2.12-2-gc4ccff1/manual/memory.texi +@@ -702,6 +702,11 @@ be allocated via @code{mmap}. + @item M_MMAP_MAX + The maximum number of chunks to allocate with @code{mmap}. Setting this + to zero disables all use of @code{mmap}. ++@item M_PERTURB ++If non-zero, memory blocks are filled with values depending on some ++low order bits of this parameter when they are allocated (except when ++allocated by @code{calloc}) and freed. This can be used to debug the ++use of uninitialized or freed heap memory. + @end table + + @end deftypefun diff --git a/src/patches/glibc/glibc-rh615701.patch b/src/patches/glibc/glibc-rh615701.patch new file mode 100644 index 0000000000..283e3feb14 --- /dev/null +++ b/src/patches/glibc/glibc-rh615701.patch @@ -0,0 +1,23 @@ +2010-07-20 Roland McGrath + + * elf/dl-sysdep.c (_dl_important_hwcaps): Add dsocaps mask to + dl_hwcap_mask as well as dl_hwcap. Without this, dsocaps matching in + ld.so.cache was broken. With it, there is no way to disable dsocaps + like LD_HWCAP_MASK can disable hwcaps. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-sysdep.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c +@@ -425,6 +425,11 @@ _dl_important_hwcaps (const char *platfo + { + const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1]; + GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA; ++ /* Note that we add the dsocaps to the set already chosen by the ++ LD_HWCAP_MASK environment variable (or default HWCAP_IMPORTANT). ++ So there is no way to request ignoring an OS-supplied dsocap ++ string and bit like you can ignore an OS-supplied HWCAP bit. */ ++ GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA; + size_t len; + for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1) + { diff --git a/src/patches/glibc/glibc-rh621959.patch b/src/patches/glibc/glibc-rh621959.patch new file mode 100644 index 0000000000..315521f665 --- /dev/null +++ b/src/patches/glibc/glibc-rh621959.patch @@ -0,0 +1,120 @@ +2010-08-06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): + Also fail if tpwd after pwuid call is NULL. + +2010-06-21 Andreas Schwab + + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): + Restore proper fallback handling. + +2010-06-19 Ulrich Drepper + + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle + OOM in getpwuid_r correctly. Return error number when the caller + should return, otherwise -1. + (getlogin_r): Adjust to return also for result of __getlogin_r_loginuid + call returning > 0 value. + * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c +@@ -32,8 +32,9 @@ + char * + getlogin (void) + { +- if (__getlogin_r_loginuid (name, sizeof (name)) == 0) +- return name; ++ int res = __getlogin_r_loginuid (name, sizeof (name)); ++ if (res >= 0) ++ return res == 0 ? name : NULL; + + return getlogin_fd0 (); + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -27,6 +27,10 @@ static int getlogin_r_fd0 (char *name, s + #undef getlogin_r + + ++/* Try to determine login name from /proc/self/loginuid and return 0 ++ if successful. If /proc/self/loginuid cannot be read return -1. ++ Otherwise return the error number. */ ++ + int + attribute_hidden + __getlogin_r_loginuid (name, namesize) +@@ -35,7 +39,7 @@ __getlogin_r_loginuid (name, namesize) + { + int fd = open_not_cancel_2 ("/proc/self/loginuid", O_RDONLY); + if (fd == -1) +- return 1; ++ return -1; + + /* We are reading a 32-bit number. 12 bytes are enough for the text + representation. If not, something is wrong. */ +@@ -51,37 +55,38 @@ __getlogin_r_loginuid (name, namesize) + || (uidbuf[n] = '\0', + uid = strtoul (uidbuf, &endp, 10), + endp == uidbuf || *endp != '\0')) +- return 1; ++ return -1; + + size_t buflen = 1024; + char *buf = alloca (buflen); + bool use_malloc = false; + struct passwd pwd; + struct passwd *tpwd; ++ int result = 0; + int res; + +- while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) != 0) ++ while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) == ERANGE) + if (__libc_use_alloca (2 * buflen)) +- extend_alloca (buf, buflen, 2 * buflen); ++ buf = extend_alloca (buf, buflen, 2 * buflen); + else + { + buflen *= 2; + char *newp = realloc (use_malloc ? buf : NULL, buflen); + if (newp == NULL) + { +- fail: +- if (use_malloc) +- free (buf); +- return 1; ++ result = ENOMEM; ++ goto out; + } + buf = newp; + use_malloc = true; + } + +- if (tpwd == NULL) +- goto fail; ++ if (res != 0 || tpwd == NULL) ++ { ++ result = -1; ++ goto out; ++ } + +- int result = 0; + size_t needed = strlen (pwd.pw_name) + 1; + if (needed > namesize) + { +@@ -109,8 +114,9 @@ getlogin_r (name, namesize) + char *name; + size_t namesize; + { +- if (__getlogin_r_loginuid (name, namesize) == 0) +- return 0; ++ int res = __getlogin_r_loginuid (name, namesize); ++ if (res >= 0) ++ return res; + + return getlogin_r_fd0 (name, namesize); + } diff --git a/src/patches/glibc/glibc-rh623187.patch b/src/patches/glibc/glibc-rh623187.patch new file mode 100644 index 0000000000..596fdd6bc0 --- /dev/null +++ b/src/patches/glibc/glibc-rh623187.patch @@ -0,0 +1,18 @@ +2010-08-10 Dinakar Guniguntala + Stefan Hajnoczi + + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If + FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead. + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +@@ -163,7 +163,6 @@ __pthread_cond_signal: + #endif + orl $FUTEX_WAKE, %ecx + +- xorl $(FUTEX_WAKE ^ FUTEX_WAKE_OP), %ecx + movl $SYS_futex, %eax + /* %edx should be 1 already from $FUTEX_WAKE_OP syscall. + movl $1, %edx */ diff --git a/src/patches/glibc/glibc-rh625893.patch b/src/patches/glibc/glibc-rh625893.patch new file mode 100644 index 0000000000..5337a425c4 --- /dev/null +++ b/src/patches/glibc/glibc-rh625893.patch @@ -0,0 +1,79 @@ +2010-08-12 Andreas Schwab + + [BZ #11904] + * locale/programs/locale.c (print_assignment): New function. + (show_locale_vars): Use it. + +Index: glibc-2.12-2-gc4ccff1/locale/programs/locale.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/programs/locale.c ++++ glibc-2.12-2-gc4ccff1/locale/programs/locale.c +@@ -762,6 +762,29 @@ write_charmaps (void) + twalk (all_data, print_names); + } + ++/* Print a properly quoted assignment of NAME with VAL, using double ++ quotes iff DQUOTE is true. */ ++static void ++print_assignment (const char *name, const char *val, bool dquote) ++{ ++ printf ("%s=", name); ++ if (dquote) ++ putchar ('"'); ++ while (*val != '\0') ++ { ++ size_t segment ++ = strcspn (val, dquote ? "$`\"\\" : "~|&;<>()$`\\\"' \t\n"); ++ printf ("%.*s", (int) segment, val); ++ val += segment; ++ if (*val == '\0') ++ break; ++ putchar ('\\'); ++ putchar (*val++); ++ } ++ if (dquote) ++ putchar ('"'); ++ putchar ('\n'); ++} + + /* We have to show the contents of the environments determining the + locale. */ +@@ -769,7 +792,7 @@ static void + show_locale_vars (void) + { + size_t cat_no; +- const char *lcall = getenv ("LC_ALL"); ++ const char *lcall = getenv ("LC_ALL") ? : ""; + const char *lang = getenv ("LANG") ? : ""; + + auto void get_source (const char *name); +@@ -778,15 +801,15 @@ show_locale_vars (void) + { + char *val = getenv (name); + +- if ((lcall ?: "")[0] != '\0' || val == NULL) +- printf ("%s=\"%s\"\n", name, +- (lcall ?: "")[0] ? lcall : (lang ?: "")[0] ? lang : "POSIX"); ++ if (lcall[0] != '\0' || val == NULL) ++ print_assignment (name, lcall[0] ? lcall : lang[0] ? lang : "POSIX", ++ true); + else +- printf ("%s=%s\n", name, val); ++ print_assignment (name, val, false); + } + + /* LANG has to be the first value. */ +- printf ("LANG=%s\n", lang); ++ print_assignment ("LANG", lang, false); + + /* Now all categories in an unspecified order. */ + for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no) +@@ -794,7 +817,7 @@ show_locale_vars (void) + get_source (category[cat_no].name); + + /* The last is the LC_ALL value. */ +- printf ("LC_ALL=%s\n", lcall ? : ""); ++ print_assignment ("LC_ALL", lcall, false); + } + + diff --git a/src/patches/glibc/glibc-rh630801.patch b/src/patches/glibc/glibc-rh630801.patch new file mode 100644 index 0000000000..5bd3c66527 --- /dev/null +++ b/src/patches/glibc/glibc-rh630801.patch @@ -0,0 +1,29 @@ +2010-05-26 H.J. Lu + + [BZ #11640] + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Properly check family and model. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -62,15 +62,15 @@ __init_cpu_features (void) + unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; + unsigned int extended_family = (eax >> 20) & 0xff; + unsigned int extended_model = (eax >> 12) & 0xf0; +- if (__cpu_features.family == 0x0f) ++ if (family == 0x0f) + { + family += extended_family; + model += extended_model; + } +- else if (__cpu_features.family == 0x06) ++ else if (family == 0x06) + { + model += extended_model; +- switch (__cpu_features.model) ++ switch (model) + { + case 0x1a: + case 0x1e: diff --git a/src/patches/glibc/glibc-rh631011.patch b/src/patches/glibc/glibc-rh631011.patch new file mode 100644 index 0000000000..42a1a56e47 --- /dev/null +++ b/src/patches/glibc/glibc-rh631011.patch @@ -0,0 +1,17 @@ +2010-08-19 Andreas Schwab + + * sysdeps/i386/i686/multiarch/strspn.S [!SHARED]: Fix SSE4.2 check. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strspn.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S +@@ -65,7 +65,7 @@ ENTRY(strspn) + jne 1f + call __init_cpu_features + 1: leal __strspn_ia32, %eax +- testl $index_SSE2, CPUID_OFFSET+index_SSE4_2+__cpu_features ++ testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features + jz 2f + leal __strspn_sse42, %eax + 2: ret diff --git a/src/patches/glibc/glibc-rh641128.patch b/src/patches/glibc/glibc-rh641128.patch new file mode 100644 index 0000000000..52df4aee0c --- /dev/null +++ b/src/patches/glibc/glibc-rh641128.patch @@ -0,0 +1,78 @@ +2010-10-06 Ulrich Drepper + + * string/bug-strstr1.c: New file. + * string/Makefile: Add rules to build and run bug-strstr1. + +2010-10-05 Eric Blake + + [BZ #12092] + * string/str-two-way.h (two_way_long_needle): Always clear memory + when skipping input due to the shift table. + +Index: glibc-2.12-2-gc4ccff1/string/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/Makefile ++++ glibc-2.12-2-gc4ccff1/string/Makefile +@@ -54,7 +54,8 @@ tests := tester inl-tester noinl-tester + bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ + tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ + bug-strtok1 $(addprefix test-,$(strop-tests)) \ +- bug-envz1 tst-strxfrm2 tst-endian tst-svc2 ++ bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ ++ bug-strstr1 + distribute := memcopy.h pagecopy.h tst-svc.expect test-string.h \ + str-two-way.h + +@@ -73,6 +74,7 @@ CFLAGS-tst-strlen.c = -fno-builtin + CFLAGS-stratcliff.c = -fno-builtin + CFLAGS-test-ffs.c = -fno-builtin + CFLAGS-tst-inlcall.c = -fno-builtin ++CFLAGS-bug-strstr1.c = -fno-builtin + + ifeq ($(cross-compiling),no) + tests: $(objpfx)tst-svc.out +Index: glibc-2.12-2-gc4ccff1/string/bug-strstr1.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/bug-strstr1.c +@@ -0,0 +1,26 @@ ++#include ++#include ++ ++int main (int argc, char** argv) ++{ ++ const char haystack[] = ++ "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_A7_20_EF_BF_BD"; ++ ++ const char needle[] = ++ "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD"; ++ ++ const char* sub = strstr (haystack, needle); ++ ++ if (sub != NULL) ++ { ++ int j; ++ ++ fprintf (stderr, "BUG: expected NULL, got:\n%s\n%s\n", sub, needle); ++ for (j = 0; needle[j] != '\0'; ++j) ++ putchar (needle[j] == sub[j] ? ' ' : '^'); ++ puts (""); ++ return 1; ++ } ++ ++ return 0; ++} +Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h ++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h +@@ -350,8 +350,8 @@ two_way_long_needle (const unsigned char + a byte out of place, there can be no match until + after the mismatch. */ + shift = needle_len - period; +- memory = 0; + } ++ memory = 0; + j += shift; + continue; + } diff --git a/src/patches/glibc/glibc-rh642584.patch b/src/patches/glibc/glibc-rh642584.patch new file mode 100644 index 0000000000..7fd390d3c7 --- /dev/null +++ b/src/patches/glibc/glibc-rh642584.patch @@ -0,0 +1,41 @@ +2010-10-13 H.J. Lu + + [BZ #12113] + * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32. + * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment + of "struct pthread". + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/pthreaddef.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h +@@ -27,8 +27,9 @@ + /* Minimal stack size after allocating thread descriptor and guard size. */ + #define MINIMAL_REST_STACK 2048 + +-/* Alignment requirement for TCB. */ +-#define TCB_ALIGNMENT 16 ++/* Alignment requirement for TCB. Need to store post-AVX vector registers ++ in the TCB and we want the storage to be aligned at 32-byte. */ ++#define TCB_ALIGNMENT 32 + + + /* Location of current stack frame. The frame pointer is not usable. */ +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/tls.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h +@@ -117,12 +117,7 @@ typedef struct + # define TLS_TCB_SIZE sizeof (struct pthread) + + /* Alignment requirements for the TCB. */ +-//# define TLS_TCB_ALIGN __alignof__ (struct pthread) +-// Normally the above would be correct But we have to store post-AVX +-// vector registers in the TCB and we want the storage to be aligned. +-// unfortunately there isn't yet a type for these values and hence no +-// 32-byte alignment requirement. Make this explicit, for now. +-# define TLS_TCB_ALIGN 32 ++# define TLS_TCB_ALIGN __alignof__ (struct pthread) + + /* The TCB can have any size and the memory following the address the + thread pointer points to is unspecified. Allocate the TCB there. */ diff --git a/src/patches/glibc/glibc-rh643822.patch b/src/patches/glibc/glibc-rh643822.patch new file mode 100644 index 0000000000..c32c1fea18 --- /dev/null +++ b/src/patches/glibc/glibc-rh643822.patch @@ -0,0 +1,64 @@ +2010-12-09 Andreas Schwab + + * elf/dl-object.c (_dl_new_object): Ignore origin of privileged + program. + +2010-10-18 Andreas Schwab + + * elf/dl-open.c (dl_open_worker): Don't expand DST here, let + _dl_map_object do it. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c +@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const ch + out: + new->l_origin = origin; + } ++ else if (INTUSE(__libc_enable_secure) && type == lt_executable) ++ /* The origin of a privileged program cannot be trusted. */ ++ new->l_origin = (char *) -1; + + return new; + } +Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c +@@ -221,35 +221,6 @@ dl_open_worker (void *a) + + assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT); + +- /* Maybe we have to expand a DST. */ +- if (__builtin_expect (dst != NULL, 0)) +- { +- size_t len = strlen (file); +- +- /* Determine how much space we need. We have to allocate the +- memory locally. */ +- size_t required = DL_DST_REQUIRED (call_map, file, len, +- _dl_dst_count (dst, 0)); +- +- /* Get space for the new file name. */ +- char *new_file = (char *) alloca (required + 1); +- +- /* Generate the new file name. */ +- _dl_dst_substitute (call_map, file, new_file, 0); +- +- /* If the substitution failed don't try to load. */ +- if (*new_file == '\0') +- _dl_signal_error (0, "dlopen", NULL, +- N_("empty dynamic string token substitution")); +- +- /* Now we have a new file name. */ +- file = new_file; +- +- /* It does not matter whether call_map is set even if we +- computed it only because of the DST. Since the path contains +- a slash the value is not used. See dl-load.c. */ +- } +- + /* Load the named object. */ + struct link_map *new; + args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, diff --git a/src/patches/glibc/glibc-rh645672.patch b/src/patches/glibc/glibc-rh645672.patch new file mode 100644 index 0000000000..644614ed6e --- /dev/null +++ b/src/patches/glibc/glibc-rh645672.patch @@ -0,0 +1,215 @@ +2010-10-22 Andreas Schwab + + * include/dlfcn.h (__RTLD_SECURE): Define. + * elf/dl-load.c (_dl_map_object): Remove preloaded parameter. Use + mode & __RTLD_SECURE instead. + (open_path): Remove preloaded parameter to secure. + * sysdeps/generic/ldsodefs.h (_dl_map_object): Adjust declaration. + * elf/dl-open.c (dl_open_worker): Adjust call to _dl_map_object. + * elf/dl-deps.c (openaux): Likewise. + * elf/rtld.c (struct map_args): Remove is_preloaded. + (map_doit): Don't use it. + (dl_main): Likewise. + (do_preload): Use __RTLD_SECURE instead of is_preloaded. + (dlmopen_doit): Add __RTLD_SECURE to mode bits. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c +@@ -62,7 +62,7 @@ openaux (void *a) + { + struct openaux_args *args = (struct openaux_args *) a; + +- args->aux = _dl_map_object (args->map, args->name, 0, ++ args->aux = _dl_map_object (args->map, args->name, + (args->map->l_type == lt_executable + ? lt_library : args->map->l_type), + args->trace_mode, args->open_mode, +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -1811,7 +1811,7 @@ open_verify (const char *name, struct fi + if MAY_FREE_DIRS is true. */ + + static int +-open_path (const char *name, size_t namelen, int preloaded, ++open_path (const char *name, size_t namelen, int secure, + struct r_search_path_struct *sps, char **realname, + struct filebuf *fbp, struct link_map *loader, int whatcode, + bool *found_other_class) +@@ -1893,7 +1893,7 @@ open_path (const char *name, size_t name + /* Remember whether we found any existing directory. */ + here_any |= this_dir->status[cnt] != nonexisting; + +- if (fd != -1 && __builtin_expect (preloaded, 0) ++ if (fd != -1 && __builtin_expect (secure, 0) + && INTUSE(__libc_enable_secure)) + { + /* This is an extra security effort to make sure nobody can +@@ -1962,7 +1962,7 @@ open_path (const char *name, size_t name + + struct link_map * + internal_function +-_dl_map_object (struct link_map *loader, const char *name, int preloaded, ++_dl_map_object (struct link_map *loader, const char *name, + int type, int trace_mode, int mode, Lmid_t nsid) + { + int fd; +@@ -2066,7 +2066,8 @@ _dl_map_object (struct link_map *loader, + for (l = loader; l; l = l->l_loader) + if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH")) + { +- fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &l->l_rpath_dirs, + &realname, &fb, loader, LA_SER_RUNPATH, + &found_other_class); + if (fd != -1) +@@ -2081,14 +2082,15 @@ _dl_map_object (struct link_map *loader, + && main_map != NULL && main_map->l_type != lt_loaded + && cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH, + "RPATH")) +- fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, ++ &main_map->l_rpath_dirs, + &realname, &fb, loader ?: main_map, LA_SER_RUNPATH, + &found_other_class); + } + + /* Try the LD_LIBRARY_PATH environment variable. */ + if (fd == -1 && env_path_list.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &env_path_list, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list, + &realname, &fb, + loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded, + LA_SER_LIBPATH, &found_other_class); +@@ -2097,12 +2099,12 @@ _dl_map_object (struct link_map *loader, + if (fd == -1 && loader != NULL + && cache_rpath (loader, &loader->l_runpath_dirs, + DT_RUNPATH, "RUNPATH")) +- fd = open_path (name, namelen, preloaded, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, + &loader->l_runpath_dirs, &realname, &fb, loader, + LA_SER_RUNPATH, &found_other_class); + + if (fd == -1 +- && (__builtin_expect (! preloaded, 1) ++ && (__builtin_expect (! (mode & __RTLD_SECURE), 1) + || ! INTUSE(__libc_enable_secure))) + { + /* Check the list of libraries in the file /etc/ld.so.cache, +@@ -2168,7 +2170,7 @@ _dl_map_object (struct link_map *loader, + && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL + || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1)) + && rtld_search_dirs.dirs != (void *) -1) +- fd = open_path (name, namelen, preloaded, &rtld_search_dirs, ++ fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs, + &realname, &fb, l, LA_SER_DEFAULT, &found_other_class); + + /* Add another newline when we are tracing the library loading. */ +Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c +@@ -252,7 +252,7 @@ dl_open_worker (void *a) + + /* Load the named object. */ + struct link_map *new; +- args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0, ++ args->map = new = _dl_map_object (call_map, file, lt_loaded, 0, + mode | __RTLD_CALLMAP, args->nsid); + + /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -589,7 +589,6 @@ struct map_args + /* Argument to map_doit. */ + char *str; + struct link_map *loader; +- int is_preloaded; + int mode; + /* Return value of map_doit. */ + struct link_map *map; +@@ -627,16 +626,17 @@ static void + map_doit (void *a) + { + struct map_args *args = (struct map_args *) a; +- args->map = _dl_map_object (args->loader, args->str, +- args->is_preloaded, lt_library, 0, args->mode, +- LM_ID_BASE); ++ args->map = _dl_map_object (args->loader, args->str, lt_library, 0, ++ args->mode, LM_ID_BASE); + } + + static void + dlmopen_doit (void *a) + { + struct dlmopen_args *args = (struct dlmopen_args *) a; +- args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT, ++ args->map = _dl_open (args->fname, ++ (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT ++ | __RTLD_SECURE), + dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv), + __environ); + } +@@ -806,8 +806,7 @@ do_preload (char *fname, struct link_map + + args.str = fname; + args.loader = main_map; +- args.is_preloaded = 1; +- args.mode = 0; ++ args.mode = __RTLD_SECURE; + + unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded; + +@@ -1054,7 +1053,6 @@ of this helper program; chances are you + + args.str = rtld_progname; + args.loader = NULL; +- args.is_preloaded = 0; + args.mode = __RTLD_OPENEXEC; + (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit, + &args); +@@ -1066,7 +1064,7 @@ of this helper program; chances are you + else + { + HP_TIMING_NOW (start); +- _dl_map_object (NULL, rtld_progname, 0, lt_library, 0, ++ _dl_map_object (NULL, rtld_progname, lt_library, 0, + __RTLD_OPENEXEC, LM_ID_BASE); + HP_TIMING_NOW (stop); + +Index: glibc-2.12-2-gc4ccff1/include/dlfcn.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/dlfcn.h ++++ glibc-2.12-2-gc4ccff1/include/dlfcn.h +@@ -9,6 +9,7 @@ + #define __RTLD_OPENEXEC 0x20000000 + #define __RTLD_CALLMAP 0x10000000 + #define __RTLD_AUDIT 0x08000000 ++#define __RTLD_SECURE 0x04000000 /* Apply additional security checks. */ + + #define __LM_ID_CALLER -2 + +Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +@@ -824,11 +824,9 @@ extern void _dl_receive_error (receiver_ + + /* Open the shared object NAME and map in its segments. + LOADER's DT_RPATH is used in searching for NAME. +- If the object is already opened, returns its existing map. +- For preloaded shared objects PRELOADED is set to a non-zero +- value to allow additional security checks. */ ++ If the object is already opened, returns its existing map. */ + extern struct link_map *_dl_map_object (struct link_map *loader, +- const char *name, int preloaded, ++ const char *name, + int type, int trace_mode, int mode, + Lmid_t nsid) + internal_function attribute_hidden; diff --git a/src/patches/glibc/glibc-rh646954.patch b/src/patches/glibc/glibc-rh646954.patch new file mode 100644 index 0000000000..bbb959e5a0 --- /dev/null +++ b/src/patches/glibc/glibc-rh646954.patch @@ -0,0 +1,216 @@ +2010-10-26 Ulrich Drepper + + * elf/rtld.c (dl_main): Move assertion after the point where rtld map + is added to the list. + +2010-10-20 Andreas Krebbel + Ulrich Drepper + + * elf/dl-object.c (_dl_new_object): Don't append the new object to + the global list here. Move code to... + (_dl_add_to_namespace_list): ...here. New function. + * elf/rtld.c (dl_main): Invoke _dl_add_to_namespace_list. + * sysdeps/generic/ldsodefs.h (_dl_add_to_namespace_list): Declare. + * elf/dl-load.c (lose): Don't remove the element from the list. + (_dl_map_object_from_fd): Invoke _dl_add_to_namespace_list. + (_dl_map_object): Likewise. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -797,22 +797,7 @@ lose (int code, int fd, const char *name + /* The file might already be closed. */ + if (fd != -1) + (void) __close (fd); +- if (l != NULL) +- { +- /* We modify the list of loaded objects. */ +- __rtld_lock_lock_recursive (GL(dl_load_write_lock)); +- /* Remove the stillborn object from the list and free it. */ +- assert (l->l_next == NULL); +- if (l->l_prev == NULL) +- /* No other module loaded. This happens only in the static library, +- or in rtld under --verify. */ +- GL(dl_ns)[l->l_ns]._ns_loaded = NULL; +- else +- l->l_prev->l_next = NULL; +- --GL(dl_ns)[l->l_ns]._ns_nloaded; +- free (l); +- __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); +- } ++ free (l); + free (realname); + + if (r != NULL) +@@ -897,6 +882,9 @@ _dl_map_object_from_fd (const char *name + never be unloaded. */ + __close (fd); + ++ /* Add the map for the mirrored object to the object list. */ ++ _dl_add_to_namespace_list (l, nsid); ++ + return l; + } + #endif +@@ -1491,6 +1479,9 @@ cannot enable executable stack as shared + add_name_to_object (l, ((const char *) D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[DT_SONAME]->d_un.d_val)); + ++ /* Now that the object is fully initialized add it to the object list. */ ++ _dl_add_to_namespace_list (l, nsid); ++ + #ifdef SHARED + /* Auditing checkpoint: we have a new object. */ + if (__builtin_expect (GLRO(dl_naudit) > 0, 0) +@@ -2215,7 +2206,7 @@ _dl_map_object (struct link_map *loader, + have. */ + static const Elf_Symndx dummy_bucket = STN_UNDEF; + +- /* Enter the new object in the list of loaded objects. */ ++ /* Allocate a new object map. */ + if ((name_copy = local_strdup (name)) == NULL + || (l = _dl_new_object (name_copy, name, type, loader, + mode, nsid)) == NULL) +@@ -2233,6 +2224,9 @@ _dl_map_object (struct link_map *loader, + l->l_nbuckets = 1; + l->l_relocated = 1; + ++ /* Enter the object in the object list. */ ++ _dl_add_to_namespace_list (l, nsid); ++ + return l; + } + else if (found_other_class) +Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c +@@ -26,16 +26,41 @@ + #include + + ++/* Add the new link_map NEW to the end of the namespace list. */ ++void ++internal_function ++_dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid) ++{ ++ /* We modify the list of loaded objects. */ ++ __rtld_lock_lock_recursive (GL(dl_load_write_lock)); ++ ++ if (GL(dl_ns)[nsid]._ns_loaded != NULL) ++ { ++ struct link_map *l = GL(dl_ns)[nsid]._ns_loaded; ++ while (l->l_next != NULL) ++ l = l->l_next; ++ new->l_prev = l; ++ /* new->l_next = NULL; Would be necessary but we use calloc. */ ++ l->l_next = new; ++ } ++ else ++ GL(dl_ns)[nsid]._ns_loaded = new; ++ ++GL(dl_ns)[nsid]._ns_nloaded; ++ new->l_serial = GL(dl_load_adds); ++ ++GL(dl_load_adds); ++ ++ __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); ++} ++ ++ + /* Allocate a `struct link_map' for a new object being loaded, + and enter it into the _dl_loaded list. */ +- + struct link_map * + internal_function + _dl_new_object (char *realname, const char *libname, int type, + struct link_map *loader, int mode, Lmid_t nsid) + { + struct link_map *l; +- int idx; + size_t libname_len = strlen (libname) + 1; + struct link_map *new; + struct libname_list *newname; +@@ -93,31 +118,12 @@ _dl_new_object (char *realname, const ch + new->l_scope = new->l_scope_mem; + new->l_scope_max = sizeof (new->l_scope_mem) / sizeof (new->l_scope_mem[0]); + +- /* We modify the list of loaded objects. */ +- __rtld_lock_lock_recursive (GL(dl_load_write_lock)); +- + /* Counter for the scopes we have to handle. */ +- idx = 0; ++ int idx = 0; + + if (GL(dl_ns)[nsid]._ns_loaded != NULL) +- { +- l = GL(dl_ns)[nsid]._ns_loaded; +- while (l->l_next != NULL) +- l = l->l_next; +- new->l_prev = l; +- /* new->l_next = NULL; Would be necessary but we use calloc. */ +- l->l_next = new; +- +- /* Add the global scope. */ +- new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist; +- } +- else +- GL(dl_ns)[nsid]._ns_loaded = new; +- ++GL(dl_ns)[nsid]._ns_nloaded; +- new->l_serial = GL(dl_load_adds); +- ++GL(dl_load_adds); +- +- __rtld_lock_unlock_recursive (GL(dl_load_write_lock)); ++ /* Add the global scope. */ ++ new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist; + + /* If we have no loader the new object acts as it. */ + if (loader == NULL) +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -1108,11 +1108,15 @@ of this helper program; chances are you + main_map = _dl_new_object ((char *) "", "", lt_executable, NULL, + __RTLD_OPENEXEC, LM_ID_BASE); + assert (main_map != NULL); +- assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded); + main_map->l_phdr = phdr; + main_map->l_phnum = phnum; + main_map->l_entry = *user_entry; + ++ /* Even though the link map is not yet fully initialized we can add ++ it to the map list since there are no possible users running yet. */ ++ _dl_add_to_namespace_list (main_map, LM_ID_BASE); ++ assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded); ++ + /* At this point we are in a bit of trouble. We would have to + fill in the values for l_dev and l_ino. But in general we + do not know where the file is. We also do not handle AT_EXECFD +@@ -1380,6 +1384,9 @@ of this helper program; chances are you + l->l_libname->name = memcpy (copy, dsoname, len); + } + ++ /* Add the vDSO to the object list. */ ++ _dl_add_to_namespace_list (l, LM_ID_BASE); ++ + /* Rearrange the list so this DSO appears after rtld_map. */ + assert (l->l_next == NULL); + assert (l->l_prev == main_map); +Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h +@@ -891,8 +891,11 @@ extern lookup_t _dl_lookup_symbol_x (con + extern ElfW(Addr) _dl_symbol_value (struct link_map *map, const char *name) + internal_function; + +-/* Allocate a `struct link_map' for a new object being loaded, +- and enter it into the _dl_main_map list. */ ++/* Add the new link_map NEW to the end of the namespace list. */ ++extern void _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid) ++ internal_function attribute_hidden; ++ ++/* Allocate a `struct link_map' for a new object being loaded. */ + extern struct link_map *_dl_new_object (char *realname, const char *libname, + int type, struct link_map *loader, + int mode, Lmid_t nsid) diff --git a/src/patches/glibc/glibc-rh647448.patch b/src/patches/glibc/glibc-rh647448.patch new file mode 100644 index 0000000000..ff5594560b --- /dev/null +++ b/src/patches/glibc/glibc-rh647448.patch @@ -0,0 +1,58 @@ +2010-10-25 Ulrich Drepper + + [BZ #12159] + * sysdeps/x86_64/multiarch/strchr.S: Fix propagation of search byte + into all bytes of SSE register. + Patch by Richard Li . + +Index: glibc-2.12-2-gc4ccff1/string/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/Makefile ++++ glibc-2.12-2-gc4ccff1/string/Makefile +@@ -55,7 +55,7 @@ tests := tester inl-tester noinl-tester + tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ + bug-strtok1 $(addprefix test-,$(strop-tests)) \ + bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ +- bug-strstr1 ++ bug-strstr1 bug-strchr1 + distribute := memcopy.h pagecopy.h tst-svc.expect test-string.h \ + str-two-way.h + +Index: glibc-2.12-2-gc4ccff1/string/bug-strchr1.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/string/bug-strchr1.c +@@ -0,0 +1,14 @@ ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ char s[] __attribute__((aligned(16))) = "\xff"; ++ char *p = strchr (s, '\xfe'); ++ printf ("%p\n", p); ++ return p != NULL; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strchr.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S +@@ -87,13 +87,13 @@ __strchr_sse42: + pxor %xmm2, %xmm2 + movd %esi, %xmm1 + movl %edi, %ecx ++ pshufb %xmm2, %xmm1 + andl $15, %ecx + movq %rdi, %r8 + je L(aligned_start) + + /* Handle unaligned string. */ + andq $-16, %r8 +- pshufb %xmm2, %xmm1 + movdqa (%r8), %xmm0 + pcmpeqb %xmm0, %xmm2 + pcmpeqb %xmm1, %xmm0 diff --git a/src/patches/glibc/glibc-rh652661.patch b/src/patches/glibc/glibc-rh652661.patch new file mode 100644 index 0000000000..79a3212a7b --- /dev/null +++ b/src/patches/glibc/glibc-rh652661.patch @@ -0,0 +1,21 @@ +2010-05-20 Andreas Schwab + + * sysdeps/unix/sysv/linux/sys/timex.h: Use __REDIRECT_NTH. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sys/timex.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h +@@ -140,9 +140,9 @@ __BEGIN_DECLS + extern int __adjtimex (struct timex *__ntx) __THROW; + extern int adjtimex (struct timex *__ntx) __THROW; + +-#if defined __GNUC__ && __GNUC__ >= 2 +-extern int ntp_gettime (struct ntptimeval *__ntv) +- __asm__ ("ntp_gettimex") __THROW; ++#ifdef __REDIRECT_NTH ++extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv), ++ ntp_gettimex); + #else + extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW; + # define ntp_gettime ntp_gettimex diff --git a/src/patches/glibc/glibc-rh656014.patch b/src/patches/glibc/glibc-rh656014.patch new file mode 100644 index 0000000000..5ef68dcbf5 --- /dev/null +++ b/src/patches/glibc/glibc-rh656014.patch @@ -0,0 +1,45 @@ +2010-11-24 Andreas Schwab + + * resolv/nss_dns/dns-host.c (getanswer_r): Don't handle ttl == 0 + specially. + (gaih_getanswer_slice): Likewise. + +Index: glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c +@@ -599,7 +599,6 @@ getanswer_r (const querybuf *answer, int + int (*name_ok) (const char *); + u_char packtmp[NS_MAXCDNAME]; + int have_to_map = 0; +- int32_t ttl = 0; + uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data); + buffer += pad; + if (__builtin_expect (buflen < sizeof (struct host_data) + pad, 0)) +@@ -733,7 +732,7 @@ getanswer_r (const querybuf *answer, int + cp += INT16SZ; /* type */ + class = __ns_get16 (cp); + cp += INT16SZ; /* class */ +- ttl = __ns_get32 (cp); ++ int32_t ttl = __ns_get32 (cp); + cp += INT32SZ; /* TTL */ + n = __ns_get16 (cp); + cp += INT16SZ; /* len */ +@@ -907,7 +906,7 @@ getanswer_r (const querybuf *answer, int + { + register int nn; + +- if (ttlp != NULL && ttl != 0) ++ if (ttlp != NULL) + *ttlp = ttl; + if (canonp != NULL) + *canonp = bp; +@@ -1163,7 +1162,7 @@ gaih_getanswer_slice (const querybuf *an + + if (*firstp) + { +- if (ttl != 0 && ttlp != NULL) ++ if (ttlp != NULL) + *ttlp = ttl; + + (*pat)->name = canon ?: h_name; diff --git a/src/patches/glibc/glibc-rh656530.patch b/src/patches/glibc/glibc-rh656530.patch new file mode 100644 index 0000000000..f101430690 --- /dev/null +++ b/src/patches/glibc/glibc-rh656530.patch @@ -0,0 +1,21 @@ +2010-11-10 Luis Machado + + * sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c (__ieee754_sqrtl): Force + signed comparison. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c +@@ -73,9 +73,9 @@ long double __ieee754_sqrtl(long double + m = ((a.i[2] >> 20) & 0x7ff) - 54; + } + m += n; +- if (m > 0) ++ if ((int) m > 0) + a.i[2] = (a.i[2] & 0x800fffff) | (m << 20); +- else if (m <= -54) { ++ else if ((int) m <= -54) { + a.i[2] &= 0x80000000; + a.i[3] = 0; + } else { diff --git a/src/patches/glibc/glibc-rh657572.patch b/src/patches/glibc/glibc-rh657572.patch new file mode 100644 index 0000000000..a7201309d0 --- /dev/null +++ b/src/patches/glibc/glibc-rh657572.patch @@ -0,0 +1,141 @@ +commit 42c5011242e48f846111237552d3bf3ca18c4885 +Author: Ulrich Drepper +Date: Fri Dec 23 09:51:10 2011 -0500 + + Various fixes to fi_FI + + 2011-12-23 Ulrich Drepper + + [BZ #12962] + * locales/fi_FI: Various fixups. + Patch by Marko Myllynen . + +diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI +index acc9ce6..f51700c 100644 +--- a/localedata/locales/fi_FI ++++ b/localedata/locales/fi_FI +@@ -1,4 +1,4 @@ +-escape_char / ++escape_char / + comment_char % + + % Finnish language locale for Finland +@@ -45,10 +45,10 @@ category "fi_FI:2000";LC_NUMERIC + category "fi_FI:2000";LC_MONETARY + category "fi_FI:2000";LC_MESSAGES + category "fi_FI:2000";LC_PAPER ++category "fi_FI:2000";LC_MEASUREMENT + category "fi_FI:2000";LC_NAME + category "fi_FI:2000";LC_ADDRESS + category "fi_FI:2000";LC_TELEPHONE +- + END LC_IDENTIFICATION + + LC_COLLATE +@@ -125,7 +125,6 @@ reorder-after + ;;;IGNORE + + reorder-end +- + END LC_COLLATE + + LC_CTYPE +@@ -146,12 +145,10 @@ positive_sign "" + negative_sign "" + int_frac_digits 2 + frac_digits 2 +-% int_curr_symbol precedes +-% curr_symbol succeeds + p_cs_precedes 0 +-p_sep_by_space 2 ++p_sep_by_space 1 + n_cs_precedes 0 +-n_sep_by_space 2 ++n_sep_by_space 1 + p_sign_posn 1 + n_sign_posn 1 + END LC_MONETARY +@@ -173,18 +170,18 @@ day "";/ + "";/ + "";/ + "" +-abmon "";/ +- "";/ ++abmon "";/ ++ "";/ + "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ + "";/ +- "" ++ "" + mon "";/ + "";/ + "";/ +@@ -207,13 +204,14 @@ t_fmt_ampm "" + date_fmt "/ + / + " ++week 7;19971130;4 + first_weekday 2 % Monday + first_workday 2 % Monday + END LC_TIME + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++yesexpr "" ++noexpr "" + END LC_MESSAGES + + LC_PAPER +@@ -222,6 +220,7 @@ width 210 + END LC_PAPER + + LC_TELEPHONE ++tel_dom_fmt "" + tel_int_fmt "/ + " + int_prefix "" +@@ -235,15 +234,25 @@ END LC_MEASUREMENT + LC_NAME + name_fmt "/ + " ++% Finnish equivalents for Mr/Mrs/Miss/Ms are herra/rouva/rouva/neiti ++% but they are practically never used, thus we don't define them here. + END LC_NAME + + LC_ADDRESS +-postal_fmt "/ +-/ +-/ +-/ ++postal_fmt "/ ++/ ++/ ++/ + " + country_ab2 "" + country_ab3 "" + country_num 246 ++country_name "" ++country_post "" ++country_car "" ++country_isbn 952 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS diff --git a/src/patches/glibc/glibc-rh661982.patch b/src/patches/glibc/glibc-rh661982.patch new file mode 100644 index 0000000000..60b840bb8f --- /dev/null +++ b/src/patches/glibc/glibc-rh661982.patch @@ -0,0 +1,188 @@ +2010-12-10 Andreas Schwab + + * wcsmbs/wchar.h (wcpcpy, wcpncpy): Only declare under + _GNU_SOURCE. + +2010-12-10 Andreas Schwab + + * wcsmbs/wchar.h (wcpcpy, wcpncpy): Add __restrict. + * wcsmbs/bits/wchar2.h (__wmemmove_chk_warn, wmemmove, wmemset): + Remove __restrict. + (wcscpy, __wcpcpy_chk, __wcpcpy_alias, wcpcpy, wcsncpy, wcpncpy) + (wcscat, wcsncat, __wcrtomb_chk, wcrtomb): Add __restrict. + +2010-12-09 Jakub Jelinek + + * string/bits/string3.h (memmove, bcopy): Remove __restrict. + +Index: glibc-2.12-2-gc4ccff1/string/bits/string3.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/bits/string3.h ++++ glibc-2.12-2-gc4ccff1/string/bits/string3.h +@@ -53,8 +53,7 @@ __NTH (memcpy (void *__restrict __dest, + } + + __extern_always_inline void * +-__NTH (memmove (void *__restrict __dest, __const void *__restrict __src, +- size_t __len)) ++__NTH (memmove (void *__dest, __const void *__src, size_t __len)) + { + return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); + } +@@ -88,8 +87,7 @@ __NTH (memset (void *__dest, int __ch, s + + #ifdef __USE_BSD + __extern_always_inline void +-__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest, +- size_t __len)) ++__NTH (bcopy (__const void *__src, void *__dest, size_t __len)) + { + (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest)); + } +Index: glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/bits/wchar2.h ++++ glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h +@@ -60,15 +60,13 @@ extern wchar_t *__REDIRECT_NTH (__wmemmo + __const wchar_t *__s2, + size_t __n), wmemmove); + extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn, +- (wchar_t *__restrict __s1, +- __const wchar_t *__restrict __s2, size_t __n, +- size_t __ns1), __wmemmove_chk) ++ (wchar_t *__s1, __const wchar_t *__s2, ++ size_t __n, size_t __ns1), __wmemmove_chk) + __warnattr ("wmemmove called with length bigger than size of destination " + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2, +- size_t __n)) ++__NTH (wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)) + { + if (__bos0 (__s1) != (size_t) -1) + { +@@ -129,7 +127,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemse + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n)) ++__NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n)) + { + if (__bos0 (__s) != (size_t) -1) + { +@@ -152,7 +150,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy + __const wchar_t *__restrict __src), wcscpy); + + __extern_always_inline wchar_t * +-__NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src)) ++__NTH (wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src)) + { + if (__bos (__dest) != (size_t) -1) + return __wcscpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t)); +@@ -160,14 +158,15 @@ __NTH (wcscpy (wchar_t *__dest, __const + } + + +-extern wchar_t *__wcpcpy_chk (wchar_t *__dest, __const wchar_t *__src, ++extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src, + size_t __destlen) __THROW; +-extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, (wchar_t *__dest, +- __const wchar_t *__src), +- wcpcpy); ++extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, ++ (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src), wcpcpy); + + __extern_always_inline wchar_t * +-__NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src)) ++__NTH (wcpcpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src)) + { + if (__bos (__dest) != (size_t) -1) + return __wcpcpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t)); +@@ -190,7 +189,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsncp + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)) ++__NTH (wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, ++ size_t __n)) + { + if (__bos (__dest) != (size_t) -1) + { +@@ -220,7 +220,8 @@ extern wchar_t *__REDIRECT_NTH (__wcpncp + "buffer"); + + __extern_always_inline wchar_t * +-__NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)) ++__NTH (wcpncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, ++ size_t __n)) + { + if (__bos (__dest) != (size_t) -1) + { +@@ -243,7 +244,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscat + __const wchar_t *__restrict __src), wcscat); + + __extern_always_inline wchar_t * +-__NTH (wcscat (wchar_t *__dest, __const wchar_t *__src)) ++__NTH (wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src)) + { + if (__bos (__dest) != (size_t) -1) + return __wcscat_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t)); +@@ -260,7 +261,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsnca + size_t __n), wcsncat); + + __extern_always_inline wchar_t * +-__NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n)) ++__NTH (wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src, ++ size_t __n)) + { + if (__bos (__dest) != (size_t) -1) + return __wcsncat_chk (__dest, __src, __n, +@@ -428,14 +430,16 @@ fgetws_unlocked (wchar_t *__restrict __s + #endif + + +-extern size_t __wcrtomb_chk (char *__s, wchar_t __wchar, mbstate_t *__p, +- size_t __buflen) __THROW __wur; ++extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar, ++ mbstate_t *__restrict __p, ++ size_t __buflen) __THROW __wur; + extern size_t __REDIRECT_NTH (__wcrtomb_alias, + (char *__restrict __s, wchar_t __wchar, + mbstate_t *__restrict __ps), wcrtomb) __wur; + + __extern_always_inline __wur size_t +-__NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps)) ++__NTH (wcrtomb (char *__restrict __s, wchar_t __wchar, ++ mbstate_t *__restrict __ps)) + { + /* We would have to include to get a definition of MB_LEN_MAX. + But this would only disturb the namespace. So we define our own +Index: glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wchar.h ++++ glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h +@@ -555,17 +555,17 @@ extern float wcstof_l (__const wchar_t * + extern long double wcstold_l (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + __locale_t __loc) __THROW; +-#endif /* GNU */ + + +-#ifdef __USE_XOPEN2K8 + /* Copy SRC to DEST, returning the address of the terminating L'\0' in + DEST. */ +-extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) __THROW; ++extern wchar_t *wcpcpy (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src) __THROW; + + /* Copy no more than N characters of SRC to DEST, returning the address of + the last character written into DEST. */ +-extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) ++extern wchar_t *wcpncpy (wchar_t *__restrict __dest, ++ __const wchar_t *__restrict __src, size_t __n) + __THROW; + #endif /* use GNU */ + diff --git a/src/patches/glibc/glibc-rh667974.patch b/src/patches/glibc/glibc-rh667974.patch new file mode 100644 index 0000000000..48aacac8cf --- /dev/null +++ b/src/patches/glibc/glibc-rh667974.patch @@ -0,0 +1,160 @@ +2011-03-14 Andreas Schwab + + * elf/dl-load.c (is_dst): Remove parameter secure, all callers + changed. Don't check for isolated use. + (_dl_dst_substitute): Ignore rpath elements containing + non-isolated use of $ORIGIN when privileged. + + * elf/dl-load.c (_dl_dst_substitute): When skipping the first + rpath element also skip the following colon. + (expand_dynamic_string_token): Add is_path parameter and pass + down to DL_DST_REQUIRED and _dl_dst_substitute. + (decompose_rpath): Call expand_dynamic_string_token with + non-zero is_path. Ignore empty rpaths. + (_dl_map_object_from_fd): Call expand_dynamic_string_token + with zero is_path. + +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -169,8 +169,7 @@ local_strdup (const char *s) + + + static size_t +-is_dst (const char *start, const char *name, const char *str, +- int is_path, int secure) ++is_dst (const char *start, const char *name, const char *str, int is_path) + { + size_t len; + bool is_curly = false; +@@ -199,11 +198,6 @@ is_dst (const char *start, const char *n + && (!is_path || name[len] != ':')) + return 0; + +- if (__builtin_expect (secure, 0) +- && ((name[len] != '\0' && (!is_path || name[len] != ':')) +- || (name != start + 1 && (!is_path || name[-2] != ':')))) +- return 0; +- + return len; + } + +@@ -218,13 +212,10 @@ _dl_dst_count (const char *name, int is_ + { + size_t len; + +- /* $ORIGIN is not expanded for SUID/GUID programs (except if it +- is $ORIGIN alone) and it must always appear first in path. */ + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0 +- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 +- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0 ++ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 ++ || (len = is_dst (start, name, "LIB", is_path)) != 0) + ++cnt; + + name = strchr (name + len, '$'); +@@ -256,9 +247,16 @@ _dl_dst_substitute (struct link_map *l, + size_t len; + + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0) ++ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) + { ++ /* $ORIGIN is not expanded for SUID/GUID programs ++ (except if it is $ORIGIN alone) and it must always ++ appear first in path. */ ++ if (__builtin_expect (INTUSE(__libc_enable_secure), 0) ++ && ((name[len] != '\0' && (!is_path || name[len] != ':')) ++ || (name != start + 1 && (!is_path || name[-2] != ':')))) ++ repl = (const char *) -1; ++ else + #ifndef SHARED + if (l == NULL) + repl = _dl_get_origin (); +@@ -266,9 +264,9 @@ _dl_dst_substitute (struct link_map *l, + #endif + repl = l->l_origin; + } +- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) + repl = GLRO(dl_platform); +- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) + repl = DL_DST_LIB; + + if (repl != NULL && repl != (const char *) -1) +@@ -284,6 +282,10 @@ _dl_dst_substitute (struct link_map *l, + name += len; + while (*name != '\0' && (!is_path || *name != ':')) + ++name; ++ /* Also skip following colon if this is the first rpath ++ element, but keep an empty element at the end. */ ++ if (wp == result && is_path && *name == ':' && name[1] != '\0') ++ ++name; + } + else + /* No DST we recognize. */ +@@ -310,7 +312,7 @@ _dl_dst_substitute (struct link_map *l, + belonging to the map is loaded. In this case the path element + containing $ORIGIN is left out. */ + static char * +-expand_dynamic_string_token (struct link_map *l, const char *s) ++expand_dynamic_string_token (struct link_map *l, const char *s, int is_path) + { + /* We make two runs over the string. First we determine how large the + resulting string is and then we copy it over. Since this is no +@@ -321,7 +323,7 @@ expand_dynamic_string_token (struct link + char *result; + + /* Determine the number of DST elements. */ +- cnt = DL_DST_COUNT (s, 1); ++ cnt = DL_DST_COUNT (s, is_path); + + /* If we do not have to replace anything simply copy the string. */ + if (__builtin_expect (cnt, 0) == 0) +@@ -335,7 +337,7 @@ expand_dynamic_string_token (struct link + if (result == NULL) + return NULL; + +- return _dl_dst_substitute (l, s, result, 1); ++ return _dl_dst_substitute (l, s, result, is_path); + } + + +@@ -551,13 +553,21 @@ decompose_rpath (struct r_search_path_st + + /* Make a writable copy. At the same time expand possible dynamic + string tokens. */ +- copy = expand_dynamic_string_token (l, rpath); ++ copy = expand_dynamic_string_token (l, rpath, 1); + if (copy == NULL) + { + errstring = N_("cannot create RUNPATH/RPATH copy"); + goto signal_error; + } + ++ /* Ignore empty rpaths. */ ++ if (*copy == 0) ++ { ++ free (copy); ++ sps->dirs = (char *) -1; ++ return false; ++ } ++ + /* Count the number of necessary elements in the result array. */ + nelems = 0; + for (cp = copy; *cp != '\0'; ++cp) +@@ -2176,7 +2186,7 @@ _dl_map_object (struct link_map *loader, + { + /* The path may contain dynamic string tokens. */ + realname = (loader +- ? expand_dynamic_string_token (loader, name) ++ ? expand_dynamic_string_token (loader, name, 0) + : local_strdup (name)); + if (realname == NULL) + fd = -1; diff --git a/src/patches/glibc/glibc-rh676076.patch b/src/patches/glibc/glibc-rh676076.patch new file mode 100644 index 0000000000..c5aa2d4302 --- /dev/null +++ b/src/patches/glibc/glibc-rh676076.patch @@ -0,0 +1,714 @@ +2011-03-02 Harsha Jagasia + Ulrich Drepper + + * sysdeps/x86_64/memset.S: After aligning destination, code + branches to different locations depending on the value of + misalignment, when multiarch is enabled. Fix this. + +2011-03-02 Harsha Jagasia + + * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): + Set _x86_64_preferred_memory_instruction for AMD processsors. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Set bit_Prefer_SSE_for_memop for AMD processors. + +2010-11-07 H.J. Lu + + * sysdeps/x86_64/memset.S: Check USE_MULTIARCH and USE_SSE2 for + IFUNC support. + * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add + memset-x86-64. + * sysdeps/x86_64/multiarch/bzero.S: New file. + * sysdeps/x86_64/multiarch/cacheinfo.c: New file. + * sysdeps/x86_64/multiarch/memset-x86-64.S: New file. + * sysdeps/x86_64/multiarch/memset.S: New file. + * sysdeps/x86_64/multiarch/memset_chk.S: New file. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Set bit_Prefer_SSE_for_memop for Intel processors. + * sysdeps/x86_64/multiarch/init-arch.h (bit_Prefer_SSE_for_memop): + Define. + (index_Prefer_SSE_for_memop): Define. + (HAS_PREFER_SSE_FOR_MEMOP): Define. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +@@ -613,6 +613,25 @@ init_cacheinfo (void) + long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE); + shared = handle_amd (_SC_LEVEL3_CACHE_SIZE); + ++#ifndef DISABLE_PREFERRED_MEMORY_INSTRUCTION ++# ifdef USE_MULTIARCH ++ eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; ++ ebx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ebx; ++ ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx; ++ edx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].edx; ++# else ++ __cpuid (1, eax, ebx, ecx, edx); ++# endif ++ ++ /* AMD prefers SSSE3 instructions for memory/string routines ++ if they are avaiable, otherwise it prefers integer ++ instructions. */ ++ if ((ecx & 0x200)) ++ __x86_64_preferred_memory_instruction = 3; ++ else ++ __x86_64_preferred_memory_instruction = 0; ++#endif ++ + /* Get maximum extended function. */ + __cpuid (0x80000000, max_cpuid_ex, ebx, ecx, edx); + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/memset.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S +@@ -24,7 +24,7 @@ + #define __STOS_UPPER_BOUNDARY $65536 + + .text +-#ifndef NOT_IN_libc ++#if !defined NOT_IN_libc && !defined USE_MULTIARCH + ENTRY(__bzero) + mov %rsi,%rdx /* Adjust parameter. */ + xorl %esi,%esi /* Fill with 0s. */ +@@ -34,10 +34,10 @@ weak_alias (__bzero, bzero) + #endif + + #if defined PIC && !defined NOT_IN_libc +-ENTRY (__memset_chk) ++ENTRY_CHK (__memset_chk) + cmpq %rdx, %rcx + jb HIDDEN_JUMPTARGET (__chk_fail) +-END (__memset_chk) ++END_CHK (__memset_chk) + #endif + ENTRY (memset) + L(memset_entry): +@@ -591,157 +591,15 @@ L(A6Q1): mov %dx,-0xe(%rdi) + L(A7Q0): mov %dl,-0x7(%rdi) + L(A6Q0): mov %dx,-0x6(%rdi) + mov %edx,-0x4(%rdi) +- jmp L(aligned_now) +- +- .balign 16 +-L(aligned_now): +- +- cmpl $0x1,__x86_64_preferred_memory_instruction(%rip) +- jg L(SSE_pre) +- +-L(8byte_move_try): +- cmpq __STOS_LOWER_BOUNDARY,%r8 +- jae L(8byte_stos_try) +- +- .balign 16 +-L(8byte_move): +- movq %r8,%rcx +- shrq $7,%rcx +- jz L(8byte_move_skip) +- +- .p2align 4 +- +-L(8byte_move_loop): +- decq %rcx +- +- movq %rdx, (%rdi) +- movq %rdx, 8 (%rdi) +- movq %rdx, 16 (%rdi) +- movq %rdx, 24 (%rdi) +- movq %rdx, 32 (%rdi) +- movq %rdx, 40 (%rdi) +- movq %rdx, 48 (%rdi) +- movq %rdx, 56 (%rdi) +- movq %rdx, 64 (%rdi) +- movq %rdx, 72 (%rdi) +- movq %rdx, 80 (%rdi) +- movq %rdx, 88 (%rdi) +- movq %rdx, 96 (%rdi) +- movq %rdx, 104 (%rdi) +- movq %rdx, 112 (%rdi) +- movq %rdx, 120 (%rdi) +- +- leaq 128 (%rdi),%rdi +- +- jnz L(8byte_move_loop) +- +-L(8byte_move_skip): +- andl $127,%r8d +- lea (%rdi,%r8,1),%rdi +- +-#ifndef PIC +- lea L(setPxQx)(%rip),%r11 +- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC +-#else +- lea L(Got0)(%rip),%r11 +- lea L(setPxQx)(%rip),%rcx +- movswq (%rcx,%r8,2),%rcx +- lea (%rcx,%r11,1),%r11 +- jmpq *%r11 +-#endif +- +- .balign 16 +-L(8byte_stos_try): +- mov __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size +- cmpq %r8,%r9 // calculate the lesser of remaining +- cmovaq %r8,%r9 // bytes and largest cache size +- jbe L(8byte_stos) +- +-L(8byte_move_reuse_try): +- cmp __STOS_UPPER_BOUNDARY,%r8 +- jae L(8byte_move) +- +- .balign 16 +-L(8byte_stos): +- movq %r9,%rcx +- andq $-8,%r9 +- +- shrq $3,%rcx +- jz L(8byte_stos_skip) +- +- xchgq %rax,%rdx +- +- rep +- stosq +- +- xchgq %rax,%rdx +- +-L(8byte_stos_skip): +- subq %r9,%r8 +- ja L(8byte_nt_move) +- +- andl $7,%r8d +- lea (%rdi,%r8,1),%rdi +-#ifndef PIC +- lea L(setPxQx)(%rip),%r11 +- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC +-#else +- lea L(Got0)(%rip),%r11 +- lea L(setPxQx)(%rip),%rcx +- movswq (%rcx,%r8,2),%rcx +- lea (%rcx,%r11,1),%r11 +- jmpq *%r11 +-#endif + +- .balign 16 +-L(8byte_nt_move): +- movq %r8,%rcx +- shrq $7,%rcx +- jz L(8byte_nt_move_skip) +- +- .balign 16 +-L(8byte_nt_move_loop): +- decq %rcx +- +- movntiq %rdx, (%rdi) +- movntiq %rdx, 8 (%rdi) +- movntiq %rdx, 16 (%rdi) +- movntiq %rdx, 24 (%rdi) +- movntiq %rdx, 32 (%rdi) +- movntiq %rdx, 40 (%rdi) +- movntiq %rdx, 48 (%rdi) +- movntiq %rdx, 56 (%rdi) +- movntiq %rdx, 64 (%rdi) +- movntiq %rdx, 72 (%rdi) +- movntiq %rdx, 80 (%rdi) +- movntiq %rdx, 88 (%rdi) +- movntiq %rdx, 96 (%rdi) +- movntiq %rdx, 104 (%rdi) +- movntiq %rdx, 112 (%rdi) +- movntiq %rdx, 120 (%rdi) +- +- leaq 128 (%rdi),%rdi +- +- jnz L(8byte_nt_move_loop) +- +- sfence +- +-L(8byte_nt_move_skip): +- andl $127,%r8d ++#ifndef USE_MULTIARCH ++ jmp L(aligned_now) + +- lea (%rdi,%r8,1),%rdi +-#ifndef PIC +- lea L(setPxQx)(%rip),%r11 +- jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++L(SSE_pre): + #else +- lea L(Got0)(%rip),%r11 +- lea L(setPxQx)(%rip),%rcx +- movswq (%rcx,%r8,2),%rcx +- lea (%rcx,%r11,1),%r11 +- jmpq *%r11 ++L(aligned_now): + #endif +- +-L(SSE_pre): ++#if !defined USE_MULTIARCH || defined USE_SSE2 + # fill RegXMM0 with the pattern + movd %rdx,%xmm0 + punpcklqdq %xmm0,%xmm0 +@@ -1342,11 +1200,162 @@ L(SSExDx): + .short L(SSE15QB)-L(SSE0Q0) + #endif + .popsection ++#endif /* !defined USE_MULTIARCH || defined USE_SSE2 */ ++ ++ .balign 16 ++#ifndef USE_MULTIARCH ++L(aligned_now): ++ ++ cmpl $0x1,__x86_64_preferred_memory_instruction(%rip) ++ jg L(SSE_pre) ++#endif /* USE_MULTIARCH */ ++ ++L(8byte_move_try): ++ cmpq __STOS_LOWER_BOUNDARY,%r8 ++ jae L(8byte_stos_try) ++ ++ .balign 16 ++L(8byte_move): ++ movq %r8,%rcx ++ shrq $7,%rcx ++ jz L(8byte_move_skip) ++ ++ .p2align 4 ++ ++L(8byte_move_loop): ++ decq %rcx ++ ++ movq %rdx, (%rdi) ++ movq %rdx, 8 (%rdi) ++ movq %rdx, 16 (%rdi) ++ movq %rdx, 24 (%rdi) ++ movq %rdx, 32 (%rdi) ++ movq %rdx, 40 (%rdi) ++ movq %rdx, 48 (%rdi) ++ movq %rdx, 56 (%rdi) ++ movq %rdx, 64 (%rdi) ++ movq %rdx, 72 (%rdi) ++ movq %rdx, 80 (%rdi) ++ movq %rdx, 88 (%rdi) ++ movq %rdx, 96 (%rdi) ++ movq %rdx, 104 (%rdi) ++ movq %rdx, 112 (%rdi) ++ movq %rdx, 120 (%rdi) ++ ++ leaq 128 (%rdi),%rdi ++ ++ jnz L(8byte_move_loop) ++ ++L(8byte_move_skip): ++ andl $127,%r8d ++ lea (%rdi,%r8,1),%rdi ++ ++#ifndef PIC ++ lea L(setPxQx)(%rip),%r11 ++ jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++#else ++ lea L(Got0)(%rip),%r11 ++ lea L(setPxQx)(%rip),%rcx ++ movswq (%rcx,%r8,2),%rcx ++ lea (%rcx,%r11,1),%r11 ++ jmpq *%r11 ++#endif ++ ++ .balign 16 ++L(8byte_stos_try): ++ mov __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size ++ cmpq %r8,%r9 // calculate the lesser of remaining ++ cmovaq %r8,%r9 // bytes and largest cache size ++ jbe L(8byte_stos) ++ ++L(8byte_move_reuse_try): ++ cmp __STOS_UPPER_BOUNDARY,%r8 ++ jae L(8byte_move) ++ ++ .balign 16 ++L(8byte_stos): ++ movq %r9,%rcx ++ andq $-8,%r9 ++ ++ shrq $3,%rcx ++ jz L(8byte_stos_skip) ++ ++ xchgq %rax,%rdx ++ ++ rep ++ stosq ++ ++ xchgq %rax,%rdx ++ ++L(8byte_stos_skip): ++ subq %r9,%r8 ++ ja L(8byte_nt_move) ++ ++ andl $7,%r8d ++ lea (%rdi,%r8,1),%rdi ++#ifndef PIC ++ lea L(setPxQx)(%rip),%r11 ++ jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++#else ++ lea L(Got0)(%rip),%r11 ++ lea L(setPxQx)(%rip),%rcx ++ movswq (%rcx,%r8,2),%rcx ++ lea (%rcx,%r11,1),%r11 ++ jmpq *%r11 ++#endif ++ ++ .balign 16 ++L(8byte_nt_move): ++ movq %r8,%rcx ++ shrq $7,%rcx ++ jz L(8byte_nt_move_skip) ++ ++ .balign 16 ++L(8byte_nt_move_loop): ++ decq %rcx ++ ++ movntiq %rdx, (%rdi) ++ movntiq %rdx, 8 (%rdi) ++ movntiq %rdx, 16 (%rdi) ++ movntiq %rdx, 24 (%rdi) ++ movntiq %rdx, 32 (%rdi) ++ movntiq %rdx, 40 (%rdi) ++ movntiq %rdx, 48 (%rdi) ++ movntiq %rdx, 56 (%rdi) ++ movntiq %rdx, 64 (%rdi) ++ movntiq %rdx, 72 (%rdi) ++ movntiq %rdx, 80 (%rdi) ++ movntiq %rdx, 88 (%rdi) ++ movntiq %rdx, 96 (%rdi) ++ movntiq %rdx, 104 (%rdi) ++ movntiq %rdx, 112 (%rdi) ++ movntiq %rdx, 120 (%rdi) ++ ++ leaq 128 (%rdi),%rdi ++ ++ jnz L(8byte_nt_move_loop) ++ ++ sfence ++ ++L(8byte_nt_move_skip): ++ andl $127,%r8d ++ ++ lea (%rdi,%r8,1),%rdi ++#ifndef PIC ++ lea L(setPxQx)(%rip),%r11 ++ jmpq *(%r11,%r8,8) # old scheme remained for nonPIC ++#else ++ lea L(Got0)(%rip),%r11 ++ lea L(setPxQx)(%rip),%rcx ++ movswq (%rcx,%r8,2),%rcx ++ lea (%rcx,%r11,1),%r11 ++ jmpq *%r11 ++#endif + + END (memset) + libc_hidden_builtin_def (memset) + +-#if defined PIC && !defined NOT_IN_libc ++#if defined PIC && !defined NOT_IN_libc && !defined USE_MULTIARCH + strong_alias (__memset_chk, __memset_zero_constant_len_parameter) + .section .gnu.warning.__memset_zero_constant_len_parameter + .string "memset used with constant zero length parameter; this could be due to transposed parameters" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile +@@ -7,7 +7,8 @@ ifeq ($(subdir),string) + sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ + strend-sse4 memcmp-sse4 \ + strcasestr-nonascii strcasecmp_l-ssse3 \ +- strncase_l-ssse3 ++ strncase_l-ssse3 \ ++ memset-x86-64 + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S +@@ -0,0 +1,56 @@ ++/* Multiple versions of bzero ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++ .text ++ENTRY(__bzero) ++ .type __bzero, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: leaq __bzero_x86_64(%rip), %rax ++ testl $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip) ++ jz 2f ++ leaq __bzero_sse2(%rip), %rax ++2: ret ++END(__bzero) ++ ++ .type __bzero_sse2, @function ++__bzero_sse2: ++ cfi_startproc ++ CALL_MCOUNT ++ mov %rsi,%rdx /* Adjust parameter. */ ++ xorl %esi,%esi /* Fill with 0s. */ ++ jmp __memset_sse2 ++ cfi_endproc ++ .size __bzero_sse2, .-__bzero_sse2 ++ ++ .type __bzero_x86_64, @function ++__bzero_x86_64: ++ cfi_startproc ++ CALL_MCOUNT ++ mov %rsi,%rdx /* Adjust parameter. */ ++ xorl %esi,%esi /* Fill with 0s. */ ++ jmp __memset_x86_64 ++ cfi_endproc ++ .size __bzero_x86_64, .-__bzero_x86_64 ++ ++weak_alias (__bzero, bzero) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c +@@ -0,0 +1,2 @@ ++#define DISABLE_PREFERRED_MEMORY_INSTRUCTION ++#include "../cacheinfo.c" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -59,6 +59,11 @@ __init_cpu_features (void) + + get_common_indeces (&family, &model); + ++ /* Intel processors prefer SSE instruction for memory/string ++ routines if they are avaiable. */ ++ __cpu_features.feature[index_Prefer_SSE_for_memop] ++ |= bit_Prefer_SSE_for_memop; ++ + unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax; + unsigned int extended_family = (eax >> 20) & 0xff; + unsigned int extended_model = (eax >> 12) & 0xf0; +@@ -92,6 +97,14 @@ __init_cpu_features (void) + kind = arch_kind_amd; + + get_common_indeces (&family, &model); ++ ++ unsigned int ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx; ++ ++ /* AMD processors prefer SSE instructions for memory/string routines ++ if they are available, otherwise they prefer integer instructions. */ ++ if ((ecx & 0x200)) ++ __cpu_features.feature[index_Prefer_SSE_for_memop] ++ |= bit_Prefer_SSE_for_memop; + } + else + kind = arch_kind_other; +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h +@@ -16,7 +16,8 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +-#define bit_Fast_Rep_String (1 << 0) ++#define bit_Fast_Rep_String (1 << 0) ++#define bit_Prefer_SSE_for_memop (1 << 3) + + #ifdef __ASSEMBLER__ + +@@ -33,6 +34,7 @@ + # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET + + #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE ++# define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ + +@@ -103,5 +105,12 @@ extern const struct cpu_features *__get_ + # define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12) + + # define index_Fast_Rep_String FEATURE_INDEX_1 ++# define index_Prefer_SSE_for_memop FEATURE_INDEX_1 ++ ++#define HAS_ARCH_FEATURE(idx, bit) \ ++ ((__get_cpu_features ()->feature[idx] & (bit)) != 0) ++ ++#define HAS_PREFER_SSE_FOR_MEMOP \ ++ HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) + + #endif /* __ASSEMBLER__ */ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S +@@ -0,0 +1,18 @@ ++#include ++ ++#ifndef NOT_IN_libc ++# undef ENTRY_CHK ++# define ENTRY_CHK(name) \ ++ .type __memset_chk_x86_64, @function; \ ++ .globl __memset_chk_x86_64; \ ++ .p2align 4; \ ++ __memset_chk_x86_64: cfi_startproc; \ ++ CALL_MCOUNT ++# undef END_CHK ++# define END_CHK(name) \ ++ cfi_endproc; .size __memset_chk_x86_64, .-__memset_chk_x86_64 ++ ++# define libc_hidden_builtin_def(name) ++# define memset __memset_x86_64 ++# include "../memset.S" ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S +@@ -0,0 +1,74 @@ ++/* Multiple versions of memset ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Define multiple versions only for the definition in lib. */ ++#ifndef NOT_IN_libc ++ENTRY(memset) ++ .type memset, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: leaq __memset_x86_64(%rip), %rax ++ testl $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip) ++ jz 2f ++ leaq __memset_sse2(%rip), %rax ++2: ret ++END(memset) ++ ++# define USE_SSE2 1 ++ ++# undef ENTRY ++# define ENTRY(name) \ ++ .type __memset_sse2, @function; \ ++ .globl __memset_sse2; \ ++ .p2align 4; \ ++ __memset_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# undef END ++# define END(name) \ ++ cfi_endproc; .size __memset_sse2, .-__memset_sse2 ++ ++# undef ENTRY_CHK ++# define ENTRY_CHK(name) \ ++ .type __memset_chk_sse2, @function; \ ++ .globl __memset_chk_sse2; \ ++ .p2align 4; \ ++ __memset_chk_sse2: cfi_startproc; \ ++ CALL_MCOUNT ++# undef END_CHK ++# define END_CHK(name) \ ++ cfi_endproc; .size __memset_chk_sse2, .-__memset_chk_sse2 ++ ++# ifdef SHARED ++# undef libc_hidden_builtin_def ++/* It doesn't make sense to send libc-internal memset calls through a PLT. ++ The speedup we get from using GPR instruction is likely eaten away ++ by the indirect call in the PLT. */ ++# define libc_hidden_builtin_def(name) \ ++ .globl __GI_memset; __GI_memset = __memset_sse2 ++# endif ++ ++# undef strong_alias ++# define strong_alias(original, alias) ++#endif ++ ++#include "../memset.S" +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S +@@ -0,0 +1,44 @@ ++/* Multiple versions of __memset_chk ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++ ++/* Define multiple versions only for the definition in lib. */ ++#ifndef NOT_IN_libc ++# ifdef SHARED ++ENTRY(__memset_chk) ++ .type __memset_chk, @gnu_indirect_function ++ cmpl $0, __cpu_features+KIND_OFFSET(%rip) ++ jne 1f ++ call __init_cpu_features ++1: leaq __memset_chk_x86_64(%rip), %rax ++ testl $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip) ++ jz 2f ++ leaq __memset_chk_sse2(%rip), %rax ++2: ret ++END(__memset_chk) ++ ++strong_alias (__memset_chk, __memset_zero_constant_len_parameter) ++ .section .gnu.warning.__memset_zero_constant_len_parameter ++ .string "memset used with constant zero length parameter; this could be due to transposed parameters" ++# else ++# include "../memset_chk.S" ++# endif ++#endif diff --git a/src/patches/glibc/glibc-rh676591.patch b/src/patches/glibc/glibc-rh676591.patch new file mode 100644 index 0000000000..fd6df1e42b --- /dev/null +++ b/src/patches/glibc/glibc-rh676591.patch @@ -0,0 +1,352 @@ +2011-05-15 Ulrich Drepper + + [BZ #11901] + * include/stdlib.h: Move include protection to the right place. + Define abort_msg_s. Declare __abort_msg with it. + * stdlib/abort.c (__abort_msg): Adjust type. + * assert/assert.c (__assert_fail_base): New function. Majority + of code from __assert_fail. Allocate memory for __abort_msg with + mmap. + (__assert_fail): Now call __assert_fail_base. + * assert/assert-perr.c: Remove bulk of implementation. Use + __assert_fail_base. + * include/assert.hL Declare __assert_fail_base. + * sysdeps/posix/libc_fatal.c: Allocate memory for __abort_msg with + mmap. + * sysdeps/unix/sysv/linux/libc_fatal.c: Likewise. + +Index: glibc-2.12-2-gc4ccff1/assert/assert-perr.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/assert/assert-perr.c ++++ glibc-2.12-2-gc4ccff1/assert/assert-perr.c +@@ -17,66 +17,23 @@ + 02111-1307 USA. */ + + #include +-#include + #include +-#include +-#include + #include +-#include +-#include + + +-extern const char *__progname; +- +-#ifdef USE_IN_LIBIO +-# include +-# include +-# define fflush(s) INTUSE(_IO_fflush) (s) +-#endif +- + /* This function, when passed an error number, a filename, and a line + number, prints a message on the standard error stream of the form: +- a.c:10: foobar: Unexpected error: Computer bought the farm ++ a.c:10: foobar: Unexpected error: Computer bought the farm + It then aborts program execution via a call to `abort'. */ +- +-#ifdef FATAL_PREPARE_INCLUDE +-# include FATAL_PREPARE_INCLUDE +-#endif +- + void + __assert_perror_fail (int errnum, + const char *file, unsigned int line, + const char *function) + { + char errbuf[1024]; +- char *buf; +- +-#ifdef FATAL_PREPARE +- FATAL_PREPARE; +-#endif +- +- if (__asprintf (&buf, _("%s%s%s:%u: %s%sUnexpected error: %s.\n"), +- __progname, __progname[0] ? ": " : "", +- file, line, +- function ? function : "", function ? ": " : "", +- __strerror_r (errnum, errbuf, sizeof errbuf)) >= 0) +- { +- /* Print the message. */ +- (void) __fxprintf (NULL, "%s", buf); +- (void) fflush (stderr); +- +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); +- } +- else +- { +- /* At least print a minimal message. */ +- static const char errstr[] = "Unexpected error.\n"; +- __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1); +- } + +- abort (); ++ char *e = __strerror_r (errnum, errbuf, sizeof errbuf); ++ __assert_fail_base (_("%s%s%s:%u: %s%sUnexpected error: %s.\n"), ++ e, file, line, function); + } + libc_hidden_def (__assert_perror_fail) +Index: glibc-2.12-2-gc4ccff1/assert/assert.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/assert/assert.c ++++ glibc-2.12-2-gc4ccff1/assert/assert.c +@@ -19,11 +19,13 @@ + + #include + #include ++#include + #include + #include + #include + #include + #include ++#include + + + extern const char *__progname; +@@ -45,31 +47,44 @@ extern const char *__progname; + #endif + + +-#undef __assert_fail + void +-__assert_fail (const char *assertion, const char *file, unsigned int line, +- const char *function) ++__assert_fail_base (const char *fmt, const char *assertion, const char *file, ++ unsigned int line, const char *function) + { +- char *buf; ++ char *str; + + #ifdef FATAL_PREPARE + FATAL_PREPARE; + #endif + +- if (__asprintf (&buf, _("%s%s%s:%u: %s%sAssertion `%s' failed.\n"), ++ int total; ++ if (__asprintf (&str, fmt, + __progname, __progname[0] ? ": " : "", + file, line, + function ? function : "", function ? ": " : "", +- assertion) >= 0) ++ assertion, &total) >= 0) + { + /* Print the message. */ +- (void) __fxprintf (NULL, "%s", buf); ++ (void) __fxprintf (NULL, "%s", str); + (void) fflush (stderr); + +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); ++ total = (total + 1 + GLRO(dl_pagesize) - 1) & ~(GLRO(dl_pagesize) - 1); ++ struct abort_msg_s *buf = __mmap (NULL, total, PROT_READ | PROT_WRITE, ++ MAP_ANON | MAP_PRIVATE, -1, 0); ++ if (__builtin_expect (buf != MAP_FAILED, 1)) ++ { ++ buf->size = total; ++ strcpy (buf->msg, str); ++ ++ /* We have to free the old buffer since the application might ++ catch the SIGABRT signal. */ ++ struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, buf); ++ ++ if (old != NULL) ++ __munmap (old, old->size); ++ } ++ ++ free (str); + } + else + { +@@ -80,4 +95,14 @@ __assert_fail (const char *assertion, co + + abort (); + } ++ ++ ++#undef __assert_fail ++void ++__assert_fail (const char *assertion, const char *file, unsigned int line, ++ const char *function) ++{ ++ __assert_fail_base (_("%s%s%s:%u: %s%sAssertion `%s' failed.\n%n"), ++ assertion, file, line, function); ++} + hidden_def(__assert_fail) +Index: glibc-2.12-2-gc4ccff1/include/assert.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/assert.h ++++ glibc-2.12-2-gc4ccff1/include/assert.h +@@ -13,6 +13,12 @@ extern void __assert_perror_fail (int __ + __const char *__function) + __THROW __attribute__ ((__noreturn__)); + ++/* The real implementation of the two functions above. */ ++extern void __assert_fail_base (const char *fmt, const char *assertion, ++ const char *file, unsigned int line, ++ const char *function) ++ __THROW __attribute__ ((__noreturn__)); ++ + #if !defined NOT_IN_libc || defined IS_IN_rtld + hidden_proto (__assert_fail) + hidden_proto (__assert_perror_fail) +Index: glibc-2.12-2-gc4ccff1/include/stdlib.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/stdlib.h ++++ glibc-2.12-2-gc4ccff1/include/stdlib.h +@@ -223,16 +223,21 @@ extern int __qfcvt_r (long double __valu + # define __cxa_atexit(func, arg, d) INTUSE(__cxa_atexit) (func, arg, d) + # endif + +-#endif +- + extern void *__default_morecore (ptrdiff_t) __THROW; + libc_hidden_proto (__default_morecore) + +-extern char *__abort_msg; ++struct abort_msg_s ++{ ++ unsigned int size; ++ char msg[0]; ++}; ++extern struct abort_msg_s *__abort_msg; + libc_hidden_proto (__abort_msg) + + __END_DECLS + ++#endif ++ + #undef __Need_M_And_C + + #endif /* include/stdlib.h */ +Index: glibc-2.12-2-gc4ccff1/stdlib/abort.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/stdlib/abort.c ++++ glibc-2.12-2-gc4ccff1/stdlib/abort.c +@@ -37,7 +37,7 @@ + #endif + + /* Exported variable to locate abort message in core files etc. */ +-char *__abort_msg __attribute__ ((nocommon)); ++struct abort_msg_s *__abort_msg __attribute__ ((nocommon)); + libc_hidden_def (__abort_msg) + + /* We must avoid to run in circles. Therefore we remember how far we +Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/libc_fatal.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -125,18 +126,28 @@ __libc_message (int do_abort, const char + if (TEMP_FAILURE_RETRY (__writev (fd, iov, nlist)) == total) + written = true; + +- char *buf = do_abort ? malloc (total + 1) : NULL; +- if (buf != NULL) ++ if (do_abort) + { +- char *wp = buf; +- for (int cnt = 0; cnt < nlist; ++cnt) +- wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); +- *wp = '\0'; +- +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); ++ total = ((total + 1 + GLRO(dl_pagesize) - 1) ++ & ~(GLRO(dl_pagesize) - 1)); ++ struct abort_msg_s *buf = __mmap (NULL, total, ++ PROT_READ | PROT_WRITE, ++ MAP_ANON | MAP_PRIVATE, -1, 0); ++ if (buf != MAP_FAILED) ++ { ++ buf->size = total; ++ char *wp = buf->msg; ++ for (int cnt = 0; cnt < nlist; ++cnt) ++ wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); ++ *wp = '\0'; ++ ++ /* We have to free the old buffer since the application might ++ catch the SIGABRT signal. */ ++ struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, ++ buf); ++ if (old != NULL) ++ __munmap (old, old->size); ++ } + } + } + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/libc_fatal.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -28,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -134,18 +136,28 @@ __libc_message (int do_abort, const char + if (cnt == total) + written = true; + +- char *buf = do_abort ? malloc (total + 1) : NULL; +- if (buf != NULL) ++ if (do_abort) + { +- char *wp = buf; +- for (int cnt = 0; cnt < nlist; ++cnt) +- wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); +- *wp = '\0'; +- +- /* We have to free the old buffer since the application might +- catch the SIGABRT signal. */ +- char *old = atomic_exchange_acq (&__abort_msg, buf); +- free (old); ++ total = ((total + 1 + GLRO(dl_pagesize) - 1) ++ & ~(GLRO(dl_pagesize) - 1)); ++ struct abort_msg_s *buf = __mmap (NULL, total, ++ PROT_READ | PROT_WRITE, ++ MAP_ANON | MAP_PRIVATE, -1, 0); ++ if (__builtin_expect (buf != MAP_FAILED, 1)) ++ { ++ buf->size = total; ++ char *wp = buf->msg; ++ for (int cnt = 0; cnt < nlist; ++cnt) ++ wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len); ++ *wp = '\0'; ++ ++ /* We have to free the old buffer since the application might ++ catch the SIGABRT signal. */ ++ struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, ++ buf); ++ if (old != NULL) ++ __munmap (old, old->size); ++ } + } + } + diff --git a/src/patches/glibc/glibc-rh681054.patch b/src/patches/glibc/glibc-rh681054.patch new file mode 100644 index 0000000000..27b7361830 --- /dev/null +++ b/src/patches/glibc/glibc-rh681054.patch @@ -0,0 +1,514 @@ +2011-03-18 Ulrich Drepper + + * posix/fnmatch.c (fnmatch): Check size of pattern in wide + character representation. + Partly based on a patch by Tomas Hoger . + +2010-11-11 Andreas Schwab + + * posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca. + * posix/Makefile (tests): Add $(objpfx)tst-fnmatch-mem. + (tst-fnmatch-ENV): Set MALLOC_TRACE. + ($(objpfx)tst-fnmatch-mem): New rule. + (generated): Add tst-fnmatch-mem and tst-fnmatch.mtrace. + * posix/tst-fnmatch.c (main): Call mtrace. + +2010-08-09 Ulrich Drepper + + [BZ #11883] + * posix/fnmatch.c: Keep track of alloca use and fall back on malloc. + * posix/fnmatch_loop.c: Likewise. + +Index: glibc-2.12-2-gc4ccff1/posix/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/Makefile ++++ glibc-2.12-2-gc4ccff1/posix/Makefile +@@ -114,7 +114,8 @@ generated := $(addprefix wordexp-test-re + tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \ + tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \ + bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \ +- tst-vfork3-mem tst-vfork3.mtrace getconf.speclist ++ tst-vfork3-mem tst-vfork3.mtrace getconf.speclist \ ++ tst-fnmatch-mem tst-fnmatch.mtrace + + include ../Rules + +@@ -226,7 +227,7 @@ ifeq (no,$(cross-compiling)) + tests: $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \ + $(objpfx)bug-regex21-mem $(objpfx)tst-rxspencer-mem \ + $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out \ +- $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem ++ $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem $(objpfx)tst-fnmatch-mem + xtests: $(objpfx)bug-ga2-mem + endif + +@@ -238,6 +239,11 @@ annexc-CFLAGS = -O + $(objpfx)annexc: annexc.c + $(native-compile) + ++tst-fnmatch-ENV += MALLOC_TRACE=$(objpfx)tst-fnmatch.mtrace ++ ++$(objpfx)tst-fnmatch-mem: $(objpfx)tst-fnmatch.out ++ $(common-objpfx)malloc/mtrace $(objpfx)tst-fnmatch.mtrace > $@ ++ + bug-regex2-ENV = MALLOC_TRACE=$(objpfx)bug-regex2.mtrace + + $(objpfx)bug-regex2-mem: $(objpfx)bug-regex2.out +Index: glibc-2.12-2-gc4ccff1/posix/fnmatch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch.c ++++ glibc-2.12-2-gc4ccff1/posix/fnmatch.c +@@ -41,6 +41,12 @@ + # include + #endif + ++#ifdef _LIBC ++# include ++#else ++# define alloca_account(size., var) alloca (size) ++#endif ++ + /* For platform which support the ISO C amendement 1 functionality we + support user defined character classes. */ + #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) +@@ -330,8 +336,11 @@ fnmatch (pattern, string, flags) + mbstate_t ps; + size_t n; + const char *p; ++ wchar_t *wpattern_malloc = NULL; + wchar_t *wpattern; ++ wchar_t *wstring_malloc = NULL; + wchar_t *wstring; ++ size_t alloca_used = 0; + + /* Convert the strings into wide characters. */ + memset (&ps, '\0', sizeof (ps)); +@@ -343,7 +352,8 @@ fnmatch (pattern, string, flags) + #endif + if (__builtin_expect (n < 1024, 1)) + { +- wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ wpattern = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t), ++ alloca_used); + n = mbsrtowcs (wpattern, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) + /* Something wrong. +@@ -365,8 +375,16 @@ fnmatch (pattern, string, flags) + XXX Do we have to set `errno' to something which mbsrtows hasn't + already done? */ + return -1; +- wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) ++ { ++ __set_errno (ENOMEM); ++ return -2; ++ } ++ wpattern_malloc = wpattern ++ = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); + assert (mbsinit (&ps)); ++ if (wpattern == NULL) ++ return -2; + (void) mbsrtowcs (wpattern, &pattern, n + 1, &ps); + } + +@@ -379,13 +397,18 @@ fnmatch (pattern, string, flags) + p = string; + if (__builtin_expect (n < 1024, 1)) + { +- wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ wstring = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t), ++ alloca_used); + n = mbsrtowcs (wstring, &p, n + 1, &ps); + if (__builtin_expect (n == (size_t) -1, 0)) +- /* Something wrong. +- XXX Do we have to set `errno' to something which mbsrtows hasn't +- already done? */ +- return -1; ++ { ++ /* Something wrong. ++ XXX Do we have to set `errno' to something which ++ mbsrtows hasn't already done? */ ++ free_return: ++ free (wpattern_malloc); ++ return -1; ++ } + if (p) + { + memset (&ps, '\0', sizeof (ps)); +@@ -400,19 +423,38 @@ fnmatch (pattern, string, flags) + /* Something wrong. + XXX Do we have to set `errno' to something which mbsrtows hasn't + already done? */ +- return -1; +- wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t)); ++ goto free_return; ++ if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0)) ++ { ++ free (wpattern_malloc); ++ __set_errno (ENOMEM); ++ return -2; ++ } ++ ++ wstring_malloc = wstring ++ = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); ++ if (wstring == NULL) ++ { ++ free (wpattern_malloc); ++ return -2; ++ } + assert (mbsinit (&ps)); + (void) mbsrtowcs (wstring, &string, n + 1, &ps); + } + +- return internal_fnwmatch (wpattern, wstring, wstring + n, +- flags & FNM_PERIOD, flags, NULL); ++ int res = internal_fnwmatch (wpattern, wstring, wstring + n, ++ flags & FNM_PERIOD, flags, NULL, ++ alloca_used); ++ ++ free (wstring_malloc); ++ free (wpattern_malloc); ++ ++ return res; + } + # endif /* mbstate_t and mbsrtowcs or _LIBC. */ + + return internal_fnmatch (pattern, string, string + strlen (string), +- flags & FNM_PERIOD, flags, NULL); ++ flags & FNM_PERIOD, flags, NULL, 0); + } + + # ifdef _LIBC +Index: glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch_loop.c ++++ glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c +@@ -28,22 +28,24 @@ struct STRUCT + it matches, nonzero if not. */ + static int FCT (const CHAR *pattern, const CHAR *string, + const CHAR *string_end, int no_leading_period, int flags, +- struct STRUCT *ends) ++ struct STRUCT *ends, size_t alloca_used) + internal_function; + static int EXT (INT opt, const CHAR *pattern, const CHAR *string, +- const CHAR *string_end, int no_leading_period, int flags) ++ const CHAR *string_end, int no_leading_period, int flags, ++ size_t alloca_used) + internal_function; + static const CHAR *END (const CHAR *patternp) internal_function; + + static int + internal_function +-FCT (pattern, string, string_end, no_leading_period, flags, ends) ++FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) + const CHAR *pattern; + const CHAR *string; + const CHAR *string_end; + int no_leading_period; + int flags; + struct STRUCT *ends; ++ size_t alloca_used; + { + register const CHAR *p = pattern, *n = string; + register UCHAR c; +@@ -67,10 +69,8 @@ FCT (pattern, string, string_end, no_lea + case L('?'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { +- int res; +- +- res = EXT (c, p, n, string_end, no_leading_period, +- flags); ++ int res = EXT (c, p, n, string_end, no_leading_period, ++ flags, alloca_used); + if (res != -1) + return res; + } +@@ -99,10 +99,8 @@ FCT (pattern, string, string_end, no_lea + case L('*'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { +- int res; +- +- res = EXT (c, p, n, string_end, no_leading_period, +- flags); ++ int res = EXT (c, p, n, string_end, no_leading_period, ++ flags, alloca_used); + if (res != -1) + return res; + } +@@ -191,7 +189,7 @@ FCT (pattern, string, string_end, no_lea + + for (--p; n < endp; ++n, no_leading_period = 0) + if (FCT (p, n, string_end, no_leading_period, flags2, +- &end) == 0) ++ &end, alloca_used) == 0) + goto found; + } + else if (c == L('/') && (flags & FNM_FILE_NAME)) +@@ -200,7 +198,7 @@ FCT (pattern, string, string_end, no_lea + ++n; + if (n < string_end && *n == L('/') + && (FCT (p, n + 1, string_end, flags & FNM_PERIOD, flags, +- NULL) == 0)) ++ NULL, alloca_used) == 0)) + return 0; + } + else +@@ -214,7 +212,7 @@ FCT (pattern, string, string_end, no_lea + for (--p; n < endp; ++n, no_leading_period = 0) + if (FOLD ((UCHAR) *n) == c + && (FCT (p, n, string_end, no_leading_period, flags2, +- &end) == 0)) ++ &end, alloca_used) == 0)) + { + found: + if (end.pattern == NULL) +@@ -749,7 +747,7 @@ FCT (pattern, string, string_end, no_lea + _NL_COLLATE_SYMB_EXTRAMB); + + /* Locate the character in the hashing +- table. */ ++ table. */ + hash = elem_hash (str, c1); + + idx = 0; +@@ -971,9 +969,8 @@ FCT (pattern, string, string_end, no_lea + case L('!'): + if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(') + { +- int res; +- +- res = EXT (c, p, n, string_end, no_leading_period, flags); ++ int res = EXT (c, p, n, string_end, no_leading_period, flags, ++ alloca_used); + if (res != -1) + return res; + } +@@ -1052,26 +1049,32 @@ END (const CHAR *pattern) + static int + internal_function + EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end, +- int no_leading_period, int flags) ++ int no_leading_period, int flags, size_t alloca_used) + { + const CHAR *startp; + int level; + struct patternlist + { + struct patternlist *next; ++ CHAR malloced; + CHAR str[0]; + } *list = NULL; + struct patternlist **lastp = &list; + size_t pattern_len = STRLEN (pattern); ++ int any_malloced = 0; + const CHAR *p; + const CHAR *rs; ++ int retval = 0; + + /* Parse the pattern. Store the individual parts in the list. */ + level = 0; + for (startp = p = pattern + 1; level >= 0; ++p) + if (*p == L('\0')) +- /* This is an invalid pattern. */ +- return -1; ++ { ++ /* This is an invalid pattern. */ ++ retval = -1; ++ goto out; ++ } + else if (*p == L('[')) + { + /* Handle brackets special. */ +@@ -1088,8 +1091,11 @@ EXT (INT opt, const CHAR *pattern, const + /* Skip over all characters of the list. */ + while (*p != L(']')) + if (*p++ == L('\0')) +- /* This is no valid pattern. */ +- return -1; ++ { ++ /* This is no valid pattern. */ ++ retval = -1; ++ goto out; ++ } + } + else if ((*p == L('?') || *p == L('*') || *p == L('+') || *p == L('@') + || *p == L('!')) && p[1] == L('(')) +@@ -1102,15 +1108,25 @@ EXT (INT opt, const CHAR *pattern, const + /* This means we found the end of the pattern. */ + #define NEW_PATTERN \ + struct patternlist *newp; \ +- \ +- if (opt == L('?') || opt == L('@')) \ +- newp = alloca (sizeof (struct patternlist) \ +- + (pattern_len * sizeof (CHAR))); \ ++ size_t slen = (opt == L('?') || opt == L('@') \ ++ ? pattern_len : (p - startp + 1)); \ ++ slen = sizeof (struct patternlist) + (slen * sizeof (CHAR)); \ ++ int malloced = ! __libc_use_alloca (alloca_used + slen); \ ++ if (__builtin_expect (malloced, 0)) \ ++ { \ ++ newp = malloc (slen); \ ++ if (newp == NULL) \ ++ { \ ++ retval = -2; \ ++ goto out; \ ++ } \ ++ any_malloced = 1; \ ++ } \ + else \ +- newp = alloca (sizeof (struct patternlist) \ +- + ((p - startp + 1) * sizeof (CHAR))); \ +- *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \ ++ newp = alloca_account (slen, alloca_used); \ + newp->next = NULL; \ ++ newp->malloced = malloced; \ ++ *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0'); \ + *lastp = newp; \ + lastp = &newp->next + NEW_PATTERN; +@@ -1131,8 +1147,9 @@ EXT (INT opt, const CHAR *pattern, const + switch (opt) + { + case L('*'): +- if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0) +- return 0; ++ if (FCT (p, string, string_end, no_leading_period, flags, NULL, ++ alloca_used) == 0) ++ goto success; + /* FALLTHROUGH */ + + case L('+'): +@@ -1143,7 +1160,7 @@ EXT (INT opt, const CHAR *pattern, const + current pattern. */ + if (FCT (list->str, string, rs, no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0 ++ NULL, alloca_used) == 0 + /* This was successful. Now match the rest with the rest + of the pattern. */ + && (FCT (p, rs, string_end, +@@ -1151,7 +1168,7 @@ EXT (INT opt, const CHAR *pattern, const + ? no_leading_period + : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0, + flags & FNM_FILE_NAME +- ? flags : flags & ~FNM_PERIOD, NULL) == 0 ++ ? flags : flags & ~FNM_PERIOD, NULL, alloca_used) == 0 + /* This didn't work. Try the whole pattern. */ + || (rs != string + && FCT (pattern - 1, rs, string_end, +@@ -1160,18 +1177,21 @@ EXT (INT opt, const CHAR *pattern, const + : (rs[-1] == '/' && NO_LEADING_PERIOD (flags) + ? 1 : 0), + flags & FNM_FILE_NAME +- ? flags : flags & ~FNM_PERIOD, NULL) == 0))) ++ ? flags : flags & ~FNM_PERIOD, NULL, ++ alloca_used) == 0))) + /* It worked. Signal success. */ +- return 0; ++ goto success; + } + while ((list = list->next) != NULL); + + /* None of the patterns lead to a match. */ +- return FNM_NOMATCH; ++ retval = FNM_NOMATCH; ++ break; + + case L('?'): +- if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0) +- return 0; ++ if (FCT (p, string, string_end, no_leading_period, flags, NULL, ++ alloca_used) == 0) ++ goto success; + /* FALLTHROUGH */ + + case L('@'): +@@ -1183,13 +1203,14 @@ EXT (INT opt, const CHAR *pattern, const + if (FCT (STRCAT (list->str, p), string, string_end, + no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0) ++ NULL, alloca_used) == 0) + /* It worked. Signal success. */ +- return 0; ++ goto success; + while ((list = list->next) != NULL); + + /* None of the patterns lead to a match. */ +- return FNM_NOMATCH; ++ retval = FNM_NOMATCH; ++ break; + + case L('!'): + for (rs = string; rs <= string_end; ++rs) +@@ -1199,7 +1220,7 @@ EXT (INT opt, const CHAR *pattern, const + for (runp = list; runp != NULL; runp = runp->next) + if (FCT (runp->str, string, rs, no_leading_period, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0) ++ NULL, alloca_used) == 0) + break; + + /* If none of the patterns matched see whether the rest does. */ +@@ -1209,21 +1230,34 @@ EXT (INT opt, const CHAR *pattern, const + ? no_leading_period + : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0, + flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD, +- NULL) == 0)) ++ NULL, alloca_used) == 0)) + /* This is successful. */ +- return 0; ++ goto success; + } + + /* None of the patterns together with the rest of the pattern + lead to a match. */ +- return FNM_NOMATCH; ++ retval = FNM_NOMATCH; ++ break; + + default: + assert (! "Invalid extended matching operator"); ++ retval = -1; + break; + } + +- return -1; ++ success: ++ out: ++ if (any_malloced) ++ while (list != NULL) ++ { ++ struct patternlist *old = list; ++ list = list->next; ++ if (old->malloced) ++ free (old); ++ } ++ ++ return retval; + } + + +Index: glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/posix/tst-fnmatch.c ++++ glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + + + static char *next_input (char **line, int first, int last); +@@ -46,6 +47,8 @@ main (void) + size_t escpatternlen = 0; + int nr = 0; + ++ mtrace (); ++ + /* Read lines from stdin with the following format: + + locale input-string match-string flags result diff --git a/src/patches/glibc/glibc-rh688720.patch b/src/patches/glibc/glibc-rh688720.patch new file mode 100644 index 0000000000..0c86f25407 --- /dev/null +++ b/src/patches/glibc/glibc-rh688720.patch @@ -0,0 +1,1638 @@ +2011-11-11 Ulrich Drepper + + [BZ #13147] + * locales/de_AT: Use de_DE for LC_NUMERIC. + * locales/es_BO: Use es_ES for LC_MESSAGES and LC_NUMERIC. + * locales/es_CL: Likewise. + * locales/es_CO: Likewise. + * locales/es_DO: Likewise. + * locales/es_EC: Likewise. + * locales/es_GT: Likewise. + * locales/es_HN: Likewise. + * locales/es_MX: Likewise. + * locales/es_NI: Likewise. + * locales/es_PA: Likewise. + * locales/es_PE: Likewise. + * locales/es_PR: Likewise. + * locales/es_PY: Likewise. + * locales/es_SV: Likewise. + * locales/es_UY: Likewise. + * locales/es_VE: Likewise. + * locales/es_ES: Fix LC_NUMERIC. + * locales/es_CR: Use es_ES for LC_MESSAGES. + * locales/fr_BE: Actually use grouping in LC_NUMERIC. + * locales/fr_CA: Use fr_FR for LC_MESSAGES and LC_NUMERIC. + * locales/fr_CH: Use de_CH for LC_NUMERIC. + * locales/fr_LU: Use same grouping in LC_NUMERIC as in LC_MONETARY. + +2010-05-17 Andreas Schwab + + * locales/es_CR (LC_ADDRESS): Fix character names in lang_ab. + +Index: glibc-2.12-2-gc4ccff1/localedata/locales/de_AT +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/de_AT ++++ glibc-2.12-2-gc4ccff1/localedata/locales/de_AT +@@ -78,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "de_DE" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_BO +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_BO ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_BO +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CL +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CL ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CL +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CO +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CO ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CO +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CR +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CR ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CR +@@ -47,8 +47,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,34 +78,34 @@ END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +@@ -157,7 +156,7 @@ country_post "" + country_car "" + country_isbn "9930,9977,9968" + lang_name "" +-lang_ab "<0065><0073>" ++lang_ab "" + lang_term "" + country_ab2 "" + country_ab3 "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_DO +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_DO ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_DO +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_EC +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_EC ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_EC +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_ES +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_ES ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_ES +@@ -85,40 +85,40 @@ END LC_MONETARY + + LC_NUMERIC + decimal_point "" +-thousands_sep "" +-grouping 0;0 ++thousands_sep "" ++grouping 3;3 + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_GT +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_GT ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_GT +@@ -55,8 +55,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -78,9 +77,7 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_HN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_HN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_HN +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_MX +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_MX ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_MX +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_NI +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_NI ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_NI +@@ -47,8 +47,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -70,9 +69,7 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PA +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PA ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PA +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PE +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PE ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PE +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PR +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PR ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PR +@@ -47,8 +47,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -70,41 +69,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PY +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PY ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PY +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_SV +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_SV ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_SV +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,9 +78,7 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_UY +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_UY ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_UY +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_VE +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_VE ++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_VE +@@ -56,8 +56,7 @@ copy "es_ES" + END LC_CTYPE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "es_ES" + END LC_MESSAGES + + LC_MONETARY +@@ -79,41 +78,39 @@ n_sign_posn 1 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "es_ES" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_BE ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE +@@ -79,7 +79,7 @@ END LC_MONETARY + LC_NUMERIC + decimal_point "" + thousands_sep "" +-grouping 0;0 ++grouping 3;3 + END LC_NUMERIC + + LC_TIME +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CA ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA +@@ -55,8 +55,7 @@ copy "en_CA" + END LC_COLLATE + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "fr_FR" + END LC_MESSAGES + + LC_MONETARY +@@ -78,41 +77,39 @@ n_sign_posn 0 + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "fr_FR" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CH ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH +@@ -64,41 +64,39 @@ copy "de_CH" + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "de_CH" + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" +Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_LU ++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU +@@ -78,40 +78,40 @@ END LC_MONETARY + + LC_NUMERIC + decimal_point "" +-thousands_sep "" +-grouping 0;0 ++thousands_sep "" ++grouping 3;3 + END LC_NUMERIC + + LC_TIME + abday "";"";/ +- "";"";/ +- "";"";/ +- "" ++ "";"";/ ++ "";"";/ ++ "" + day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"" ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" + mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + d_t_fmt "" + d_fmt "" + t_fmt "" diff --git a/src/patches/glibc/glibc-rh688980.patch b/src/patches/glibc/glibc-rh688980.patch new file mode 100644 index 0000000000..ce989264fa --- /dev/null +++ b/src/patches/glibc/glibc-rh688980.patch @@ -0,0 +1,20 @@ +2011-05-11 Ulrich Drepper + + [BZ #12625] + * misc/mntent_r.c (addmntent): Flush the stream after the output + +Index: glibc-2.12-2-gc4ccff1/misc/mntent_r.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/misc/mntent_r.c ++++ glibc-2.12-2-gc4ccff1/misc/mntent_r.c +@@ -263,8 +263,8 @@ __addmntent (FILE *stream, const struct + mntcopy.mnt_type, + mntcopy.mnt_opts, + mntcopy.mnt_freq, +- mntcopy.mnt_passno) +- < 0 ? 1 : 0); ++ mntcopy.mnt_passno) < 0 ++ || fflush (stream) != 0); + } + weak_alias (__addmntent, addmntent) + diff --git a/src/patches/glibc/glibc-rh689471.patch b/src/patches/glibc/glibc-rh689471.patch new file mode 100644 index 0000000000..4c7fc8a7f2 --- /dev/null +++ b/src/patches/glibc/glibc-rh689471.patch @@ -0,0 +1,333 @@ +2011-03-20 H.J. Lu + + [BZ #12597] + * string/test-strncmp.c (do_page_test): New function. + (check2): Likewise. + (test_main): Call check2. + * sysdeps/x86_64/multiarch/strcmp.S: Properly cross page boundary. + +Index: glibc-2.12-2-gc4ccff1/string/test-strncmp.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/string/test-strncmp.c ++++ glibc-2.12-2-gc4ccff1/string/test-strncmp.c +@@ -200,6 +200,27 @@ do_test (size_t align1, size_t align2, s + } + + static void ++do_page_test (size_t offset1, size_t offset2, char *s2) ++{ ++ char *s1; ++ int exp_result; ++ ++ if (offset1 >= page_size || offset2 >= page_size) ++ return; ++ ++ s1 = (char *) (buf1 + offset1); ++ s2 += offset2; ++ ++ exp_result= *s1; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ check_result (impl, s1, s2, page_size, -exp_result); ++ check_result (impl, s2, s1, page_size, exp_result); ++ } ++} ++ ++static void + do_random_tests (void) + { + size_t i, j, n, align1, align2, pos, len1, len2, size; +@@ -312,6 +333,25 @@ check1 (void) + } + } + ++static void ++check2 (void) ++{ ++ size_t i; ++ char *s1, *s2; ++ ++ s1 = (char *) buf1; ++ for (i = 0; i < page_size - 1; i++) ++ s1[i] = 23; ++ s1[i] = 0; ++ ++ s2 = strdup (s1); ++ ++ for (i = 0; i < 64; ++i) ++ do_page_test (3990 + i, 2635, s2); ++ ++ free (s2); ++} ++ + int + test_main (void) + { +@@ -320,6 +360,7 @@ test_main (void) + test_init (); + + check1 (); ++ check2 (); + + printf ("%23s", ""); + FOR_EACH_IMPL (impl, 0) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S +@@ -452,6 +452,7 @@ LABEL(loop_ashr_1_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_1_use_sse4_2) + ++LABEL(nibble_ashr_1_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $1, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -499,7 +500,7 @@ LABEL(nibble_ashr_1_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $14, %ecx +- ja LABEL(loop_ashr_1_use_sse4_2) ++ ja LABEL(nibble_ashr_1_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -544,6 +545,7 @@ LABEL(loop_ashr_2_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_2_use_sse4_2) + ++LABEL(nibble_ashr_2_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $2, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -591,7 +593,7 @@ LABEL(nibble_ashr_2_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $13, %ecx +- ja LABEL(loop_ashr_2_use_sse4_2) ++ ja LABEL(nibble_ashr_2_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -636,6 +638,7 @@ LABEL(loop_ashr_3_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_3_use_sse4_2) + ++LABEL(nibble_ashr_3_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $3, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -683,7 +686,7 @@ LABEL(nibble_ashr_3_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $12, %ecx +- ja LABEL(loop_ashr_3_use_sse4_2) ++ ja LABEL(nibble_ashr_3_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -729,6 +732,7 @@ LABEL(loop_ashr_4_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_4_use_sse4_2) + ++LABEL(nibble_ashr_4_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $4, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -776,7 +780,7 @@ LABEL(nibble_ashr_4_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $11, %ecx +- ja LABEL(loop_ashr_4_use_sse4_2) ++ ja LABEL(nibble_ashr_4_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -822,6 +826,7 @@ LABEL(loop_ashr_5_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_5_use_sse4_2) + ++LABEL(nibble_ashr_5_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $5, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -870,7 +875,7 @@ LABEL(nibble_ashr_5_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $10, %ecx +- ja LABEL(loop_ashr_5_use_sse4_2) ++ ja LABEL(nibble_ashr_5_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -916,6 +921,7 @@ LABEL(loop_ashr_6_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_6_use_sse4_2) + ++LABEL(nibble_ashr_6_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $6, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -963,7 +969,7 @@ LABEL(nibble_ashr_6_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $9, %ecx +- ja LABEL(loop_ashr_6_use_sse4_2) ++ ja LABEL(nibble_ashr_6_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1009,6 +1015,7 @@ LABEL(loop_ashr_7_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_7_use_sse4_2) + ++LABEL(nibble_ashr_7_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $7, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1056,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $8, %ecx +- ja LABEL(loop_ashr_7_use_sse4_2) ++ ja LABEL(nibble_ashr_7_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1102,6 +1109,7 @@ LABEL(loop_ashr_8_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_8_use_sse4_2) + ++LABEL(nibble_ashr_8_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $8, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1149,7 +1157,7 @@ LABEL(nibble_ashr_8_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $7, %ecx +- ja LABEL(loop_ashr_8_use_sse4_2) ++ ja LABEL(nibble_ashr_8_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1195,6 +1203,7 @@ LABEL(loop_ashr_9_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_9_use_sse4_2) + ++LABEL(nibble_ashr_9_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + + palignr $9, -16(%rdi, %rdx), %xmm0 +@@ -1243,7 +1252,7 @@ LABEL(nibble_ashr_9_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $6, %ecx +- ja LABEL(loop_ashr_9_use_sse4_2) ++ ja LABEL(nibble_ashr_9_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1289,6 +1298,7 @@ LABEL(loop_ashr_10_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_10_use_sse4_2) + ++LABEL(nibble_ashr_10_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $10, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1336,7 +1346,7 @@ LABEL(nibble_ashr_10_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $5, %ecx +- ja LABEL(loop_ashr_10_use_sse4_2) ++ ja LABEL(nibble_ashr_10_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1382,6 +1392,7 @@ LABEL(loop_ashr_11_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_11_use_sse4_2) + ++LABEL(nibble_ashr_11_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $11, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1429,7 +1440,7 @@ LABEL(nibble_ashr_11_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $4, %ecx +- ja LABEL(loop_ashr_11_use_sse4_2) ++ ja LABEL(nibble_ashr_11_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1475,6 +1486,7 @@ LABEL(loop_ashr_12_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_12_use_sse4_2) + ++LABEL(nibble_ashr_12_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $12, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1522,7 +1534,7 @@ LABEL(nibble_ashr_12_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $3, %ecx +- ja LABEL(loop_ashr_12_use_sse4_2) ++ ja LABEL(nibble_ashr_12_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1569,6 +1581,7 @@ LABEL(loop_ashr_13_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_13_use_sse4_2) + ++LABEL(nibble_ashr_13_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $13, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1616,7 +1629,7 @@ LABEL(nibble_ashr_13_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $2, %ecx +- ja LABEL(loop_ashr_13_use_sse4_2) ++ ja LABEL(nibble_ashr_13_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1663,6 +1676,7 @@ LABEL(loop_ashr_14_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_14_use_sse4_2) + ++LABEL(nibble_ashr_14_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $14, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1710,7 +1724,7 @@ LABEL(nibble_ashr_14_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $1, %ecx +- ja LABEL(loop_ashr_14_use_sse4_2) ++ ja LABEL(nibble_ashr_14_use_sse4_2_restart) + + jmp LABEL(nibble_ashr_use_sse4_2_exit) + +@@ -1759,6 +1773,7 @@ LABEL(loop_ashr_15_use_sse4_2): + add $16, %r10 + jg LABEL(nibble_ashr_15_use_sse4_2) + ++LABEL(nibble_ashr_15_use_sse4_2_restart): + movdqa (%rdi, %rdx), %xmm0 + palignr $15, -16(%rdi, %rdx), %xmm0 + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L +@@ -1806,7 +1821,7 @@ LABEL(nibble_ashr_15_use_sse4_2): + jae LABEL(nibble_ashr_use_sse4_2_exit) + # endif + cmp $0, %ecx +- ja LABEL(loop_ashr_15_use_sse4_2) ++ ja LABEL(nibble_ashr_15_use_sse4_2_restart) + + LABEL(nibble_ashr_use_sse4_2_exit): + # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L diff --git a/src/patches/glibc/glibc-rh692177.patch b/src/patches/glibc/glibc-rh692177.patch new file mode 100644 index 0000000000..1036769bf5 --- /dev/null +++ b/src/patches/glibc/glibc-rh692177.patch @@ -0,0 +1,137 @@ +2011-03-22 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Increment + round counter. + * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise. + +2011-03-20 Ulrich Drepper + + [BZ #12587] + * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): + Handle cache information in CPU leaf 4. + * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/sysconf.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c +@@ -186,6 +186,57 @@ intel_check_word (int name, unsigned int + /* No need to look further. */ + break; + } ++ else if (byte == 0xff) ++ { ++ /* CPUID leaf 0x4 contains all the information. We need to ++ iterate over it. */ ++ unsigned int eax; ++ unsigned int ebx; ++ unsigned int ecx; ++ unsigned int edx; ++ ++ unsigned int round = 0; ++ while (1) ++ { ++ asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1" ++ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx) ++ : "0" (4), "2" (round)); ++ ++ enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f; ++ if (type == null) ++ /* That was the end. */ ++ break; ++ ++ unsigned int level = (eax >> 5) & 0x7; ++ ++ if ((level == 1 && type == data ++ && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE)) ++ || (level == 1 && type == inst ++ && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE)) ++ || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE)) ++ || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) ++ || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE))) ++ { ++ unsigned int offset = M(name) - folded_rel_name; ++ ++ if (offset == 0) ++ /* Cache size. */ ++ return (((ebx >> 22) + 1) ++ * (((ebx >> 12) & 0x3ff) + 1) ++ * ((ebx & 0xfff) + 1) ++ * (ecx + 1)); ++ if (offset == 1) ++ return (ebx >> 22) + 1; ++ ++ assert (offset == 2); ++ return (ebx & 0xfff) + 1; ++ } ++ ++ ++round; ++ } ++ /* There is no other cache information anywhere else. */ ++ break; ++ } + else + { + if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c +@@ -181,6 +181,57 @@ intel_check_word (int name, unsigned int + /* No need to look further. */ + break; + } ++ else if (byte == 0xff) ++ { ++ /* CPUID leaf 0x4 contains all the information. We need to ++ iterate over it. */ ++ unsigned int eax; ++ unsigned int ebx; ++ unsigned int ecx; ++ unsigned int edx; ++ ++ unsigned int round = 0; ++ while (1) ++ { ++ asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1" ++ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx) ++ : "0" (4), "2" (round)); ++ ++ enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f; ++ if (type == null) ++ /* That was the end. */ ++ break; ++ ++ unsigned int level = (eax >> 5) & 0x7; ++ ++ if ((level == 1 && type == data ++ && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE)) ++ || (level == 1 && type == inst ++ && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE)) ++ || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE)) ++ || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) ++ || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE))) ++ { ++ unsigned int offset = M(name) - folded_rel_name; ++ ++ if (offset == 0) ++ /* Cache size. */ ++ return (((ebx >> 22) + 1) ++ * (((ebx >> 12) & 0x3ff) + 1) ++ * ((ebx & 0xfff) + 1) ++ * (ecx + 1)); ++ if (offset == 1) ++ return (ebx >> 22) + 1; ++ ++ assert (offset == 2); ++ return (ebx & 0xfff) + 1; ++ } ++ ++ ++round; ++ } ++ /* There is no other cache information anywhere else. */ ++ break; ++ } + else + { + if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE)) diff --git a/src/patches/glibc/glibc-rh692838.patch b/src/patches/glibc/glibc-rh692838.patch new file mode 100644 index 0000000000..aa2adf14f2 --- /dev/null +++ b/src/patches/glibc/glibc-rh692838.patch @@ -0,0 +1,6165 @@ +2011-05-09 Ulrich Drepper + + [BZ #12541] + * locales/ar_IN: Update currency_symbol. + * locales/as_IN: Likewise. + * locales/bn_IN: Likewise. + * locales/en_IN: Likewise. + * locales/gu_IN: Likewise. + * locales/hi_IN: Likewise. + * locales/kn_IN: Likewise. + * locales/kok_IN: Likewise. + * locales/ks_IN: Likewise. + * locales/ml_IN: Likewise. + * locales/mr_IN: Likewise. + * locales/or_IN: Likewise. + * locales/pa_IN: Likewise. + * locales/sa_IN: Likewise. + * locales/sd_IN: Likewise. + * locales/ta_IN: Likewise. + * locales/te_IN: Likewise. + Patch by pravin.d.s@gmail.com. + +2011-05-09 Ulrich Drepper + + [BZ #12711] + * locale/C-translit.h.in: Add entry for U20B9. + Patch by pravin.d.s@gmail.com. + +Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h ++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h +@@ -1,4 +1,4 @@ +-#define NTRANSLIT 1353 ++#define NTRANSLIT 1354 + static const uint32_t translit_from_idx[] = + { + 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, +@@ -113,7 +113,7 @@ static const uint32_t translit_from_idx[ + 2616, 2618, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638, + 2640, 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2662, + 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686, +- 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704 ++ 2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2706 + }; + static const wchar_t translit_from_tbl[] = + L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae" +@@ -134,334 +134,334 @@ static const wchar_t translit_from_tbl[] + L"\0" L"\x2035" L"\0" L"\x2036" L"\0" L"\x2037" L"\0" L"\x2039" L"\0" + L"\x203a" L"\0" L"\x203c" L"\0" L"\x2044" L"\0" L"\x2047" L"\0" L"\x2048" + L"\0" L"\x2049" L"\0" L"\x205f" L"\0" L"\x2060" L"\0" L"\x2061" L"\0" +- L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x2100" +- L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0" +- L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e" +- L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0" +- L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b" +- L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0" +- L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d" +- L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0" +- L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146" +- L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0" +- L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158" +- L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0" +- L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161" +- L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0" +- L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a" +- L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0" +- L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173" +- L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0" +- L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c" +- L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0" +- L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4" +- L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0" +- L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265" +- L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0" +- L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404" +- L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0" +- L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d" +- L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0" +- L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416" +- L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0" +- L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f" +- L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0" +- L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464" +- L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0" +- L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d" +- L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0" +- L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476" +- L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0" +- L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f" +- L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0" +- L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488" +- L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0" +- L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491" +- L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0" +- L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a" +- L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0" +- L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3" +- L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0" +- L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac" +- L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0" +- L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5" +- L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0" +- L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be" +- L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0" +- L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7" +- L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0" +- L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0" +- L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0" +- L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9" +- L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0" +- L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2" +- L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0" +- L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500" +- L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0" +- L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534" +- L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0" +- L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252" +- L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0" +- L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b" +- L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0" +- L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5" +- L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0" +- L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be" +- L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0" +- L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381" +- L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0" +- L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a" +- L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0" +- L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393" +- L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0" +- L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c" +- L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0" +- L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5" +- L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0" +- L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae" +- L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0" +- L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7" +- L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0" +- L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2" +- L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0" +- L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb" +- L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0" +- L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4" +- L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0" +- L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd" +- L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0" +- L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01" +- L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0" +- L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a" +- L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0" +- L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50" +- L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0" +- L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c" +- L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0" +- L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68" +- L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0" +- L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05" +- L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0" +- L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e" +- L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0" +- L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17" +- L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0" +- L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20" +- L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0" +- L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29" +- L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0" +- L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32" +- L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0" +- L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b" +- L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0" +- L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44" +- L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0" +- L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d" +- L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0" +- L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56" +- L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0" +- L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0" +- L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403" +- L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0" +- L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a" +- L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0" +- L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411" +- L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0" +- L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418" +- L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0" +- L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f" +- L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0" +- L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426" +- L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0" +- L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d" +- L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0" +- L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434" +- L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0" +- L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b" +- L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0" +- L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442" +- L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0" +- L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449" +- L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0" +- L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450" +- L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0" +- L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458" +- L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0" +- L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f" +- L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0" +- L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466" +- L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0" +- L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d" +- L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0" +- L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474" +- L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0" +- L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b" +- L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0" +- L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482" +- L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0" +- L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489" +- L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0" +- L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490" +- L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0" +- L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497" +- L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0" +- L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f" +- L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0" +- L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac" +- L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0" +- L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4" +- L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0" +- L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd" +- L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0" +- L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6" +- L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0" +- L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd" +- L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0" +- L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4" +- L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0" +- L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db" +- L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0" +- L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2" +- L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0" +- L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9" +- L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0" +- L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0" +- L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0" +- L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7" +- L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0" +- L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe" +- L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0" +- L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505" +- L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0" +- L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f" +- L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0" +- L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517" +- L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0" +- L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f" +- L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0" +- L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526" +- L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0" +- L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d" +- L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0" +- L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534" +- L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0" +- L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c" +- L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0" +- L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544" +- L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0" +- L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f" +- L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0" +- L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557" +- L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0" +- L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e" +- L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0" +- L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565" +- L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0" +- L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c" +- L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0" +- L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573" +- L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0" +- L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a" +- L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0" +- L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581" +- L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0" +- L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588" +- L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0" +- L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f" +- L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0" +- L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596" +- L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0" +- L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d" +- L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0" +- L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4" +- L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0" +- L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab" +- L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0" +- L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2" +- L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0" +- L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9" +- L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0" +- L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0" +- L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0" +- L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7" +- L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0" +- L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce" +- L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0" +- L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5" +- L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0" +- L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc" +- L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0" +- L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3" +- L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0" +- L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea" +- L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0" +- L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1" +- L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0" +- L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8" +- L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0" +- L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff" +- L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0" +- L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606" +- L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0" +- L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d" +- L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0" +- L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614" +- L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0" +- L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b" +- L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0" +- L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622" +- L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0" +- L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629" +- L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0" +- L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630" +- L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0" +- L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637" +- L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0" +- L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e" +- L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0" +- L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645" +- L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0" +- L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c" +- L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0" +- L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653" +- L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0" +- L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a" +- L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0" +- L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661" +- L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0" +- L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668" +- L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0" +- L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f" +- L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0" +- L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676" +- L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0" +- L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d" +- L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0" +- L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684" +- L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0" +- L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b" +- L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0" +- L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692" +- L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0" +- L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699" +- L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0" +- L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0" +- L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0" +- L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1" +- L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0" +- L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8" +- L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0" +- L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df" +- L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0" +- L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6" +- L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0" +- L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed" +- L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0" +- L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4" +- L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0" +- L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb" +- L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0" +- L"\x0001d7ff"; ++ L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x20b9" ++ L"\0" L"\x2100" L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" ++ L"\x2106" L"\0" L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" ++ L"\0" L"\x210e" L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" ++ L"\x2113" L"\0" L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" ++ L"\0" L"\x211b" L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" ++ L"\x2122" L"\0" L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" ++ L"\0" L"\x212d" L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" ++ L"\x2131" L"\0" L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" ++ L"\0" L"\x2146" L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" ++ L"\x2153" L"\0" L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" ++ L"\0" L"\x2158" L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" ++ L"\x215c" L"\0" L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" ++ L"\0" L"\x2161" L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" ++ L"\x2165" L"\0" L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" ++ L"\0" L"\x216a" L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" ++ L"\x216e" L"\0" L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" ++ L"\0" L"\x2173" L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" ++ L"\x2177" L"\0" L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" ++ L"\0" L"\x217c" L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" ++ L"\x2190" L"\0" L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" ++ L"\0" L"\x21d4" L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" ++ L"\x2217" L"\0" L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" ++ L"\0" L"\x2265" L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" ++ L"\x22d9" L"\0" L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" ++ L"\0" L"\x2404" L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" ++ L"\x2408" L"\0" L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" ++ L"\0" L"\x240d" L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" ++ L"\x2411" L"\0" L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" ++ L"\0" L"\x2416" L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" ++ L"\x241a" L"\0" L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" ++ L"\0" L"\x241f" L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" ++ L"\x2424" L"\0" L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" ++ L"\0" L"\x2464" L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" ++ L"\x2468" L"\0" L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" ++ L"\0" L"\x246d" L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" ++ L"\x2471" L"\0" L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" ++ L"\0" L"\x2476" L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" ++ L"\x247a" L"\0" L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" ++ L"\0" L"\x247f" L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" ++ L"\x2483" L"\0" L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" ++ L"\0" L"\x2488" L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" ++ L"\x248c" L"\0" L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" ++ L"\0" L"\x2491" L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" ++ L"\x2495" L"\0" L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" ++ L"\0" L"\x249a" L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" ++ L"\x249e" L"\0" L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" ++ L"\0" L"\x24a3" L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" ++ L"\x24a7" L"\0" L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" ++ L"\0" L"\x24ac" L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" ++ L"\x24b0" L"\0" L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" ++ L"\0" L"\x24b5" L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" ++ L"\x24b9" L"\0" L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" ++ L"\0" L"\x24be" L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" ++ L"\x24c2" L"\0" L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" ++ L"\0" L"\x24c7" L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" ++ L"\x24cb" L"\0" L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" ++ L"\0" L"\x24d0" L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" ++ L"\x24d4" L"\0" L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" ++ L"\0" L"\x24d9" L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" ++ L"\x24dd" L"\0" L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" ++ L"\0" L"\x24e2" L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" ++ L"\x24e6" L"\0" L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" ++ L"\0" L"\x2500" L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" ++ L"\x2514" L"\0" L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" ++ L"\0" L"\x2534" L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" ++ L"\x2a75" L"\0" L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" ++ L"\0" L"\x3252" L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" ++ L"\x3256" L"\0" L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" ++ L"\0" L"\x325b" L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" ++ L"\x325f" L"\0" L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" ++ L"\0" L"\x32b5" L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" ++ L"\x32b9" L"\0" L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" ++ L"\0" L"\x32be" L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" ++ L"\x3373" L"\0" L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" ++ L"\0" L"\x3381" L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" ++ L"\x3385" L"\0" L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" ++ L"\0" L"\x338a" L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" ++ L"\x338e" L"\0" L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" ++ L"\0" L"\x3393" L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" ++ L"\x3397" L"\0" L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" ++ L"\0" L"\x339c" L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" ++ L"\x33a0" L"\0" L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" ++ L"\0" L"\x33a5" L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" ++ L"\x33a9" L"\0" L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" ++ L"\0" L"\x33ae" L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" ++ L"\x33b2" L"\0" L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" ++ L"\0" L"\x33b7" L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" ++ L"\x33bb" L"\0" L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" ++ L"\0" L"\x33c2" L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" ++ L"\x33c6" L"\0" L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" ++ L"\0" L"\x33cb" L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" ++ L"\x33cf" L"\0" L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" ++ L"\0" L"\x33d4" L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" ++ L"\x33d8" L"\0" L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" ++ L"\0" L"\x33dd" L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" ++ L"\xfb03" L"\0" L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" ++ L"\0" L"\xfe01" L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" ++ L"\xfe05" L"\0" L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" ++ L"\0" L"\xfe0a" L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" ++ L"\xfe0e" L"\0" L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" ++ L"\0" L"\xfe50" L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" ++ L"\xfe56" L"\0" L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" ++ L"\0" L"\xfe5c" L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" ++ L"\xfe62" L"\0" L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" ++ L"\0" L"\xfe68" L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" ++ L"\xfeff" L"\0" L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" ++ L"\0" L"\xff05" L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" ++ L"\xff09" L"\0" L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" ++ L"\0" L"\xff0e" L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" ++ L"\xff12" L"\0" L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" ++ L"\0" L"\xff17" L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" ++ L"\xff1b" L"\0" L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" ++ L"\0" L"\xff20" L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" ++ L"\xff24" L"\0" L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" ++ L"\0" L"\xff29" L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" ++ L"\xff2d" L"\0" L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" ++ L"\0" L"\xff32" L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" ++ L"\xff36" L"\0" L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" ++ L"\0" L"\xff3b" L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" ++ L"\xff3f" L"\0" L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" ++ L"\0" L"\xff44" L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" ++ L"\xff48" L"\0" L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" ++ L"\0" L"\xff4d" L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" ++ L"\xff51" L"\0" L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" ++ L"\0" L"\xff56" L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" ++ L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" ++ L"\0" L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" ++ L"\x0001d403" L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" ++ L"\0" L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" ++ L"\x0001d40a" L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" ++ L"\0" L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" ++ L"\x0001d411" L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" ++ L"\0" L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" ++ L"\x0001d418" L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" ++ L"\0" L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" ++ L"\x0001d41f" L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" ++ L"\0" L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" ++ L"\x0001d426" L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" ++ L"\0" L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" ++ L"\x0001d42d" L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" ++ L"\0" L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" ++ L"\x0001d434" L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" ++ L"\0" L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" ++ L"\x0001d43b" L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" ++ L"\0" L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" ++ L"\x0001d442" L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" ++ L"\0" L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" ++ L"\x0001d449" L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" ++ L"\0" L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" ++ L"\x0001d450" L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" ++ L"\0" L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" ++ L"\x0001d458" L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" ++ L"\0" L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" ++ L"\x0001d45f" L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" ++ L"\0" L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" ++ L"\x0001d466" L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" ++ L"\0" L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" ++ L"\x0001d46d" L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" ++ L"\0" L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" ++ L"\x0001d474" L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" ++ L"\0" L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" ++ L"\x0001d47b" L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" ++ L"\0" L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" ++ L"\x0001d482" L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" ++ L"\0" L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" ++ L"\x0001d489" L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" ++ L"\0" L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" ++ L"\x0001d490" L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" ++ L"\0" L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" ++ L"\x0001d497" L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" ++ L"\0" L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" ++ L"\x0001d49f" L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" ++ L"\0" L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" ++ L"\x0001d4ac" L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" ++ L"\0" L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" ++ L"\x0001d4b4" L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" ++ L"\0" L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" ++ L"\x0001d4bd" L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" ++ L"\0" L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" ++ L"\x0001d4c6" L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" ++ L"\0" L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" ++ L"\x0001d4cd" L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" ++ L"\0" L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" ++ L"\x0001d4d4" L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" ++ L"\0" L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" ++ L"\x0001d4db" L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" ++ L"\0" L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" ++ L"\x0001d4e2" L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" ++ L"\0" L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" ++ L"\x0001d4e9" L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" ++ L"\0" L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" ++ L"\x0001d4f0" L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" ++ L"\0" L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" ++ L"\x0001d4f7" L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" ++ L"\0" L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" ++ L"\x0001d4fe" L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" ++ L"\0" L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" ++ L"\x0001d505" L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" ++ L"\0" L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" ++ L"\x0001d50f" L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" ++ L"\0" L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" ++ L"\x0001d517" L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" ++ L"\0" L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" ++ L"\x0001d51f" L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" ++ L"\0" L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" ++ L"\x0001d526" L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" ++ L"\0" L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" ++ L"\x0001d52d" L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" ++ L"\0" L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" ++ L"\x0001d534" L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" ++ L"\0" L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" ++ L"\x0001d53c" L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" ++ L"\0" L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" ++ L"\x0001d544" L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" ++ L"\0" L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" ++ L"\x0001d54f" L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" ++ L"\0" L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" ++ L"\x0001d557" L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" ++ L"\0" L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" ++ L"\x0001d55e" L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" ++ L"\0" L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" ++ L"\x0001d565" L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" ++ L"\0" L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" ++ L"\x0001d56c" L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" ++ L"\0" L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" ++ L"\x0001d573" L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" ++ L"\0" L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" ++ L"\x0001d57a" L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" ++ L"\0" L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" ++ L"\x0001d581" L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" ++ L"\0" L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" ++ L"\x0001d588" L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" ++ L"\0" L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" ++ L"\x0001d58f" L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" ++ L"\0" L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" ++ L"\x0001d596" L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" ++ L"\0" L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" ++ L"\x0001d59d" L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" ++ L"\0" L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" ++ L"\x0001d5a4" L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" ++ L"\0" L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" ++ L"\x0001d5ab" L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" ++ L"\0" L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" ++ L"\x0001d5b2" L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" ++ L"\0" L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" ++ L"\x0001d5b9" L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" ++ L"\0" L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" ++ L"\x0001d5c0" L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" ++ L"\0" L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" ++ L"\x0001d5c7" L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" ++ L"\0" L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" ++ L"\x0001d5ce" L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" ++ L"\0" L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" ++ L"\x0001d5d5" L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" ++ L"\0" L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" ++ L"\x0001d5dc" L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" ++ L"\0" L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" ++ L"\x0001d5e3" L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" ++ L"\0" L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" ++ L"\x0001d5ea" L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" ++ L"\0" L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" ++ L"\x0001d5f1" L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" ++ L"\0" L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" ++ L"\x0001d5f8" L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" ++ L"\0" L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" ++ L"\x0001d5ff" L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" ++ L"\0" L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" ++ L"\x0001d606" L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" ++ L"\0" L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" ++ L"\x0001d60d" L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" ++ L"\0" L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" ++ L"\x0001d614" L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" ++ L"\0" L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" ++ L"\x0001d61b" L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" ++ L"\0" L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" ++ L"\x0001d622" L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" ++ L"\0" L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" ++ L"\x0001d629" L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" ++ L"\0" L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" ++ L"\x0001d630" L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" ++ L"\0" L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" ++ L"\x0001d637" L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" ++ L"\0" L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" ++ L"\x0001d63e" L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" ++ L"\0" L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" ++ L"\x0001d645" L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" ++ L"\0" L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" ++ L"\x0001d64c" L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" ++ L"\0" L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" ++ L"\x0001d653" L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" ++ L"\0" L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" ++ L"\x0001d65a" L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" ++ L"\0" L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" ++ L"\x0001d661" L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" ++ L"\0" L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" ++ L"\x0001d668" L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" ++ L"\0" L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" ++ L"\x0001d66f" L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" ++ L"\0" L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" ++ L"\x0001d676" L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" ++ L"\0" L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" ++ L"\x0001d67d" L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" ++ L"\0" L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" ++ L"\x0001d684" L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" ++ L"\0" L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" ++ L"\x0001d68b" L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" ++ L"\0" L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" ++ L"\x0001d692" L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" ++ L"\0" L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" ++ L"\x0001d699" L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" ++ L"\0" L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" ++ L"\x0001d6a0" L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" ++ L"\0" L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" ++ L"\x0001d7d1" L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" ++ L"\0" L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" ++ L"\x0001d7d8" L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" ++ L"\0" L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" ++ L"\x0001d7df" L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" ++ L"\0" L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" ++ L"\x0001d7e6" L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" ++ L"\0" L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" ++ L"\x0001d7ed" L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" ++ L"\0" L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" ++ L"\x0001d7f4" L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" ++ L"\0" L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" ++ L"\x0001d7fb" L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" ++ L"\0" L"\x0001d7ff"; + static const uint32_t translit_to_idx[] = + { + 0, 3, 8, 12, 15, 20, 23, 26, 30, 37, 44, 51, +@@ -471,22 +471,22 @@ static const uint32_t translit_to_idx[] + 180, 183, 186, 189, 192, 196, 199, 202, 205, 208, 211, 214, + 217, 221, 224, 227, 230, 233, 237, 242, 245, 248, 252, 257, + 260, 263, 267, 270, 274, 278, 282, 285, 287, 289, 291, 293, +- 297, 302, 307, 312, 315, 320, 325, 328, 331, 334, 337, 340, +- 343, 346, 349, 352, 355, 359, 362, 365, 368, 371, 374, 379, +- 385, 388, 393, 396, 399, 402, 405, 408, 411, 414, 417, 420, +- 423, 426, 429, 432, 435, 438, 445, 452, 459, 466, 473, 480, +- 487, 494, 501, 508, 515, 522, 527, 530, 534, 539, 543, 546, +- 550, 555, 561, 565, 568, 572, 577, 580, 583, 586, 589, 592, +- 596, 601, 605, 608, 612, 617, 623, 627, 630, 634, 639, 642, +- 645, 648, 651, 655, 659, 664, 668, 672, 677, 680, 683, 686, +- 689, 692, 695, 698, 702, 706, 710, 714, 719, 724, 729, 734, +- 739, 744, 749, 754, 759, 764, 768, 772, 776, 780, 784, 788, +- 792, 796, 801, 806, 811, 816, 821, 826, 831, 836, 841, 845, +- 850, 855, 859, 863, 867, 871, 875, 880, 883, 887, 892, 897, +- 902, 907, 912, 917, 922, 927, 932, 938, 944, 950, 956, 962, +- 968, 974, 980, 986, 992, 998, 1003, 1008, 1013, 1018, 1023, 1028, +- 1033, 1038, 1043, 1049, 1055, 1061, 1067, 1073, 1079, 1085, 1091, 1097, +- 1103, 1109, 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1145, 1150, ++ 297, 302, 307, 312, 317, 320, 325, 330, 333, 336, 339, 342, ++ 345, 348, 351, 354, 357, 360, 364, 367, 370, 373, 376, 379, ++ 384, 390, 393, 398, 401, 404, 407, 410, 413, 416, 419, 422, ++ 425, 428, 431, 434, 437, 440, 443, 450, 457, 464, 471, 478, ++ 485, 492, 499, 506, 513, 520, 527, 532, 535, 539, 544, 548, ++ 551, 555, 560, 566, 570, 573, 577, 582, 585, 588, 591, 594, ++ 597, 601, 606, 610, 613, 617, 622, 628, 632, 635, 639, 644, ++ 647, 650, 653, 656, 660, 664, 669, 673, 677, 682, 685, 688, ++ 691, 694, 697, 700, 703, 707, 711, 715, 719, 724, 729, 734, ++ 739, 744, 749, 754, 759, 764, 769, 773, 777, 781, 785, 789, ++ 793, 797, 801, 806, 811, 816, 821, 826, 831, 836, 841, 846, ++ 850, 855, 860, 864, 868, 872, 876, 880, 885, 888, 892, 897, ++ 902, 907, 912, 917, 922, 927, 932, 937, 943, 949, 955, 961, ++ 967, 973, 979, 985, 991, 997, 1003, 1008, 1013, 1018, 1023, 1028, ++ 1033, 1038, 1043, 1048, 1054, 1060, 1066, 1072, 1078, 1084, 1090, 1096, ++ 1102, 1108, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, 1150, + 1155, 1160, 1165, 1170, 1175, 1180, 1185, 1190, 1195, 1200, 1205, 1210, + 1215, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265, 1270, + 1275, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 1330, +@@ -494,89 +494,89 @@ static const uint32_t translit_to_idx[] + 1395, 1400, 1405, 1410, 1415, 1420, 1425, 1430, 1435, 1440, 1445, 1450, + 1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, 1510, + 1515, 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1555, 1560, 1565, 1570, +- 1575, 1580, 1585, 1590, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616, +- 1619, 1622, 1625, 1628, 1631, 1636, 1640, 1645, 1648, 1651, 1657, 1663, +- 1669, 1675, 1681, 1687, 1693, 1699, 1705, 1711, 1717, 1723, 1729, 1735, +- 1741, 1747, 1753, 1759, 1765, 1771, 1777, 1783, 1789, 1795, 1801, 1807, +- 1813, 1819, 1825, 1831, 1836, 1840, 1844, 1849, 1853, 1857, 1861, 1865, +- 1869, 1873, 1877, 1881, 1885, 1889, 1894, 1900, 1904, 1908, 1912, 1916, +- 1920, 1924, 1928, 1933, 1938, 1943, 1948, 1952, 1956, 1960, 1964, 1968, +- 1972, 1976, 1980, 1984, 1988, 1994, 2000, 2005, 2011, 2017, 2023, 2028, +- 2034, 2039, 2046, 2050, 2055, 2060, 2065, 2070, 2077, 2086, 2090, 2094, +- 2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2130, 2134, 2138, 2142, +- 2146, 2150, 2156, 2160, 2164, 2168, 2174, 2179, 2183, 2187, 2191, 2195, +- 2199, 2203, 2207, 2211, 2215, 2219, 2224, 2228, 2232, 2237, 2242, 2246, +- 2252, 2257, 2261, 2265, 2269, 2273, 2277, 2281, 2285, 2290, 2295, 2299, +- 2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324, +- 2326, 2328, 2330, 2332, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, +- 2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391, +- 2394, 2397, 2400, 2403, 2406, 2409, 2411, 2414, 2417, 2420, 2423, 2426, +- 2429, 2432, 2435, 2438, 2441, 2444, 2447, 2450, 2453, 2456, 2459, 2462, +- 2465, 2468, 2471, 2474, 2477, 2480, 2483, 2486, 2489, 2492, 2495, 2498, +- 2501, 2504, 2507, 2510, 2513, 2516, 2519, 2522, 2525, 2528, 2531, 2534, +- 2537, 2540, 2543, 2546, 2549, 2552, 2555, 2558, 2561, 2564, 2567, 2570, +- 2573, 2576, 2579, 2582, 2585, 2588, 2591, 2594, 2597, 2600, 2603, 2606, +- 2609, 2612, 2615, 2618, 2621, 2624, 2627, 2630, 2633, 2636, 2639, 2642, +- 2645, 2648, 2651, 2654, 2657, 2660, 2663, 2666, 2669, 2672, 2675, 2678, +- 2681, 2684, 2687, 2690, 2693, 2696, 2699, 2702, 2705, 2708, 2711, 2714, +- 2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, +- 2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786, +- 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822, +- 2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858, +- 2861, 2864, 2867, 2870, 2873, 2876, 2879, 2882, 2885, 2888, 2891, 2894, +- 2897, 2900, 2903, 2906, 2909, 2912, 2915, 2918, 2921, 2924, 2927, 2930, +- 2933, 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2957, 2960, 2963, 2966, +- 2969, 2972, 2975, 2978, 2981, 2984, 2987, 2990, 2993, 2996, 2999, 3002, +- 3005, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038, +- 3041, 3044, 3047, 3050, 3053, 3056, 3059, 3062, 3065, 3068, 3071, 3074, +- 3077, 3080, 3083, 3086, 3089, 3092, 3095, 3098, 3101, 3104, 3107, 3110, +- 3113, 3116, 3119, 3122, 3125, 3128, 3131, 3134, 3137, 3140, 3143, 3146, +- 3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3173, 3176, 3179, 3182, +- 3185, 3188, 3191, 3194, 3197, 3200, 3203, 3206, 3209, 3212, 3215, 3218, +- 3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254, +- 3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290, +- 3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326, +- 3329, 3332, 3335, 3338, 3341, 3344, 3347, 3350, 3353, 3356, 3359, 3362, +- 3365, 3368, 3371, 3374, 3377, 3380, 3383, 3386, 3389, 3392, 3395, 3398, +- 3401, 3404, 3407, 3410, 3413, 3416, 3419, 3422, 3425, 3428, 3431, 3434, +- 3437, 3440, 3443, 3446, 3449, 3452, 3455, 3458, 3461, 3464, 3467, 3470, +- 3473, 3476, 3479, 3482, 3485, 3488, 3491, 3494, 3497, 3500, 3503, 3506, +- 3509, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3536, 3539, 3542, +- 3545, 3548, 3551, 3554, 3557, 3560, 3563, 3566, 3569, 3572, 3575, 3578, +- 3581, 3584, 3587, 3590, 3593, 3596, 3599, 3602, 3605, 3608, 3611, 3614, +- 3617, 3620, 3623, 3626, 3629, 3632, 3635, 3638, 3641, 3644, 3647, 3650, +- 3653, 3656, 3659, 3662, 3665, 3668, 3671, 3674, 3677, 3680, 3683, 3686, +- 3689, 3692, 3695, 3698, 3701, 3704, 3707, 3710, 3713, 3716, 3719, 3722, +- 3725, 3728, 3731, 3734, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758, +- 3761, 3764, 3767, 3770, 3773, 3776, 3779, 3782, 3785, 3788, 3791, 3794, +- 3797, 3800, 3803, 3806, 3809, 3812, 3815, 3818, 3821, 3824, 3827, 3830, +- 3833, 3836, 3839, 3842, 3845, 3848, 3851, 3854, 3857, 3860, 3863, 3866, +- 3869, 3872, 3875, 3878, 3881, 3884, 3887, 3890, 3893, 3896, 3899, 3902, +- 3905, 3908, 3911, 3914, 3917, 3920, 3923, 3926, 3929, 3932, 3935, 3938, +- 3941, 3944, 3947, 3950, 3953, 3956, 3959, 3962, 3965, 3968, 3971, 3974, +- 3977, 3980, 3983, 3986, 3989, 3992, 3995, 3998, 4001, 4004, 4007, 4010, +- 4013, 4016, 4019, 4022, 4025, 4028, 4031, 4034, 4037, 4040, 4043, 4046, +- 4049, 4052, 4055, 4058, 4061, 4064, 4067, 4070, 4073, 4076, 4079, 4082, +- 4085, 4088, 4091, 4094, 4097, 4100, 4103, 4106, 4109, 4112, 4115, 4118, +- 4121, 4124, 4127, 4130, 4133, 4136, 4139, 4142, 4145, 4148, 4151, 4154, +- 4157, 4160, 4163, 4166, 4169, 4172, 4175, 4178, 4181, 4184, 4187, 4190, +- 4193, 4196, 4199, 4202, 4205, 4208, 4211, 4214, 4217, 4220, 4223, 4226, +- 4229, 4232, 4235, 4238, 4241, 4244, 4247, 4250, 4253, 4256, 4259, 4262, +- 4265, 4268, 4271, 4274, 4277, 4280, 4283, 4286, 4289, 4292, 4295, 4298, +- 4301, 4304, 4307, 4310, 4313, 4316, 4319, 4322, 4325, 4328, 4331, 4334, +- 4337, 4340, 4343, 4346, 4349, 4352, 4355, 4358, 4361, 4364, 4367, 4370, +- 4373, 4376, 4379, 4382, 4385, 4388, 4391, 4394, 4397, 4400, 4403, 4406, +- 4409, 4412, 4415, 4418, 4421, 4424, 4427, 4430, 4433, 4436, 4439, 4442, +- 4445, 4448, 4451, 4454, 4457, 4460, 4463, 4466, 4469, 4472, 4475, 4478, +- 4481, 4484, 4487, 4490, 4493, 4496, 4499, 4502, 4505, 4508, 4511, 4514, +- 4517, 4520, 4523, 4526, 4529, 4532, 4535, 4538, 4541, 4544, 4547, 4550, +- 4553, 4556, 4559, 4562, 4565, 4568, 4571, 4574, 4577, 4580, 4583, 4586, +- 4589, 4592, 4595, 4598, 4601, 4604, 4607, 4610, 4613, 4616, 4619, 4622, +- 4625, 4628, 4631, 4634, 4637, 4640, 4643, 4646, 4649, 4652, 4655, 4658, +- 4661, 4664, 4667, 4670, 4673, 4676, 4679, 4682, 4685, 4688, 4691, 4694, +- 4697, 4700, 4703, 4706, 4709, 4712, 4715, 4718, 4721, 4724, 4727, 4730, +- 4733, 4736, 4739, 4742, 4745, 4748, 4751, 4754, 4757, 4760, 4763, 4766, +- 4769, 4772, 4775, 4778, 4781, 4784, 4787, 4790, 4793 ++ 1575, 1580, 1585, 1590, 1595, 1600, 1603, 1606, 1609, 1612, 1615, 1618, ++ 1621, 1624, 1627, 1630, 1633, 1636, 1641, 1645, 1650, 1653, 1656, 1662, ++ 1668, 1674, 1680, 1686, 1692, 1698, 1704, 1710, 1716, 1722, 1728, 1734, ++ 1740, 1746, 1752, 1758, 1764, 1770, 1776, 1782, 1788, 1794, 1800, 1806, ++ 1812, 1818, 1824, 1830, 1836, 1841, 1845, 1849, 1854, 1858, 1862, 1866, ++ 1870, 1874, 1878, 1882, 1886, 1890, 1894, 1899, 1905, 1909, 1913, 1917, ++ 1921, 1925, 1929, 1933, 1938, 1943, 1948, 1953, 1957, 1961, 1965, 1969, ++ 1973, 1977, 1981, 1985, 1989, 1993, 1999, 2005, 2010, 2016, 2022, 2028, ++ 2033, 2039, 2044, 2051, 2055, 2060, 2065, 2070, 2075, 2082, 2091, 2095, ++ 2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143, ++ 2147, 2151, 2155, 2161, 2165, 2169, 2173, 2179, 2184, 2188, 2192, 2196, ++ 2200, 2204, 2208, 2212, 2216, 2220, 2224, 2229, 2233, 2237, 2242, 2247, ++ 2251, 2257, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2295, 2300, ++ 2304, 2307, 2309, 2311, 2313, 2315, 2317, 2319, 2321, 2323, 2325, 2327, ++ 2329, 2331, 2333, 2335, 2337, 2339, 2342, 2345, 2348, 2351, 2354, 2357, ++ 2360, 2363, 2366, 2369, 2372, 2375, 2378, 2381, 2384, 2387, 2390, 2393, ++ 2396, 2399, 2402, 2405, 2408, 2411, 2414, 2416, 2419, 2422, 2425, 2428, ++ 2431, 2434, 2437, 2440, 2443, 2446, 2449, 2452, 2455, 2458, 2461, 2464, ++ 2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, 2497, 2500, ++ 2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, 2533, 2536, ++ 2539, 2542, 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, 2569, 2572, ++ 2575, 2578, 2581, 2584, 2587, 2590, 2593, 2596, 2599, 2602, 2605, 2608, ++ 2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, 2641, 2644, ++ 2647, 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2680, ++ 2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713, 2716, ++ 2719, 2722, 2725, 2728, 2731, 2734, 2737, 2740, 2743, 2746, 2749, 2752, ++ 2755, 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785, 2788, ++ 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815, 2818, 2821, 2824, ++ 2827, 2830, 2833, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, ++ 2863, 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896, ++ 2899, 2902, 2905, 2908, 2911, 2914, 2917, 2920, 2923, 2926, 2929, 2932, ++ 2935, 2938, 2941, 2944, 2947, 2950, 2953, 2956, 2959, 2962, 2965, 2968, ++ 2971, 2974, 2977, 2980, 2983, 2986, 2989, 2992, 2995, 2998, 3001, 3004, ++ 3007, 3010, 3013, 3016, 3019, 3022, 3025, 3028, 3031, 3034, 3037, 3040, ++ 3043, 3046, 3049, 3052, 3055, 3058, 3061, 3064, 3067, 3070, 3073, 3076, ++ 3079, 3082, 3085, 3088, 3091, 3094, 3097, 3100, 3103, 3106, 3109, 3112, ++ 3115, 3118, 3121, 3124, 3127, 3130, 3133, 3136, 3139, 3142, 3145, 3148, ++ 3151, 3154, 3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, 3181, 3184, ++ 3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214, 3217, 3220, ++ 3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256, ++ 3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, 3289, 3292, ++ 3295, 3298, 3301, 3304, 3307, 3310, 3313, 3316, 3319, 3322, 3325, 3328, ++ 3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, 3355, 3358, 3361, 3364, ++ 3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400, ++ 3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436, ++ 3439, 3442, 3445, 3448, 3451, 3454, 3457, 3460, 3463, 3466, 3469, 3472, ++ 3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, 3499, 3502, 3505, 3508, ++ 3511, 3514, 3517, 3520, 3523, 3526, 3529, 3532, 3535, 3538, 3541, 3544, ++ 3547, 3550, 3553, 3556, 3559, 3562, 3565, 3568, 3571, 3574, 3577, 3580, ++ 3583, 3586, 3589, 3592, 3595, 3598, 3601, 3604, 3607, 3610, 3613, 3616, ++ 3619, 3622, 3625, 3628, 3631, 3634, 3637, 3640, 3643, 3646, 3649, 3652, ++ 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3682, 3685, 3688, ++ 3691, 3694, 3697, 3700, 3703, 3706, 3709, 3712, 3715, 3718, 3721, 3724, ++ 3727, 3730, 3733, 3736, 3739, 3742, 3745, 3748, 3751, 3754, 3757, 3760, ++ 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3787, 3790, 3793, 3796, ++ 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, 3832, ++ 3835, 3838, 3841, 3844, 3847, 3850, 3853, 3856, 3859, 3862, 3865, 3868, ++ 3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, 3901, 3904, ++ 3907, 3910, 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, 3937, 3940, ++ 3943, 3946, 3949, 3952, 3955, 3958, 3961, 3964, 3967, 3970, 3973, 3976, ++ 3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, 4009, 4012, ++ 4015, 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, 4045, 4048, ++ 4051, 4054, 4057, 4060, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084, ++ 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120, ++ 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, ++ 4159, 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, 4189, 4192, ++ 4195, 4198, 4201, 4204, 4207, 4210, 4213, 4216, 4219, 4222, 4225, 4228, ++ 4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, 4258, 4261, 4264, ++ 4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, 4300, ++ 4303, 4306, 4309, 4312, 4315, 4318, 4321, 4324, 4327, 4330, 4333, 4336, ++ 4339, 4342, 4345, 4348, 4351, 4354, 4357, 4360, 4363, 4366, 4369, 4372, ++ 4375, 4378, 4381, 4384, 4387, 4390, 4393, 4396, 4399, 4402, 4405, 4408, ++ 4411, 4414, 4417, 4420, 4423, 4426, 4429, 4432, 4435, 4438, 4441, 4444, ++ 4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480, ++ 4483, 4486, 4489, 4492, 4495, 4498, 4501, 4504, 4507, 4510, 4513, 4516, ++ 4519, 4522, 4525, 4528, 4531, 4534, 4537, 4540, 4543, 4546, 4549, 4552, ++ 4555, 4558, 4561, 4564, 4567, 4570, 4573, 4576, 4579, 4582, 4585, 4588, ++ 4591, 4594, 4597, 4600, 4603, 4606, 4609, 4612, 4615, 4618, 4621, 4624, ++ 4627, 4630, 4633, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4657, 4660, ++ 4663, 4666, 4669, 4672, 4675, 4678, 4681, 4684, 4687, 4690, 4693, 4696, ++ 4699, 4702, 4705, 4708, 4711, 4714, 4717, 4720, 4723, 4726, 4729, 4732, ++ 4735, 4738, 4741, 4744, 4747, 4750, 4753, 4756, 4759, 4762, 4765, 4768, ++ 4771, 4774, 4777, 4780, 4783, 4786, 4789, 4792, 4795, 4798 + }; + static const wchar_t translit_to_tbl[] = + L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0" +@@ -594,73 +594,73 @@ static const wchar_t translit_to_tbl[] = + L"\0" L"..\0" L"\0" L"...\0" L"\0" L" \0" L"\0" L"`\0" L"\0" L"``\0" L"\0" + L"```\0" L"\0" L"<\0" L"\0" L">\0" L"\0" L"!!\0" L"\0" L"/\0" L"\0" L"??\0" + L"\0" L"?!\0" L"\0" L"!?\0" L"\0" L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0" +- L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0" +- L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0" +- L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0" +- L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0" +- L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0" +- L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"e\0" L"\0" L"e\0" +- L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" L"\0" L"i\0" L"\0" +- L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L" 1/3 \0" +- L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" L"\0" L" 3/5 \0" L"\0" +- L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" L" 1/8 \0" L"\0" +- L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" L"\0" L"I\0" +- L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" L"VI\0" L"\0" +- L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" L"XI\0" L"\0" +- L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" L"\0" L"i\0" +- L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" L"vi\0" L"\0" +- L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" L"xi\0" L"\0" +- L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" L"\0" L"<-\0" +- L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" L"<=>\0" +- L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0" L"\0" +- L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" L">>\0" +- L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" L"STX\0" +- L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" L"BEL\0" +- L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" L"FF\0" L"\0" +- L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" L"DC1\0" L"\0" +- L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" L"SYN\0" L"\0" +- L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" L"ESC\0" L"\0" +- L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" L"SP\0" L"\0" +- L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" L"(2)\0" L"\0" +- L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" L"(7)\0" L"\0" +- L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" L"(12)\0" +- L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" L"\0" +- L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" L"(1)\0" +- L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" +- L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" +- L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" +- L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" +- L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" L"5.\0" L"\0" +- L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" L"10.\0" L"\0" +- L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" L"15.\0" L"\0" +- L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" L"20.\0" L"\0" +- L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" +- L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" +- L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" +- L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" +- L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" +- L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" L"(D)\0" L"\0" +- L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" L"(I)\0" L"\0" +- L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" L"(N)\0" L"\0" +- L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" L"(S)\0" L"\0" +- L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" L"(X)\0" L"\0" +- L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" +- L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" +- L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" +- L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" +- L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" +- L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" L"-\0" L"\0" +- L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" +- L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"o\0" L"\0" +- L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" L"\0" +- L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" L"(25)\0" +- L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" L"\0" +- L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" L"(34)\0" +- L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" L"\0" +- L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" L"(43)\0" +- L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" L"\0" +- L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" L"\0" +- L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0" ++ L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"INR\0" L"\0" L"a/c\0" L"\0" ++ L"a/s\0" L"\0" L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" ++ L"H\0" L"\0" L"H\0" L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" ++ L"\0" L"L\0" L"\0" L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" ++ L"Q\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" ++ L"\0" L"Z\0" L"\0" L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" ++ L"e\0" L"\0" L"e\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" ++ L"\0" L"i\0" L"\0" L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" ++ L"j\0" L"\0" L" 1/3 \0" L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" ++ L"\0" L" 3/5 \0" L"\0" L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" ++ L" 1/8 \0" L"\0" L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" ++ L"\0" L"I\0" L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" ++ L"VI\0" L"\0" L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" ++ L"XI\0" L"\0" L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" ++ L"\0" L"i\0" L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" ++ L"vi\0" L"\0" L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" ++ L"xi\0" L"\0" L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" ++ L"\0" L"<-\0" L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" ++ L"<=>\0" L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0" ++ L"\0" L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" ++ L">>\0" L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" ++ L"STX\0" L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" ++ L"BEL\0" L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" ++ L"FF\0" L"\0" L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" ++ L"DC1\0" L"\0" L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" ++ L"SYN\0" L"\0" L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" ++ L"ESC\0" L"\0" L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" ++ L"SP\0" L"\0" L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" ++ L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" ++ L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" ++ L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" ++ L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" ++ L"(1)\0" L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" ++ L"(6)\0" L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" ++ L"(11)\0" L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" ++ L"\0" L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" ++ L"(20)\0" L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" ++ L"5.\0" L"\0" L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" ++ L"10.\0" L"\0" L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" ++ L"15.\0" L"\0" L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" ++ L"20.\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" ++ L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" ++ L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" ++ L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" ++ L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" ++ L"(y)\0" L"\0" L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" ++ L"(D)\0" L"\0" L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" ++ L"(I)\0" L"\0" L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" ++ L"(N)\0" L"\0" L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" ++ L"(S)\0" L"\0" L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" ++ L"(X)\0" L"\0" L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" ++ L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" ++ L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" ++ L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" ++ L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" ++ L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" ++ L"-\0" L"\0" L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" ++ L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" ++ L"o\0" L"\0" L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" ++ L"\0" L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" ++ L"(25)\0" L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" ++ L"\0" L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" ++ L"(34)\0" L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" ++ L"\0" L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" ++ L"(43)\0" L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" ++ L"\0" L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" ++ L"\0" L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0" + L"nA\0" L"\0" L"uA\0" L"\0" L"mA\0" L"\0" L"kA\0" L"\0" L"KB\0" L"\0" + L"MB\0" L"\0" L"GB\0" L"\0" L"cal\0" L"\0" L"kcal\0" L"\0" L"pF\0" L"\0" + L"nF\0" L"\0" L"uF\0" L"\0" L"ug\0" L"\0" L"mg\0" L"\0" L"kg\0" L"\0" +Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h.in ++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h.in +@@ -105,6 +105,7 @@ + "\x2063" "" /* INVISIBLE SEPARATOR */ + "\x20a8" "Rs" /* RUPEE SIGN */ + "\x20ac" "EUR" /* EURO SIGN */ ++"\x20b9" "INR" /* INDIAN RUPEE SIGN */ + "\x2100" "a/c" /* ACCOUNT OF */ + "\x2101" "a/s" /* ADDRESSED TO THE SUBJECT */ + "\x2102" "C" /* DOUBLE-STRUCK CAPITAL C */ +Index: glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8 +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/charmaps/UTF-8 ++++ glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8 +@@ -1312,6 +1312,10 @@ CHARMAP + /xd4/xa1 CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK + /xd4/xa2 CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK + /xd4/xa3 CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK ++ /xd4/xa4 CYRILLIC CAPITAL LETTER PE WITH DESCENDER ++ /xd4/xa5 CYRILLIC SMALL LETTER PE WITH DESCENDER ++ /xd4/xa6 CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER ++ /xd4/xa7 CYRILLIC SMALL LETTER SHHA WITH DESCENDER + /xd4/xb1 ARMENIAN CAPITAL LETTER AYB + /xd4/xb2 ARMENIAN CAPITAL LETTER BEN + /xd4/xb3 ARMENIAN CAPITAL LETTER GIM +@@ -1513,6 +1517,7 @@ CHARMAP + /xd8/x9b ARABIC SEMICOLON + /xd8/x9e ARABIC TRIPLE DOT PUNCTUATION MARK + /xd8/x9f ARABIC QUESTION MARK ++ /xd8/xa0 ARABIC LETTER KASHMIRI YEH + /xd8/xa1 ARABIC LETTER HAMZA + /xd8/xa2 ARABIC LETTER ALEF WITH MADDA ABOVE + /xd8/xa3 ARABIC LETTER ALEF WITH HAMZA ABOVE +@@ -1575,6 +1580,7 @@ CHARMAP + /xd9/x9c ARABIC VOWEL SIGN DOT BELOW + /xd9/x9d ARABIC REVERSED DAMMA + /xd9/x9e ARABIC FATHA WITH TWO DOTS ++ /xd9/x9f ARABIC WAVY HAMZA BELOW + /xd9/xa0 ARABIC-INDIC DIGIT ZERO + /xd9/xa1 ARABIC-INDIC DIGIT ONE + /xd9/xa2 ARABIC-INDIC DIGIT TWO +@@ -1969,6 +1975,97 @@ CHARMAP + /xdf/xb8 NKO COMMA + /xdf/xb9 NKO EXCLAMATION MARK + /xdf/xba NKO LAJANYALAN ++ /xe0/xa0/x80 SAMARITAN LETTER ALAF ++ /xe0/xa0/x81 SAMARITAN LETTER BIT ++ /xe0/xa0/x82 SAMARITAN LETTER GAMAN ++ /xe0/xa0/x83 SAMARITAN LETTER DALAT ++ /xe0/xa0/x84 SAMARITAN LETTER IY ++ /xe0/xa0/x85 SAMARITAN LETTER BAA ++ /xe0/xa0/x86 SAMARITAN LETTER ZEN ++ /xe0/xa0/x87 SAMARITAN LETTER IT ++ /xe0/xa0/x88 SAMARITAN LETTER TIT ++ /xe0/xa0/x89 SAMARITAN LETTER YUT ++ /xe0/xa0/x8a SAMARITAN LETTER KAAF ++ /xe0/xa0/x8b SAMARITAN LETTER LABAT ++ /xe0/xa0/x8c SAMARITAN LETTER MIM ++ /xe0/xa0/x8d SAMARITAN LETTER NUN ++ /xe0/xa0/x8e SAMARITAN LETTER SINGAAT ++ /xe0/xa0/x8f SAMARITAN LETTER IN ++ /xe0/xa0/x90 SAMARITAN LETTER FI ++ /xe0/xa0/x91 SAMARITAN LETTER TSAADIY ++ /xe0/xa0/x92 SAMARITAN LETTER QUF ++ /xe0/xa0/x93 SAMARITAN LETTER RISH ++ /xe0/xa0/x94 SAMARITAN LETTER SHAN ++ /xe0/xa0/x95 SAMARITAN LETTER TAAF ++ /xe0/xa0/x96 SAMARITAN MARK IN ++ /xe0/xa0/x97 SAMARITAN MARK IN-ALAF ++ /xe0/xa0/x98 SAMARITAN MARK OCCLUSION ++ /xe0/xa0/x99 SAMARITAN MARK DAGESH ++ /xe0/xa0/x9a SAMARITAN MODIFIER LETTER EPENTHETIC YUT ++ /xe0/xa0/x9b SAMARITAN MARK EPENTHETIC YUT ++ /xe0/xa0/x9c SAMARITAN VOWEL SIGN LONG E ++ /xe0/xa0/x9d SAMARITAN VOWEL SIGN E ++ /xe0/xa0/x9e SAMARITAN VOWEL SIGN OVERLONG AA ++ /xe0/xa0/x9f SAMARITAN VOWEL SIGN LONG AA ++ /xe0/xa0/xa0 SAMARITAN VOWEL SIGN AA ++ /xe0/xa0/xa1 SAMARITAN VOWEL SIGN OVERLONG A ++ /xe0/xa0/xa2 SAMARITAN VOWEL SIGN LONG A ++ /xe0/xa0/xa3 SAMARITAN VOWEL SIGN A ++ /xe0/xa0/xa4 SAMARITAN MODIFIER LETTER SHORT A ++ /xe0/xa0/xa5 SAMARITAN VOWEL SIGN SHORT A ++ /xe0/xa0/xa6 SAMARITAN VOWEL SIGN LONG U ++ /xe0/xa0/xa7 SAMARITAN VOWEL SIGN U ++ /xe0/xa0/xa8 SAMARITAN MODIFIER LETTER I ++ /xe0/xa0/xa9 SAMARITAN VOWEL SIGN LONG I ++ /xe0/xa0/xaa SAMARITAN VOWEL SIGN I ++ /xe0/xa0/xab SAMARITAN VOWEL SIGN O ++ /xe0/xa0/xac SAMARITAN VOWEL SIGN SUKUN ++ /xe0/xa0/xad SAMARITAN MARK NEQUDAA ++ /xe0/xa0/xb0 SAMARITAN PUNCTUATION NEQUDAA ++ /xe0/xa0/xb1 SAMARITAN PUNCTUATION AFSAAQ ++ /xe0/xa0/xb2 SAMARITAN PUNCTUATION ANGED ++ /xe0/xa0/xb3 SAMARITAN PUNCTUATION BAU ++ /xe0/xa0/xb4 SAMARITAN PUNCTUATION ATMAAU ++ /xe0/xa0/xb5 SAMARITAN PUNCTUATION SHIYYAALAA ++ /xe0/xa0/xb6 SAMARITAN ABBREVIATION MARK ++ /xe0/xa0/xb7 SAMARITAN PUNCTUATION MELODIC QITSA ++ /xe0/xa0/xb8 SAMARITAN PUNCTUATION ZIQAA ++ /xe0/xa0/xb9 SAMARITAN PUNCTUATION QITSA ++ /xe0/xa0/xba SAMARITAN PUNCTUATION ZAEF ++ /xe0/xa0/xbb SAMARITAN PUNCTUATION TURU ++ /xe0/xa0/xbc SAMARITAN PUNCTUATION ARKAANU ++ /xe0/xa0/xbd SAMARITAN PUNCTUATION SOF MASHFAAT ++ /xe0/xa0/xbe SAMARITAN PUNCTUATION ANNAAU ++ /xe0/xa1/x80 MANDAIC LETTER HALQA ++ /xe0/xa1/x81 MANDAIC LETTER AB ++ /xe0/xa1/x82 MANDAIC LETTER AG ++ /xe0/xa1/x83 MANDAIC LETTER AD ++ /xe0/xa1/x84 MANDAIC LETTER AH ++ /xe0/xa1/x85 MANDAIC LETTER USHENNA ++ /xe0/xa1/x86 MANDAIC LETTER AZ ++ /xe0/xa1/x87 MANDAIC LETTER IT ++ /xe0/xa1/x88 MANDAIC LETTER ATT ++ /xe0/xa1/x89 MANDAIC LETTER AKSA ++ /xe0/xa1/x8a MANDAIC LETTER AK ++ /xe0/xa1/x8b MANDAIC LETTER AL ++ /xe0/xa1/x8c MANDAIC LETTER AM ++ /xe0/xa1/x8d MANDAIC LETTER AN ++ /xe0/xa1/x8e MANDAIC LETTER AS ++ /xe0/xa1/x8f MANDAIC LETTER IN ++ /xe0/xa1/x90 MANDAIC LETTER AP ++ /xe0/xa1/x91 MANDAIC LETTER ASZ ++ /xe0/xa1/x92 MANDAIC LETTER AQ ++ /xe0/xa1/x93 MANDAIC LETTER AR ++ /xe0/xa1/x94 MANDAIC LETTER ASH ++ /xe0/xa1/x95 MANDAIC LETTER AT ++ /xe0/xa1/x96 MANDAIC LETTER DUSHENNA ++ /xe0/xa1/x97 MANDAIC LETTER KAD ++ /xe0/xa1/x98 MANDAIC LETTER AIN ++ /xe0/xa1/x99 MANDAIC AFFRICATION MARK ++ /xe0/xa1/x9a MANDAIC VOCALIZATION MARK ++ /xe0/xa1/x9b MANDAIC GEMINATION MARK ++ /xe0/xa1/x9e MANDAIC PUNCTUATION ++ /xe0/xa4/x80 DEVANAGARI SIGN INVERTED CANDRABINDU + /xe0/xa4/x81 DEVANAGARI SIGN CANDRABINDU + /xe0/xa4/x82 DEVANAGARI SIGN ANUSVARA + /xe0/xa4/x83 DEVANAGARI SIGN VISARGA +@@ -2026,6 +2123,8 @@ CHARMAP + /xe0/xa4/xb7 DEVANAGARI LETTER SSA + /xe0/xa4/xb8 DEVANAGARI LETTER SA + /xe0/xa4/xb9 DEVANAGARI LETTER HA ++ /xe0/xa4/xba DEVANAGARI VOWEL SIGN OE ++ /xe0/xa4/xbb DEVANAGARI VOWEL SIGN OOE + /xe0/xa4/xbc DEVANAGARI SIGN NUKTA + /xe0/xa4/xbd DEVANAGARI SIGN AVAGRAHA + /xe0/xa4/xbe DEVANAGARI VOWEL SIGN AA +@@ -2044,11 +2143,16 @@ CHARMAP + /xe0/xa5/x8b DEVANAGARI VOWEL SIGN O + /xe0/xa5/x8c DEVANAGARI VOWEL SIGN AU + /xe0/xa5/x8d DEVANAGARI SIGN VIRAMA ++ /xe0/xa5/x8e DEVANAGARI VOWEL SIGN PRISHTHAMATRA E ++ /xe0/xa5/x8f DEVANAGARI VOWEL SIGN AW + /xe0/xa5/x90 DEVANAGARI OM + /xe0/xa5/x91 DEVANAGARI STRESS SIGN UDATTA + /xe0/xa5/x92 DEVANAGARI STRESS SIGN ANUDATTA + /xe0/xa5/x93 DEVANAGARI GRAVE ACCENT + /xe0/xa5/x94 DEVANAGARI ACUTE ACCENT ++ /xe0/xa5/x95 DEVANAGARI VOWEL SIGN CANDRA LONG E ++ /xe0/xa5/x96 DEVANAGARI VOWEL SIGN UE ++ /xe0/xa5/x97 DEVANAGARI VOWEL SIGN UUE + /xe0/xa5/x98 DEVANAGARI LETTER QA + /xe0/xa5/x99 DEVANAGARI LETTER KHHA + /xe0/xa5/x9a DEVANAGARI LETTER GHHA +@@ -2076,6 +2180,13 @@ CHARMAP + /xe0/xa5/xb0 DEVANAGARI ABBREVIATION SIGN + /xe0/xa5/xb1 DEVANAGARI SIGN HIGH SPACING DOT + /xe0/xa5/xb2 DEVANAGARI LETTER CANDRA A ++ /xe0/xa5/xb3 DEVANAGARI LETTER OE ++ /xe0/xa5/xb4 DEVANAGARI LETTER OOE ++ /xe0/xa5/xb5 DEVANAGARI LETTER AW ++ /xe0/xa5/xb6 DEVANAGARI LETTER UE ++ /xe0/xa5/xb7 DEVANAGARI LETTER UUE ++ /xe0/xa5/xb9 DEVANAGARI LETTER ZHA ++ /xe0/xa5/xba DEVANAGARI LETTER HEAVY YA + /xe0/xa5/xbb DEVANAGARI LETTER GGA + /xe0/xa5/xbc DEVANAGARI LETTER JJA + /xe0/xa5/xbd DEVANAGARI LETTER GLOTTAL STOP +@@ -2172,6 +2283,7 @@ CHARMAP + /xe0/xa7/xb8 BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR + /xe0/xa7/xb9 BENGALI CURRENCY DENOMINATOR SIXTEEN + /xe0/xa7/xba BENGALI ISSHAR ++ /xe0/xa7/xbb BENGALI GANDA MARK + /xe0/xa8/x81 GURMUKHI SIGN ADAK BINDI + /xe0/xa8/x82 GURMUKHI SIGN BINDI + /xe0/xa8/x83 GURMUKHI SIGN VISARGA +@@ -2418,6 +2530,12 @@ CHARMAP + /xe0/xad/xaf ORIYA DIGIT NINE + /xe0/xad/xb0 ORIYA ISSHAR + /xe0/xad/xb1 ORIYA LETTER WA ++ /xe0/xad/xb2 ORIYA FRACTION ONE QUARTER ++ /xe0/xad/xb3 ORIYA FRACTION ONE HALF ++ /xe0/xad/xb4 ORIYA FRACTION THREE QUARTERS ++ /xe0/xad/xb5 ORIYA FRACTION ONE SIXTEENTH ++ /xe0/xad/xb6 ORIYA FRACTION ONE EIGHTH ++ /xe0/xad/xb7 ORIYA FRACTION THREE SIXTEENTHS + /xe0/xae/x82 TAMIL SIGN ANUSVARA + /xe0/xae/x83 TAMIL SIGN VISARGA + /xe0/xae/x85 TAMIL LETTER A +@@ -2705,6 +2823,7 @@ CHARMAP + /xe0/xb4/xa6 MALAYALAM LETTER DA + /xe0/xb4/xa7 MALAYALAM LETTER DHA + /xe0/xb4/xa8 MALAYALAM LETTER NA ++ /xe0/xb4/xa9 MALAYALAM LETTER NNNA + /xe0/xb4/xaa MALAYALAM LETTER PA + /xe0/xb4/xab MALAYALAM LETTER PHA + /xe0/xb4/xac MALAYALAM LETTER BA +@@ -2721,6 +2840,7 @@ CHARMAP + /xe0/xb4/xb7 MALAYALAM LETTER SSA + /xe0/xb4/xb8 MALAYALAM LETTER SA + /xe0/xb4/xb9 MALAYALAM LETTER HA ++ /xe0/xb4/xba MALAYALAM LETTER TTTA + /xe0/xb4/xbd MALAYALAM SIGN AVAGRAHA + /xe0/xb4/xbe MALAYALAM VOWEL SIGN AA + /xe0/xb4/xbf MALAYALAM VOWEL SIGN I +@@ -2736,6 +2856,7 @@ CHARMAP + /xe0/xb5/x8b MALAYALAM VOWEL SIGN OO + /xe0/xb5/x8c MALAYALAM VOWEL SIGN AU + /xe0/xb5/x8d MALAYALAM SIGN VIRAMA ++ /xe0/xb5/x8e MALAYALAM LETTER DOT REPH + /xe0/xb5/x97 MALAYALAM AU LENGTH MARK + /xe0/xb5/xa0 MALAYALAM LETTER VOCALIC RR + /xe0/xb5/xa1 MALAYALAM LETTER VOCALIC LL +@@ -3131,6 +3252,10 @@ CHARMAP + /xe0/xbe/x89 TIBETAN SIGN MCHU CAN + /xe0/xbe/x8a TIBETAN SIGN GRU CAN RGYINGS + /xe0/xbe/x8b TIBETAN SIGN GRU MED RGYINGS ++ /xe0/xbe/x8c TIBETAN SIGN INVERTED MCHU CAN ++ /xe0/xbe/x8d TIBETAN SUBJOINED SIGN LCE TSA CAN ++ /xe0/xbe/x8e TIBETAN SUBJOINED SIGN MCHU CAN ++ /xe0/xbe/x8f TIBETAN SUBJOINED SIGN INVERTED MCHU CAN + /xe0/xbe/x90 TIBETAN SUBJOINED LETTER KA + /xe0/xbe/x91 TIBETAN SUBJOINED LETTER KHA + /xe0/xbe/x92 TIBETAN SUBJOINED LETTER GA +@@ -3197,6 +3322,12 @@ CHARMAP + /xe0/xbf/x92 TIBETAN MARK NYIS TSHEG + /xe0/xbf/x93 TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA + /xe0/xbf/x94 TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA ++ /xe0/xbf/x95 RIGHT-FACING SVASTI SIGN ++ /xe0/xbf/x96 LEFT-FACING SVASTI SIGN ++ /xe0/xbf/x97 RIGHT-FACING SVASTI SIGN WITH DOTS ++ /xe0/xbf/x98 LEFT-FACING SVASTI SIGN WITH DOTS ++ /xe0/xbf/x99 TIBETAN MARK LEADING MCHAN RTAGS ++ /xe0/xbf/x9a TIBETAN MARK TRAILING MCHAN RTAGS + /xe1/x80/x80 MYANMAR LETTER KA + /xe1/x80/x81 MYANMAR LETTER KHA + /xe1/x80/x82 MYANMAR LETTER GA +@@ -3351,6 +3482,10 @@ CHARMAP + /xe1/x82/x97 MYANMAR SHAN DIGIT SEVEN + /xe1/x82/x98 MYANMAR SHAN DIGIT EIGHT + /xe1/x82/x99 MYANMAR SHAN DIGIT NINE ++ /xe1/x82/x9a MYANMAR SIGN KHAMTI TONE-1 ++ /xe1/x82/x9b MYANMAR SIGN KHAMTI TONE-3 ++ /xe1/x82/x9c MYANMAR VOWEL SIGN AITON A ++ /xe1/x82/x9d MYANMAR VOWEL SIGN AITON AI + /xe1/x82/x9e MYANMAR SYMBOL SHAN ONE + /xe1/x82/x9f MYANMAR SYMBOL SHAN EXCLAMATION + /xe1/x82/xa0 GEORGIAN CAPITAL LETTER AN +@@ -3526,6 +3661,11 @@ CHARMAP + /xe1/x85/x97 HANGUL CHOSEONG KAPYEOUNPHIEUPH + /xe1/x85/x98 HANGUL CHOSEONG SSANGHIEUH + /xe1/x85/x99 HANGUL CHOSEONG YEORINHIEUH ++ /xe1/x85/x9a HANGUL CHOSEONG KIYEOK-TIKEUT ++ /xe1/x85/x9b HANGUL CHOSEONG NIEUN-SIOS ++ /xe1/x85/x9c HANGUL CHOSEONG NIEUN-CIEUC ++ /xe1/x85/x9d HANGUL CHOSEONG NIEUN-HIEUH ++ /xe1/x85/x9e HANGUL CHOSEONG TIKEUT-RIEUL + /xe1/x85/x9f HANGUL CHOSEONG FILLER + /xe1/x85/xa0 HANGUL JUNGSEONG FILLER + /xe1/x85/xa1 HANGUL JUNGSEONG A +@@ -3594,6 +3734,11 @@ CHARMAP + /xe1/x86/xa0 HANGUL JUNGSEONG ARAEA-U + /xe1/x86/xa1 HANGUL JUNGSEONG ARAEA-I + /xe1/x86/xa2 HANGUL JUNGSEONG SSANGARAEA ++ /xe1/x86/xa3 HANGUL JUNGSEONG A-EU ++ /xe1/x86/xa4 HANGUL JUNGSEONG YA-U ++ /xe1/x86/xa5 HANGUL JUNGSEONG YEO-YA ++ /xe1/x86/xa6 HANGUL JUNGSEONG O-YA ++ /xe1/x86/xa7 HANGUL JUNGSEONG O-YAE + /xe1/x86/xa8 HANGUL JONGSEONG KIYEOK + /xe1/x86/xa9 HANGUL JONGSEONG SSANGKIYEOK + /xe1/x86/xaa HANGUL JONGSEONG KIYEOK-SIOS +@@ -3676,6 +3821,12 @@ CHARMAP + /xe1/x87/xb7 HANGUL JONGSEONG HIEUH-MIEUM + /xe1/x87/xb8 HANGUL JONGSEONG HIEUH-PIEUP + /xe1/x87/xb9 HANGUL JONGSEONG YEORINHIEUH ++ /xe1/x87/xba HANGUL JONGSEONG KIYEOK-NIEUN ++ /xe1/x87/xbb HANGUL JONGSEONG KIYEOK-PIEUP ++ /xe1/x87/xbc HANGUL JONGSEONG KIYEOK-CHIEUCH ++ /xe1/x87/xbd HANGUL JONGSEONG KIYEOK-KHIEUKH ++ /xe1/x87/xbe HANGUL JONGSEONG KIYEOK-HIEUH ++ /xe1/x87/xbf HANGUL JONGSEONG SSANGNIEUN + /xe1/x88/x80 ETHIOPIC SYLLABLE HA + /xe1/x88/x81 ETHIOPIC SYLLABLE HU + /xe1/x88/x82 ETHIOPIC SYLLABLE HI +@@ -4002,6 +4153,8 @@ CHARMAP + /xe1/x8d/x98 ETHIOPIC SYLLABLE RYA + /xe1/x8d/x99 ETHIOPIC SYLLABLE MYA + /xe1/x8d/x9a ETHIOPIC SYLLABLE FYA ++ /xe1/x8d/x9d ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK ++ /xe1/x8d/x9e ETHIOPIC COMBINING VOWEL LENGTH MARK + /xe1/x8d/x9f ETHIOPIC COMBINING GEMINATION MARK + /xe1/x8d/xa0 ETHIOPIC SECTION MARK + /xe1/x8d/xa1 ETHIOPIC WORDSPACE +@@ -4143,6 +4296,7 @@ CHARMAP + /xe1/x8f/xb2 CHEROKEE LETTER YO + /xe1/x8f/xb3 CHEROKEE LETTER YU + /xe1/x8f/xb4 CHEROKEE LETTER YV ++ /xe1/x90/x80 CANADIAN SYLLABICS HYPHEN + /xe1/x90/x81 CANADIAN SYLLABICS E + /xe1/x90/x82 CANADIAN SYLLABICS AAI + /xe1/x90/x83 CANADIAN SYLLABICS I +@@ -4773,6 +4927,15 @@ CHARMAP + /xe1/x99/xb4 CANADIAN SYLLABICS NNGOO + /xe1/x99/xb5 CANADIAN SYLLABICS NNGA + /xe1/x99/xb6 CANADIAN SYLLABICS NNGAA ++ /xe1/x99/xb7 CANADIAN SYLLABICS WOODS-CREE THWEE ++ /xe1/x99/xb8 CANADIAN SYLLABICS WOODS-CREE THWI ++ /xe1/x99/xb9 CANADIAN SYLLABICS WOODS-CREE THWII ++ /xe1/x99/xba CANADIAN SYLLABICS WOODS-CREE THWO ++ /xe1/x99/xbb CANADIAN SYLLABICS WOODS-CREE THWOO ++ /xe1/x99/xbc CANADIAN SYLLABICS WOODS-CREE THWA ++ /xe1/x99/xbd CANADIAN SYLLABICS WOODS-CREE THWAA ++ /xe1/x99/xbe CANADIAN SYLLABICS WOODS-CREE FINAL TH ++ /xe1/x99/xbf CANADIAN SYLLABICS BLACKFOOT W + /xe1/x9a/x80 OGHAM SPACE MARK + /xe1/x9a/x81 OGHAM LETTER BEITH + /xe1/x9a/x82 OGHAM LETTER LUIS +@@ -5234,6 +5397,76 @@ CHARMAP + /xe1/xa2/xa8 MONGOLIAN LETTER MANCHU ALI GALI BHA + /xe1/xa2/xa9 MONGOLIAN LETTER ALI GALI DAGALGA + /xe1/xa2/xaa MONGOLIAN LETTER MANCHU ALI GALI LHA ++ /xe1/xa2/xb0 CANADIAN SYLLABICS OY ++ /xe1/xa2/xb1 CANADIAN SYLLABICS AY ++ /xe1/xa2/xb2 CANADIAN SYLLABICS AAY ++ /xe1/xa2/xb3 CANADIAN SYLLABICS WAY ++ /xe1/xa2/xb4 CANADIAN SYLLABICS POY ++ /xe1/xa2/xb5 CANADIAN SYLLABICS PAY ++ /xe1/xa2/xb6 CANADIAN SYLLABICS PWOY ++ /xe1/xa2/xb7 CANADIAN SYLLABICS TAY ++ /xe1/xa2/xb8 CANADIAN SYLLABICS KAY ++ /xe1/xa2/xb9 CANADIAN SYLLABICS KWAY ++ /xe1/xa2/xba CANADIAN SYLLABICS MAY ++ /xe1/xa2/xbb CANADIAN SYLLABICS NOY ++ /xe1/xa2/xbc CANADIAN SYLLABICS NAY ++ /xe1/xa2/xbd CANADIAN SYLLABICS LAY ++ /xe1/xa2/xbe CANADIAN SYLLABICS SOY ++ /xe1/xa2/xbf CANADIAN SYLLABICS SAY ++ /xe1/xa3/x80 CANADIAN SYLLABICS SHOY ++ /xe1/xa3/x81 CANADIAN SYLLABICS SHAY ++ /xe1/xa3/x82 CANADIAN SYLLABICS SHWOY ++ /xe1/xa3/x83 CANADIAN SYLLABICS YOY ++ /xe1/xa3/x84 CANADIAN SYLLABICS YAY ++ /xe1/xa3/x85 CANADIAN SYLLABICS RAY ++ /xe1/xa3/x86 CANADIAN SYLLABICS NWI ++ /xe1/xa3/x87 CANADIAN SYLLABICS OJIBWAY NWI ++ /xe1/xa3/x88 CANADIAN SYLLABICS NWII ++ /xe1/xa3/x89 CANADIAN SYLLABICS OJIBWAY NWII ++ /xe1/xa3/x8a CANADIAN SYLLABICS NWO ++ /xe1/xa3/x8b CANADIAN SYLLABICS OJIBWAY NWO ++ /xe1/xa3/x8c CANADIAN SYLLABICS NWOO ++ /xe1/xa3/x8d CANADIAN SYLLABICS OJIBWAY NWOO ++ /xe1/xa3/x8e CANADIAN SYLLABICS RWEE ++ /xe1/xa3/x8f CANADIAN SYLLABICS RWI ++ /xe1/xa3/x90 CANADIAN SYLLABICS RWII ++ /xe1/xa3/x91 CANADIAN SYLLABICS RWO ++ /xe1/xa3/x92 CANADIAN SYLLABICS RWOO ++ /xe1/xa3/x93 CANADIAN SYLLABICS RWA ++ /xe1/xa3/x94 CANADIAN SYLLABICS OJIBWAY P ++ /xe1/xa3/x95 CANADIAN SYLLABICS OJIBWAY T ++ /xe1/xa3/x96 CANADIAN SYLLABICS OJIBWAY K ++ /xe1/xa3/x97 CANADIAN SYLLABICS OJIBWAY C ++ /xe1/xa3/x98 CANADIAN SYLLABICS OJIBWAY M ++ /xe1/xa3/x99 CANADIAN SYLLABICS OJIBWAY N ++ /xe1/xa3/x9a CANADIAN SYLLABICS OJIBWAY S ++ /xe1/xa3/x9b CANADIAN SYLLABICS OJIBWAY SH ++ /xe1/xa3/x9c CANADIAN SYLLABICS EASTERN W ++ /xe1/xa3/x9d CANADIAN SYLLABICS WESTERN W ++ /xe1/xa3/x9e CANADIAN SYLLABICS FINAL SMALL RING ++ /xe1/xa3/x9f CANADIAN SYLLABICS FINAL RAISED DOT ++ /xe1/xa3/xa0 CANADIAN SYLLABICS R-CREE RWE ++ /xe1/xa3/xa1 CANADIAN SYLLABICS WEST-CREE LOO ++ /xe1/xa3/xa2 CANADIAN SYLLABICS WEST-CREE LAA ++ /xe1/xa3/xa3 CANADIAN SYLLABICS THWE ++ /xe1/xa3/xa4 CANADIAN SYLLABICS THWA ++ /xe1/xa3/xa5 CANADIAN SYLLABICS TTHWE ++ /xe1/xa3/xa6 CANADIAN SYLLABICS TTHOO ++ /xe1/xa3/xa7 CANADIAN SYLLABICS TTHAA ++ /xe1/xa3/xa8 CANADIAN SYLLABICS TLHWE ++ /xe1/xa3/xa9 CANADIAN SYLLABICS TLHOO ++ /xe1/xa3/xaa CANADIAN SYLLABICS SAYISI SHWE ++ /xe1/xa3/xab CANADIAN SYLLABICS SAYISI SHOO ++ /xe1/xa3/xac CANADIAN SYLLABICS SAYISI HOO ++ /xe1/xa3/xad CANADIAN SYLLABICS CARRIER GWU ++ /xe1/xa3/xae CANADIAN SYLLABICS CARRIER DENE GEE ++ /xe1/xa3/xaf CANADIAN SYLLABICS CARRIER GAA ++ /xe1/xa3/xb0 CANADIAN SYLLABICS CARRIER GWA ++ /xe1/xa3/xb1 CANADIAN SYLLABICS SAYISI JUU ++ /xe1/xa3/xb2 CANADIAN SYLLABICS CARRIER JWA ++ /xe1/xa3/xb3 CANADIAN SYLLABICS BEAVER DENE L ++ /xe1/xa3/xb4 CANADIAN SYLLABICS BEAVER DENE R ++ /xe1/xa3/xb5 CANADIAN SYLLABICS CARRIER DENTAL S + /xe1/xa4/x80 LIMBU VOWEL-CARRIER LETTER + /xe1/xa4/x81 LIMBU LETTER KA + /xe1/xa4/x82 LIMBU LETTER KHA +@@ -5377,6 +5610,8 @@ CHARMAP + /xe1/xa6/xa7 NEW TAI LUE LETTER HIGH XVA + /xe1/xa6/xa8 NEW TAI LUE LETTER LOW KVA + /xe1/xa6/xa9 NEW TAI LUE LETTER LOW XVA ++ /xe1/xa6/xaa NEW TAI LUE LETTER HIGH SUA ++ /xe1/xa6/xab NEW TAI LUE LETTER LOW SUA + /xe1/xa6/xb0 NEW TAI LUE VOWEL SIGN VOWEL SHORTENER + /xe1/xa6/xb1 NEW TAI LUE VOWEL SIGN AA + /xe1/xa6/xb2 NEW TAI LUE VOWEL SIGN II +@@ -5413,6 +5648,7 @@ CHARMAP + /xe1/xa7/x97 NEW TAI LUE DIGIT SEVEN + /xe1/xa7/x98 NEW TAI LUE DIGIT EIGHT + /xe1/xa7/x99 NEW TAI LUE DIGIT NINE ++ /xe1/xa7/x9a NEW TAI LUE THAM DIGIT ONE + /xe1/xa7/x9e NEW TAI LUE SIGN LAE + /xe1/xa7/x9f NEW TAI LUE SIGN LAEV + /xe1/xa7/xa0 KHMER SYMBOL PATHAMASAT +@@ -5477,6 +5713,133 @@ CHARMAP + /xe1/xa8/x9b BUGINESE VOWEL SIGN AE + /xe1/xa8/x9e BUGINESE PALLAWA + /xe1/xa8/x9f BUGINESE END OF SECTION ++ /xe1/xa8/xa0 TAI THAM LETTER HIGH KA ++ /xe1/xa8/xa1 TAI THAM LETTER HIGH KHA ++ /xe1/xa8/xa2 TAI THAM LETTER HIGH KXA ++ /xe1/xa8/xa3 TAI THAM LETTER LOW KA ++ /xe1/xa8/xa4 TAI THAM LETTER LOW KXA ++ /xe1/xa8/xa5 TAI THAM LETTER LOW KHA ++ /xe1/xa8/xa6 TAI THAM LETTER NGA ++ /xe1/xa8/xa7 TAI THAM LETTER HIGH CA ++ /xe1/xa8/xa8 TAI THAM LETTER HIGH CHA ++ /xe1/xa8/xa9 TAI THAM LETTER LOW CA ++ /xe1/xa8/xaa TAI THAM LETTER LOW SA ++ /xe1/xa8/xab TAI THAM LETTER LOW CHA ++ /xe1/xa8/xac TAI THAM LETTER NYA ++ /xe1/xa8/xad TAI THAM LETTER RATA ++ /xe1/xa8/xae TAI THAM LETTER HIGH RATHA ++ /xe1/xa8/xaf TAI THAM LETTER DA ++ /xe1/xa8/xb0 TAI THAM LETTER LOW RATHA ++ /xe1/xa8/xb1 TAI THAM LETTER RANA ++ /xe1/xa8/xb2 TAI THAM LETTER HIGH TA ++ /xe1/xa8/xb3 TAI THAM LETTER HIGH THA ++ /xe1/xa8/xb4 TAI THAM LETTER LOW TA ++ /xe1/xa8/xb5 TAI THAM LETTER LOW THA ++ /xe1/xa8/xb6 TAI THAM LETTER NA ++ /xe1/xa8/xb7 TAI THAM LETTER BA ++ /xe1/xa8/xb8 TAI THAM LETTER HIGH PA ++ /xe1/xa8/xb9 TAI THAM LETTER HIGH PHA ++ /xe1/xa8/xba TAI THAM LETTER HIGH FA ++ /xe1/xa8/xbb TAI THAM LETTER LOW PA ++ /xe1/xa8/xbc TAI THAM LETTER LOW FA ++ /xe1/xa8/xbd TAI THAM LETTER LOW PHA ++ /xe1/xa8/xbe TAI THAM LETTER MA ++ /xe1/xa8/xbf TAI THAM LETTER LOW YA ++ /xe1/xa9/x80 TAI THAM LETTER HIGH YA ++ /xe1/xa9/x81 TAI THAM LETTER RA ++ /xe1/xa9/x82 TAI THAM LETTER RUE ++ /xe1/xa9/x83 TAI THAM LETTER LA ++ /xe1/xa9/x84 TAI THAM LETTER LUE ++ /xe1/xa9/x85 TAI THAM LETTER WA ++ /xe1/xa9/x86 TAI THAM LETTER HIGH SHA ++ /xe1/xa9/x87 TAI THAM LETTER HIGH SSA ++ /xe1/xa9/x88 TAI THAM LETTER HIGH SA ++ /xe1/xa9/x89 TAI THAM LETTER HIGH HA ++ /xe1/xa9/x8a TAI THAM LETTER LLA ++ /xe1/xa9/x8b TAI THAM LETTER A ++ /xe1/xa9/x8c TAI THAM LETTER LOW HA ++ /xe1/xa9/x8d TAI THAM LETTER I ++ /xe1/xa9/x8e TAI THAM LETTER II ++ /xe1/xa9/x8f TAI THAM LETTER U ++ /xe1/xa9/x90 TAI THAM LETTER UU ++ /xe1/xa9/x91 TAI THAM LETTER EE ++ /xe1/xa9/x92 TAI THAM LETTER OO ++ /xe1/xa9/x93 TAI THAM LETTER LAE ++ /xe1/xa9/x94 TAI THAM LETTER GREAT SA ++ /xe1/xa9/x95 TAI THAM CONSONANT SIGN MEDIAL RA ++ /xe1/xa9/x96 TAI THAM CONSONANT SIGN MEDIAL LA ++ /xe1/xa9/x97 TAI THAM CONSONANT SIGN LA TANG LAI ++ /xe1/xa9/x98 TAI THAM SIGN MAI KANG LAI ++ /xe1/xa9/x99 TAI THAM CONSONANT SIGN FINAL NGA ++ /xe1/xa9/x9a TAI THAM CONSONANT SIGN LOW PA ++ /xe1/xa9/x9b TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA ++ /xe1/xa9/x9c TAI THAM CONSONANT SIGN MA ++ /xe1/xa9/x9d TAI THAM CONSONANT SIGN BA ++ /xe1/xa9/x9e TAI THAM CONSONANT SIGN SA ++ /xe1/xa9/xa0 TAI THAM SIGN SAKOT ++ /xe1/xa9/xa1 TAI THAM VOWEL SIGN A ++ /xe1/xa9/xa2 TAI THAM VOWEL SIGN MAI SAT ++ /xe1/xa9/xa3 TAI THAM VOWEL SIGN AA ++ /xe1/xa9/xa4 TAI THAM VOWEL SIGN TALL AA ++ /xe1/xa9/xa5 TAI THAM VOWEL SIGN I ++ /xe1/xa9/xa6 TAI THAM VOWEL SIGN II ++ /xe1/xa9/xa7 TAI THAM VOWEL SIGN UE ++ /xe1/xa9/xa8 TAI THAM VOWEL SIGN UUE ++ /xe1/xa9/xa9 TAI THAM VOWEL SIGN U ++ /xe1/xa9/xaa TAI THAM VOWEL SIGN UU ++ /xe1/xa9/xab TAI THAM VOWEL SIGN O ++ /xe1/xa9/xac TAI THAM VOWEL SIGN OA BELOW ++ /xe1/xa9/xad TAI THAM VOWEL SIGN OY ++ /xe1/xa9/xae TAI THAM VOWEL SIGN E ++ /xe1/xa9/xaf TAI THAM VOWEL SIGN AE ++ /xe1/xa9/xb0 TAI THAM VOWEL SIGN OO ++ /xe1/xa9/xb1 TAI THAM VOWEL SIGN AI ++ /xe1/xa9/xb2 TAI THAM VOWEL SIGN THAM AI ++ /xe1/xa9/xb3 TAI THAM VOWEL SIGN OA ABOVE ++ /xe1/xa9/xb4 TAI THAM SIGN MAI KANG ++ /xe1/xa9/xb5 TAI THAM SIGN TONE-1 ++ /xe1/xa9/xb6 TAI THAM SIGN TONE-2 ++ /xe1/xa9/xb7 TAI THAM SIGN KHUEN TONE-3 ++ /xe1/xa9/xb8 TAI THAM SIGN KHUEN TONE-4 ++ /xe1/xa9/xb9 TAI THAM SIGN KHUEN TONE-5 ++ /xe1/xa9/xba TAI THAM SIGN RA HAAM ++ /xe1/xa9/xbb TAI THAM SIGN MAI SAM ++ /xe1/xa9/xbc TAI THAM SIGN KHUEN-LUE KARAN ++ /xe1/xa9/xbf TAI THAM COMBINING CRYPTOGRAMMIC DOT ++ /xe1/xaa/x80 TAI THAM HORA DIGIT ZERO ++ /xe1/xaa/x81 TAI THAM HORA DIGIT ONE ++ /xe1/xaa/x82 TAI THAM HORA DIGIT TWO ++ /xe1/xaa/x83 TAI THAM HORA DIGIT THREE ++ /xe1/xaa/x84 TAI THAM HORA DIGIT FOUR ++ /xe1/xaa/x85 TAI THAM HORA DIGIT FIVE ++ /xe1/xaa/x86 TAI THAM HORA DIGIT SIX ++ /xe1/xaa/x87 TAI THAM HORA DIGIT SEVEN ++ /xe1/xaa/x88 TAI THAM HORA DIGIT EIGHT ++ /xe1/xaa/x89 TAI THAM HORA DIGIT NINE ++ /xe1/xaa/x90 TAI THAM THAM DIGIT ZERO ++ /xe1/xaa/x91 TAI THAM THAM DIGIT ONE ++ /xe1/xaa/x92 TAI THAM THAM DIGIT TWO ++ /xe1/xaa/x93 TAI THAM THAM DIGIT THREE ++ /xe1/xaa/x94 TAI THAM THAM DIGIT FOUR ++ /xe1/xaa/x95 TAI THAM THAM DIGIT FIVE ++ /xe1/xaa/x96 TAI THAM THAM DIGIT SIX ++ /xe1/xaa/x97 TAI THAM THAM DIGIT SEVEN ++ /xe1/xaa/x98 TAI THAM THAM DIGIT EIGHT ++ /xe1/xaa/x99 TAI THAM THAM DIGIT NINE ++ /xe1/xaa/xa0 TAI THAM SIGN WIANG ++ /xe1/xaa/xa1 TAI THAM SIGN WIANGWAAK ++ /xe1/xaa/xa2 TAI THAM SIGN SAWAN ++ /xe1/xaa/xa3 TAI THAM SIGN KEOW ++ /xe1/xaa/xa4 TAI THAM SIGN HOY ++ /xe1/xaa/xa5 TAI THAM SIGN DOKMAI ++ /xe1/xaa/xa6 TAI THAM SIGN REVERSED ROTATED RANA ++ /xe1/xaa/xa7 TAI THAM SIGN MAI YAMOK ++ /xe1/xaa/xa8 TAI THAM SIGN KAAN ++ /xe1/xaa/xa9 TAI THAM SIGN KAANKUU ++ /xe1/xaa/xaa TAI THAM SIGN SATKAAN ++ /xe1/xaa/xab TAI THAM SIGN SATKAANKUU ++ /xe1/xaa/xac TAI THAM SIGN HANG ++ /xe1/xaa/xad TAI THAM SIGN CAANG + /xe1/xac/x80 BALINESE SIGN ULU RICEM + /xe1/xac/x81 BALINESE SIGN ULU CANDRA + /xe1/xac/x82 BALINESE SIGN CECEK +@@ -5653,6 +6016,62 @@ CHARMAP + /xe1/xae/xb7 SUNDANESE DIGIT SEVEN + /xe1/xae/xb8 SUNDANESE DIGIT EIGHT + /xe1/xae/xb9 SUNDANESE DIGIT NINE ++ /xe1/xaf/x80 BATAK LETTER A ++ /xe1/xaf/x81 BATAK LETTER SIMALUNGUN A ++ /xe1/xaf/x82 BATAK LETTER HA ++ /xe1/xaf/x83 BATAK LETTER SIMALUNGUN HA ++ /xe1/xaf/x84 BATAK LETTER MANDAILING HA ++ /xe1/xaf/x85 BATAK LETTER BA ++ /xe1/xaf/x86 BATAK LETTER KARO BA ++ /xe1/xaf/x87 BATAK LETTER PA ++ /xe1/xaf/x88 BATAK LETTER SIMALUNGUN PA ++ /xe1/xaf/x89 BATAK LETTER NA ++ /xe1/xaf/x8a BATAK LETTER MANDAILING NA ++ /xe1/xaf/x8b BATAK LETTER WA ++ /xe1/xaf/x8c BATAK LETTER SIMALUNGUN WA ++ /xe1/xaf/x8d BATAK LETTER PAKPAK WA ++ /xe1/xaf/x8e BATAK LETTER GA ++ /xe1/xaf/x8f BATAK LETTER SIMALUNGUN GA ++ /xe1/xaf/x90 BATAK LETTER JA ++ /xe1/xaf/x91 BATAK LETTER DA ++ /xe1/xaf/x92 BATAK LETTER RA ++ /xe1/xaf/x93 BATAK LETTER SIMALUNGUN RA ++ /xe1/xaf/x94 BATAK LETTER MA ++ /xe1/xaf/x95 BATAK LETTER SIMALUNGUN MA ++ /xe1/xaf/x96 BATAK LETTER SOUTHERN TA ++ /xe1/xaf/x97 BATAK LETTER NORTHERN TA ++ /xe1/xaf/x98 BATAK LETTER SA ++ /xe1/xaf/x99 BATAK LETTER SIMALUNGUN SA ++ /xe1/xaf/x9a BATAK LETTER MANDAILING SA ++ /xe1/xaf/x9b BATAK LETTER YA ++ /xe1/xaf/x9c BATAK LETTER SIMALUNGUN YA ++ /xe1/xaf/x9d BATAK LETTER NGA ++ /xe1/xaf/x9e BATAK LETTER LA ++ /xe1/xaf/x9f BATAK LETTER SIMALUNGUN LA ++ /xe1/xaf/xa0 BATAK LETTER NYA ++ /xe1/xaf/xa1 BATAK LETTER CA ++ /xe1/xaf/xa2 BATAK LETTER NDA ++ /xe1/xaf/xa3 BATAK LETTER MBA ++ /xe1/xaf/xa4 BATAK LETTER I ++ /xe1/xaf/xa5 BATAK LETTER U ++ /xe1/xaf/xa6 BATAK SIGN TOMPI ++ /xe1/xaf/xa7 BATAK VOWEL SIGN E ++ /xe1/xaf/xa8 BATAK VOWEL SIGN PAKPAK E ++ /xe1/xaf/xa9 BATAK VOWEL SIGN EE ++ /xe1/xaf/xaa BATAK VOWEL SIGN I ++ /xe1/xaf/xab BATAK VOWEL SIGN KARO I ++ /xe1/xaf/xac BATAK VOWEL SIGN O ++ /xe1/xaf/xad BATAK VOWEL SIGN KARO O ++ /xe1/xaf/xae BATAK VOWEL SIGN U ++ /xe1/xaf/xaf BATAK VOWEL SIGN U FOR SIMALUNGUN SA ++ /xe1/xaf/xb0 BATAK CONSONANT SIGN NG ++ /xe1/xaf/xb1 BATAK CONSONANT SIGN H ++ /xe1/xaf/xb2 BATAK PANGOLAT ++ /xe1/xaf/xb3 BATAK PANONGONAN ++ /xe1/xaf/xbc BATAK SYMBOL BINDU NA METEK ++ /xe1/xaf/xbd BATAK SYMBOL BINDU PINARBORAS ++ /xe1/xaf/xbe BATAK SYMBOL BINDU JUDUL ++ /xe1/xaf/xbf BATAK SYMBOL BINDU PANGOLAT + /xe1/xb0/x80 LEPCHA LETTER KA + /xe1/xb0/x81 LEPCHA LETTER KLA + /xe1/xb0/x82 LEPCHA LETTER KHA +@@ -5775,6 +6194,41 @@ CHARMAP + /xe1/xb1/xbd OL CHIKI AHAD + /xe1/xb1/xbe OL CHIKI PUNCTUATION MUCAAD + /xe1/xb1/xbf OL CHIKI PUNCTUATION DOUBLE MUCAAD ++ /xe1/xb3/x90 VEDIC TONE KARSHANA ++ /xe1/xb3/x91 VEDIC TONE SHARA ++ /xe1/xb3/x92 VEDIC TONE PRENKHA ++ /xe1/xb3/x93 VEDIC SIGN NIHSHVASA ++ /xe1/xb3/x94 VEDIC SIGN YAJURVEDIC MIDLINE SVARITA ++ /xe1/xb3/x95 VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA ++ /xe1/xb3/x96 VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA ++ /xe1/xb3/x97 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA ++ /xe1/xb3/x98 VEDIC TONE CANDRA BELOW ++ /xe1/xb3/x99 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER ++ /xe1/xb3/x9a VEDIC TONE DOUBLE SVARITA ++ /xe1/xb3/x9b VEDIC TONE TRIPLE SVARITA ++ /xe1/xb3/x9c VEDIC TONE KATHAKA ANUDATTA ++ /xe1/xb3/x9d VEDIC TONE DOT BELOW ++ /xe1/xb3/x9e VEDIC TONE TWO DOTS BELOW ++ /xe1/xb3/x9f VEDIC TONE THREE DOTS BELOW ++ /xe1/xb3/xa0 VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA ++ /xe1/xb3/xa1 VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA ++ /xe1/xb3/xa2 VEDIC SIGN VISARGA SVARITA ++ /xe1/xb3/xa3 VEDIC SIGN VISARGA UDATTA ++ /xe1/xb3/xa4 VEDIC SIGN REVERSED VISARGA UDATTA ++ /xe1/xb3/xa5 VEDIC SIGN VISARGA ANUDATTA ++ /xe1/xb3/xa6 VEDIC SIGN REVERSED VISARGA ANUDATTA ++ /xe1/xb3/xa7 VEDIC SIGN VISARGA UDATTA WITH TAIL ++ /xe1/xb3/xa8 VEDIC SIGN VISARGA ANUDATTA WITH TAIL ++ /xe1/xb3/xa9 VEDIC SIGN ANUSVARA ANTARGOMUKHA ++ /xe1/xb3/xaa VEDIC SIGN ANUSVARA BAHIRGOMUKHA ++ /xe1/xb3/xab VEDIC SIGN ANUSVARA VAMAGOMUKHA ++ /xe1/xb3/xac VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL ++ /xe1/xb3/xad VEDIC SIGN TIRYAK ++ /xe1/xb3/xae VEDIC SIGN HEXIFORM LONG ANUSVARA ++ /xe1/xb3/xaf VEDIC SIGN LONG ANUSVARA ++ /xe1/xb3/xb0 VEDIC SIGN RTHANG LONG ANUSVARA ++ /xe1/xb3/xb1 VEDIC SIGN ANUSVARA UBHAYATO MUKHA ++ /xe1/xb3/xb2 VEDIC SIGN ARDHAVISARGA + /xe1/xb4/x80 LATIN LETTER SMALL CAPITAL A + /xe1/xb4/x81 LATIN LETTER SMALL CAPITAL AE + /xe1/xb4/x82 LATIN SMALL LETTER TURNED AE +@@ -6006,6 +6460,8 @@ CHARMAP + /xe1/xb7/xa4 COMBINING LATIN SMALL LETTER S + /xe1/xb7/xa5 COMBINING LATIN SMALL LETTER LONG S + /xe1/xb7/xa6 COMBINING LATIN SMALL LETTER Z ++ /xe1/xb7/xbc COMBINING DOUBLE INVERTED BREVE BELOW ++ /xe1/xb7/xbd COMBINING ALMOST EQUAL TO BELOW + /xe1/xb7/xbe COMBINING LEFT ARROWHEAD ABOVE + /xe1/xb7/xbf COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + /xe1/xb8/x80 LATIN CAPITAL LETTER A WITH RING BELOW +@@ -6638,6 +7094,14 @@ CHARMAP + /xe2/x82/x92 LATIN SUBSCRIPT SMALL LETTER O + /xe2/x82/x93 LATIN SUBSCRIPT SMALL LETTER X + /xe2/x82/x94 LATIN SUBSCRIPT SMALL LETTER SCHWA ++ /xe2/x82/x95 LATIN SUBSCRIPT SMALL LETTER H ++ /xe2/x82/x96 LATIN SUBSCRIPT SMALL LETTER K ++ /xe2/x82/x97 LATIN SUBSCRIPT SMALL LETTER L ++ /xe2/x82/x98 LATIN SUBSCRIPT SMALL LETTER M ++ /xe2/x82/x99 LATIN SUBSCRIPT SMALL LETTER N ++ /xe2/x82/x9a LATIN SUBSCRIPT SMALL LETTER P ++ /xe2/x82/x9b LATIN SUBSCRIPT SMALL LETTER S ++ /xe2/x82/x9c LATIN SUBSCRIPT SMALL LETTER T + /xe2/x82/xa0 EURO-CURRENCY SIGN + /xe2/x82/xa1 COLON SIGN + /xe2/x82/xa2 CRUZEIRO SIGN +@@ -6660,6 +7124,10 @@ CHARMAP + /xe2/x82/xb3 AUSTRAL SIGN + /xe2/x82/xb4 HRYVNIA SIGN + /xe2/x82/xb5 CEDI SIGN ++ /xe2/x82/xb6 LIVRE TOURNOIS SIGN ++ /xe2/x82/xb7 SPESMILO SIGN ++ /xe2/x82/xb8 TENGE SIGN ++ /xe2/x82/xb9 INDIAN RUPEE SIGN + /xe2/x83/x90 COMBINING LEFT HARPOON ABOVE + /xe2/x83/x91 COMBINING RIGHT HARPOON ABOVE + /xe2/x83/x92 COMBINING LONG VERTICAL LINE OVERLAY +@@ -6773,6 +7241,9 @@ CHARMAP + /xe2/x85/x8d AKTIESELSKAB + /xe2/x85/x8e TURNED SMALL F + /xe2/x85/x8f SYMBOL FOR SAMARITAN SOURCE ++ /xe2/x85/x90 VULGAR FRACTION ONE SEVENTH ++ /xe2/x85/x91 VULGAR FRACTION ONE NINTH ++ /xe2/x85/x92 VULGAR FRACTION ONE TENTH + /xe2/x85/x93 VULGAR FRACTION ONE THIRD + /xe2/x85/x94 VULGAR FRACTION TWO THIRDS + /xe2/x85/x95 VULGAR FRACTION ONE FIFTH +@@ -6827,6 +7298,7 @@ CHARMAP + /xe2/x86/x86 ROMAN NUMERAL FIFTY EARLY FORM + /xe2/x86/x87 ROMAN NUMERAL FIFTY THOUSAND + /xe2/x86/x88 ROMAN NUMERAL ONE HUNDRED THOUSAND ++ /xe2/x86/x89 VULGAR FRACTION ZERO THIRDS + /xe2/x86/x90 LEFTWARDS ARROW + /xe2/x86/x91 UPWARDS ARROW + /xe2/x86/x92 RIGHTWARDS ARROW +@@ -7427,6 +7899,18 @@ CHARMAP + /xe2/x8f/xa5 FLATNESS + /xe2/x8f/xa6 AC CURRENT + /xe2/x8f/xa7 ELECTRICAL INTERSECTION ++ /xe2/x8f/xa8 DECIMAL EXPONENT SYMBOL ++ /xe2/x8f/xa9 BLACK RIGHT-POINTING DOUBLE TRIANGLE ++ /xe2/x8f/xaa BLACK LEFT-POINTING DOUBLE TRIANGLE ++ /xe2/x8f/xab BLACK UP-POINTING DOUBLE TRIANGLE ++ /xe2/x8f/xac BLACK DOWN-POINTING DOUBLE TRIANGLE ++ /xe2/x8f/xad BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR ++ /xe2/x8f/xae BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR ++ /xe2/x8f/xaf BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR ++ /xe2/x8f/xb0 ALARM CLOCK ++ /xe2/x8f/xb1 STOPWATCH ++ /xe2/x8f/xb2 TIMER CLOCK ++ /xe2/x8f/xb3 HOURGLASS WITH FLOWING SAND + /xe2/x90/x80 SYMBOL FOR NULL + /xe2/x90/x81 SYMBOL FOR START OF HEADING + /xe2/x90/x82 SYMBOL FOR START OF TEXT +@@ -8051,6 +8535,8 @@ CHARMAP + /xe2/x9a/x9b ATOM SYMBOL + /xe2/x9a/x9c FLEUR-DE-LIS + /xe2/x9a/x9d OUTLINED WHITE STAR ++ /xe2/x9a/x9e THREE LINES CONVERGING RIGHT ++ /xe2/x9a/x9f THREE LINES CONVERGING LEFT + /xe2/x9a/xa0 WARNING SIGN + /xe2/x9a/xa1 HIGH VOLTAGE SIGN + /xe2/x9a/xa2 DOUBLED FEMALE SIGN +@@ -8080,18 +8566,84 @@ CHARMAP + /xe2/x9a/xba SEMISEXTILE + /xe2/x9a/xbb QUINCUNX + /xe2/x9a/xbc SESQUIQUADRATE ++ /xe2/x9a/xbd SOCCER BALL ++ /xe2/x9a/xbe BASEBALL ++ /xe2/x9a/xbf SQUARED KEY + /xe2/x9b/x80 WHITE DRAUGHTS MAN + /xe2/x9b/x81 WHITE DRAUGHTS KING + /xe2/x9b/x82 BLACK DRAUGHTS MAN + /xe2/x9b/x83 BLACK DRAUGHTS KING ++ /xe2/x9b/x84 SNOWMAN WITHOUT SNOW ++ /xe2/x9b/x85 SUN BEHIND CLOUD ++ /xe2/x9b/x86 RAIN ++ /xe2/x9b/x87 BLACK SNOWMAN ++ /xe2/x9b/x88 THUNDER CLOUD AND RAIN ++ /xe2/x9b/x89 TURNED WHITE SHOGI PIECE ++ /xe2/x9b/x8a TURNED BLACK SHOGI PIECE ++ /xe2/x9b/x8b WHITE DIAMOND IN SQUARE ++ /xe2/x9b/x8c CROSSING LANES ++ /xe2/x9b/x8d DISABLED CAR ++ /xe2/x9b/x8e OPHIUCHUS ++ /xe2/x9b/x8f PICK ++ /xe2/x9b/x90 CAR SLIDING ++ /xe2/x9b/x91 HELMET WITH WHITE CROSS ++ /xe2/x9b/x92 CIRCLED CROSSING LANES ++ /xe2/x9b/x93 CHAINS ++ /xe2/x9b/x94 NO ENTRY ++ /xe2/x9b/x95 ALTERNATE ONE-WAY LEFT WAY TRAFFIC ++ /xe2/x9b/x96 BLACK TWO-WAY LEFT WAY TRAFFIC ++ /xe2/x9b/x97 WHITE TWO-WAY LEFT WAY TRAFFIC ++ /xe2/x9b/x98 BLACK LEFT LANE MERGE ++ /xe2/x9b/x99 WHITE LEFT LANE MERGE ++ /xe2/x9b/x9a DRIVE SLOW SIGN ++ /xe2/x9b/x9b HEAVY WHITE DOWN-POINTING TRIANGLE ++ /xe2/x9b/x9c LEFT CLOSED ENTRY ++ /xe2/x9b/x9d SQUARED SALTIRE ++ /xe2/x9b/x9e FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE ++ /xe2/x9b/x9f BLACK TRUCK ++ /xe2/x9b/xa0 RESTRICTED LEFT ENTRY-1 ++ /xe2/x9b/xa1 RESTRICTED LEFT ENTRY-2 ++ /xe2/x9b/xa2 ASTRONOMICAL SYMBOL FOR URANUS ++ /xe2/x9b/xa3 HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE ++ /xe2/x9b/xa4 PENTAGRAM ++ /xe2/x9b/xa5 RIGHT-HANDED INTERLACED PENTAGRAM ++ /xe2/x9b/xa6 LEFT-HANDED INTERLACED PENTAGRAM ++ /xe2/x9b/xa7 INVERTED PENTAGRAM ++ /xe2/x9b/xa8 BLACK CROSS ON SHIELD ++ /xe2/x9b/xa9 SHINTO SHRINE ++ /xe2/x9b/xaa CHURCH ++ /xe2/x9b/xab CASTLE ++ /xe2/x9b/xac HISTORIC SITE ++ /xe2/x9b/xad GEAR WITHOUT HUB ++ /xe2/x9b/xae GEAR WITH HANDLES ++ /xe2/x9b/xaf MAP SYMBOL FOR LIGHTHOUSE ++ /xe2/x9b/xb0 MOUNTAIN ++ /xe2/x9b/xb1 UMBRELLA ON GROUND ++ /xe2/x9b/xb2 FOUNTAIN ++ /xe2/x9b/xb3 FLAG IN HOLE ++ /xe2/x9b/xb4 FERRY ++ /xe2/x9b/xb5 SAILBOAT ++ /xe2/x9b/xb6 SQUARE FOUR CORNERS ++ /xe2/x9b/xb7 SKIER ++ /xe2/x9b/xb8 ICE SKATE ++ /xe2/x9b/xb9 PERSON WITH BALL ++ /xe2/x9b/xba TENT ++ /xe2/x9b/xbb JAPANESE BANK SYMBOL ++ /xe2/x9b/xbc HEADSTONE GRAVEYARD SYMBOL ++ /xe2/x9b/xbd FUEL PUMP ++ /xe2/x9b/xbe CUP ON BLACK SQUARE ++ /xe2/x9b/xbf WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE + /xe2/x9c/x81 UPPER BLADE SCISSORS + /xe2/x9c/x82 BLACK SCISSORS + /xe2/x9c/x83 LOWER BLADE SCISSORS + /xe2/x9c/x84 WHITE SCISSORS ++ /xe2/x9c/x85 WHITE HEAVY CHECK MARK + /xe2/x9c/x86 TELEPHONE LOCATION SIGN + /xe2/x9c/x87 TAPE DRIVE + /xe2/x9c/x88 AIRPLANE + /xe2/x9c/x89 ENVELOPE ++ /xe2/x9c/x8a RAISED FIST ++ /xe2/x9c/x8b RAISED HAND + /xe2/x9c/x8c VICTORY HAND + /xe2/x9c/x8d WRITING HAND + /xe2/x9c/x8e LOWER RIGHT PENCIL +@@ -8120,6 +8672,7 @@ CHARMAP + /xe2/x9c/xa5 FOUR CLUB-SPOKED ASTERISK + /xe2/x9c/xa6 BLACK FOUR POINTED STAR + /xe2/x9c/xa7 WHITE FOUR POINTED STAR ++ /xe2/x9c/xa8 SPARKLES + /xe2/x9c/xa9 STRESS OUTLINED WHITE STAR + /xe2/x9c/xaa CIRCLED WHITE STAR + /xe2/x9c/xab OPEN CENTRE BLACK STAR +@@ -8155,12 +8708,18 @@ CHARMAP + /xe2/x9d/x89 BALLOON-SPOKED ASTERISK + /xe2/x9d/x8a EIGHT TEARDROP-SPOKED PROPELLER ASTERISK + /xe2/x9d/x8b HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK ++ /xe2/x9d/x8c CROSS MARK + /xe2/x9d/x8d SHADOWED WHITE CIRCLE ++ /xe2/x9d/x8e NEGATIVE SQUARED CROSS MARK + /xe2/x9d/x8f LOWER RIGHT DROP-SHADOWED WHITE SQUARE + /xe2/x9d/x90 UPPER RIGHT DROP-SHADOWED WHITE SQUARE + /xe2/x9d/x91 LOWER RIGHT SHADOWED WHITE SQUARE + /xe2/x9d/x92 UPPER RIGHT SHADOWED WHITE SQUARE ++ /xe2/x9d/x93 BLACK QUESTION MARK ORNAMENT ++ /xe2/x9d/x94 WHITE QUESTION MARK ORNAMENT ++ /xe2/x9d/x95 WHITE EXCLAMATION MARK ORNAMENT + /xe2/x9d/x96 BLACK DIAMOND MINUS WHITE X ++ /xe2/x9d/x97 HEAVY EXCLAMATION MARK SYMBOL + /xe2/x9d/x98 LIGHT VERTICAL BAR + /xe2/x9d/x99 MEDIUM VERTICAL BAR + /xe2/x9d/x9a HEAVY VERTICAL BAR +@@ -8168,6 +8727,8 @@ CHARMAP + /xe2/x9d/x9c HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT + /xe2/x9d/x9d HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT + /xe2/x9d/x9e HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT ++ /xe2/x9d/x9f HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT ++ /xe2/x9d/xa0 HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT + /xe2/x9d/xa1 CURVED STEM PARAGRAPH SIGN ORNAMENT + /xe2/x9d/xa2 HEAVY EXCLAMATION MARK ORNAMENT + /xe2/x9d/xa3 HEAVY HEART EXCLAMATION MARK ORNAMENT +@@ -8220,6 +8781,9 @@ CHARMAP + /xe2/x9e/x92 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE + /xe2/x9e/x93 DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN + /xe2/x9e/x94 HEAVY WIDE-HEADED RIGHTWARDS ARROW ++ /xe2/x9e/x95 HEAVY PLUS SIGN ++ /xe2/x9e/x96 HEAVY MINUS SIGN ++ /xe2/x9e/x97 HEAVY DIVISION SIGN + /xe2/x9e/x98 HEAVY SOUTH EAST ARROW + /xe2/x9e/x99 HEAVY RIGHTWARDS ARROW + /xe2/x9e/x9a HEAVY NORTH EAST ARROW +@@ -8244,6 +8808,7 @@ CHARMAP + /xe2/x9e/xad HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + /xe2/x9e/xae HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + /xe2/x9e/xaf NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW ++ /xe2/x9e/xb0 CURLY LOOP + /xe2/x9e/xb1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW + /xe2/x9e/xb2 CIRCLED HEAVY WHITE RIGHTWARDS ARROW + /xe2/x9e/xb3 WHITE-FEATHERED RIGHTWARDS ARROW +@@ -8258,6 +8823,7 @@ CHARMAP + /xe2/x9e/xbc WEDGE-TAILED RIGHTWARDS ARROW + /xe2/x9e/xbd HEAVY WEDGE-TAILED RIGHTWARDS ARROW + /xe2/x9e/xbe OPEN-OUTLINED RIGHTWARDS ARROW ++ /xe2/x9e/xbf DOUBLE CURLY LOOP + /xe2/x9f/x80 THREE DIMENSIONAL ANGLE + /xe2/x9f/x81 WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE + /xe2/x9f/x82 PERPENDICULAR +@@ -8270,6 +8836,8 @@ CHARMAP + /xe2/x9f/x89 SUPERSET PRECEDING SOLIDUS + /xe2/x9f/x8a VERTICAL BAR WITH HORIZONTAL STROKE + /xe2/x9f/x8c LONG DIVISION ++ /xe2/x9f/x8e SQUARED LOGICAL AND ++ /xe2/x9f/x8f SQUARED LOGICAL OR + /xe2/x9f/x90 WHITE DIAMOND WITH CENTRED DOT + /xe2/x9f/x91 AND WITH DOT + /xe2/x9f/x92 ELEMENT OF OPENING UPWARDS +@@ -9168,6 +9736,11 @@ CHARMAP + /xe2/xad/x92 WHITE SMALL STAR + /xe2/xad/x93 BLACK RIGHT-POINTING PENTAGON + /xe2/xad/x94 WHITE RIGHT-POINTING PENTAGON ++ /xe2/xad/x95 HEAVY LARGE CIRCLE ++ /xe2/xad/x96 HEAVY OVAL WITH OVAL INSIDE ++ /xe2/xad/x97 HEAVY CIRCLE WITH CIRCLE INSIDE ++ /xe2/xad/x98 HEAVY CIRCLE ++ /xe2/xad/x99 HEAVY CIRCLED SALTIRE + /xe2/xb0/x80 GLAGOLITIC CAPITAL LETTER AZU + /xe2/xb0/x81 GLAGOLITIC CAPITAL LETTER BUKY + /xe2/xb0/x82 GLAGOLITIC CAPITAL LETTER VEDE +@@ -9278,6 +9851,7 @@ CHARMAP + /xe2/xb1/xad LATIN CAPITAL LETTER ALPHA + /xe2/xb1/xae LATIN CAPITAL LETTER M WITH HOOK + /xe2/xb1/xaf LATIN CAPITAL LETTER TURNED A ++ /xe2/xb1/xb0 LATIN CAPITAL LETTER TURNED ALPHA + /xe2/xb1/xb1 LATIN SMALL LETTER V WITH RIGHT HOOK + /xe2/xb1/xb2 LATIN CAPITAL LETTER W WITH HOOK + /xe2/xb1/xb3 LATIN SMALL LETTER W WITH HOOK +@@ -9291,6 +9865,8 @@ CHARMAP + /xe2/xb1/xbb LATIN LETTER SMALL CAPITAL TURNED E + /xe2/xb1/xbc LATIN SUBSCRIPT SMALL LETTER J + /xe2/xb1/xbd MODIFIER LETTER CAPITAL V ++ /xe2/xb1/xbe LATIN CAPITAL LETTER S WITH SWASH TAIL ++ /xe2/xb1/xbf LATIN CAPITAL LETTER Z WITH SWASH TAIL + /xe2/xb2/x80 COPTIC CAPITAL LETTER ALFA + /xe2/xb2/x81 COPTIC SMALL LETTER ALFA + /xe2/xb2/x82 COPTIC CAPITAL LETTER VIDA +@@ -9398,6 +9974,13 @@ CHARMAP + /xe2/xb3/xa8 COPTIC SYMBOL TAU RO + /xe2/xb3/xa9 COPTIC SYMBOL KHI RO + /xe2/xb3/xaa COPTIC SYMBOL SHIMA SIMA ++ /xe2/xb3/xab COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI ++ /xe2/xb3/xac COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI ++ /xe2/xb3/xad COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA ++ /xe2/xb3/xae COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA ++ /xe2/xb3/xaf COPTIC COMBINING NI ABOVE ++ /xe2/xb3/xb0 COPTIC COMBINING SPIRITUS ASPER ++ /xe2/xb3/xb1 COPTIC COMBINING SPIRITUS LENIS + /xe2/xb3/xb9 COPTIC OLD NUBIAN FULL STOP + /xe2/xb3/xba COPTIC OLD NUBIAN DIRECT QUESTION MARK + /xe2/xb3/xbb COPTIC OLD NUBIAN INDIRECT QUESTION MARK +@@ -9498,6 +10081,8 @@ CHARMAP + /xe2/xb5/xa4 TIFINAGH LETTER TAWELLEMET YAZ + /xe2/xb5/xa5 TIFINAGH LETTER YAZZ + /xe2/xb5/xaf TIFINAGH MODIFIER LETTER LABIALIZATION MARK ++ /xe2/xb5/xb0 TIFINAGH SEPARATOR MARK ++ /xe2/xb5/xbf TIFINAGH CONSONANT JOINER + /xe2/xb6/x80 ETHIOPIC SYLLABLE LOA + /xe2/xb6/x81 ETHIOPIC SYLLABLE MOA + /xe2/xb6/x82 ETHIOPIC SYLLABLE ROA +@@ -9658,6 +10243,7 @@ CHARMAP + /xe2/xb8/xae REVERSED QUESTION MARK + /xe2/xb8/xaf VERTICAL TILDE + /xe2/xb8/xb0 RING POINT ++ /xe2/xb8/xb1 WORD SEPARATOR MIDDLE DOT + /xe2/xba/x80 CJK RADICAL REPEAT + /xe2/xba/x81 CJK RADICAL CLIFF + /xe2/xba/x82 CJK RADICAL SECOND ONE +@@ -10427,6 +11013,9 @@ CHARMAP + /xe3/x86/xb5 BOPOMOFO FINAL LETTER T + /xe3/x86/xb6 BOPOMOFO FINAL LETTER K + /xe3/x86/xb7 BOPOMOFO FINAL LETTER H ++ /xe3/x86/xb8 BOPOMOFO LETTER GH ++ /xe3/x86/xb9 BOPOMOFO LETTER LH ++ /xe3/x86/xba BOPOMOFO LETTER ZY + /xe3/x87/x80 CJK STROKE T + /xe3/x87/x81 CJK STROKE WG + /xe3/x87/x82 CJK STROKE XG +@@ -10546,6 +11135,18 @@ CHARMAP + /xe3/x89/x81 PARENTHESIZED IDEOGRAPH REST + /xe3/x89/x82 PARENTHESIZED IDEOGRAPH SELF + /xe3/x89/x83 PARENTHESIZED IDEOGRAPH REACH ++ /xe3/x89/x84 CIRCLED IDEOGRAPH QUESTION ++ /xe3/x89/x85 CIRCLED IDEOGRAPH KINDERGARTEN ++ /xe3/x89/x86 CIRCLED IDEOGRAPH SCHOOL ++ /xe3/x89/x87 CIRCLED IDEOGRAPH KOTO ++ /xe3/x89/x88 CIRCLED NUMBER TEN ON BLACK SQUARE ++ /xe3/x89/x89 CIRCLED NUMBER TWENTY ON BLACK SQUARE ++ /xe3/x89/x8a CIRCLED NUMBER THIRTY ON BLACK SQUARE ++ /xe3/x89/x8b CIRCLED NUMBER FORTY ON BLACK SQUARE ++ /xe3/x89/x8c CIRCLED NUMBER FIFTY ON BLACK SQUARE ++ /xe3/x89/x8d CIRCLED NUMBER SIXTY ON BLACK SQUARE ++ /xe3/x89/x8e CIRCLED NUMBER SEVENTY ON BLACK SQUARE ++ /xe3/x89/x8f CIRCLED NUMBER EIGHTY ON BLACK SQUARE + /xe3/x89/x90 PARTNERSHIP SIGN + /xe3/x89/x91 CIRCLED NUMBER TWENTY ONE + /xe3/x89/x92 CIRCLED NUMBER TWENTY TWO +@@ -12691,6 +13292,54 @@ CHARMAP + /xea/x93/x84 YI RADICAL ZZIET + /xea/x93/x85 YI RADICAL NBIE + /xea/x93/x86 YI RADICAL KE ++ /xea/x93/x90 LISU LETTER BA ++ /xea/x93/x91 LISU LETTER PA ++ /xea/x93/x92 LISU LETTER PHA ++ /xea/x93/x93 LISU LETTER DA ++ /xea/x93/x94 LISU LETTER TA ++ /xea/x93/x95 LISU LETTER THA ++ /xea/x93/x96 LISU LETTER GA ++ /xea/x93/x97 LISU LETTER KA ++ /xea/x93/x98 LISU LETTER KHA ++ /xea/x93/x99 LISU LETTER JA ++ /xea/x93/x9a LISU LETTER CA ++ /xea/x93/x9b LISU LETTER CHA ++ /xea/x93/x9c LISU LETTER DZA ++ /xea/x93/x9d LISU LETTER TSA ++ /xea/x93/x9e LISU LETTER TSHA ++ /xea/x93/x9f LISU LETTER MA ++ /xea/x93/xa0 LISU LETTER NA ++ /xea/x93/xa1 LISU LETTER LA ++ /xea/x93/xa2 LISU LETTER SA ++ /xea/x93/xa3 LISU LETTER ZHA ++ /xea/x93/xa4 LISU LETTER ZA ++ /xea/x93/xa5 LISU LETTER NGA ++ /xea/x93/xa6 LISU LETTER HA ++ /xea/x93/xa7 LISU LETTER XA ++ /xea/x93/xa8 LISU LETTER HHA ++ /xea/x93/xa9 LISU LETTER FA ++ /xea/x93/xaa LISU LETTER WA ++ /xea/x93/xab LISU LETTER SHA ++ /xea/x93/xac LISU LETTER YA ++ /xea/x93/xad LISU LETTER GHA ++ /xea/x93/xae LISU LETTER A ++ /xea/x93/xaf LISU LETTER AE ++ /xea/x93/xb0 LISU LETTER E ++ /xea/x93/xb1 LISU LETTER EU ++ /xea/x93/xb2 LISU LETTER I ++ /xea/x93/xb3 LISU LETTER O ++ /xea/x93/xb4 LISU LETTER U ++ /xea/x93/xb5 LISU LETTER UE ++ /xea/x93/xb6 LISU LETTER UH ++ /xea/x93/xb7 LISU LETTER OE ++ /xea/x93/xb8 LISU LETTER TONE MYA TI ++ /xea/x93/xb9 LISU LETTER TONE NA PO ++ /xea/x93/xba LISU LETTER TONE MYA CYA ++ /xea/x93/xbb LISU LETTER TONE MYA BO ++ /xea/x93/xbc LISU LETTER TONE MYA NA ++ /xea/x93/xbd LISU LETTER TONE MYA JEU ++ /xea/x93/xbe LISU PUNCTUATION COMMA ++ /xea/x93/xbf LISU PUNCTUATION FULL STOP + /xea/x94/x80 VAI SYLLABLE EE + /xea/x94/x81 VAI SYLLABLE EEN + /xea/x94/x82 VAI SYLLABLE HEE +@@ -13023,6 +13672,8 @@ CHARMAP + /xea/x99/x9d CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS + /xea/x99/x9e CYRILLIC CAPITAL LETTER YN + /xea/x99/x9f CYRILLIC SMALL LETTER YN ++ /xea/x99/xa0 CYRILLIC CAPITAL LETTER REVERSED TSE ++ /xea/x99/xa1 CYRILLIC SMALL LETTER REVERSED TSE + /xea/x99/xa2 CYRILLIC CAPITAL LETTER SOFT DE + /xea/x99/xa3 CYRILLIC SMALL LETTER SOFT DE + /xea/x99/xa4 CYRILLIC CAPITAL LETTER SOFT EL +@@ -13069,6 +13720,94 @@ CHARMAP + /xea/x9a/x95 CYRILLIC SMALL LETTER HWE + /xea/x9a/x96 CYRILLIC CAPITAL LETTER SHWE + /xea/x9a/x97 CYRILLIC SMALL LETTER SHWE ++ /xea/x9a/xa0 BAMUM LETTER A ++ /xea/x9a/xa1 BAMUM LETTER KA ++ /xea/x9a/xa2 BAMUM LETTER U ++ /xea/x9a/xa3 BAMUM LETTER KU ++ /xea/x9a/xa4 BAMUM LETTER EE ++ /xea/x9a/xa5 BAMUM LETTER REE ++ /xea/x9a/xa6 BAMUM LETTER TAE ++ /xea/x9a/xa7 BAMUM LETTER O ++ /xea/x9a/xa8 BAMUM LETTER NYI ++ /xea/x9a/xa9 BAMUM LETTER I ++ /xea/x9a/xaa BAMUM LETTER LA ++ /xea/x9a/xab BAMUM LETTER PA ++ /xea/x9a/xac BAMUM LETTER RII ++ /xea/x9a/xad BAMUM LETTER RIEE ++ /xea/x9a/xae BAMUM LETTER LEEEE ++ /xea/x9a/xaf BAMUM LETTER MEEEE ++ /xea/x9a/xb0 BAMUM LETTER TAA ++ /xea/x9a/xb1 BAMUM LETTER NDAA ++ /xea/x9a/xb2 BAMUM LETTER NJAEM ++ /xea/x9a/xb3 BAMUM LETTER M ++ /xea/x9a/xb4 BAMUM LETTER SUU ++ /xea/x9a/xb5 BAMUM LETTER MU ++ /xea/x9a/xb6 BAMUM LETTER SHII ++ /xea/x9a/xb7 BAMUM LETTER SI ++ /xea/x9a/xb8 BAMUM LETTER SHEUX ++ /xea/x9a/xb9 BAMUM LETTER SEUX ++ /xea/x9a/xba BAMUM LETTER KYEE ++ /xea/x9a/xbb BAMUM LETTER KET ++ /xea/x9a/xbc BAMUM LETTER NUAE ++ /xea/x9a/xbd BAMUM LETTER NU ++ /xea/x9a/xbe BAMUM LETTER NJUAE ++ /xea/x9a/xbf BAMUM LETTER YOQ ++ /xea/x9b/x80 BAMUM LETTER SHU ++ /xea/x9b/x81 BAMUM LETTER YUQ ++ /xea/x9b/x82 BAMUM LETTER YA ++ /xea/x9b/x83 BAMUM LETTER NSHA ++ /xea/x9b/x84 BAMUM LETTER KEUX ++ /xea/x9b/x85 BAMUM LETTER PEUX ++ /xea/x9b/x86 BAMUM LETTER NJEE ++ /xea/x9b/x87 BAMUM LETTER NTEE ++ /xea/x9b/x88 BAMUM LETTER PUE ++ /xea/x9b/x89 BAMUM LETTER WUE ++ /xea/x9b/x8a BAMUM LETTER PEE ++ /xea/x9b/x8b BAMUM LETTER FEE ++ /xea/x9b/x8c BAMUM LETTER RU ++ /xea/x9b/x8d BAMUM LETTER LU ++ /xea/x9b/x8e BAMUM LETTER MI ++ /xea/x9b/x8f BAMUM LETTER NI ++ /xea/x9b/x90 BAMUM LETTER REUX ++ /xea/x9b/x91 BAMUM LETTER RAE ++ /xea/x9b/x92 BAMUM LETTER KEN ++ /xea/x9b/x93 BAMUM LETTER NGKWAEN ++ /xea/x9b/x94 BAMUM LETTER NGGA ++ /xea/x9b/x95 BAMUM LETTER NGA ++ /xea/x9b/x96 BAMUM LETTER SHO ++ /xea/x9b/x97 BAMUM LETTER PUAE ++ /xea/x9b/x98 BAMUM LETTER FU ++ /xea/x9b/x99 BAMUM LETTER FOM ++ /xea/x9b/x9a BAMUM LETTER WA ++ /xea/x9b/x9b BAMUM LETTER NA ++ /xea/x9b/x9c BAMUM LETTER LI ++ /xea/x9b/x9d BAMUM LETTER PI ++ /xea/x9b/x9e BAMUM LETTER LOQ ++ /xea/x9b/x9f BAMUM LETTER KO ++ /xea/x9b/xa0 BAMUM LETTER MBEN ++ /xea/x9b/xa1 BAMUM LETTER REN ++ /xea/x9b/xa2 BAMUM LETTER MEN ++ /xea/x9b/xa3 BAMUM LETTER MA ++ /xea/x9b/xa4 BAMUM LETTER TI ++ /xea/x9b/xa5 BAMUM LETTER KI ++ /xea/x9b/xa6 BAMUM LETTER MO ++ /xea/x9b/xa7 BAMUM LETTER MBAA ++ /xea/x9b/xa8 BAMUM LETTER TET ++ /xea/x9b/xa9 BAMUM LETTER KPA ++ /xea/x9b/xaa BAMUM LETTER TEN ++ /xea/x9b/xab BAMUM LETTER NTUU ++ /xea/x9b/xac BAMUM LETTER SAMBA ++ /xea/x9b/xad BAMUM LETTER FAAMAE ++ /xea/x9b/xae BAMUM LETTER KOVUU ++ /xea/x9b/xaf BAMUM LETTER KOGHOM ++ /xea/x9b/xb0 BAMUM COMBINING MARK KOQNDON ++ /xea/x9b/xb1 BAMUM COMBINING MARK TUKWENTIS ++ /xea/x9b/xb2 BAMUM NJAEMLI ++ /xea/x9b/xb3 BAMUM FULL STOP ++ /xea/x9b/xb4 BAMUM COLON ++ /xea/x9b/xb5 BAMUM COMMA ++ /xea/x9b/xb6 BAMUM SEMICOLON ++ /xea/x9b/xb7 BAMUM QUESTION MARK + /xea/x9c/x80 MODIFIER LETTER CHINESE TONE YIN PING + /xea/x9c/x81 MODIFIER LETTER CHINESE TONE YANG PING + /xea/x9c/x82 MODIFIER LETTER CHINESE TONE YIN SHANG +@@ -13210,6 +13949,21 @@ CHARMAP + /xea/x9e/x8a MODIFIER LETTER SHORT EQUALS SIGN + /xea/x9e/x8b LATIN CAPITAL LETTER SALTILLO + /xea/x9e/x8c LATIN SMALL LETTER SALTILLO ++ /xea/x9e/x8d LATIN CAPITAL LETTER TURNED H ++ /xea/x9e/x8e LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT ++ /xea/x9e/x90 LATIN CAPITAL LETTER N WITH DESCENDER ++ /xea/x9e/x91 LATIN SMALL LETTER N WITH DESCENDER ++ /xea/x9e/xa0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE ++ /xea/x9e/xa1 LATIN SMALL LETTER G WITH OBLIQUE STROKE ++ /xea/x9e/xa2 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE ++ /xea/x9e/xa3 LATIN SMALL LETTER K WITH OBLIQUE STROKE ++ /xea/x9e/xa4 LATIN CAPITAL LETTER N WITH OBLIQUE STROKE ++ /xea/x9e/xa5 LATIN SMALL LETTER N WITH OBLIQUE STROKE ++ /xea/x9e/xa6 LATIN CAPITAL LETTER R WITH OBLIQUE STROKE ++ /xea/x9e/xa7 LATIN SMALL LETTER R WITH OBLIQUE STROKE ++ /xea/x9e/xa8 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE ++ /xea/x9e/xa9 LATIN SMALL LETTER S WITH OBLIQUE STROKE ++ /xea/x9f/xba LATIN LETTER SMALL CAPITAL TURNED M + /xea/x9f/xbb LATIN EPIGRAPHIC LETTER REVERSED F + /xea/x9f/xbc LATIN EPIGRAPHIC LETTER REVERSED P + /xea/x9f/xbd LATIN EPIGRAPHIC LETTER INVERTED M +@@ -13259,6 +14013,16 @@ CHARMAP + /xea/xa0/xa9 SYLOTI NAGRI POETRY MARK-2 + /xea/xa0/xaa SYLOTI NAGRI POETRY MARK-3 + /xea/xa0/xab SYLOTI NAGRI POETRY MARK-4 ++ /xea/xa0/xb0 NORTH INDIC FRACTION ONE QUARTER ++ /xea/xa0/xb1 NORTH INDIC FRACTION ONE HALF ++ /xea/xa0/xb2 NORTH INDIC FRACTION THREE QUARTERS ++ /xea/xa0/xb3 NORTH INDIC FRACTION ONE SIXTEENTH ++ /xea/xa0/xb4 NORTH INDIC FRACTION ONE EIGHTH ++ /xea/xa0/xb5 NORTH INDIC FRACTION THREE SIXTEENTHS ++ /xea/xa0/xb6 NORTH INDIC QUARTER MARK ++ /xea/xa0/xb7 NORTH INDIC PLACEHOLDER MARK ++ /xea/xa0/xb8 NORTH INDIC RUPEE MARK ++ /xea/xa0/xb9 NORTH INDIC QUANTITY MARK + /xea/xa1/x80 PHAGS-PA LETTER KA + /xea/xa1/x81 PHAGS-PA LETTER KHA + /xea/xa1/x82 PHAGS-PA LETTER GA +@@ -13396,6 +14160,34 @@ CHARMAP + /xea/xa3/x97 SAURASHTRA DIGIT SEVEN + /xea/xa3/x98 SAURASHTRA DIGIT EIGHT + /xea/xa3/x99 SAURASHTRA DIGIT NINE ++ /xea/xa3/xa0 COMBINING DEVANAGARI DIGIT ZERO ++ /xea/xa3/xa1 COMBINING DEVANAGARI DIGIT ONE ++ /xea/xa3/xa2 COMBINING DEVANAGARI DIGIT TWO ++ /xea/xa3/xa3 COMBINING DEVANAGARI DIGIT THREE ++ /xea/xa3/xa4 COMBINING DEVANAGARI DIGIT FOUR ++ /xea/xa3/xa5 COMBINING DEVANAGARI DIGIT FIVE ++ /xea/xa3/xa6 COMBINING DEVANAGARI DIGIT SIX ++ /xea/xa3/xa7 COMBINING DEVANAGARI DIGIT SEVEN ++ /xea/xa3/xa8 COMBINING DEVANAGARI DIGIT EIGHT ++ /xea/xa3/xa9 COMBINING DEVANAGARI DIGIT NINE ++ /xea/xa3/xaa COMBINING DEVANAGARI LETTER A ++ /xea/xa3/xab COMBINING DEVANAGARI LETTER U ++ /xea/xa3/xac COMBINING DEVANAGARI LETTER KA ++ /xea/xa3/xad COMBINING DEVANAGARI LETTER NA ++ /xea/xa3/xae COMBINING DEVANAGARI LETTER PA ++ /xea/xa3/xaf COMBINING DEVANAGARI LETTER RA ++ /xea/xa3/xb0 COMBINING DEVANAGARI LETTER VI ++ /xea/xa3/xb1 COMBINING DEVANAGARI SIGN AVAGRAHA ++ /xea/xa3/xb2 DEVANAGARI SIGN SPACING CANDRABINDU ++ /xea/xa3/xb3 DEVANAGARI SIGN CANDRABINDU VIRAMA ++ /xea/xa3/xb4 DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA ++ /xea/xa3/xb5 DEVANAGARI SIGN CANDRABINDU TWO ++ /xea/xa3/xb6 DEVANAGARI SIGN CANDRABINDU THREE ++ /xea/xa3/xb7 DEVANAGARI SIGN CANDRABINDU AVAGRAHA ++ /xea/xa3/xb8 DEVANAGARI SIGN PUSHPIKA ++ /xea/xa3/xb9 DEVANAGARI GAP FILLER ++ /xea/xa3/xba DEVANAGARI CARET ++ /xea/xa3/xbb DEVANAGARI HEADSTROKE + /xea/xa4/x80 KAYAH LI DIGIT ZERO + /xea/xa4/x81 KAYAH LI DIGIT ONE + /xea/xa4/x82 KAYAH LI DIGIT TWO +@@ -13481,6 +14273,126 @@ CHARMAP + /xea/xa5/x92 REJANG CONSONANT SIGN H + /xea/xa5/x93 REJANG VIRAMA + /xea/xa5/x9f REJANG SECTION MARK ++ /xea/xa5/xa0 HANGUL CHOSEONG TIKEUT-MIEUM ++ /xea/xa5/xa1 HANGUL CHOSEONG TIKEUT-PIEUP ++ /xea/xa5/xa2 HANGUL CHOSEONG TIKEUT-SIOS ++ /xea/xa5/xa3 HANGUL CHOSEONG TIKEUT-CIEUC ++ /xea/xa5/xa4 HANGUL CHOSEONG RIEUL-KIYEOK ++ /xea/xa5/xa5 HANGUL CHOSEONG RIEUL-SSANGKIYEOK ++ /xea/xa5/xa6 HANGUL CHOSEONG RIEUL-TIKEUT ++ /xea/xa5/xa7 HANGUL CHOSEONG RIEUL-SSANGTIKEUT ++ /xea/xa5/xa8 HANGUL CHOSEONG RIEUL-MIEUM ++ /xea/xa5/xa9 HANGUL CHOSEONG RIEUL-PIEUP ++ /xea/xa5/xaa HANGUL CHOSEONG RIEUL-SSANGPIEUP ++ /xea/xa5/xab HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP ++ /xea/xa5/xac HANGUL CHOSEONG RIEUL-SIOS ++ /xea/xa5/xad HANGUL CHOSEONG RIEUL-CIEUC ++ /xea/xa5/xae HANGUL CHOSEONG RIEUL-KHIEUKH ++ /xea/xa5/xaf HANGUL CHOSEONG MIEUM-KIYEOK ++ /xea/xa5/xb0 HANGUL CHOSEONG MIEUM-TIKEUT ++ /xea/xa5/xb1 HANGUL CHOSEONG MIEUM-SIOS ++ /xea/xa5/xb2 HANGUL CHOSEONG PIEUP-SIOS-THIEUTH ++ /xea/xa5/xb3 HANGUL CHOSEONG PIEUP-KHIEUKH ++ /xea/xa5/xb4 HANGUL CHOSEONG PIEUP-HIEUH ++ /xea/xa5/xb5 HANGUL CHOSEONG SSANGSIOS-PIEUP ++ /xea/xa5/xb6 HANGUL CHOSEONG IEUNG-RIEUL ++ /xea/xa5/xb7 HANGUL CHOSEONG IEUNG-HIEUH ++ /xea/xa5/xb8 HANGUL CHOSEONG SSANGCIEUC-HIEUH ++ /xea/xa5/xb9 HANGUL CHOSEONG SSANGTHIEUTH ++ /xea/xa5/xba HANGUL CHOSEONG PHIEUPH-HIEUH ++ /xea/xa5/xbb HANGUL CHOSEONG HIEUH-SIOS ++ /xea/xa5/xbc HANGUL CHOSEONG SSANGYEORINHIEUH ++ /xea/xa6/x80 JAVANESE SIGN PANYANGGA ++ /xea/xa6/x81 JAVANESE SIGN CECAK ++ /xea/xa6/x82 JAVANESE SIGN LAYAR ++ /xea/xa6/x83 JAVANESE SIGN WIGNYAN ++ /xea/xa6/x84 JAVANESE LETTER A ++ /xea/xa6/x85 JAVANESE LETTER I KAWI ++ /xea/xa6/x86 JAVANESE LETTER I ++ /xea/xa6/x87 JAVANESE LETTER II ++ /xea/xa6/x88 JAVANESE LETTER U ++ /xea/xa6/x89 JAVANESE LETTER PA CEREK ++ /xea/xa6/x8a JAVANESE LETTER NGA LELET ++ /xea/xa6/x8b JAVANESE LETTER NGA LELET RASWADI ++ /xea/xa6/x8c JAVANESE LETTER E ++ /xea/xa6/x8d JAVANESE LETTER AI ++ /xea/xa6/x8e JAVANESE LETTER O ++ /xea/xa6/x8f JAVANESE LETTER KA ++ /xea/xa6/x90 JAVANESE LETTER KA SASAK ++ /xea/xa6/x91 JAVANESE LETTER KA MURDA ++ /xea/xa6/x92 JAVANESE LETTER GA ++ /xea/xa6/x93 JAVANESE LETTER GA MURDA ++ /xea/xa6/x94 JAVANESE LETTER NGA ++ /xea/xa6/x95 JAVANESE LETTER CA ++ /xea/xa6/x96 JAVANESE LETTER CA MURDA ++ /xea/xa6/x97 JAVANESE LETTER JA ++ /xea/xa6/x98 JAVANESE LETTER NYA MURDA ++ /xea/xa6/x99 JAVANESE LETTER JA MAHAPRANA ++ /xea/xa6/x9a JAVANESE LETTER NYA ++ /xea/xa6/x9b JAVANESE LETTER TTA ++ /xea/xa6/x9c JAVANESE LETTER TTA MAHAPRANA ++ /xea/xa6/x9d JAVANESE LETTER DDA ++ /xea/xa6/x9e JAVANESE LETTER DDA MAHAPRANA ++ /xea/xa6/x9f JAVANESE LETTER NA MURDA ++ /xea/xa6/xa0 JAVANESE LETTER TA ++ /xea/xa6/xa1 JAVANESE LETTER TA MURDA ++ /xea/xa6/xa2 JAVANESE LETTER DA ++ /xea/xa6/xa3 JAVANESE LETTER DA MAHAPRANA ++ /xea/xa6/xa4 JAVANESE LETTER NA ++ /xea/xa6/xa5 JAVANESE LETTER PA ++ /xea/xa6/xa6 JAVANESE LETTER PA MURDA ++ /xea/xa6/xa7 JAVANESE LETTER BA ++ /xea/xa6/xa8 JAVANESE LETTER BA MURDA ++ /xea/xa6/xa9 JAVANESE LETTER MA ++ /xea/xa6/xaa JAVANESE LETTER YA ++ /xea/xa6/xab JAVANESE LETTER RA ++ /xea/xa6/xac JAVANESE LETTER RA AGUNG ++ /xea/xa6/xad JAVANESE LETTER LA ++ /xea/xa6/xae JAVANESE LETTER WA ++ /xea/xa6/xaf JAVANESE LETTER SA MURDA ++ /xea/xa6/xb0 JAVANESE LETTER SA MAHAPRANA ++ /xea/xa6/xb1 JAVANESE LETTER SA ++ /xea/xa6/xb2 JAVANESE LETTER HA ++ /xea/xa6/xb3 JAVANESE SIGN CECAK TELU ++ /xea/xa6/xb4 JAVANESE VOWEL SIGN TARUNG ++ /xea/xa6/xb5 JAVANESE VOWEL SIGN TOLONG ++ /xea/xa6/xb6 JAVANESE VOWEL SIGN WULU ++ /xea/xa6/xb7 JAVANESE VOWEL SIGN WULU MELIK ++ /xea/xa6/xb8 JAVANESE VOWEL SIGN SUKU ++ /xea/xa6/xb9 JAVANESE VOWEL SIGN SUKU MENDUT ++ /xea/xa6/xba JAVANESE VOWEL SIGN TALING ++ /xea/xa6/xbb JAVANESE VOWEL SIGN DIRGA MURE ++ /xea/xa6/xbc JAVANESE VOWEL SIGN PEPET ++ /xea/xa6/xbd JAVANESE CONSONANT SIGN KERET ++ /xea/xa6/xbe JAVANESE CONSONANT SIGN PENGKAL ++ /xea/xa6/xbf JAVANESE CONSONANT SIGN CAKRA ++ /xea/xa7/x80 JAVANESE PANGKON ++ /xea/xa7/x81 JAVANESE LEFT RERENGGAN ++ /xea/xa7/x82 JAVANESE RIGHT RERENGGAN ++ /xea/xa7/x83 JAVANESE PADA ANDAP ++ /xea/xa7/x84 JAVANESE PADA MADYA ++ /xea/xa7/x85 JAVANESE PADA LUHUR ++ /xea/xa7/x86 JAVANESE PADA WINDU ++ /xea/xa7/x87 JAVANESE PADA PANGKAT ++ /xea/xa7/x88 JAVANESE PADA LINGSA ++ /xea/xa7/x89 JAVANESE PADA LUNGSI ++ /xea/xa7/x8a JAVANESE PADA ADEG ++ /xea/xa7/x8b JAVANESE PADA ADEG ADEG ++ /xea/xa7/x8c JAVANESE PADA PISELEH ++ /xea/xa7/x8d JAVANESE TURNED PADA PISELEH ++ /xea/xa7/x8f JAVANESE PANGRANGKEP ++ /xea/xa7/x90 JAVANESE DIGIT ZERO ++ /xea/xa7/x91 JAVANESE DIGIT ONE ++ /xea/xa7/x92 JAVANESE DIGIT TWO ++ /xea/xa7/x93 JAVANESE DIGIT THREE ++ /xea/xa7/x94 JAVANESE DIGIT FOUR ++ /xea/xa7/x95 JAVANESE DIGIT FIVE ++ /xea/xa7/x96 JAVANESE DIGIT SIX ++ /xea/xa7/x97 JAVANESE DIGIT SEVEN ++ /xea/xa7/x98 JAVANESE DIGIT EIGHT ++ /xea/xa7/x99 JAVANESE DIGIT NINE ++ /xea/xa7/x9e JAVANESE PADA TIRTA TUMETES ++ /xea/xa7/x9f JAVANESE PADA ISEN-ISEN + /xea/xa8/x80 CHAM LETTER A + /xea/xa8/x81 CHAM LETTER I + /xea/xa8/x82 CHAM LETTER U +@@ -13564,6 +14476,194 @@ CHARMAP + /xea/xa9/x9d CHAM PUNCTUATION DANDA + /xea/xa9/x9e CHAM PUNCTUATION DOUBLE DANDA + /xea/xa9/x9f CHAM PUNCTUATION TRIPLE DANDA ++ /xea/xa9/xa0 MYANMAR LETTER KHAMTI GA ++ /xea/xa9/xa1 MYANMAR LETTER KHAMTI CA ++ /xea/xa9/xa2 MYANMAR LETTER KHAMTI CHA ++ /xea/xa9/xa3 MYANMAR LETTER KHAMTI JA ++ /xea/xa9/xa4 MYANMAR LETTER KHAMTI JHA ++ /xea/xa9/xa5 MYANMAR LETTER KHAMTI NYA ++ /xea/xa9/xa6 MYANMAR LETTER KHAMTI TTA ++ /xea/xa9/xa7 MYANMAR LETTER KHAMTI TTHA ++ /xea/xa9/xa8 MYANMAR LETTER KHAMTI DDA ++ /xea/xa9/xa9 MYANMAR LETTER KHAMTI DDHA ++ /xea/xa9/xaa MYANMAR LETTER KHAMTI DHA ++ /xea/xa9/xab MYANMAR LETTER KHAMTI NA ++ /xea/xa9/xac MYANMAR LETTER KHAMTI SA ++ /xea/xa9/xad MYANMAR LETTER KHAMTI HA ++ /xea/xa9/xae MYANMAR LETTER KHAMTI HHA ++ /xea/xa9/xaf MYANMAR LETTER KHAMTI FA ++ /xea/xa9/xb0 MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION ++ /xea/xa9/xb1 MYANMAR LETTER KHAMTI XA ++ /xea/xa9/xb2 MYANMAR LETTER KHAMTI ZA ++ /xea/xa9/xb3 MYANMAR LETTER KHAMTI RA ++ /xea/xa9/xb4 MYANMAR LOGOGRAM KHAMTI OAY ++ /xea/xa9/xb5 MYANMAR LOGOGRAM KHAMTI QN ++ /xea/xa9/xb6 MYANMAR LOGOGRAM KHAMTI HM ++ /xea/xa9/xb7 MYANMAR SYMBOL AITON EXCLAMATION ++ /xea/xa9/xb8 MYANMAR SYMBOL AITON ONE ++ /xea/xa9/xb9 MYANMAR SYMBOL AITON TWO ++ /xea/xa9/xba MYANMAR LETTER AITON RA ++ /xea/xa9/xbb MYANMAR SIGN PAO KAREN TONE ++ /xea/xaa/x80 TAI VIET LETTER LOW KO ++ /xea/xaa/x81 TAI VIET LETTER HIGH KO ++ /xea/xaa/x82 TAI VIET LETTER LOW KHO ++ /xea/xaa/x83 TAI VIET LETTER HIGH KHO ++ /xea/xaa/x84 TAI VIET LETTER LOW KHHO ++ /xea/xaa/x85 TAI VIET LETTER HIGH KHHO ++ /xea/xaa/x86 TAI VIET LETTER LOW GO ++ /xea/xaa/x87 TAI VIET LETTER HIGH GO ++ /xea/xaa/x88 TAI VIET LETTER LOW NGO ++ /xea/xaa/x89 TAI VIET LETTER HIGH NGO ++ /xea/xaa/x8a TAI VIET LETTER LOW CO ++ /xea/xaa/x8b TAI VIET LETTER HIGH CO ++ /xea/xaa/x8c TAI VIET LETTER LOW CHO ++ /xea/xaa/x8d TAI VIET LETTER HIGH CHO ++ /xea/xaa/x8e TAI VIET LETTER LOW SO ++ /xea/xaa/x8f TAI VIET LETTER HIGH SO ++ /xea/xaa/x90 TAI VIET LETTER LOW NYO ++ /xea/xaa/x91 TAI VIET LETTER HIGH NYO ++ /xea/xaa/x92 TAI VIET LETTER LOW DO ++ /xea/xaa/x93 TAI VIET LETTER HIGH DO ++ /xea/xaa/x94 TAI VIET LETTER LOW TO ++ /xea/xaa/x95 TAI VIET LETTER HIGH TO ++ /xea/xaa/x96 TAI VIET LETTER LOW THO ++ /xea/xaa/x97 TAI VIET LETTER HIGH THO ++ /xea/xaa/x98 TAI VIET LETTER LOW NO ++ /xea/xaa/x99 TAI VIET LETTER HIGH NO ++ /xea/xaa/x9a TAI VIET LETTER LOW BO ++ /xea/xaa/x9b TAI VIET LETTER HIGH BO ++ /xea/xaa/x9c TAI VIET LETTER LOW PO ++ /xea/xaa/x9d TAI VIET LETTER HIGH PO ++ /xea/xaa/x9e TAI VIET LETTER LOW PHO ++ /xea/xaa/x9f TAI VIET LETTER HIGH PHO ++ /xea/xaa/xa0 TAI VIET LETTER LOW FO ++ /xea/xaa/xa1 TAI VIET LETTER HIGH FO ++ /xea/xaa/xa2 TAI VIET LETTER LOW MO ++ /xea/xaa/xa3 TAI VIET LETTER HIGH MO ++ /xea/xaa/xa4 TAI VIET LETTER LOW YO ++ /xea/xaa/xa5 TAI VIET LETTER HIGH YO ++ /xea/xaa/xa6 TAI VIET LETTER LOW RO ++ /xea/xaa/xa7 TAI VIET LETTER HIGH RO ++ /xea/xaa/xa8 TAI VIET LETTER LOW LO ++ /xea/xaa/xa9 TAI VIET LETTER HIGH LO ++ /xea/xaa/xaa TAI VIET LETTER LOW VO ++ /xea/xaa/xab TAI VIET LETTER HIGH VO ++ /xea/xaa/xac TAI VIET LETTER LOW HO ++ /xea/xaa/xad TAI VIET LETTER HIGH HO ++ /xea/xaa/xae TAI VIET LETTER LOW O ++ /xea/xaa/xaf TAI VIET LETTER HIGH O ++ /xea/xaa/xb0 TAI VIET MAI KANG ++ /xea/xaa/xb1 TAI VIET VOWEL AA ++ /xea/xaa/xb2 TAI VIET VOWEL I ++ /xea/xaa/xb3 TAI VIET VOWEL UE ++ /xea/xaa/xb4 TAI VIET VOWEL U ++ /xea/xaa/xb5 TAI VIET VOWEL E ++ /xea/xaa/xb6 TAI VIET VOWEL O ++ /xea/xaa/xb7 TAI VIET MAI KHIT ++ /xea/xaa/xb8 TAI VIET VOWEL IA ++ /xea/xaa/xb9 TAI VIET VOWEL UEA ++ /xea/xaa/xba TAI VIET VOWEL UA ++ /xea/xaa/xbb TAI VIET VOWEL AUE ++ /xea/xaa/xbc TAI VIET VOWEL AY ++ /xea/xaa/xbd TAI VIET VOWEL AN ++ /xea/xaa/xbe TAI VIET VOWEL AM ++ /xea/xaa/xbf TAI VIET TONE MAI EK ++ /xea/xab/x80 TAI VIET TONE MAI NUENG ++ /xea/xab/x81 TAI VIET TONE MAI THO ++ /xea/xab/x82 TAI VIET TONE MAI SONG ++ /xea/xab/x9b TAI VIET SYMBOL KON ++ /xea/xab/x9c TAI VIET SYMBOL NUENG ++ /xea/xab/x9d TAI VIET SYMBOL SAM ++ /xea/xab/x9e TAI VIET SYMBOL HO HOI ++ /xea/xab/x9f TAI VIET SYMBOL KOI KOI ++ /xea/xac/x81 ETHIOPIC SYLLABLE TTHU ++ /xea/xac/x82 ETHIOPIC SYLLABLE TTHI ++ /xea/xac/x83 ETHIOPIC SYLLABLE TTHAA ++ /xea/xac/x84 ETHIOPIC SYLLABLE TTHEE ++ /xea/xac/x85 ETHIOPIC SYLLABLE TTHE ++ /xea/xac/x86 ETHIOPIC SYLLABLE TTHO ++ /xea/xac/x89 ETHIOPIC SYLLABLE DDHU ++ /xea/xac/x8a ETHIOPIC SYLLABLE DDHI ++ /xea/xac/x8b ETHIOPIC SYLLABLE DDHAA ++ /xea/xac/x8c ETHIOPIC SYLLABLE DDHEE ++ /xea/xac/x8d ETHIOPIC SYLLABLE DDHE ++ /xea/xac/x8e ETHIOPIC SYLLABLE DDHO ++ /xea/xac/x91 ETHIOPIC SYLLABLE DZU ++ /xea/xac/x92 ETHIOPIC SYLLABLE DZI ++ /xea/xac/x93 ETHIOPIC SYLLABLE DZAA ++ /xea/xac/x94 ETHIOPIC SYLLABLE DZEE ++ /xea/xac/x95 ETHIOPIC SYLLABLE DZE ++ /xea/xac/x96 ETHIOPIC SYLLABLE DZO ++ /xea/xac/xa0 ETHIOPIC SYLLABLE CCHHA ++ /xea/xac/xa1 ETHIOPIC SYLLABLE CCHHU ++ /xea/xac/xa2 ETHIOPIC SYLLABLE CCHHI ++ /xea/xac/xa3 ETHIOPIC SYLLABLE CCHHAA ++ /xea/xac/xa4 ETHIOPIC SYLLABLE CCHHEE ++ /xea/xac/xa5 ETHIOPIC SYLLABLE CCHHE ++ /xea/xac/xa6 ETHIOPIC SYLLABLE CCHHO ++ /xea/xac/xa8 ETHIOPIC SYLLABLE BBA ++ /xea/xac/xa9 ETHIOPIC SYLLABLE BBU ++ /xea/xac/xaa ETHIOPIC SYLLABLE BBI ++ /xea/xac/xab ETHIOPIC SYLLABLE BBAA ++ /xea/xac/xac ETHIOPIC SYLLABLE BBEE ++ /xea/xac/xad ETHIOPIC SYLLABLE BBE ++ /xea/xac/xae ETHIOPIC SYLLABLE BBO ++ /xea/xaf/x80 MEETEI MAYEK LETTER KOK ++ /xea/xaf/x81 MEETEI MAYEK LETTER SAM ++ /xea/xaf/x82 MEETEI MAYEK LETTER LAI ++ /xea/xaf/x83 MEETEI MAYEK LETTER MIT ++ /xea/xaf/x84 MEETEI MAYEK LETTER PA ++ /xea/xaf/x85 MEETEI MAYEK LETTER NA ++ /xea/xaf/x86 MEETEI MAYEK LETTER CHIL ++ /xea/xaf/x87 MEETEI MAYEK LETTER TIL ++ /xea/xaf/x88 MEETEI MAYEK LETTER KHOU ++ /xea/xaf/x89 MEETEI MAYEK LETTER NGOU ++ /xea/xaf/x8a MEETEI MAYEK LETTER THOU ++ /xea/xaf/x8b MEETEI MAYEK LETTER WAI ++ /xea/xaf/x8c MEETEI MAYEK LETTER YANG ++ /xea/xaf/x8d MEETEI MAYEK LETTER HUK ++ /xea/xaf/x8e MEETEI MAYEK LETTER UN ++ /xea/xaf/x8f MEETEI MAYEK LETTER I ++ /xea/xaf/x90 MEETEI MAYEK LETTER PHAM ++ /xea/xaf/x91 MEETEI MAYEK LETTER ATIYA ++ /xea/xaf/x92 MEETEI MAYEK LETTER GOK ++ /xea/xaf/x93 MEETEI MAYEK LETTER JHAM ++ /xea/xaf/x94 MEETEI MAYEK LETTER RAI ++ /xea/xaf/x95 MEETEI MAYEK LETTER BA ++ /xea/xaf/x96 MEETEI MAYEK LETTER JIL ++ /xea/xaf/x97 MEETEI MAYEK LETTER DIL ++ /xea/xaf/x98 MEETEI MAYEK LETTER GHOU ++ /xea/xaf/x99 MEETEI MAYEK LETTER DHOU ++ /xea/xaf/x9a MEETEI MAYEK LETTER BHAM ++ /xea/xaf/x9b MEETEI MAYEK LETTER KOK LONSUM ++ /xea/xaf/x9c MEETEI MAYEK LETTER LAI LONSUM ++ /xea/xaf/x9d MEETEI MAYEK LETTER MIT LONSUM ++ /xea/xaf/x9e MEETEI MAYEK LETTER PA LONSUM ++ /xea/xaf/x9f MEETEI MAYEK LETTER NA LONSUM ++ /xea/xaf/xa0 MEETEI MAYEK LETTER TIL LONSUM ++ /xea/xaf/xa1 MEETEI MAYEK LETTER NGOU LONSUM ++ /xea/xaf/xa2 MEETEI MAYEK LETTER I LONSUM ++ /xea/xaf/xa3 MEETEI MAYEK VOWEL SIGN ONAP ++ /xea/xaf/xa4 MEETEI MAYEK VOWEL SIGN INAP ++ /xea/xaf/xa5 MEETEI MAYEK VOWEL SIGN ANAP ++ /xea/xaf/xa6 MEETEI MAYEK VOWEL SIGN YENAP ++ /xea/xaf/xa7 MEETEI MAYEK VOWEL SIGN SOUNAP ++ /xea/xaf/xa8 MEETEI MAYEK VOWEL SIGN UNAP ++ /xea/xaf/xa9 MEETEI MAYEK VOWEL SIGN CHEINAP ++ /xea/xaf/xaa MEETEI MAYEK VOWEL SIGN NUNG ++ /xea/xaf/xab MEETEI MAYEK CHEIKHEI ++ /xea/xaf/xac MEETEI MAYEK LUM IYEK ++ /xea/xaf/xad MEETEI MAYEK APUN IYEK ++ /xea/xaf/xb0 MEETEI MAYEK DIGIT ZERO ++ /xea/xaf/xb1 MEETEI MAYEK DIGIT ONE ++ /xea/xaf/xb2 MEETEI MAYEK DIGIT TWO ++ /xea/xaf/xb3 MEETEI MAYEK DIGIT THREE ++ /xea/xaf/xb4 MEETEI MAYEK DIGIT FOUR ++ /xea/xaf/xb5 MEETEI MAYEK DIGIT FIVE ++ /xea/xaf/xb6 MEETEI MAYEK DIGIT SIX ++ /xea/xaf/xb7 MEETEI MAYEK DIGIT SEVEN ++ /xea/xaf/xb8 MEETEI MAYEK DIGIT EIGHT ++ /xea/xaf/xb9 MEETEI MAYEK DIGIT NINE + /xea/xb0/x80 HANGUL SYLLABLE GA + /xea/xb0/x81 HANGUL SYLLABLE GAG + /xea/xb0/x82 HANGUL SYLLABLE GAGG +@@ -24736,6 +25836,78 @@ CHARMAP + /xed/x9e/xa1 HANGUL SYLLABLE HIT + /xed/x9e/xa2 HANGUL SYLLABLE HIP + /xed/x9e/xa3 HANGUL SYLLABLE HIH ++ /xed/x9e/xb0 HANGUL JUNGSEONG O-YEO ++ /xed/x9e/xb1 HANGUL JUNGSEONG O-O-I ++ /xed/x9e/xb2 HANGUL JUNGSEONG YO-A ++ /xed/x9e/xb3 HANGUL JUNGSEONG YO-AE ++ /xed/x9e/xb4 HANGUL JUNGSEONG YO-EO ++ /xed/x9e/xb5 HANGUL JUNGSEONG U-YEO ++ /xed/x9e/xb6 HANGUL JUNGSEONG U-I-I ++ /xed/x9e/xb7 HANGUL JUNGSEONG YU-AE ++ /xed/x9e/xb8 HANGUL JUNGSEONG YU-O ++ /xed/x9e/xb9 HANGUL JUNGSEONG EU-A ++ /xed/x9e/xba HANGUL JUNGSEONG EU-EO ++ /xed/x9e/xbb HANGUL JUNGSEONG EU-E ++ /xed/x9e/xbc HANGUL JUNGSEONG EU-O ++ /xed/x9e/xbd HANGUL JUNGSEONG I-YA-O ++ /xed/x9e/xbe HANGUL JUNGSEONG I-YAE ++ /xed/x9e/xbf HANGUL JUNGSEONG I-YEO ++ /xed/x9f/x80 HANGUL JUNGSEONG I-YE ++ /xed/x9f/x81 HANGUL JUNGSEONG I-O-I ++ /xed/x9f/x82 HANGUL JUNGSEONG I-YO ++ /xed/x9f/x83 HANGUL JUNGSEONG I-YU ++ /xed/x9f/x84 HANGUL JUNGSEONG I-I ++ /xed/x9f/x85 HANGUL JUNGSEONG ARAEA-A ++ /xed/x9f/x86 HANGUL JUNGSEONG ARAEA-E ++ /xed/x9f/x8b HANGUL JONGSEONG NIEUN-RIEUL ++ /xed/x9f/x8c HANGUL JONGSEONG NIEUN-CHIEUCH ++ /xed/x9f/x8d HANGUL JONGSEONG SSANGTIKEUT ++ /xed/x9f/x8e HANGUL JONGSEONG SSANGTIKEUT-PIEUP ++ /xed/x9f/x8f HANGUL JONGSEONG TIKEUT-PIEUP ++ /xed/x9f/x90 HANGUL JONGSEONG TIKEUT-SIOS ++ /xed/x9f/x91 HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK ++ /xed/x9f/x92 HANGUL JONGSEONG TIKEUT-CIEUC ++ /xed/x9f/x93 HANGUL JONGSEONG TIKEUT-CHIEUCH ++ /xed/x9f/x94 HANGUL JONGSEONG TIKEUT-THIEUTH ++ /xed/x9f/x95 HANGUL JONGSEONG RIEUL-SSANGKIYEOK ++ /xed/x9f/x96 HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH ++ /xed/x9f/x97 HANGUL JONGSEONG SSANGRIEUL-KHIEUKH ++ /xed/x9f/x98 HANGUL JONGSEONG RIEUL-MIEUM-HIEUH ++ /xed/x9f/x99 HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT ++ /xed/x9f/x9a HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH ++ /xed/x9f/x9b HANGUL JONGSEONG RIEUL-YESIEUNG ++ /xed/x9f/x9c HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH ++ /xed/x9f/x9d HANGUL JONGSEONG KAPYEOUNRIEUL ++ /xed/x9f/x9e HANGUL JONGSEONG MIEUM-NIEUN ++ /xed/x9f/x9f HANGUL JONGSEONG MIEUM-SSANGNIEUN ++ /xed/x9f/xa0 HANGUL JONGSEONG SSANGMIEUM ++ /xed/x9f/xa1 HANGUL JONGSEONG MIEUM-PIEUP-SIOS ++ /xed/x9f/xa2 HANGUL JONGSEONG MIEUM-CIEUC ++ /xed/x9f/xa3 HANGUL JONGSEONG PIEUP-TIKEUT ++ /xed/x9f/xa4 HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH ++ /xed/x9f/xa5 HANGUL JONGSEONG PIEUP-MIEUM ++ /xed/x9f/xa6 HANGUL JONGSEONG SSANGPIEUP ++ /xed/x9f/xa7 HANGUL JONGSEONG PIEUP-SIOS-TIKEUT ++ /xed/x9f/xa8 HANGUL JONGSEONG PIEUP-CIEUC ++ /xed/x9f/xa9 HANGUL JONGSEONG PIEUP-CHIEUCH ++ /xed/x9f/xaa HANGUL JONGSEONG SIOS-MIEUM ++ /xed/x9f/xab HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP ++ /xed/x9f/xac HANGUL JONGSEONG SSANGSIOS-KIYEOK ++ /xed/x9f/xad HANGUL JONGSEONG SSANGSIOS-TIKEUT ++ /xed/x9f/xae HANGUL JONGSEONG SIOS-PANSIOS ++ /xed/x9f/xaf HANGUL JONGSEONG SIOS-CIEUC ++ /xed/x9f/xb0 HANGUL JONGSEONG SIOS-CHIEUCH ++ /xed/x9f/xb1 HANGUL JONGSEONG SIOS-THIEUTH ++ /xed/x9f/xb2 HANGUL JONGSEONG SIOS-HIEUH ++ /xed/x9f/xb3 HANGUL JONGSEONG PANSIOS-PIEUP ++ /xed/x9f/xb4 HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP ++ /xed/x9f/xb5 HANGUL JONGSEONG YESIEUNG-MIEUM ++ /xed/x9f/xb6 HANGUL JONGSEONG YESIEUNG-HIEUH ++ /xed/x9f/xb7 HANGUL JONGSEONG CIEUC-PIEUP ++ /xed/x9f/xb8 HANGUL JONGSEONG CIEUC-SSANGPIEUP ++ /xed/x9f/xb9 HANGUL JONGSEONG SSANGCIEUC ++ /xed/x9f/xba HANGUL JONGSEONG PHIEUPH-SIOS ++ /xed/x9f/xbb HANGUL JONGSEONG PHIEUPH-THIEUTH + % /xed/xa0/x80 + % /xed/xad/xbf + % /xed/xae/x80 +@@ -25203,6 +26375,9 @@ CHARMAP + /xef/xa9/xa8 CJK COMPATIBILITY IDEOGRAPH-FA68 + /xef/xa9/xa9 CJK COMPATIBILITY IDEOGRAPH-FA69 + /xef/xa9/xaa CJK COMPATIBILITY IDEOGRAPH-FA6A ++ /xef/xa9/xab CJK COMPATIBILITY IDEOGRAPH-FA6B ++ /xef/xa9/xac CJK COMPATIBILITY IDEOGRAPH-FA6C ++ /xef/xa9/xad CJK COMPATIBILITY IDEOGRAPH-FA6D + /xef/xa9/xb0 CJK COMPATIBILITY IDEOGRAPH-FA70 + /xef/xa9/xb1 CJK COMPATIBILITY IDEOGRAPH-FA71 + /xef/xa9/xb2 CJK COMPATIBILITY IDEOGRAPH-FA72 +@@ -25465,6 +26640,22 @@ CHARMAP + /xef/xae/xaf ARABIC LETTER YEH BARREE FINAL FORM + /xef/xae/xb0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM + /xef/xae/xb1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM ++ /xef/xae/xb2 ARABIC SYMBOL DOT ABOVE ++ /xef/xae/xb3 ARABIC SYMBOL DOT BELOW ++ /xef/xae/xb4 ARABIC SYMBOL TWO DOTS ABOVE ++ /xef/xae/xb5 ARABIC SYMBOL TWO DOTS BELOW ++ /xef/xae/xb6 ARABIC SYMBOL THREE DOTS ABOVE ++ /xef/xae/xb7 ARABIC SYMBOL THREE DOTS BELOW ++ /xef/xae/xb8 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE ++ /xef/xae/xb9 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW ++ /xef/xae/xba ARABIC SYMBOL FOUR DOTS ABOVE ++ /xef/xae/xbb ARABIC SYMBOL FOUR DOTS BELOW ++ /xef/xae/xbc ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW ++ /xef/xae/xbd ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE ++ /xef/xae/xbe ARABIC SYMBOL TWO DOTS VERTICALLY BELOW ++ /xef/xae/xbf ARABIC SYMBOL RING ++ /xef/xaf/x80 ARABIC SYMBOL SMALL TAH ABOVE ++ /xef/xaf/x81 ARABIC SYMBOL SMALL TAH BELOW + /xef/xaf/x93 ARABIC LETTER NG ISOLATED FORM + /xef/xaf/x94 ARABIC LETTER NG FINAL FORM + /xef/xaf/x95 ARABIC LETTER NG INITIAL FORM +@@ -27269,6 +28460,37 @@ CHARMAP + /xf0/x90/xa0/xb8 CYPRIOT SYLLABLE XE + /xf0/x90/xa0/xbc CYPRIOT SYLLABLE ZA + /xf0/x90/xa0/xbf CYPRIOT SYLLABLE ZO ++ /xf0/x90/xa1/x80 IMPERIAL ARAMAIC LETTER ALEPH ++ /xf0/x90/xa1/x81 IMPERIAL ARAMAIC LETTER BETH ++ /xf0/x90/xa1/x82 IMPERIAL ARAMAIC LETTER GIMEL ++ /xf0/x90/xa1/x83 IMPERIAL ARAMAIC LETTER DALETH ++ /xf0/x90/xa1/x84 IMPERIAL ARAMAIC LETTER HE ++ /xf0/x90/xa1/x85 IMPERIAL ARAMAIC LETTER WAW ++ /xf0/x90/xa1/x86 IMPERIAL ARAMAIC LETTER ZAYIN ++ /xf0/x90/xa1/x87 IMPERIAL ARAMAIC LETTER HETH ++ /xf0/x90/xa1/x88 IMPERIAL ARAMAIC LETTER TETH ++ /xf0/x90/xa1/x89 IMPERIAL ARAMAIC LETTER YODH ++ /xf0/x90/xa1/x8a IMPERIAL ARAMAIC LETTER KAPH ++ /xf0/x90/xa1/x8b IMPERIAL ARAMAIC LETTER LAMEDH ++ /xf0/x90/xa1/x8c IMPERIAL ARAMAIC LETTER MEM ++ /xf0/x90/xa1/x8d IMPERIAL ARAMAIC LETTER NUN ++ /xf0/x90/xa1/x8e IMPERIAL ARAMAIC LETTER SAMEKH ++ /xf0/x90/xa1/x8f IMPERIAL ARAMAIC LETTER AYIN ++ /xf0/x90/xa1/x90 IMPERIAL ARAMAIC LETTER PE ++ /xf0/x90/xa1/x91 IMPERIAL ARAMAIC LETTER SADHE ++ /xf0/x90/xa1/x92 IMPERIAL ARAMAIC LETTER QOPH ++ /xf0/x90/xa1/x93 IMPERIAL ARAMAIC LETTER RESH ++ /xf0/x90/xa1/x94 IMPERIAL ARAMAIC LETTER SHIN ++ /xf0/x90/xa1/x95 IMPERIAL ARAMAIC LETTER TAW ++ /xf0/x90/xa1/x97 IMPERIAL ARAMAIC SECTION SIGN ++ /xf0/x90/xa1/x98 IMPERIAL ARAMAIC NUMBER ONE ++ /xf0/x90/xa1/x99 IMPERIAL ARAMAIC NUMBER TWO ++ /xf0/x90/xa1/x9a IMPERIAL ARAMAIC NUMBER THREE ++ /xf0/x90/xa1/x9b IMPERIAL ARAMAIC NUMBER TEN ++ /xf0/x90/xa1/x9c IMPERIAL ARAMAIC NUMBER TWENTY ++ /xf0/x90/xa1/x9d IMPERIAL ARAMAIC NUMBER ONE HUNDRED ++ /xf0/x90/xa1/x9e IMPERIAL ARAMAIC NUMBER ONE THOUSAND ++ /xf0/x90/xa1/x9f IMPERIAL ARAMAIC NUMBER TEN THOUSAND + /xf0/x90/xa4/x80 PHOENICIAN LETTER ALF + /xf0/x90/xa4/x81 PHOENICIAN LETTER BET + /xf0/x90/xa4/x82 PHOENICIAN LETTER GAML +@@ -27295,6 +28517,8 @@ CHARMAP + /xf0/x90/xa4/x97 PHOENICIAN NUMBER TEN + /xf0/x90/xa4/x98 PHOENICIAN NUMBER TWENTY + /xf0/x90/xa4/x99 PHOENICIAN NUMBER ONE HUNDRED ++ /xf0/x90/xa4/x9a PHOENICIAN NUMBER TWO ++ /xf0/x90/xa4/x9b PHOENICIAN NUMBER THREE + /xf0/x90/xa4/x9f PHOENICIAN WORD SEPARATOR + /xf0/x90/xa4/xa0 LYDIAN LETTER A + /xf0/x90/xa4/xa1 LYDIAN LETTER B +@@ -27388,6 +28612,434 @@ CHARMAP + /xf0/x90/xa9/x96 KHAROSHTHI PUNCTUATION DANDA + /xf0/x90/xa9/x97 KHAROSHTHI PUNCTUATION DOUBLE DANDA + /xf0/x90/xa9/x98 KHAROSHTHI PUNCTUATION LINES ++ /xf0/x90/xa9/xa0 OLD SOUTH ARABIAN LETTER HE ++ /xf0/x90/xa9/xa1 OLD SOUTH ARABIAN LETTER LAMEDH ++ /xf0/x90/xa9/xa2 OLD SOUTH ARABIAN LETTER HETH ++ /xf0/x90/xa9/xa3 OLD SOUTH ARABIAN LETTER MEM ++ /xf0/x90/xa9/xa4 OLD SOUTH ARABIAN LETTER QOPH ++ /xf0/x90/xa9/xa5 OLD SOUTH ARABIAN LETTER WAW ++ /xf0/x90/xa9/xa6 OLD SOUTH ARABIAN LETTER SHIN ++ /xf0/x90/xa9/xa7 OLD SOUTH ARABIAN LETTER RESH ++ /xf0/x90/xa9/xa8 OLD SOUTH ARABIAN LETTER BETH ++ /xf0/x90/xa9/xa9 OLD SOUTH ARABIAN LETTER TAW ++ /xf0/x90/xa9/xaa OLD SOUTH ARABIAN LETTER SAT ++ /xf0/x90/xa9/xab OLD SOUTH ARABIAN LETTER KAPH ++ /xf0/x90/xa9/xac OLD SOUTH ARABIAN LETTER NUN ++ /xf0/x90/xa9/xad OLD SOUTH ARABIAN LETTER KHETH ++ /xf0/x90/xa9/xae OLD SOUTH ARABIAN LETTER SADHE ++ /xf0/x90/xa9/xaf OLD SOUTH ARABIAN LETTER SAMEKH ++ /xf0/x90/xa9/xb0 OLD SOUTH ARABIAN LETTER FE ++ /xf0/x90/xa9/xb1 OLD SOUTH ARABIAN LETTER ALEF ++ /xf0/x90/xa9/xb2 OLD SOUTH ARABIAN LETTER AYN ++ /xf0/x90/xa9/xb3 OLD SOUTH ARABIAN LETTER DHADHE ++ /xf0/x90/xa9/xb4 OLD SOUTH ARABIAN LETTER GIMEL ++ /xf0/x90/xa9/xb5 OLD SOUTH ARABIAN LETTER DALETH ++ /xf0/x90/xa9/xb6 OLD SOUTH ARABIAN LETTER GHAYN ++ /xf0/x90/xa9/xb7 OLD SOUTH ARABIAN LETTER TETH ++ /xf0/x90/xa9/xb8 OLD SOUTH ARABIAN LETTER ZAYN ++ /xf0/x90/xa9/xb9 OLD SOUTH ARABIAN LETTER DHALETH ++ /xf0/x90/xa9/xba OLD SOUTH ARABIAN LETTER YODH ++ /xf0/x90/xa9/xbb OLD SOUTH ARABIAN LETTER THAW ++ /xf0/x90/xa9/xbc OLD SOUTH ARABIAN LETTER THETH ++ /xf0/x90/xa9/xbd OLD SOUTH ARABIAN NUMBER ONE ++ /xf0/x90/xa9/xbe OLD SOUTH ARABIAN NUMBER FIFTY ++ /xf0/x90/xa9/xbf OLD SOUTH ARABIAN NUMERIC INDICATOR ++ /xf0/x90/xac/x80 AVESTAN LETTER A ++ /xf0/x90/xac/x81 AVESTAN LETTER AA ++ /xf0/x90/xac/x82 AVESTAN LETTER AO ++ /xf0/x90/xac/x83 AVESTAN LETTER AAO ++ /xf0/x90/xac/x84 AVESTAN LETTER AN ++ /xf0/x90/xac/x85 AVESTAN LETTER AAN ++ /xf0/x90/xac/x86 AVESTAN LETTER AE ++ /xf0/x90/xac/x87 AVESTAN LETTER AEE ++ /xf0/x90/xac/x88 AVESTAN LETTER E ++ /xf0/x90/xac/x89 AVESTAN LETTER EE ++ /xf0/x90/xac/x8a AVESTAN LETTER O ++ /xf0/x90/xac/x8b AVESTAN LETTER OO ++ /xf0/x90/xac/x8c AVESTAN LETTER I ++ /xf0/x90/xac/x8d AVESTAN LETTER II ++ /xf0/x90/xac/x8e AVESTAN LETTER U ++ /xf0/x90/xac/x8f AVESTAN LETTER UU ++ /xf0/x90/xac/x90 AVESTAN LETTER KE ++ /xf0/x90/xac/x91 AVESTAN LETTER XE ++ /xf0/x90/xac/x92 AVESTAN LETTER XYE ++ /xf0/x90/xac/x93 AVESTAN LETTER XVE ++ /xf0/x90/xac/x94 AVESTAN LETTER GE ++ /xf0/x90/xac/x95 AVESTAN LETTER GGE ++ /xf0/x90/xac/x96 AVESTAN LETTER GHE ++ /xf0/x90/xac/x97 AVESTAN LETTER CE ++ /xf0/x90/xac/x98 AVESTAN LETTER JE ++ /xf0/x90/xac/x99 AVESTAN LETTER TE ++ /xf0/x90/xac/x9a AVESTAN LETTER THE ++ /xf0/x90/xac/x9b AVESTAN LETTER DE ++ /xf0/x90/xac/x9c AVESTAN LETTER DHE ++ /xf0/x90/xac/x9d AVESTAN LETTER TTE ++ /xf0/x90/xac/x9e AVESTAN LETTER PE ++ /xf0/x90/xac/x9f AVESTAN LETTER FE ++ /xf0/x90/xac/xa0 AVESTAN LETTER BE ++ /xf0/x90/xac/xa1 AVESTAN LETTER BHE ++ /xf0/x90/xac/xa2 AVESTAN LETTER NGE ++ /xf0/x90/xac/xa3 AVESTAN LETTER NGYE ++ /xf0/x90/xac/xa4 AVESTAN LETTER NGVE ++ /xf0/x90/xac/xa5 AVESTAN LETTER NE ++ /xf0/x90/xac/xa6 AVESTAN LETTER NYE ++ /xf0/x90/xac/xa7 AVESTAN LETTER NNE ++ /xf0/x90/xac/xa8 AVESTAN LETTER ME ++ /xf0/x90/xac/xa9 AVESTAN LETTER HME ++ /xf0/x90/xac/xaa AVESTAN LETTER YYE ++ /xf0/x90/xac/xab AVESTAN LETTER YE ++ /xf0/x90/xac/xac AVESTAN LETTER VE ++ /xf0/x90/xac/xad AVESTAN LETTER RE ++ /xf0/x90/xac/xae AVESTAN LETTER LE ++ /xf0/x90/xac/xaf AVESTAN LETTER SE ++ /xf0/x90/xac/xb0 AVESTAN LETTER ZE ++ /xf0/x90/xac/xb1 AVESTAN LETTER SHE ++ /xf0/x90/xac/xb2 AVESTAN LETTER ZHE ++ /xf0/x90/xac/xb3 AVESTAN LETTER SHYE ++ /xf0/x90/xac/xb4 AVESTAN LETTER SSHE ++ /xf0/x90/xac/xb5 AVESTAN LETTER HE ++ /xf0/x90/xac/xb9 AVESTAN ABBREVIATION MARK ++ /xf0/x90/xac/xba TINY TWO DOTS OVER ONE DOT PUNCTUATION ++ /xf0/x90/xac/xbb SMALL TWO DOTS OVER ONE DOT PUNCTUATION ++ /xf0/x90/xac/xbc LARGE TWO DOTS OVER ONE DOT PUNCTUATION ++ /xf0/x90/xac/xbd LARGE ONE DOT OVER TWO DOTS PUNCTUATION ++ /xf0/x90/xac/xbe LARGE TWO RINGS OVER ONE RING PUNCTUATION ++ /xf0/x90/xac/xbf LARGE ONE RING OVER TWO RINGS PUNCTUATION ++ /xf0/x90/xad/x80 INSCRIPTIONAL PARTHIAN LETTER ALEPH ++ /xf0/x90/xad/x81 INSCRIPTIONAL PARTHIAN LETTER BETH ++ /xf0/x90/xad/x82 INSCRIPTIONAL PARTHIAN LETTER GIMEL ++ /xf0/x90/xad/x83 INSCRIPTIONAL PARTHIAN LETTER DALETH ++ /xf0/x90/xad/x84 INSCRIPTIONAL PARTHIAN LETTER HE ++ /xf0/x90/xad/x85 INSCRIPTIONAL PARTHIAN LETTER WAW ++ /xf0/x90/xad/x86 INSCRIPTIONAL PARTHIAN LETTER ZAYIN ++ /xf0/x90/xad/x87 INSCRIPTIONAL PARTHIAN LETTER HETH ++ /xf0/x90/xad/x88 INSCRIPTIONAL PARTHIAN LETTER TETH ++ /xf0/x90/xad/x89 INSCRIPTIONAL PARTHIAN LETTER YODH ++ /xf0/x90/xad/x8a INSCRIPTIONAL PARTHIAN LETTER KAPH ++ /xf0/x90/xad/x8b INSCRIPTIONAL PARTHIAN LETTER LAMEDH ++ /xf0/x90/xad/x8c INSCRIPTIONAL PARTHIAN LETTER MEM ++ /xf0/x90/xad/x8d INSCRIPTIONAL PARTHIAN LETTER NUN ++ /xf0/x90/xad/x8e INSCRIPTIONAL PARTHIAN LETTER SAMEKH ++ /xf0/x90/xad/x8f INSCRIPTIONAL PARTHIAN LETTER AYIN ++ /xf0/x90/xad/x90 INSCRIPTIONAL PARTHIAN LETTER PE ++ /xf0/x90/xad/x91 INSCRIPTIONAL PARTHIAN LETTER SADHE ++ /xf0/x90/xad/x92 INSCRIPTIONAL PARTHIAN LETTER QOPH ++ /xf0/x90/xad/x93 INSCRIPTIONAL PARTHIAN LETTER RESH ++ /xf0/x90/xad/x94 INSCRIPTIONAL PARTHIAN LETTER SHIN ++ /xf0/x90/xad/x95 INSCRIPTIONAL PARTHIAN LETTER TAW ++ /xf0/x90/xad/x98 INSCRIPTIONAL PARTHIAN NUMBER ONE ++ /xf0/x90/xad/x99 INSCRIPTIONAL PARTHIAN NUMBER TWO ++ /xf0/x90/xad/x9a INSCRIPTIONAL PARTHIAN NUMBER THREE ++ /xf0/x90/xad/x9b INSCRIPTIONAL PARTHIAN NUMBER FOUR ++ /xf0/x90/xad/x9c INSCRIPTIONAL PARTHIAN NUMBER TEN ++ /xf0/x90/xad/x9d INSCRIPTIONAL PARTHIAN NUMBER TWENTY ++ /xf0/x90/xad/x9e INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED ++ /xf0/x90/xad/x9f INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND ++ /xf0/x90/xad/xa0 INSCRIPTIONAL PAHLAVI LETTER ALEPH ++ /xf0/x90/xad/xa1 INSCRIPTIONAL PAHLAVI LETTER BETH ++ /xf0/x90/xad/xa2 INSCRIPTIONAL PAHLAVI LETTER GIMEL ++ /xf0/x90/xad/xa3 INSCRIPTIONAL PAHLAVI LETTER DALETH ++ /xf0/x90/xad/xa4 INSCRIPTIONAL PAHLAVI LETTER HE ++ /xf0/x90/xad/xa5 INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH ++ /xf0/x90/xad/xa6 INSCRIPTIONAL PAHLAVI LETTER ZAYIN ++ /xf0/x90/xad/xa7 INSCRIPTIONAL PAHLAVI LETTER HETH ++ /xf0/x90/xad/xa8 INSCRIPTIONAL PAHLAVI LETTER TETH ++ /xf0/x90/xad/xa9 INSCRIPTIONAL PAHLAVI LETTER YODH ++ /xf0/x90/xad/xaa INSCRIPTIONAL PAHLAVI LETTER KAPH ++ /xf0/x90/xad/xab INSCRIPTIONAL PAHLAVI LETTER LAMEDH ++ /xf0/x90/xad/xac INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH ++ /xf0/x90/xad/xad INSCRIPTIONAL PAHLAVI LETTER NUN ++ /xf0/x90/xad/xae INSCRIPTIONAL PAHLAVI LETTER SAMEKH ++ /xf0/x90/xad/xaf INSCRIPTIONAL PAHLAVI LETTER PE ++ /xf0/x90/xad/xb0 INSCRIPTIONAL PAHLAVI LETTER SADHE ++ /xf0/x90/xad/xb1 INSCRIPTIONAL PAHLAVI LETTER SHIN ++ /xf0/x90/xad/xb2 INSCRIPTIONAL PAHLAVI LETTER TAW ++ /xf0/x90/xad/xb8 INSCRIPTIONAL PAHLAVI NUMBER ONE ++ /xf0/x90/xad/xb9 INSCRIPTIONAL PAHLAVI NUMBER TWO ++ /xf0/x90/xad/xba INSCRIPTIONAL PAHLAVI NUMBER THREE ++ /xf0/x90/xad/xbb INSCRIPTIONAL PAHLAVI NUMBER FOUR ++ /xf0/x90/xad/xbc INSCRIPTIONAL PAHLAVI NUMBER TEN ++ /xf0/x90/xad/xbd INSCRIPTIONAL PAHLAVI NUMBER TWENTY ++ /xf0/x90/xad/xbe INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED ++ /xf0/x90/xad/xbf INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND ++ /xf0/x90/xb0/x80 OLD TURKIC LETTER ORKHON A ++ /xf0/x90/xb0/x81 OLD TURKIC LETTER YENISEI A ++ /xf0/x90/xb0/x82 OLD TURKIC LETTER YENISEI AE ++ /xf0/x90/xb0/x83 OLD TURKIC LETTER ORKHON I ++ /xf0/x90/xb0/x84 OLD TURKIC LETTER YENISEI I ++ /xf0/x90/xb0/x85 OLD TURKIC LETTER YENISEI E ++ /xf0/x90/xb0/x86 OLD TURKIC LETTER ORKHON O ++ /xf0/x90/xb0/x87 OLD TURKIC LETTER ORKHON OE ++ /xf0/x90/xb0/x88 OLD TURKIC LETTER YENISEI OE ++ /xf0/x90/xb0/x89 OLD TURKIC LETTER ORKHON AB ++ /xf0/x90/xb0/x8a OLD TURKIC LETTER YENISEI AB ++ /xf0/x90/xb0/x8b OLD TURKIC LETTER ORKHON AEB ++ /xf0/x90/xb0/x8c OLD TURKIC LETTER YENISEI AEB ++ /xf0/x90/xb0/x8d OLD TURKIC LETTER ORKHON AG ++ /xf0/x90/xb0/x8e OLD TURKIC LETTER YENISEI AG ++ /xf0/x90/xb0/x8f OLD TURKIC LETTER ORKHON AEG ++ /xf0/x90/xb0/x90 OLD TURKIC LETTER YENISEI AEG ++ /xf0/x90/xb0/x91 OLD TURKIC LETTER ORKHON AD ++ /xf0/x90/xb0/x92 OLD TURKIC LETTER YENISEI AD ++ /xf0/x90/xb0/x93 OLD TURKIC LETTER ORKHON AED ++ /xf0/x90/xb0/x94 OLD TURKIC LETTER ORKHON EZ ++ /xf0/x90/xb0/x95 OLD TURKIC LETTER YENISEI EZ ++ /xf0/x90/xb0/x96 OLD TURKIC LETTER ORKHON AY ++ /xf0/x90/xb0/x97 OLD TURKIC LETTER YENISEI AY ++ /xf0/x90/xb0/x98 OLD TURKIC LETTER ORKHON AEY ++ /xf0/x90/xb0/x99 OLD TURKIC LETTER YENISEI AEY ++ /xf0/x90/xb0/x9a OLD TURKIC LETTER ORKHON AEK ++ /xf0/x90/xb0/x9b OLD TURKIC LETTER YENISEI AEK ++ /xf0/x90/xb0/x9c OLD TURKIC LETTER ORKHON OEK ++ /xf0/x90/xb0/x9d OLD TURKIC LETTER YENISEI OEK ++ /xf0/x90/xb0/x9e OLD TURKIC LETTER ORKHON AL ++ /xf0/x90/xb0/x9f OLD TURKIC LETTER YENISEI AL ++ /xf0/x90/xb0/xa0 OLD TURKIC LETTER ORKHON AEL ++ /xf0/x90/xb0/xa1 OLD TURKIC LETTER ORKHON ELT ++ /xf0/x90/xb0/xa2 OLD TURKIC LETTER ORKHON EM ++ /xf0/x90/xb0/xa3 OLD TURKIC LETTER ORKHON AN ++ /xf0/x90/xb0/xa4 OLD TURKIC LETTER ORKHON AEN ++ /xf0/x90/xb0/xa5 OLD TURKIC LETTER YENISEI AEN ++ /xf0/x90/xb0/xa6 OLD TURKIC LETTER ORKHON ENT ++ /xf0/x90/xb0/xa7 OLD TURKIC LETTER YENISEI ENT ++ /xf0/x90/xb0/xa8 OLD TURKIC LETTER ORKHON ENC ++ /xf0/x90/xb0/xa9 OLD TURKIC LETTER YENISEI ENC ++ /xf0/x90/xb0/xaa OLD TURKIC LETTER ORKHON ENY ++ /xf0/x90/xb0/xab OLD TURKIC LETTER YENISEI ENY ++ /xf0/x90/xb0/xac OLD TURKIC LETTER YENISEI ANG ++ /xf0/x90/xb0/xad OLD TURKIC LETTER ORKHON ENG ++ /xf0/x90/xb0/xae OLD TURKIC LETTER YENISEI AENG ++ /xf0/x90/xb0/xaf OLD TURKIC LETTER ORKHON EP ++ /xf0/x90/xb0/xb0 OLD TURKIC LETTER ORKHON OP ++ /xf0/x90/xb0/xb1 OLD TURKIC LETTER ORKHON IC ++ /xf0/x90/xb0/xb2 OLD TURKIC LETTER ORKHON EC ++ /xf0/x90/xb0/xb3 OLD TURKIC LETTER YENISEI EC ++ /xf0/x90/xb0/xb4 OLD TURKIC LETTER ORKHON AQ ++ /xf0/x90/xb0/xb5 OLD TURKIC LETTER YENISEI AQ ++ /xf0/x90/xb0/xb6 OLD TURKIC LETTER ORKHON IQ ++ /xf0/x90/xb0/xb7 OLD TURKIC LETTER YENISEI IQ ++ /xf0/x90/xb0/xb8 OLD TURKIC LETTER ORKHON OQ ++ /xf0/x90/xb0/xb9 OLD TURKIC LETTER YENISEI OQ ++ /xf0/x90/xb0/xba OLD TURKIC LETTER ORKHON AR ++ /xf0/x90/xb0/xbb OLD TURKIC LETTER YENISEI AR ++ /xf0/x90/xb0/xbc OLD TURKIC LETTER ORKHON AER ++ /xf0/x90/xb0/xbd OLD TURKIC LETTER ORKHON AS ++ /xf0/x90/xb0/xbe OLD TURKIC LETTER ORKHON AES ++ /xf0/x90/xb0/xbf OLD TURKIC LETTER ORKHON ASH ++ /xf0/x90/xb1/x80 OLD TURKIC LETTER YENISEI ASH ++ /xf0/x90/xb1/x81 OLD TURKIC LETTER ORKHON ESH ++ /xf0/x90/xb1/x82 OLD TURKIC LETTER YENISEI ESH ++ /xf0/x90/xb1/x83 OLD TURKIC LETTER ORKHON AT ++ /xf0/x90/xb1/x84 OLD TURKIC LETTER YENISEI AT ++ /xf0/x90/xb1/x85 OLD TURKIC LETTER ORKHON AET ++ /xf0/x90/xb1/x86 OLD TURKIC LETTER YENISEI AET ++ /xf0/x90/xb1/x87 OLD TURKIC LETTER ORKHON OT ++ /xf0/x90/xb1/x88 OLD TURKIC LETTER ORKHON BASH ++ /xf0/x90/xb9/xa0 RUMI DIGIT ONE ++ /xf0/x90/xb9/xa1 RUMI DIGIT TWO ++ /xf0/x90/xb9/xa2 RUMI DIGIT THREE ++ /xf0/x90/xb9/xa3 RUMI DIGIT FOUR ++ /xf0/x90/xb9/xa4 RUMI DIGIT FIVE ++ /xf0/x90/xb9/xa5 RUMI DIGIT SIX ++ /xf0/x90/xb9/xa6 RUMI DIGIT SEVEN ++ /xf0/x90/xb9/xa7 RUMI DIGIT EIGHT ++ /xf0/x90/xb9/xa8 RUMI DIGIT NINE ++ /xf0/x90/xb9/xa9 RUMI NUMBER TEN ++ /xf0/x90/xb9/xaa RUMI NUMBER TWENTY ++ /xf0/x90/xb9/xab RUMI NUMBER THIRTY ++ /xf0/x90/xb9/xac RUMI NUMBER FORTY ++ /xf0/x90/xb9/xad RUMI NUMBER FIFTY ++ /xf0/x90/xb9/xae RUMI NUMBER SIXTY ++ /xf0/x90/xb9/xaf RUMI NUMBER SEVENTY ++ /xf0/x90/xb9/xb0 RUMI NUMBER EIGHTY ++ /xf0/x90/xb9/xb1 RUMI NUMBER NINETY ++ /xf0/x90/xb9/xb2 RUMI NUMBER ONE HUNDRED ++ /xf0/x90/xb9/xb3 RUMI NUMBER TWO HUNDRED ++ /xf0/x90/xb9/xb4 RUMI NUMBER THREE HUNDRED ++ /xf0/x90/xb9/xb5 RUMI NUMBER FOUR HUNDRED ++ /xf0/x90/xb9/xb6 RUMI NUMBER FIVE HUNDRED ++ /xf0/x90/xb9/xb7 RUMI NUMBER SIX HUNDRED ++ /xf0/x90/xb9/xb8 RUMI NUMBER SEVEN HUNDRED ++ /xf0/x90/xb9/xb9 RUMI NUMBER EIGHT HUNDRED ++ /xf0/x90/xb9/xba RUMI NUMBER NINE HUNDRED ++ /xf0/x90/xb9/xbb RUMI FRACTION ONE HALF ++ /xf0/x90/xb9/xbc RUMI FRACTION ONE QUARTER ++ /xf0/x90/xb9/xbd RUMI FRACTION ONE THIRD ++ /xf0/x90/xb9/xbe RUMI FRACTION TWO THIRDS ++ /xf0/x91/x80/x80 BRAHMI SIGN CANDRABINDU ++ /xf0/x91/x80/x81 BRAHMI SIGN ANUSVARA ++ /xf0/x91/x80/x82 BRAHMI SIGN VISARGA ++ /xf0/x91/x80/x83 BRAHMI SIGN JIHVAMULIYA ++ /xf0/x91/x80/x84 BRAHMI SIGN UPADHMANIYA ++ /xf0/x91/x80/x85 BRAHMI LETTER A ++ /xf0/x91/x80/x86 BRAHMI LETTER AA ++ /xf0/x91/x80/x87 BRAHMI LETTER I ++ /xf0/x91/x80/x88 BRAHMI LETTER II ++ /xf0/x91/x80/x89 BRAHMI LETTER U ++ /xf0/x91/x80/x8a BRAHMI LETTER UU ++ /xf0/x91/x80/x8b BRAHMI LETTER VOCALIC R ++ /xf0/x91/x80/x8c BRAHMI LETTER VOCALIC RR ++ /xf0/x91/x80/x8d BRAHMI LETTER VOCALIC L ++ /xf0/x91/x80/x8e BRAHMI LETTER VOCALIC LL ++ /xf0/x91/x80/x8f BRAHMI LETTER E ++ /xf0/x91/x80/x90 BRAHMI LETTER AI ++ /xf0/x91/x80/x91 BRAHMI LETTER O ++ /xf0/x91/x80/x92 BRAHMI LETTER AU ++ /xf0/x91/x80/x93 BRAHMI LETTER KA ++ /xf0/x91/x80/x94 BRAHMI LETTER KHA ++ /xf0/x91/x80/x95 BRAHMI LETTER GA ++ /xf0/x91/x80/x96 BRAHMI LETTER GHA ++ /xf0/x91/x80/x97 BRAHMI LETTER NGA ++ /xf0/x91/x80/x98 BRAHMI LETTER CA ++ /xf0/x91/x80/x99 BRAHMI LETTER CHA ++ /xf0/x91/x80/x9a BRAHMI LETTER JA ++ /xf0/x91/x80/x9b BRAHMI LETTER JHA ++ /xf0/x91/x80/x9c BRAHMI LETTER NYA ++ /xf0/x91/x80/x9d BRAHMI LETTER TTA ++ /xf0/x91/x80/x9e BRAHMI LETTER TTHA ++ /xf0/x91/x80/x9f BRAHMI LETTER DDA ++ /xf0/x91/x80/xa0 BRAHMI LETTER DDHA ++ /xf0/x91/x80/xa1 BRAHMI LETTER NNA ++ /xf0/x91/x80/xa2 BRAHMI LETTER TA ++ /xf0/x91/x80/xa3 BRAHMI LETTER THA ++ /xf0/x91/x80/xa4 BRAHMI LETTER DA ++ /xf0/x91/x80/xa5 BRAHMI LETTER DHA ++ /xf0/x91/x80/xa6 BRAHMI LETTER NA ++ /xf0/x91/x80/xa7 BRAHMI LETTER PA ++ /xf0/x91/x80/xa8 BRAHMI LETTER PHA ++ /xf0/x91/x80/xa9 BRAHMI LETTER BA ++ /xf0/x91/x80/xaa BRAHMI LETTER BHA ++ /xf0/x91/x80/xab BRAHMI LETTER MA ++ /xf0/x91/x80/xac BRAHMI LETTER YA ++ /xf0/x91/x80/xad BRAHMI LETTER RA ++ /xf0/x91/x80/xae BRAHMI LETTER LA ++ /xf0/x91/x80/xaf BRAHMI LETTER VA ++ /xf0/x91/x80/xb0 BRAHMI LETTER SHA ++ /xf0/x91/x80/xb1 BRAHMI LETTER SSA ++ /xf0/x91/x80/xb2 BRAHMI LETTER SA ++ /xf0/x91/x80/xb3 BRAHMI LETTER HA ++ /xf0/x91/x80/xb4 BRAHMI LETTER LLA ++ /xf0/x91/x80/xb5 BRAHMI LETTER OLD TAMIL LLLA ++ /xf0/x91/x80/xb6 BRAHMI LETTER OLD TAMIL RRA ++ /xf0/x91/x80/xb7 BRAHMI LETTER OLD TAMIL NNNA ++ /xf0/x91/x80/xb8 BRAHMI VOWEL SIGN AA ++ /xf0/x91/x80/xb9 BRAHMI VOWEL SIGN BHATTIPROLU AA ++ /xf0/x91/x80/xba BRAHMI VOWEL SIGN I ++ /xf0/x91/x80/xbb BRAHMI VOWEL SIGN II ++ /xf0/x91/x80/xbc BRAHMI VOWEL SIGN U ++ /xf0/x91/x80/xbd BRAHMI VOWEL SIGN UU ++ /xf0/x91/x80/xbe BRAHMI VOWEL SIGN VOCALIC R ++ /xf0/x91/x80/xbf BRAHMI VOWEL SIGN VOCALIC RR ++ /xf0/x91/x81/x80 BRAHMI VOWEL SIGN VOCALIC L ++ /xf0/x91/x81/x81 BRAHMI VOWEL SIGN VOCALIC LL ++ /xf0/x91/x81/x82 BRAHMI VOWEL SIGN E ++ /xf0/x91/x81/x83 BRAHMI VOWEL SIGN AI ++ /xf0/x91/x81/x84 BRAHMI VOWEL SIGN O ++ /xf0/x91/x81/x85 BRAHMI VOWEL SIGN AU ++ /xf0/x91/x81/x86 BRAHMI VIRAMA ++ /xf0/x91/x81/x87 BRAHMI DANDA ++ /xf0/x91/x81/x88 BRAHMI DOUBLE DANDA ++ /xf0/x91/x81/x89 BRAHMI PUNCTUATION DOT ++ /xf0/x91/x81/x8a BRAHMI PUNCTUATION DOUBLE DOT ++ /xf0/x91/x81/x8b BRAHMI PUNCTUATION LINE ++ /xf0/x91/x81/x8c BRAHMI PUNCTUATION CRESCENT BAR ++ /xf0/x91/x81/x8d BRAHMI PUNCTUATION LOTUS ++ /xf0/x91/x81/x92 BRAHMI NUMBER ONE ++ /xf0/x91/x81/x93 BRAHMI NUMBER TWO ++ /xf0/x91/x81/x94 BRAHMI NUMBER THREE ++ /xf0/x91/x81/x95 BRAHMI NUMBER FOUR ++ /xf0/x91/x81/x96 BRAHMI NUMBER FIVE ++ /xf0/x91/x81/x97 BRAHMI NUMBER SIX ++ /xf0/x91/x81/x98 BRAHMI NUMBER SEVEN ++ /xf0/x91/x81/x99 BRAHMI NUMBER EIGHT ++ /xf0/x91/x81/x9a BRAHMI NUMBER NINE ++ /xf0/x91/x81/x9b BRAHMI NUMBER TEN ++ /xf0/x91/x81/x9c BRAHMI NUMBER TWENTY ++ /xf0/x91/x81/x9d BRAHMI NUMBER THIRTY ++ /xf0/x91/x81/x9e BRAHMI NUMBER FORTY ++ /xf0/x91/x81/x9f BRAHMI NUMBER FIFTY ++ /xf0/x91/x81/xa0 BRAHMI NUMBER SIXTY ++ /xf0/x91/x81/xa1 BRAHMI NUMBER SEVENTY ++ /xf0/x91/x81/xa2 BRAHMI NUMBER EIGHTY ++ /xf0/x91/x81/xa3 BRAHMI NUMBER NINETY ++ /xf0/x91/x81/xa4 BRAHMI NUMBER ONE HUNDRED ++ /xf0/x91/x81/xa5 BRAHMI NUMBER ONE THOUSAND ++ /xf0/x91/x81/xa6 BRAHMI DIGIT ZERO ++ /xf0/x91/x81/xa7 BRAHMI DIGIT ONE ++ /xf0/x91/x81/xa8 BRAHMI DIGIT TWO ++ /xf0/x91/x81/xa9 BRAHMI DIGIT THREE ++ /xf0/x91/x81/xaa BRAHMI DIGIT FOUR ++ /xf0/x91/x81/xab BRAHMI DIGIT FIVE ++ /xf0/x91/x81/xac BRAHMI DIGIT SIX ++ /xf0/x91/x81/xad BRAHMI DIGIT SEVEN ++ /xf0/x91/x81/xae BRAHMI DIGIT EIGHT ++ /xf0/x91/x81/xaf BRAHMI DIGIT NINE ++ /xf0/x91/x82/x80 KAITHI SIGN CANDRABINDU ++ /xf0/x91/x82/x81 KAITHI SIGN ANUSVARA ++ /xf0/x91/x82/x82 KAITHI SIGN VISARGA ++ /xf0/x91/x82/x83 KAITHI LETTER A ++ /xf0/x91/x82/x84 KAITHI LETTER AA ++ /xf0/x91/x82/x85 KAITHI LETTER I ++ /xf0/x91/x82/x86 KAITHI LETTER II ++ /xf0/x91/x82/x87 KAITHI LETTER U ++ /xf0/x91/x82/x88 KAITHI LETTER UU ++ /xf0/x91/x82/x89 KAITHI LETTER E ++ /xf0/x91/x82/x8a KAITHI LETTER AI ++ /xf0/x91/x82/x8b KAITHI LETTER O ++ /xf0/x91/x82/x8c KAITHI LETTER AU ++ /xf0/x91/x82/x8d KAITHI LETTER KA ++ /xf0/x91/x82/x8e KAITHI LETTER KHA ++ /xf0/x91/x82/x8f KAITHI LETTER GA ++ /xf0/x91/x82/x90 KAITHI LETTER GHA ++ /xf0/x91/x82/x91 KAITHI LETTER NGA ++ /xf0/x91/x82/x92 KAITHI LETTER CA ++ /xf0/x91/x82/x93 KAITHI LETTER CHA ++ /xf0/x91/x82/x94 KAITHI LETTER JA ++ /xf0/x91/x82/x95 KAITHI LETTER JHA ++ /xf0/x91/x82/x96 KAITHI LETTER NYA ++ /xf0/x91/x82/x97 KAITHI LETTER TTA ++ /xf0/x91/x82/x98 KAITHI LETTER TTHA ++ /xf0/x91/x82/x99 KAITHI LETTER DDA ++ /xf0/x91/x82/x9a KAITHI LETTER DDDHA ++ /xf0/x91/x82/x9b KAITHI LETTER DDHA ++ /xf0/x91/x82/x9c KAITHI LETTER RHA ++ /xf0/x91/x82/x9d KAITHI LETTER NNA ++ /xf0/x91/x82/x9e KAITHI LETTER TA ++ /xf0/x91/x82/x9f KAITHI LETTER THA ++ /xf0/x91/x82/xa0 KAITHI LETTER DA ++ /xf0/x91/x82/xa1 KAITHI LETTER DHA ++ /xf0/x91/x82/xa2 KAITHI LETTER NA ++ /xf0/x91/x82/xa3 KAITHI LETTER PA ++ /xf0/x91/x82/xa4 KAITHI LETTER PHA ++ /xf0/x91/x82/xa5 KAITHI LETTER BA ++ /xf0/x91/x82/xa6 KAITHI LETTER BHA ++ /xf0/x91/x82/xa7 KAITHI LETTER MA ++ /xf0/x91/x82/xa8 KAITHI LETTER YA ++ /xf0/x91/x82/xa9 KAITHI LETTER RA ++ /xf0/x91/x82/xaa KAITHI LETTER LA ++ /xf0/x91/x82/xab KAITHI LETTER VA ++ /xf0/x91/x82/xac KAITHI LETTER SHA ++ /xf0/x91/x82/xad KAITHI LETTER SSA ++ /xf0/x91/x82/xae KAITHI LETTER SA ++ /xf0/x91/x82/xaf KAITHI LETTER HA ++ /xf0/x91/x82/xb0 KAITHI VOWEL SIGN AA ++ /xf0/x91/x82/xb1 KAITHI VOWEL SIGN I ++ /xf0/x91/x82/xb2 KAITHI VOWEL SIGN II ++ /xf0/x91/x82/xb3 KAITHI VOWEL SIGN U ++ /xf0/x91/x82/xb4 KAITHI VOWEL SIGN UU ++ /xf0/x91/x82/xb5 KAITHI VOWEL SIGN E ++ /xf0/x91/x82/xb6 KAITHI VOWEL SIGN AI ++ /xf0/x91/x82/xb7 KAITHI VOWEL SIGN O ++ /xf0/x91/x82/xb8 KAITHI VOWEL SIGN AU ++ /xf0/x91/x82/xb9 KAITHI SIGN VIRAMA ++ /xf0/x91/x82/xba KAITHI SIGN NUKTA ++ /xf0/x91/x82/xbb KAITHI ABBREVIATION SIGN ++ /xf0/x91/x82/xbc KAITHI ENUMERATION SIGN ++ /xf0/x91/x82/xbd KAITHI NUMBER SIGN ++ /xf0/x91/x82/xbe KAITHI SECTION MARK ++ /xf0/x91/x82/xbf KAITHI DOUBLE SECTION MARK ++ /xf0/x91/x83/x80 KAITHI DANDA ++ /xf0/x91/x83/x81 KAITHI DOUBLE DANDA + /xf0/x92/x80/x80 CUNEIFORM SIGN A + /xf0/x92/x80/x81 CUNEIFORM SIGN A TIMES A + /xf0/x92/x80/x82 CUNEIFORM SIGN A TIMES BAD +@@ -28370,6 +30022,1648 @@ CHARMAP + /xf0/x92/x91/xb1 CUNEIFORM PUNCTUATION SIGN VERTICAL COLON + /xf0/x92/x91/xb2 CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON + /xf0/x92/x91/xb3 CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON ++ /xf0/x93/x80/x80 EGYPTIAN HIEROGLYPH A001 ++ /xf0/x93/x80/x81 EGYPTIAN HIEROGLYPH A002 ++ /xf0/x93/x80/x82 EGYPTIAN HIEROGLYPH A003 ++ /xf0/x93/x80/x83 EGYPTIAN HIEROGLYPH A004 ++ /xf0/x93/x80/x84 EGYPTIAN HIEROGLYPH A005 ++ /xf0/x93/x80/x85 EGYPTIAN HIEROGLYPH A005A ++ /xf0/x93/x80/x86 EGYPTIAN HIEROGLYPH A006 ++ /xf0/x93/x80/x87 EGYPTIAN HIEROGLYPH A006A ++ /xf0/x93/x80/x88 EGYPTIAN HIEROGLYPH A006B ++ /xf0/x93/x80/x89 EGYPTIAN HIEROGLYPH A007 ++ /xf0/x93/x80/x8a EGYPTIAN HIEROGLYPH A008 ++ /xf0/x93/x80/x8b EGYPTIAN HIEROGLYPH A009 ++ /xf0/x93/x80/x8c EGYPTIAN HIEROGLYPH A010 ++ /xf0/x93/x80/x8d EGYPTIAN HIEROGLYPH A011 ++ /xf0/x93/x80/x8e EGYPTIAN HIEROGLYPH A012 ++ /xf0/x93/x80/x8f EGYPTIAN HIEROGLYPH A013 ++ /xf0/x93/x80/x90 EGYPTIAN HIEROGLYPH A014 ++ /xf0/x93/x80/x91 EGYPTIAN HIEROGLYPH A014A ++ /xf0/x93/x80/x92 EGYPTIAN HIEROGLYPH A015 ++ /xf0/x93/x80/x93 EGYPTIAN HIEROGLYPH A016 ++ /xf0/x93/x80/x94 EGYPTIAN HIEROGLYPH A017 ++ /xf0/x93/x80/x95 EGYPTIAN HIEROGLYPH A017A ++ /xf0/x93/x80/x96 EGYPTIAN HIEROGLYPH A018 ++ /xf0/x93/x80/x97 EGYPTIAN HIEROGLYPH A019 ++ /xf0/x93/x80/x98 EGYPTIAN HIEROGLYPH A020 ++ /xf0/x93/x80/x99 EGYPTIAN HIEROGLYPH A021 ++ /xf0/x93/x80/x9a EGYPTIAN HIEROGLYPH A022 ++ /xf0/x93/x80/x9b EGYPTIAN HIEROGLYPH A023 ++ /xf0/x93/x80/x9c EGYPTIAN HIEROGLYPH A024 ++ /xf0/x93/x80/x9d EGYPTIAN HIEROGLYPH A025 ++ /xf0/x93/x80/x9e EGYPTIAN HIEROGLYPH A026 ++ /xf0/x93/x80/x9f EGYPTIAN HIEROGLYPH A027 ++ /xf0/x93/x80/xa0 EGYPTIAN HIEROGLYPH A028 ++ /xf0/x93/x80/xa1 EGYPTIAN HIEROGLYPH A029 ++ /xf0/x93/x80/xa2 EGYPTIAN HIEROGLYPH A030 ++ /xf0/x93/x80/xa3 EGYPTIAN HIEROGLYPH A031 ++ /xf0/x93/x80/xa4 EGYPTIAN HIEROGLYPH A032 ++ /xf0/x93/x80/xa5 EGYPTIAN HIEROGLYPH A032A ++ /xf0/x93/x80/xa6 EGYPTIAN HIEROGLYPH A033 ++ /xf0/x93/x80/xa7 EGYPTIAN HIEROGLYPH A034 ++ /xf0/x93/x80/xa8 EGYPTIAN HIEROGLYPH A035 ++ /xf0/x93/x80/xa9 EGYPTIAN HIEROGLYPH A036 ++ /xf0/x93/x80/xaa EGYPTIAN HIEROGLYPH A037 ++ /xf0/x93/x80/xab EGYPTIAN HIEROGLYPH A038 ++ /xf0/x93/x80/xac EGYPTIAN HIEROGLYPH A039 ++ /xf0/x93/x80/xad EGYPTIAN HIEROGLYPH A040 ++ /xf0/x93/x80/xae EGYPTIAN HIEROGLYPH A040A ++ /xf0/x93/x80/xaf EGYPTIAN HIEROGLYPH A041 ++ /xf0/x93/x80/xb0 EGYPTIAN HIEROGLYPH A042 ++ /xf0/x93/x80/xb1 EGYPTIAN HIEROGLYPH A042A ++ /xf0/x93/x80/xb2 EGYPTIAN HIEROGLYPH A043 ++ /xf0/x93/x80/xb3 EGYPTIAN HIEROGLYPH A043A ++ /xf0/x93/x80/xb4 EGYPTIAN HIEROGLYPH A044 ++ /xf0/x93/x80/xb5 EGYPTIAN HIEROGLYPH A045 ++ /xf0/x93/x80/xb6 EGYPTIAN HIEROGLYPH A045A ++ /xf0/x93/x80/xb7 EGYPTIAN HIEROGLYPH A046 ++ /xf0/x93/x80/xb8 EGYPTIAN HIEROGLYPH A047 ++ /xf0/x93/x80/xb9 EGYPTIAN HIEROGLYPH A048 ++ /xf0/x93/x80/xba EGYPTIAN HIEROGLYPH A049 ++ /xf0/x93/x80/xbb EGYPTIAN HIEROGLYPH A050 ++ /xf0/x93/x80/xbc EGYPTIAN HIEROGLYPH A051 ++ /xf0/x93/x80/xbd EGYPTIAN HIEROGLYPH A052 ++ /xf0/x93/x80/xbe EGYPTIAN HIEROGLYPH A053 ++ /xf0/x93/x80/xbf EGYPTIAN HIEROGLYPH A054 ++ /xf0/x93/x81/x80 EGYPTIAN HIEROGLYPH A055 ++ /xf0/x93/x81/x81 EGYPTIAN HIEROGLYPH A056 ++ /xf0/x93/x81/x82 EGYPTIAN HIEROGLYPH A057 ++ /xf0/x93/x81/x83 EGYPTIAN HIEROGLYPH A058 ++ /xf0/x93/x81/x84 EGYPTIAN HIEROGLYPH A059 ++ /xf0/x93/x81/x85 EGYPTIAN HIEROGLYPH A060 ++ /xf0/x93/x81/x86 EGYPTIAN HIEROGLYPH A061 ++ /xf0/x93/x81/x87 EGYPTIAN HIEROGLYPH A062 ++ /xf0/x93/x81/x88 EGYPTIAN HIEROGLYPH A063 ++ /xf0/x93/x81/x89 EGYPTIAN HIEROGLYPH A064 ++ /xf0/x93/x81/x8a EGYPTIAN HIEROGLYPH A065 ++ /xf0/x93/x81/x8b EGYPTIAN HIEROGLYPH A066 ++ /xf0/x93/x81/x8c EGYPTIAN HIEROGLYPH A067 ++ /xf0/x93/x81/x8d EGYPTIAN HIEROGLYPH A068 ++ /xf0/x93/x81/x8e EGYPTIAN HIEROGLYPH A069 ++ /xf0/x93/x81/x8f EGYPTIAN HIEROGLYPH A070 ++ /xf0/x93/x81/x90 EGYPTIAN HIEROGLYPH B001 ++ /xf0/x93/x81/x91 EGYPTIAN HIEROGLYPH B002 ++ /xf0/x93/x81/x92 EGYPTIAN HIEROGLYPH B003 ++ /xf0/x93/x81/x93 EGYPTIAN HIEROGLYPH B004 ++ /xf0/x93/x81/x94 EGYPTIAN HIEROGLYPH B005 ++ /xf0/x93/x81/x95 EGYPTIAN HIEROGLYPH B005A ++ /xf0/x93/x81/x96 EGYPTIAN HIEROGLYPH B006 ++ /xf0/x93/x81/x97 EGYPTIAN HIEROGLYPH B007 ++ /xf0/x93/x81/x98 EGYPTIAN HIEROGLYPH B008 ++ /xf0/x93/x81/x99 EGYPTIAN HIEROGLYPH B009 ++ /xf0/x93/x81/x9a EGYPTIAN HIEROGLYPH C001 ++ /xf0/x93/x81/x9b EGYPTIAN HIEROGLYPH C002 ++ /xf0/x93/x81/x9c EGYPTIAN HIEROGLYPH C002A ++ /xf0/x93/x81/x9d EGYPTIAN HIEROGLYPH C002B ++ /xf0/x93/x81/x9e EGYPTIAN HIEROGLYPH C002C ++ /xf0/x93/x81/x9f EGYPTIAN HIEROGLYPH C003 ++ /xf0/x93/x81/xa0 EGYPTIAN HIEROGLYPH C004 ++ /xf0/x93/x81/xa1 EGYPTIAN HIEROGLYPH C005 ++ /xf0/x93/x81/xa2 EGYPTIAN HIEROGLYPH C006 ++ /xf0/x93/x81/xa3 EGYPTIAN HIEROGLYPH C007 ++ /xf0/x93/x81/xa4 EGYPTIAN HIEROGLYPH C008 ++ /xf0/x93/x81/xa5 EGYPTIAN HIEROGLYPH C009 ++ /xf0/x93/x81/xa6 EGYPTIAN HIEROGLYPH C010 ++ /xf0/x93/x81/xa7 EGYPTIAN HIEROGLYPH C010A ++ /xf0/x93/x81/xa8 EGYPTIAN HIEROGLYPH C011 ++ /xf0/x93/x81/xa9 EGYPTIAN HIEROGLYPH C012 ++ /xf0/x93/x81/xaa EGYPTIAN HIEROGLYPH C013 ++ /xf0/x93/x81/xab EGYPTIAN HIEROGLYPH C014 ++ /xf0/x93/x81/xac EGYPTIAN HIEROGLYPH C015 ++ /xf0/x93/x81/xad EGYPTIAN HIEROGLYPH C016 ++ /xf0/x93/x81/xae EGYPTIAN HIEROGLYPH C017 ++ /xf0/x93/x81/xaf EGYPTIAN HIEROGLYPH C018 ++ /xf0/x93/x81/xb0 EGYPTIAN HIEROGLYPH C019 ++ /xf0/x93/x81/xb1 EGYPTIAN HIEROGLYPH C020 ++ /xf0/x93/x81/xb2 EGYPTIAN HIEROGLYPH C021 ++ /xf0/x93/x81/xb3 EGYPTIAN HIEROGLYPH C022 ++ /xf0/x93/x81/xb4 EGYPTIAN HIEROGLYPH C023 ++ /xf0/x93/x81/xb5 EGYPTIAN HIEROGLYPH C024 ++ /xf0/x93/x81/xb6 EGYPTIAN HIEROGLYPH D001 ++ /xf0/x93/x81/xb7 EGYPTIAN HIEROGLYPH D002 ++ /xf0/x93/x81/xb8 EGYPTIAN HIEROGLYPH D003 ++ /xf0/x93/x81/xb9 EGYPTIAN HIEROGLYPH D004 ++ /xf0/x93/x81/xba EGYPTIAN HIEROGLYPH D005 ++ /xf0/x93/x81/xbb EGYPTIAN HIEROGLYPH D006 ++ /xf0/x93/x81/xbc EGYPTIAN HIEROGLYPH D007 ++ /xf0/x93/x81/xbd EGYPTIAN HIEROGLYPH D008 ++ /xf0/x93/x81/xbe EGYPTIAN HIEROGLYPH D008A ++ /xf0/x93/x81/xbf EGYPTIAN HIEROGLYPH D009 ++ /xf0/x93/x82/x80 EGYPTIAN HIEROGLYPH D010 ++ /xf0/x93/x82/x81 EGYPTIAN HIEROGLYPH D011 ++ /xf0/x93/x82/x82 EGYPTIAN HIEROGLYPH D012 ++ /xf0/x93/x82/x83 EGYPTIAN HIEROGLYPH D013 ++ /xf0/x93/x82/x84 EGYPTIAN HIEROGLYPH D014 ++ /xf0/x93/x82/x85 EGYPTIAN HIEROGLYPH D015 ++ /xf0/x93/x82/x86 EGYPTIAN HIEROGLYPH D016 ++ /xf0/x93/x82/x87 EGYPTIAN HIEROGLYPH D017 ++ /xf0/x93/x82/x88 EGYPTIAN HIEROGLYPH D018 ++ /xf0/x93/x82/x89 EGYPTIAN HIEROGLYPH D019 ++ /xf0/x93/x82/x8a EGYPTIAN HIEROGLYPH D020 ++ /xf0/x93/x82/x8b EGYPTIAN HIEROGLYPH D021 ++ /xf0/x93/x82/x8c EGYPTIAN HIEROGLYPH D022 ++ /xf0/x93/x82/x8d EGYPTIAN HIEROGLYPH D023 ++ /xf0/x93/x82/x8e EGYPTIAN HIEROGLYPH D024 ++ /xf0/x93/x82/x8f EGYPTIAN HIEROGLYPH D025 ++ /xf0/x93/x82/x90 EGYPTIAN HIEROGLYPH D026 ++ /xf0/x93/x82/x91 EGYPTIAN HIEROGLYPH D027 ++ /xf0/x93/x82/x92 EGYPTIAN HIEROGLYPH D027A ++ /xf0/x93/x82/x93 EGYPTIAN HIEROGLYPH D028 ++ /xf0/x93/x82/x94 EGYPTIAN HIEROGLYPH D029 ++ /xf0/x93/x82/x95 EGYPTIAN HIEROGLYPH D030 ++ /xf0/x93/x82/x96 EGYPTIAN HIEROGLYPH D031 ++ /xf0/x93/x82/x97 EGYPTIAN HIEROGLYPH D031A ++ /xf0/x93/x82/x98 EGYPTIAN HIEROGLYPH D032 ++ /xf0/x93/x82/x99 EGYPTIAN HIEROGLYPH D033 ++ /xf0/x93/x82/x9a EGYPTIAN HIEROGLYPH D034 ++ /xf0/x93/x82/x9b EGYPTIAN HIEROGLYPH D034A ++ /xf0/x93/x82/x9c EGYPTIAN HIEROGLYPH D035 ++ /xf0/x93/x82/x9d EGYPTIAN HIEROGLYPH D036 ++ /xf0/x93/x82/x9e EGYPTIAN HIEROGLYPH D037 ++ /xf0/x93/x82/x9f EGYPTIAN HIEROGLYPH D038 ++ /xf0/x93/x82/xa0 EGYPTIAN HIEROGLYPH D039 ++ /xf0/x93/x82/xa1 EGYPTIAN HIEROGLYPH D040 ++ /xf0/x93/x82/xa2 EGYPTIAN HIEROGLYPH D041 ++ /xf0/x93/x82/xa3 EGYPTIAN HIEROGLYPH D042 ++ /xf0/x93/x82/xa4 EGYPTIAN HIEROGLYPH D043 ++ /xf0/x93/x82/xa5 EGYPTIAN HIEROGLYPH D044 ++ /xf0/x93/x82/xa6 EGYPTIAN HIEROGLYPH D045 ++ /xf0/x93/x82/xa7 EGYPTIAN HIEROGLYPH D046 ++ /xf0/x93/x82/xa8 EGYPTIAN HIEROGLYPH D046A ++ /xf0/x93/x82/xa9 EGYPTIAN HIEROGLYPH D047 ++ /xf0/x93/x82/xaa EGYPTIAN HIEROGLYPH D048 ++ /xf0/x93/x82/xab EGYPTIAN HIEROGLYPH D048A ++ /xf0/x93/x82/xac EGYPTIAN HIEROGLYPH D049 ++ /xf0/x93/x82/xad EGYPTIAN HIEROGLYPH D050 ++ /xf0/x93/x82/xae EGYPTIAN HIEROGLYPH D050A ++ /xf0/x93/x82/xaf EGYPTIAN HIEROGLYPH D050B ++ /xf0/x93/x82/xb0 EGYPTIAN HIEROGLYPH D050C ++ /xf0/x93/x82/xb1 EGYPTIAN HIEROGLYPH D050D ++ /xf0/x93/x82/xb2 EGYPTIAN HIEROGLYPH D050E ++ /xf0/x93/x82/xb3 EGYPTIAN HIEROGLYPH D050F ++ /xf0/x93/x82/xb4 EGYPTIAN HIEROGLYPH D050G ++ /xf0/x93/x82/xb5 EGYPTIAN HIEROGLYPH D050H ++ /xf0/x93/x82/xb6 EGYPTIAN HIEROGLYPH D050I ++ /xf0/x93/x82/xb7 EGYPTIAN HIEROGLYPH D051 ++ /xf0/x93/x82/xb8 EGYPTIAN HIEROGLYPH D052 ++ /xf0/x93/x82/xb9 EGYPTIAN HIEROGLYPH D052A ++ /xf0/x93/x82/xba EGYPTIAN HIEROGLYPH D053 ++ /xf0/x93/x82/xbb EGYPTIAN HIEROGLYPH D054 ++ /xf0/x93/x82/xbc EGYPTIAN HIEROGLYPH D054A ++ /xf0/x93/x82/xbd EGYPTIAN HIEROGLYPH D055 ++ /xf0/x93/x82/xbe EGYPTIAN HIEROGLYPH D056 ++ /xf0/x93/x82/xbf EGYPTIAN HIEROGLYPH D057 ++ /xf0/x93/x83/x80 EGYPTIAN HIEROGLYPH D058 ++ /xf0/x93/x83/x81 EGYPTIAN HIEROGLYPH D059 ++ /xf0/x93/x83/x82 EGYPTIAN HIEROGLYPH D060 ++ /xf0/x93/x83/x83 EGYPTIAN HIEROGLYPH D061 ++ /xf0/x93/x83/x84 EGYPTIAN HIEROGLYPH D062 ++ /xf0/x93/x83/x85 EGYPTIAN HIEROGLYPH D063 ++ /xf0/x93/x83/x86 EGYPTIAN HIEROGLYPH D064 ++ /xf0/x93/x83/x87 EGYPTIAN HIEROGLYPH D065 ++ /xf0/x93/x83/x88 EGYPTIAN HIEROGLYPH D066 ++ /xf0/x93/x83/x89 EGYPTIAN HIEROGLYPH D067 ++ /xf0/x93/x83/x8a EGYPTIAN HIEROGLYPH D067A ++ /xf0/x93/x83/x8b EGYPTIAN HIEROGLYPH D067B ++ /xf0/x93/x83/x8c EGYPTIAN HIEROGLYPH D067C ++ /xf0/x93/x83/x8d EGYPTIAN HIEROGLYPH D067D ++ /xf0/x93/x83/x8e EGYPTIAN HIEROGLYPH D067E ++ /xf0/x93/x83/x8f EGYPTIAN HIEROGLYPH D067F ++ /xf0/x93/x83/x90 EGYPTIAN HIEROGLYPH D067G ++ /xf0/x93/x83/x91 EGYPTIAN HIEROGLYPH D067H ++ /xf0/x93/x83/x92 EGYPTIAN HIEROGLYPH E001 ++ /xf0/x93/x83/x93 EGYPTIAN HIEROGLYPH E002 ++ /xf0/x93/x83/x94 EGYPTIAN HIEROGLYPH E003 ++ /xf0/x93/x83/x95 EGYPTIAN HIEROGLYPH E004 ++ /xf0/x93/x83/x96 EGYPTIAN HIEROGLYPH E005 ++ /xf0/x93/x83/x97 EGYPTIAN HIEROGLYPH E006 ++ /xf0/x93/x83/x98 EGYPTIAN HIEROGLYPH E007 ++ /xf0/x93/x83/x99 EGYPTIAN HIEROGLYPH E008 ++ /xf0/x93/x83/x9a EGYPTIAN HIEROGLYPH E008A ++ /xf0/x93/x83/x9b EGYPTIAN HIEROGLYPH E009 ++ /xf0/x93/x83/x9c EGYPTIAN HIEROGLYPH E009A ++ /xf0/x93/x83/x9d EGYPTIAN HIEROGLYPH E010 ++ /xf0/x93/x83/x9e EGYPTIAN HIEROGLYPH E011 ++ /xf0/x93/x83/x9f EGYPTIAN HIEROGLYPH E012 ++ /xf0/x93/x83/xa0 EGYPTIAN HIEROGLYPH E013 ++ /xf0/x93/x83/xa1 EGYPTIAN HIEROGLYPH E014 ++ /xf0/x93/x83/xa2 EGYPTIAN HIEROGLYPH E015 ++ /xf0/x93/x83/xa3 EGYPTIAN HIEROGLYPH E016 ++ /xf0/x93/x83/xa4 EGYPTIAN HIEROGLYPH E016A ++ /xf0/x93/x83/xa5 EGYPTIAN HIEROGLYPH E017 ++ /xf0/x93/x83/xa6 EGYPTIAN HIEROGLYPH E017A ++ /xf0/x93/x83/xa7 EGYPTIAN HIEROGLYPH E018 ++ /xf0/x93/x83/xa8 EGYPTIAN HIEROGLYPH E019 ++ /xf0/x93/x83/xa9 EGYPTIAN HIEROGLYPH E020 ++ /xf0/x93/x83/xaa EGYPTIAN HIEROGLYPH E020A ++ /xf0/x93/x83/xab EGYPTIAN HIEROGLYPH E021 ++ /xf0/x93/x83/xac EGYPTIAN HIEROGLYPH E022 ++ /xf0/x93/x83/xad EGYPTIAN HIEROGLYPH E023 ++ /xf0/x93/x83/xae EGYPTIAN HIEROGLYPH E024 ++ /xf0/x93/x83/xaf EGYPTIAN HIEROGLYPH E025 ++ /xf0/x93/x83/xb0 EGYPTIAN HIEROGLYPH E026 ++ /xf0/x93/x83/xb1 EGYPTIAN HIEROGLYPH E027 ++ /xf0/x93/x83/xb2 EGYPTIAN HIEROGLYPH E028 ++ /xf0/x93/x83/xb3 EGYPTIAN HIEROGLYPH E028A ++ /xf0/x93/x83/xb4 EGYPTIAN HIEROGLYPH E029 ++ /xf0/x93/x83/xb5 EGYPTIAN HIEROGLYPH E030 ++ /xf0/x93/x83/xb6 EGYPTIAN HIEROGLYPH E031 ++ /xf0/x93/x83/xb7 EGYPTIAN HIEROGLYPH E032 ++ /xf0/x93/x83/xb8 EGYPTIAN HIEROGLYPH E033 ++ /xf0/x93/x83/xb9 EGYPTIAN HIEROGLYPH E034 ++ /xf0/x93/x83/xba EGYPTIAN HIEROGLYPH E034A ++ /xf0/x93/x83/xbb EGYPTIAN HIEROGLYPH E036 ++ /xf0/x93/x83/xbc EGYPTIAN HIEROGLYPH E037 ++ /xf0/x93/x83/xbd EGYPTIAN HIEROGLYPH E038 ++ /xf0/x93/x83/xbe EGYPTIAN HIEROGLYPH F001 ++ /xf0/x93/x83/xbf EGYPTIAN HIEROGLYPH F001A ++ /xf0/x93/x84/x80 EGYPTIAN HIEROGLYPH F002 ++ /xf0/x93/x84/x81 EGYPTIAN HIEROGLYPH F003 ++ /xf0/x93/x84/x82 EGYPTIAN HIEROGLYPH F004 ++ /xf0/x93/x84/x83 EGYPTIAN HIEROGLYPH F005 ++ /xf0/x93/x84/x84 EGYPTIAN HIEROGLYPH F006 ++ /xf0/x93/x84/x85 EGYPTIAN HIEROGLYPH F007 ++ /xf0/x93/x84/x86 EGYPTIAN HIEROGLYPH F008 ++ /xf0/x93/x84/x87 EGYPTIAN HIEROGLYPH F009 ++ /xf0/x93/x84/x88 EGYPTIAN HIEROGLYPH F010 ++ /xf0/x93/x84/x89 EGYPTIAN HIEROGLYPH F011 ++ /xf0/x93/x84/x8a EGYPTIAN HIEROGLYPH F012 ++ /xf0/x93/x84/x8b EGYPTIAN HIEROGLYPH F013 ++ /xf0/x93/x84/x8c EGYPTIAN HIEROGLYPH F013A ++ /xf0/x93/x84/x8d EGYPTIAN HIEROGLYPH F014 ++ /xf0/x93/x84/x8e EGYPTIAN HIEROGLYPH F015 ++ /xf0/x93/x84/x8f EGYPTIAN HIEROGLYPH F016 ++ /xf0/x93/x84/x90 EGYPTIAN HIEROGLYPH F017 ++ /xf0/x93/x84/x91 EGYPTIAN HIEROGLYPH F018 ++ /xf0/x93/x84/x92 EGYPTIAN HIEROGLYPH F019 ++ /xf0/x93/x84/x93 EGYPTIAN HIEROGLYPH F020 ++ /xf0/x93/x84/x94 EGYPTIAN HIEROGLYPH F021 ++ /xf0/x93/x84/x95 EGYPTIAN HIEROGLYPH F021A ++ /xf0/x93/x84/x96 EGYPTIAN HIEROGLYPH F022 ++ /xf0/x93/x84/x97 EGYPTIAN HIEROGLYPH F023 ++ /xf0/x93/x84/x98 EGYPTIAN HIEROGLYPH F024 ++ /xf0/x93/x84/x99 EGYPTIAN HIEROGLYPH F025 ++ /xf0/x93/x84/x9a EGYPTIAN HIEROGLYPH F026 ++ /xf0/x93/x84/x9b EGYPTIAN HIEROGLYPH F027 ++ /xf0/x93/x84/x9c EGYPTIAN HIEROGLYPH F028 ++ /xf0/x93/x84/x9d EGYPTIAN HIEROGLYPH F029 ++ /xf0/x93/x84/x9e EGYPTIAN HIEROGLYPH F030 ++ /xf0/x93/x84/x9f EGYPTIAN HIEROGLYPH F031 ++ /xf0/x93/x84/xa0 EGYPTIAN HIEROGLYPH F031A ++ /xf0/x93/x84/xa1 EGYPTIAN HIEROGLYPH F032 ++ /xf0/x93/x84/xa2 EGYPTIAN HIEROGLYPH F033 ++ /xf0/x93/x84/xa3 EGYPTIAN HIEROGLYPH F034 ++ /xf0/x93/x84/xa4 EGYPTIAN HIEROGLYPH F035 ++ /xf0/x93/x84/xa5 EGYPTIAN HIEROGLYPH F036 ++ /xf0/x93/x84/xa6 EGYPTIAN HIEROGLYPH F037 ++ /xf0/x93/x84/xa7 EGYPTIAN HIEROGLYPH F037A ++ /xf0/x93/x84/xa8 EGYPTIAN HIEROGLYPH F038 ++ /xf0/x93/x84/xa9 EGYPTIAN HIEROGLYPH F038A ++ /xf0/x93/x84/xaa EGYPTIAN HIEROGLYPH F039 ++ /xf0/x93/x84/xab EGYPTIAN HIEROGLYPH F040 ++ /xf0/x93/x84/xac EGYPTIAN HIEROGLYPH F041 ++ /xf0/x93/x84/xad EGYPTIAN HIEROGLYPH F042 ++ /xf0/x93/x84/xae EGYPTIAN HIEROGLYPH F043 ++ /xf0/x93/x84/xaf EGYPTIAN HIEROGLYPH F044 ++ /xf0/x93/x84/xb0 EGYPTIAN HIEROGLYPH F045 ++ /xf0/x93/x84/xb1 EGYPTIAN HIEROGLYPH F045A ++ /xf0/x93/x84/xb2 EGYPTIAN HIEROGLYPH F046 ++ /xf0/x93/x84/xb3 EGYPTIAN HIEROGLYPH F046A ++ /xf0/x93/x84/xb4 EGYPTIAN HIEROGLYPH F047 ++ /xf0/x93/x84/xb5 EGYPTIAN HIEROGLYPH F047A ++ /xf0/x93/x84/xb6 EGYPTIAN HIEROGLYPH F048 ++ /xf0/x93/x84/xb7 EGYPTIAN HIEROGLYPH F049 ++ /xf0/x93/x84/xb8 EGYPTIAN HIEROGLYPH F050 ++ /xf0/x93/x84/xb9 EGYPTIAN HIEROGLYPH F051 ++ /xf0/x93/x84/xba EGYPTIAN HIEROGLYPH F051A ++ /xf0/x93/x84/xbb EGYPTIAN HIEROGLYPH F051B ++ /xf0/x93/x84/xbc EGYPTIAN HIEROGLYPH F051C ++ /xf0/x93/x84/xbd EGYPTIAN HIEROGLYPH F052 ++ /xf0/x93/x84/xbe EGYPTIAN HIEROGLYPH F053 ++ /xf0/x93/x84/xbf EGYPTIAN HIEROGLYPH G001 ++ /xf0/x93/x85/x80 EGYPTIAN HIEROGLYPH G002 ++ /xf0/x93/x85/x81 EGYPTIAN HIEROGLYPH G003 ++ /xf0/x93/x85/x82 EGYPTIAN HIEROGLYPH G004 ++ /xf0/x93/x85/x83 EGYPTIAN HIEROGLYPH G005 ++ /xf0/x93/x85/x84 EGYPTIAN HIEROGLYPH G006 ++ /xf0/x93/x85/x85 EGYPTIAN HIEROGLYPH G006A ++ /xf0/x93/x85/x86 EGYPTIAN HIEROGLYPH G007 ++ /xf0/x93/x85/x87 EGYPTIAN HIEROGLYPH G007A ++ /xf0/x93/x85/x88 EGYPTIAN HIEROGLYPH G007B ++ /xf0/x93/x85/x89 EGYPTIAN HIEROGLYPH G008 ++ /xf0/x93/x85/x8a EGYPTIAN HIEROGLYPH G009 ++ /xf0/x93/x85/x8b EGYPTIAN HIEROGLYPH G010 ++ /xf0/x93/x85/x8c EGYPTIAN HIEROGLYPH G011 ++ /xf0/x93/x85/x8d EGYPTIAN HIEROGLYPH G011A ++ /xf0/x93/x85/x8e EGYPTIAN HIEROGLYPH G012 ++ /xf0/x93/x85/x8f EGYPTIAN HIEROGLYPH G013 ++ /xf0/x93/x85/x90 EGYPTIAN HIEROGLYPH G014 ++ /xf0/x93/x85/x91 EGYPTIAN HIEROGLYPH G015 ++ /xf0/x93/x85/x92 EGYPTIAN HIEROGLYPH G016 ++ /xf0/x93/x85/x93 EGYPTIAN HIEROGLYPH G017 ++ /xf0/x93/x85/x94 EGYPTIAN HIEROGLYPH G018 ++ /xf0/x93/x85/x95 EGYPTIAN HIEROGLYPH G019 ++ /xf0/x93/x85/x96 EGYPTIAN HIEROGLYPH G020 ++ /xf0/x93/x85/x97 EGYPTIAN HIEROGLYPH G020A ++ /xf0/x93/x85/x98 EGYPTIAN HIEROGLYPH G021 ++ /xf0/x93/x85/x99 EGYPTIAN HIEROGLYPH G022 ++ /xf0/x93/x85/x9a EGYPTIAN HIEROGLYPH G023 ++ /xf0/x93/x85/x9b EGYPTIAN HIEROGLYPH G024 ++ /xf0/x93/x85/x9c EGYPTIAN HIEROGLYPH G025 ++ /xf0/x93/x85/x9d EGYPTIAN HIEROGLYPH G026 ++ /xf0/x93/x85/x9e EGYPTIAN HIEROGLYPH G026A ++ /xf0/x93/x85/x9f EGYPTIAN HIEROGLYPH G027 ++ /xf0/x93/x85/xa0 EGYPTIAN HIEROGLYPH G028 ++ /xf0/x93/x85/xa1 EGYPTIAN HIEROGLYPH G029 ++ /xf0/x93/x85/xa2 EGYPTIAN HIEROGLYPH G030 ++ /xf0/x93/x85/xa3 EGYPTIAN HIEROGLYPH G031 ++ /xf0/x93/x85/xa4 EGYPTIAN HIEROGLYPH G032 ++ /xf0/x93/x85/xa5 EGYPTIAN HIEROGLYPH G033 ++ /xf0/x93/x85/xa6 EGYPTIAN HIEROGLYPH G034 ++ /xf0/x93/x85/xa7 EGYPTIAN HIEROGLYPH G035 ++ /xf0/x93/x85/xa8 EGYPTIAN HIEROGLYPH G036 ++ /xf0/x93/x85/xa9 EGYPTIAN HIEROGLYPH G036A ++ /xf0/x93/x85/xaa EGYPTIAN HIEROGLYPH G037 ++ /xf0/x93/x85/xab EGYPTIAN HIEROGLYPH G037A ++ /xf0/x93/x85/xac EGYPTIAN HIEROGLYPH G038 ++ /xf0/x93/x85/xad EGYPTIAN HIEROGLYPH G039 ++ /xf0/x93/x85/xae EGYPTIAN HIEROGLYPH G040 ++ /xf0/x93/x85/xaf EGYPTIAN HIEROGLYPH G041 ++ /xf0/x93/x85/xb0 EGYPTIAN HIEROGLYPH G042 ++ /xf0/x93/x85/xb1 EGYPTIAN HIEROGLYPH G043 ++ /xf0/x93/x85/xb2 EGYPTIAN HIEROGLYPH G043A ++ /xf0/x93/x85/xb3 EGYPTIAN HIEROGLYPH G044 ++ /xf0/x93/x85/xb4 EGYPTIAN HIEROGLYPH G045 ++ /xf0/x93/x85/xb5 EGYPTIAN HIEROGLYPH G045A ++ /xf0/x93/x85/xb6 EGYPTIAN HIEROGLYPH G046 ++ /xf0/x93/x85/xb7 EGYPTIAN HIEROGLYPH G047 ++ /xf0/x93/x85/xb8 EGYPTIAN HIEROGLYPH G048 ++ /xf0/x93/x85/xb9 EGYPTIAN HIEROGLYPH G049 ++ /xf0/x93/x85/xba EGYPTIAN HIEROGLYPH G050 ++ /xf0/x93/x85/xbb EGYPTIAN HIEROGLYPH G051 ++ /xf0/x93/x85/xbc EGYPTIAN HIEROGLYPH G052 ++ /xf0/x93/x85/xbd EGYPTIAN HIEROGLYPH G053 ++ /xf0/x93/x85/xbe EGYPTIAN HIEROGLYPH G054 ++ /xf0/x93/x85/xbf EGYPTIAN HIEROGLYPH H001 ++ /xf0/x93/x86/x80 EGYPTIAN HIEROGLYPH H002 ++ /xf0/x93/x86/x81 EGYPTIAN HIEROGLYPH H003 ++ /xf0/x93/x86/x82 EGYPTIAN HIEROGLYPH H004 ++ /xf0/x93/x86/x83 EGYPTIAN HIEROGLYPH H005 ++ /xf0/x93/x86/x84 EGYPTIAN HIEROGLYPH H006 ++ /xf0/x93/x86/x85 EGYPTIAN HIEROGLYPH H006A ++ /xf0/x93/x86/x86 EGYPTIAN HIEROGLYPH H007 ++ /xf0/x93/x86/x87 EGYPTIAN HIEROGLYPH H008 ++ /xf0/x93/x86/x88 EGYPTIAN HIEROGLYPH I001 ++ /xf0/x93/x86/x89 EGYPTIAN HIEROGLYPH I002 ++ /xf0/x93/x86/x8a EGYPTIAN HIEROGLYPH I003 ++ /xf0/x93/x86/x8b EGYPTIAN HIEROGLYPH I004 ++ /xf0/x93/x86/x8c EGYPTIAN HIEROGLYPH I005 ++ /xf0/x93/x86/x8d EGYPTIAN HIEROGLYPH I005A ++ /xf0/x93/x86/x8e EGYPTIAN HIEROGLYPH I006 ++ /xf0/x93/x86/x8f EGYPTIAN HIEROGLYPH I007 ++ /xf0/x93/x86/x90 EGYPTIAN HIEROGLYPH I008 ++ /xf0/x93/x86/x91 EGYPTIAN HIEROGLYPH I009 ++ /xf0/x93/x86/x92 EGYPTIAN HIEROGLYPH I009A ++ /xf0/x93/x86/x93 EGYPTIAN HIEROGLYPH I010 ++ /xf0/x93/x86/x94 EGYPTIAN HIEROGLYPH I010A ++ /xf0/x93/x86/x95 EGYPTIAN HIEROGLYPH I011 ++ /xf0/x93/x86/x96 EGYPTIAN HIEROGLYPH I011A ++ /xf0/x93/x86/x97 EGYPTIAN HIEROGLYPH I012 ++ /xf0/x93/x86/x98 EGYPTIAN HIEROGLYPH I013 ++ /xf0/x93/x86/x99 EGYPTIAN HIEROGLYPH I014 ++ /xf0/x93/x86/x9a EGYPTIAN HIEROGLYPH I015 ++ /xf0/x93/x86/x9b EGYPTIAN HIEROGLYPH K001 ++ /xf0/x93/x86/x9c EGYPTIAN HIEROGLYPH K002 ++ /xf0/x93/x86/x9d EGYPTIAN HIEROGLYPH K003 ++ /xf0/x93/x86/x9e EGYPTIAN HIEROGLYPH K004 ++ /xf0/x93/x86/x9f EGYPTIAN HIEROGLYPH K005 ++ /xf0/x93/x86/xa0 EGYPTIAN HIEROGLYPH K006 ++ /xf0/x93/x86/xa1 EGYPTIAN HIEROGLYPH K007 ++ /xf0/x93/x86/xa2 EGYPTIAN HIEROGLYPH K008 ++ /xf0/x93/x86/xa3 EGYPTIAN HIEROGLYPH L001 ++ /xf0/x93/x86/xa4 EGYPTIAN HIEROGLYPH L002 ++ /xf0/x93/x86/xa5 EGYPTIAN HIEROGLYPH L002A ++ /xf0/x93/x86/xa6 EGYPTIAN HIEROGLYPH L003 ++ /xf0/x93/x86/xa7 EGYPTIAN HIEROGLYPH L004 ++ /xf0/x93/x86/xa8 EGYPTIAN HIEROGLYPH L005 ++ /xf0/x93/x86/xa9 EGYPTIAN HIEROGLYPH L006 ++ /xf0/x93/x86/xaa EGYPTIAN HIEROGLYPH L006A ++ /xf0/x93/x86/xab EGYPTIAN HIEROGLYPH L007 ++ /xf0/x93/x86/xac EGYPTIAN HIEROGLYPH L008 ++ /xf0/x93/x86/xad EGYPTIAN HIEROGLYPH M001 ++ /xf0/x93/x86/xae EGYPTIAN HIEROGLYPH M001A ++ /xf0/x93/x86/xaf EGYPTIAN HIEROGLYPH M001B ++ /xf0/x93/x86/xb0 EGYPTIAN HIEROGLYPH M002 ++ /xf0/x93/x86/xb1 EGYPTIAN HIEROGLYPH M003 ++ /xf0/x93/x86/xb2 EGYPTIAN HIEROGLYPH M003A ++ /xf0/x93/x86/xb3 EGYPTIAN HIEROGLYPH M004 ++ /xf0/x93/x86/xb4 EGYPTIAN HIEROGLYPH M005 ++ /xf0/x93/x86/xb5 EGYPTIAN HIEROGLYPH M006 ++ /xf0/x93/x86/xb6 EGYPTIAN HIEROGLYPH M007 ++ /xf0/x93/x86/xb7 EGYPTIAN HIEROGLYPH M008 ++ /xf0/x93/x86/xb8 EGYPTIAN HIEROGLYPH M009 ++ /xf0/x93/x86/xb9 EGYPTIAN HIEROGLYPH M010 ++ /xf0/x93/x86/xba EGYPTIAN HIEROGLYPH M010A ++ /xf0/x93/x86/xbb EGYPTIAN HIEROGLYPH M011 ++ /xf0/x93/x86/xbc EGYPTIAN HIEROGLYPH M012 ++ /xf0/x93/x86/xbd EGYPTIAN HIEROGLYPH M012A ++ /xf0/x93/x86/xbe EGYPTIAN HIEROGLYPH M012B ++ /xf0/x93/x86/xbf EGYPTIAN HIEROGLYPH M012C ++ /xf0/x93/x87/x80 EGYPTIAN HIEROGLYPH M012D ++ /xf0/x93/x87/x81 EGYPTIAN HIEROGLYPH M012E ++ /xf0/x93/x87/x82 EGYPTIAN HIEROGLYPH M012F ++ /xf0/x93/x87/x83 EGYPTIAN HIEROGLYPH M012G ++ /xf0/x93/x87/x84 EGYPTIAN HIEROGLYPH M012H ++ /xf0/x93/x87/x85 EGYPTIAN HIEROGLYPH M013 ++ /xf0/x93/x87/x86 EGYPTIAN HIEROGLYPH M014 ++ /xf0/x93/x87/x87 EGYPTIAN HIEROGLYPH M015 ++ /xf0/x93/x87/x88 EGYPTIAN HIEROGLYPH M015A ++ /xf0/x93/x87/x89 EGYPTIAN HIEROGLYPH M016 ++ /xf0/x93/x87/x8a EGYPTIAN HIEROGLYPH M016A ++ /xf0/x93/x87/x8b EGYPTIAN HIEROGLYPH M017 ++ /xf0/x93/x87/x8c EGYPTIAN HIEROGLYPH M017A ++ /xf0/x93/x87/x8d EGYPTIAN HIEROGLYPH M018 ++ /xf0/x93/x87/x8e EGYPTIAN HIEROGLYPH M019 ++ /xf0/x93/x87/x8f EGYPTIAN HIEROGLYPH M020 ++ /xf0/x93/x87/x90 EGYPTIAN HIEROGLYPH M021 ++ /xf0/x93/x87/x91 EGYPTIAN HIEROGLYPH M022 ++ /xf0/x93/x87/x92 EGYPTIAN HIEROGLYPH M022A ++ /xf0/x93/x87/x93 EGYPTIAN HIEROGLYPH M023 ++ /xf0/x93/x87/x94 EGYPTIAN HIEROGLYPH M024 ++ /xf0/x93/x87/x95 EGYPTIAN HIEROGLYPH M024A ++ /xf0/x93/x87/x96 EGYPTIAN HIEROGLYPH M025 ++ /xf0/x93/x87/x97 EGYPTIAN HIEROGLYPH M026 ++ /xf0/x93/x87/x98 EGYPTIAN HIEROGLYPH M027 ++ /xf0/x93/x87/x99 EGYPTIAN HIEROGLYPH M028 ++ /xf0/x93/x87/x9a EGYPTIAN HIEROGLYPH M028A ++ /xf0/x93/x87/x9b EGYPTIAN HIEROGLYPH M029 ++ /xf0/x93/x87/x9c EGYPTIAN HIEROGLYPH M030 ++ /xf0/x93/x87/x9d EGYPTIAN HIEROGLYPH M031 ++ /xf0/x93/x87/x9e EGYPTIAN HIEROGLYPH M031A ++ /xf0/x93/x87/x9f EGYPTIAN HIEROGLYPH M032 ++ /xf0/x93/x87/xa0 EGYPTIAN HIEROGLYPH M033 ++ /xf0/x93/x87/xa1 EGYPTIAN HIEROGLYPH M033A ++ /xf0/x93/x87/xa2 EGYPTIAN HIEROGLYPH M033B ++ /xf0/x93/x87/xa3 EGYPTIAN HIEROGLYPH M034 ++ /xf0/x93/x87/xa4 EGYPTIAN HIEROGLYPH M035 ++ /xf0/x93/x87/xa5 EGYPTIAN HIEROGLYPH M036 ++ /xf0/x93/x87/xa6 EGYPTIAN HIEROGLYPH M037 ++ /xf0/x93/x87/xa7 EGYPTIAN HIEROGLYPH M038 ++ /xf0/x93/x87/xa8 EGYPTIAN HIEROGLYPH M039 ++ /xf0/x93/x87/xa9 EGYPTIAN HIEROGLYPH M040 ++ /xf0/x93/x87/xaa EGYPTIAN HIEROGLYPH M040A ++ /xf0/x93/x87/xab EGYPTIAN HIEROGLYPH M041 ++ /xf0/x93/x87/xac EGYPTIAN HIEROGLYPH M042 ++ /xf0/x93/x87/xad EGYPTIAN HIEROGLYPH M043 ++ /xf0/x93/x87/xae EGYPTIAN HIEROGLYPH M044 ++ /xf0/x93/x87/xaf EGYPTIAN HIEROGLYPH N001 ++ /xf0/x93/x87/xb0 EGYPTIAN HIEROGLYPH N002 ++ /xf0/x93/x87/xb1 EGYPTIAN HIEROGLYPH N003 ++ /xf0/x93/x87/xb2 EGYPTIAN HIEROGLYPH N004 ++ /xf0/x93/x87/xb3 EGYPTIAN HIEROGLYPH N005 ++ /xf0/x93/x87/xb4 EGYPTIAN HIEROGLYPH N006 ++ /xf0/x93/x87/xb5 EGYPTIAN HIEROGLYPH N007 ++ /xf0/x93/x87/xb6 EGYPTIAN HIEROGLYPH N008 ++ /xf0/x93/x87/xb7 EGYPTIAN HIEROGLYPH N009 ++ /xf0/x93/x87/xb8 EGYPTIAN HIEROGLYPH N010 ++ /xf0/x93/x87/xb9 EGYPTIAN HIEROGLYPH N011 ++ /xf0/x93/x87/xba EGYPTIAN HIEROGLYPH N012 ++ /xf0/x93/x87/xbb EGYPTIAN HIEROGLYPH N013 ++ /xf0/x93/x87/xbc EGYPTIAN HIEROGLYPH N014 ++ /xf0/x93/x87/xbd EGYPTIAN HIEROGLYPH N015 ++ /xf0/x93/x87/xbe EGYPTIAN HIEROGLYPH N016 ++ /xf0/x93/x87/xbf EGYPTIAN HIEROGLYPH N017 ++ /xf0/x93/x88/x80 EGYPTIAN HIEROGLYPH N018 ++ /xf0/x93/x88/x81 EGYPTIAN HIEROGLYPH N018A ++ /xf0/x93/x88/x82 EGYPTIAN HIEROGLYPH N018B ++ /xf0/x93/x88/x83 EGYPTIAN HIEROGLYPH N019 ++ /xf0/x93/x88/x84 EGYPTIAN HIEROGLYPH N020 ++ /xf0/x93/x88/x85 EGYPTIAN HIEROGLYPH N021 ++ /xf0/x93/x88/x86 EGYPTIAN HIEROGLYPH N022 ++ /xf0/x93/x88/x87 EGYPTIAN HIEROGLYPH N023 ++ /xf0/x93/x88/x88 EGYPTIAN HIEROGLYPH N024 ++ /xf0/x93/x88/x89 EGYPTIAN HIEROGLYPH N025 ++ /xf0/x93/x88/x8a EGYPTIAN HIEROGLYPH N025A ++ /xf0/x93/x88/x8b EGYPTIAN HIEROGLYPH N026 ++ /xf0/x93/x88/x8c EGYPTIAN HIEROGLYPH N027 ++ /xf0/x93/x88/x8d EGYPTIAN HIEROGLYPH N028 ++ /xf0/x93/x88/x8e EGYPTIAN HIEROGLYPH N029 ++ /xf0/x93/x88/x8f EGYPTIAN HIEROGLYPH N030 ++ /xf0/x93/x88/x90 EGYPTIAN HIEROGLYPH N031 ++ /xf0/x93/x88/x91 EGYPTIAN HIEROGLYPH N032 ++ /xf0/x93/x88/x92 EGYPTIAN HIEROGLYPH N033 ++ /xf0/x93/x88/x93 EGYPTIAN HIEROGLYPH N033A ++ /xf0/x93/x88/x94 EGYPTIAN HIEROGLYPH N034 ++ /xf0/x93/x88/x95 EGYPTIAN HIEROGLYPH N034A ++ /xf0/x93/x88/x96 EGYPTIAN HIEROGLYPH N035 ++ /xf0/x93/x88/x97 EGYPTIAN HIEROGLYPH N035A ++ /xf0/x93/x88/x98 EGYPTIAN HIEROGLYPH N036 ++ /xf0/x93/x88/x99 EGYPTIAN HIEROGLYPH N037 ++ /xf0/x93/x88/x9a EGYPTIAN HIEROGLYPH N037A ++ /xf0/x93/x88/x9b EGYPTIAN HIEROGLYPH N038 ++ /xf0/x93/x88/x9c EGYPTIAN HIEROGLYPH N039 ++ /xf0/x93/x88/x9d EGYPTIAN HIEROGLYPH N040 ++ /xf0/x93/x88/x9e EGYPTIAN HIEROGLYPH N041 ++ /xf0/x93/x88/x9f EGYPTIAN HIEROGLYPH N042 ++ /xf0/x93/x88/xa0 EGYPTIAN HIEROGLYPH NL001 ++ /xf0/x93/x88/xa1 EGYPTIAN HIEROGLYPH NL002 ++ /xf0/x93/x88/xa2 EGYPTIAN HIEROGLYPH NL003 ++ /xf0/x93/x88/xa3 EGYPTIAN HIEROGLYPH NL004 ++ /xf0/x93/x88/xa4 EGYPTIAN HIEROGLYPH NL005 ++ /xf0/x93/x88/xa5 EGYPTIAN HIEROGLYPH NL005A ++ /xf0/x93/x88/xa6 EGYPTIAN HIEROGLYPH NL006 ++ /xf0/x93/x88/xa7 EGYPTIAN HIEROGLYPH NL007 ++ /xf0/x93/x88/xa8 EGYPTIAN HIEROGLYPH NL008 ++ /xf0/x93/x88/xa9 EGYPTIAN HIEROGLYPH NL009 ++ /xf0/x93/x88/xaa EGYPTIAN HIEROGLYPH NL010 ++ /xf0/x93/x88/xab EGYPTIAN HIEROGLYPH NL011 ++ /xf0/x93/x88/xac EGYPTIAN HIEROGLYPH NL012 ++ /xf0/x93/x88/xad EGYPTIAN HIEROGLYPH NL013 ++ /xf0/x93/x88/xae EGYPTIAN HIEROGLYPH NL014 ++ /xf0/x93/x88/xaf EGYPTIAN HIEROGLYPH NL015 ++ /xf0/x93/x88/xb0 EGYPTIAN HIEROGLYPH NL016 ++ /xf0/x93/x88/xb1 EGYPTIAN HIEROGLYPH NL017 ++ /xf0/x93/x88/xb2 EGYPTIAN HIEROGLYPH NL017A ++ /xf0/x93/x88/xb3 EGYPTIAN HIEROGLYPH NL018 ++ /xf0/x93/x88/xb4 EGYPTIAN HIEROGLYPH NL019 ++ /xf0/x93/x88/xb5 EGYPTIAN HIEROGLYPH NL020 ++ /xf0/x93/x88/xb6 EGYPTIAN HIEROGLYPH NU001 ++ /xf0/x93/x88/xb7 EGYPTIAN HIEROGLYPH NU002 ++ /xf0/x93/x88/xb8 EGYPTIAN HIEROGLYPH NU003 ++ /xf0/x93/x88/xb9 EGYPTIAN HIEROGLYPH NU004 ++ /xf0/x93/x88/xba EGYPTIAN HIEROGLYPH NU005 ++ /xf0/x93/x88/xbb EGYPTIAN HIEROGLYPH NU006 ++ /xf0/x93/x88/xbc EGYPTIAN HIEROGLYPH NU007 ++ /xf0/x93/x88/xbd EGYPTIAN HIEROGLYPH NU008 ++ /xf0/x93/x88/xbe EGYPTIAN HIEROGLYPH NU009 ++ /xf0/x93/x88/xbf EGYPTIAN HIEROGLYPH NU010 ++ /xf0/x93/x89/x80 EGYPTIAN HIEROGLYPH NU010A ++ /xf0/x93/x89/x81 EGYPTIAN HIEROGLYPH NU011 ++ /xf0/x93/x89/x82 EGYPTIAN HIEROGLYPH NU011A ++ /xf0/x93/x89/x83 EGYPTIAN HIEROGLYPH NU012 ++ /xf0/x93/x89/x84 EGYPTIAN HIEROGLYPH NU013 ++ /xf0/x93/x89/x85 EGYPTIAN HIEROGLYPH NU014 ++ /xf0/x93/x89/x86 EGYPTIAN HIEROGLYPH NU015 ++ /xf0/x93/x89/x87 EGYPTIAN HIEROGLYPH NU016 ++ /xf0/x93/x89/x88 EGYPTIAN HIEROGLYPH NU017 ++ /xf0/x93/x89/x89 EGYPTIAN HIEROGLYPH NU018 ++ /xf0/x93/x89/x8a EGYPTIAN HIEROGLYPH NU018A ++ /xf0/x93/x89/x8b EGYPTIAN HIEROGLYPH NU019 ++ /xf0/x93/x89/x8c EGYPTIAN HIEROGLYPH NU020 ++ /xf0/x93/x89/x8d EGYPTIAN HIEROGLYPH NU021 ++ /xf0/x93/x89/x8e EGYPTIAN HIEROGLYPH NU022 ++ /xf0/x93/x89/x8f EGYPTIAN HIEROGLYPH NU022A ++ /xf0/x93/x89/x90 EGYPTIAN HIEROGLYPH O001 ++ /xf0/x93/x89/x91 EGYPTIAN HIEROGLYPH O001A ++ /xf0/x93/x89/x92 EGYPTIAN HIEROGLYPH O002 ++ /xf0/x93/x89/x93 EGYPTIAN HIEROGLYPH O003 ++ /xf0/x93/x89/x94 EGYPTIAN HIEROGLYPH O004 ++ /xf0/x93/x89/x95 EGYPTIAN HIEROGLYPH O005 ++ /xf0/x93/x89/x96 EGYPTIAN HIEROGLYPH O005A ++ /xf0/x93/x89/x97 EGYPTIAN HIEROGLYPH O006 ++ /xf0/x93/x89/x98 EGYPTIAN HIEROGLYPH O006A ++ /xf0/x93/x89/x99 EGYPTIAN HIEROGLYPH O006B ++ /xf0/x93/x89/x9a EGYPTIAN HIEROGLYPH O006C ++ /xf0/x93/x89/x9b EGYPTIAN HIEROGLYPH O006D ++ /xf0/x93/x89/x9c EGYPTIAN HIEROGLYPH O006E ++ /xf0/x93/x89/x9d EGYPTIAN HIEROGLYPH O006F ++ /xf0/x93/x89/x9e EGYPTIAN HIEROGLYPH O007 ++ /xf0/x93/x89/x9f EGYPTIAN HIEROGLYPH O008 ++ /xf0/x93/x89/xa0 EGYPTIAN HIEROGLYPH O009 ++ /xf0/x93/x89/xa1 EGYPTIAN HIEROGLYPH O010 ++ /xf0/x93/x89/xa2 EGYPTIAN HIEROGLYPH O010A ++ /xf0/x93/x89/xa3 EGYPTIAN HIEROGLYPH O010B ++ /xf0/x93/x89/xa4 EGYPTIAN HIEROGLYPH O010C ++ /xf0/x93/x89/xa5 EGYPTIAN HIEROGLYPH O011 ++ /xf0/x93/x89/xa6 EGYPTIAN HIEROGLYPH O012 ++ /xf0/x93/x89/xa7 EGYPTIAN HIEROGLYPH O013 ++ /xf0/x93/x89/xa8 EGYPTIAN HIEROGLYPH O014 ++ /xf0/x93/x89/xa9 EGYPTIAN HIEROGLYPH O015 ++ /xf0/x93/x89/xaa EGYPTIAN HIEROGLYPH O016 ++ /xf0/x93/x89/xab EGYPTIAN HIEROGLYPH O017 ++ /xf0/x93/x89/xac EGYPTIAN HIEROGLYPH O018 ++ /xf0/x93/x89/xad EGYPTIAN HIEROGLYPH O019 ++ /xf0/x93/x89/xae EGYPTIAN HIEROGLYPH O019A ++ /xf0/x93/x89/xaf EGYPTIAN HIEROGLYPH O020 ++ /xf0/x93/x89/xb0 EGYPTIAN HIEROGLYPH O020A ++ /xf0/x93/x89/xb1 EGYPTIAN HIEROGLYPH O021 ++ /xf0/x93/x89/xb2 EGYPTIAN HIEROGLYPH O022 ++ /xf0/x93/x89/xb3 EGYPTIAN HIEROGLYPH O023 ++ /xf0/x93/x89/xb4 EGYPTIAN HIEROGLYPH O024 ++ /xf0/x93/x89/xb5 EGYPTIAN HIEROGLYPH O024A ++ /xf0/x93/x89/xb6 EGYPTIAN HIEROGLYPH O025 ++ /xf0/x93/x89/xb7 EGYPTIAN HIEROGLYPH O025A ++ /xf0/x93/x89/xb8 EGYPTIAN HIEROGLYPH O026 ++ /xf0/x93/x89/xb9 EGYPTIAN HIEROGLYPH O027 ++ /xf0/x93/x89/xba EGYPTIAN HIEROGLYPH O028 ++ /xf0/x93/x89/xbb EGYPTIAN HIEROGLYPH O029 ++ /xf0/x93/x89/xbc EGYPTIAN HIEROGLYPH O029A ++ /xf0/x93/x89/xbd EGYPTIAN HIEROGLYPH O030 ++ /xf0/x93/x89/xbe EGYPTIAN HIEROGLYPH O030A ++ /xf0/x93/x89/xbf EGYPTIAN HIEROGLYPH O031 ++ /xf0/x93/x8a/x80 EGYPTIAN HIEROGLYPH O032 ++ /xf0/x93/x8a/x81 EGYPTIAN HIEROGLYPH O033 ++ /xf0/x93/x8a/x82 EGYPTIAN HIEROGLYPH O033A ++ /xf0/x93/x8a/x83 EGYPTIAN HIEROGLYPH O034 ++ /xf0/x93/x8a/x84 EGYPTIAN HIEROGLYPH O035 ++ /xf0/x93/x8a/x85 EGYPTIAN HIEROGLYPH O036 ++ /xf0/x93/x8a/x86 EGYPTIAN HIEROGLYPH O036A ++ /xf0/x93/x8a/x87 EGYPTIAN HIEROGLYPH O036B ++ /xf0/x93/x8a/x88 EGYPTIAN HIEROGLYPH O036C ++ /xf0/x93/x8a/x89 EGYPTIAN HIEROGLYPH O036D ++ /xf0/x93/x8a/x8a EGYPTIAN HIEROGLYPH O037 ++ /xf0/x93/x8a/x8b EGYPTIAN HIEROGLYPH O038 ++ /xf0/x93/x8a/x8c EGYPTIAN HIEROGLYPH O039 ++ /xf0/x93/x8a/x8d EGYPTIAN HIEROGLYPH O040 ++ /xf0/x93/x8a/x8e EGYPTIAN HIEROGLYPH O041 ++ /xf0/x93/x8a/x8f EGYPTIAN HIEROGLYPH O042 ++ /xf0/x93/x8a/x90 EGYPTIAN HIEROGLYPH O043 ++ /xf0/x93/x8a/x91 EGYPTIAN HIEROGLYPH O044 ++ /xf0/x93/x8a/x92 EGYPTIAN HIEROGLYPH O045 ++ /xf0/x93/x8a/x93 EGYPTIAN HIEROGLYPH O046 ++ /xf0/x93/x8a/x94 EGYPTIAN HIEROGLYPH O047 ++ /xf0/x93/x8a/x95 EGYPTIAN HIEROGLYPH O048 ++ /xf0/x93/x8a/x96 EGYPTIAN HIEROGLYPH O049 ++ /xf0/x93/x8a/x97 EGYPTIAN HIEROGLYPH O050 ++ /xf0/x93/x8a/x98 EGYPTIAN HIEROGLYPH O050A ++ /xf0/x93/x8a/x99 EGYPTIAN HIEROGLYPH O050B ++ /xf0/x93/x8a/x9a EGYPTIAN HIEROGLYPH O051 ++ /xf0/x93/x8a/x9b EGYPTIAN HIEROGLYPH P001 ++ /xf0/x93/x8a/x9c EGYPTIAN HIEROGLYPH P001A ++ /xf0/x93/x8a/x9d EGYPTIAN HIEROGLYPH P002 ++ /xf0/x93/x8a/x9e EGYPTIAN HIEROGLYPH P003 ++ /xf0/x93/x8a/x9f EGYPTIAN HIEROGLYPH P003A ++ /xf0/x93/x8a/xa0 EGYPTIAN HIEROGLYPH P004 ++ /xf0/x93/x8a/xa1 EGYPTIAN HIEROGLYPH P005 ++ /xf0/x93/x8a/xa2 EGYPTIAN HIEROGLYPH P006 ++ /xf0/x93/x8a/xa3 EGYPTIAN HIEROGLYPH P007 ++ /xf0/x93/x8a/xa4 EGYPTIAN HIEROGLYPH P008 ++ /xf0/x93/x8a/xa5 EGYPTIAN HIEROGLYPH P009 ++ /xf0/x93/x8a/xa6 EGYPTIAN HIEROGLYPH P010 ++ /xf0/x93/x8a/xa7 EGYPTIAN HIEROGLYPH P011 ++ /xf0/x93/x8a/xa8 EGYPTIAN HIEROGLYPH Q001 ++ /xf0/x93/x8a/xa9 EGYPTIAN HIEROGLYPH Q002 ++ /xf0/x93/x8a/xaa EGYPTIAN HIEROGLYPH Q003 ++ /xf0/x93/x8a/xab EGYPTIAN HIEROGLYPH Q004 ++ /xf0/x93/x8a/xac EGYPTIAN HIEROGLYPH Q005 ++ /xf0/x93/x8a/xad EGYPTIAN HIEROGLYPH Q006 ++ /xf0/x93/x8a/xae EGYPTIAN HIEROGLYPH Q007 ++ /xf0/x93/x8a/xaf EGYPTIAN HIEROGLYPH R001 ++ /xf0/x93/x8a/xb0 EGYPTIAN HIEROGLYPH R002 ++ /xf0/x93/x8a/xb1 EGYPTIAN HIEROGLYPH R002A ++ /xf0/x93/x8a/xb2 EGYPTIAN HIEROGLYPH R003 ++ /xf0/x93/x8a/xb3 EGYPTIAN HIEROGLYPH R003A ++ /xf0/x93/x8a/xb4 EGYPTIAN HIEROGLYPH R003B ++ /xf0/x93/x8a/xb5 EGYPTIAN HIEROGLYPH R004 ++ /xf0/x93/x8a/xb6 EGYPTIAN HIEROGLYPH R005 ++ /xf0/x93/x8a/xb7 EGYPTIAN HIEROGLYPH R006 ++ /xf0/x93/x8a/xb8 EGYPTIAN HIEROGLYPH R007 ++ /xf0/x93/x8a/xb9 EGYPTIAN HIEROGLYPH R008 ++ /xf0/x93/x8a/xba EGYPTIAN HIEROGLYPH R009 ++ /xf0/x93/x8a/xbb EGYPTIAN HIEROGLYPH R010 ++ /xf0/x93/x8a/xbc EGYPTIAN HIEROGLYPH R010A ++ /xf0/x93/x8a/xbd EGYPTIAN HIEROGLYPH R011 ++ /xf0/x93/x8a/xbe EGYPTIAN HIEROGLYPH R012 ++ /xf0/x93/x8a/xbf EGYPTIAN HIEROGLYPH R013 ++ /xf0/x93/x8b/x80 EGYPTIAN HIEROGLYPH R014 ++ /xf0/x93/x8b/x81 EGYPTIAN HIEROGLYPH R015 ++ /xf0/x93/x8b/x82 EGYPTIAN HIEROGLYPH R016 ++ /xf0/x93/x8b/x83 EGYPTIAN HIEROGLYPH R016A ++ /xf0/x93/x8b/x84 EGYPTIAN HIEROGLYPH R017 ++ /xf0/x93/x8b/x85 EGYPTIAN HIEROGLYPH R018 ++ /xf0/x93/x8b/x86 EGYPTIAN HIEROGLYPH R019 ++ /xf0/x93/x8b/x87 EGYPTIAN HIEROGLYPH R020 ++ /xf0/x93/x8b/x88 EGYPTIAN HIEROGLYPH R021 ++ /xf0/x93/x8b/x89 EGYPTIAN HIEROGLYPH R022 ++ /xf0/x93/x8b/x8a EGYPTIAN HIEROGLYPH R023 ++ /xf0/x93/x8b/x8b EGYPTIAN HIEROGLYPH R024 ++ /xf0/x93/x8b/x8c EGYPTIAN HIEROGLYPH R025 ++ /xf0/x93/x8b/x8d EGYPTIAN HIEROGLYPH R026 ++ /xf0/x93/x8b/x8e EGYPTIAN HIEROGLYPH R027 ++ /xf0/x93/x8b/x8f EGYPTIAN HIEROGLYPH R028 ++ /xf0/x93/x8b/x90 EGYPTIAN HIEROGLYPH R029 ++ /xf0/x93/x8b/x91 EGYPTIAN HIEROGLYPH S001 ++ /xf0/x93/x8b/x92 EGYPTIAN HIEROGLYPH S002 ++ /xf0/x93/x8b/x93 EGYPTIAN HIEROGLYPH S002A ++ /xf0/x93/x8b/x94 EGYPTIAN HIEROGLYPH S003 ++ /xf0/x93/x8b/x95 EGYPTIAN HIEROGLYPH S004 ++ /xf0/x93/x8b/x96 EGYPTIAN HIEROGLYPH S005 ++ /xf0/x93/x8b/x97 EGYPTIAN HIEROGLYPH S006 ++ /xf0/x93/x8b/x98 EGYPTIAN HIEROGLYPH S006A ++ /xf0/x93/x8b/x99 EGYPTIAN HIEROGLYPH S007 ++ /xf0/x93/x8b/x9a EGYPTIAN HIEROGLYPH S008 ++ /xf0/x93/x8b/x9b EGYPTIAN HIEROGLYPH S009 ++ /xf0/x93/x8b/x9c EGYPTIAN HIEROGLYPH S010 ++ /xf0/x93/x8b/x9d EGYPTIAN HIEROGLYPH S011 ++ /xf0/x93/x8b/x9e EGYPTIAN HIEROGLYPH S012 ++ /xf0/x93/x8b/x9f EGYPTIAN HIEROGLYPH S013 ++ /xf0/x93/x8b/xa0 EGYPTIAN HIEROGLYPH S014 ++ /xf0/x93/x8b/xa1 EGYPTIAN HIEROGLYPH S014A ++ /xf0/x93/x8b/xa2 EGYPTIAN HIEROGLYPH S014B ++ /xf0/x93/x8b/xa3 EGYPTIAN HIEROGLYPH S015 ++ /xf0/x93/x8b/xa4 EGYPTIAN HIEROGLYPH S016 ++ /xf0/x93/x8b/xa5 EGYPTIAN HIEROGLYPH S017 ++ /xf0/x93/x8b/xa6 EGYPTIAN HIEROGLYPH S017A ++ /xf0/x93/x8b/xa7 EGYPTIAN HIEROGLYPH S018 ++ /xf0/x93/x8b/xa8 EGYPTIAN HIEROGLYPH S019 ++ /xf0/x93/x8b/xa9 EGYPTIAN HIEROGLYPH S020 ++ /xf0/x93/x8b/xaa EGYPTIAN HIEROGLYPH S021 ++ /xf0/x93/x8b/xab EGYPTIAN HIEROGLYPH S022 ++ /xf0/x93/x8b/xac EGYPTIAN HIEROGLYPH S023 ++ /xf0/x93/x8b/xad EGYPTIAN HIEROGLYPH S024 ++ /xf0/x93/x8b/xae EGYPTIAN HIEROGLYPH S025 ++ /xf0/x93/x8b/xaf EGYPTIAN HIEROGLYPH S026 ++ /xf0/x93/x8b/xb0 EGYPTIAN HIEROGLYPH S026A ++ /xf0/x93/x8b/xb1 EGYPTIAN HIEROGLYPH S026B ++ /xf0/x93/x8b/xb2 EGYPTIAN HIEROGLYPH S027 ++ /xf0/x93/x8b/xb3 EGYPTIAN HIEROGLYPH S028 ++ /xf0/x93/x8b/xb4 EGYPTIAN HIEROGLYPH S029 ++ /xf0/x93/x8b/xb5 EGYPTIAN HIEROGLYPH S030 ++ /xf0/x93/x8b/xb6 EGYPTIAN HIEROGLYPH S031 ++ /xf0/x93/x8b/xb7 EGYPTIAN HIEROGLYPH S032 ++ /xf0/x93/x8b/xb8 EGYPTIAN HIEROGLYPH S033 ++ /xf0/x93/x8b/xb9 EGYPTIAN HIEROGLYPH S034 ++ /xf0/x93/x8b/xba EGYPTIAN HIEROGLYPH S035 ++ /xf0/x93/x8b/xbb EGYPTIAN HIEROGLYPH S035A ++ /xf0/x93/x8b/xbc EGYPTIAN HIEROGLYPH S036 ++ /xf0/x93/x8b/xbd EGYPTIAN HIEROGLYPH S037 ++ /xf0/x93/x8b/xbe EGYPTIAN HIEROGLYPH S038 ++ /xf0/x93/x8b/xbf EGYPTIAN HIEROGLYPH S039 ++ /xf0/x93/x8c/x80 EGYPTIAN HIEROGLYPH S040 ++ /xf0/x93/x8c/x81 EGYPTIAN HIEROGLYPH S041 ++ /xf0/x93/x8c/x82 EGYPTIAN HIEROGLYPH S042 ++ /xf0/x93/x8c/x83 EGYPTIAN HIEROGLYPH S043 ++ /xf0/x93/x8c/x84 EGYPTIAN HIEROGLYPH S044 ++ /xf0/x93/x8c/x85 EGYPTIAN HIEROGLYPH S045 ++ /xf0/x93/x8c/x86 EGYPTIAN HIEROGLYPH S046 ++ /xf0/x93/x8c/x87 EGYPTIAN HIEROGLYPH T001 ++ /xf0/x93/x8c/x88 EGYPTIAN HIEROGLYPH T002 ++ /xf0/x93/x8c/x89 EGYPTIAN HIEROGLYPH T003 ++ /xf0/x93/x8c/x8a EGYPTIAN HIEROGLYPH T003A ++ /xf0/x93/x8c/x8b EGYPTIAN HIEROGLYPH T004 ++ /xf0/x93/x8c/x8c EGYPTIAN HIEROGLYPH T005 ++ /xf0/x93/x8c/x8d EGYPTIAN HIEROGLYPH T006 ++ /xf0/x93/x8c/x8e EGYPTIAN HIEROGLYPH T007 ++ /xf0/x93/x8c/x8f EGYPTIAN HIEROGLYPH T007A ++ /xf0/x93/x8c/x90 EGYPTIAN HIEROGLYPH T008 ++ /xf0/x93/x8c/x91 EGYPTIAN HIEROGLYPH T008A ++ /xf0/x93/x8c/x92 EGYPTIAN HIEROGLYPH T009 ++ /xf0/x93/x8c/x93 EGYPTIAN HIEROGLYPH T009A ++ /xf0/x93/x8c/x94 EGYPTIAN HIEROGLYPH T010 ++ /xf0/x93/x8c/x95 EGYPTIAN HIEROGLYPH T011 ++ /xf0/x93/x8c/x96 EGYPTIAN HIEROGLYPH T011A ++ /xf0/x93/x8c/x97 EGYPTIAN HIEROGLYPH T012 ++ /xf0/x93/x8c/x98 EGYPTIAN HIEROGLYPH T013 ++ /xf0/x93/x8c/x99 EGYPTIAN HIEROGLYPH T014 ++ /xf0/x93/x8c/x9a EGYPTIAN HIEROGLYPH T015 ++ /xf0/x93/x8c/x9b EGYPTIAN HIEROGLYPH T016 ++ /xf0/x93/x8c/x9c EGYPTIAN HIEROGLYPH T016A ++ /xf0/x93/x8c/x9d EGYPTIAN HIEROGLYPH T017 ++ /xf0/x93/x8c/x9e EGYPTIAN HIEROGLYPH T018 ++ /xf0/x93/x8c/x9f EGYPTIAN HIEROGLYPH T019 ++ /xf0/x93/x8c/xa0 EGYPTIAN HIEROGLYPH T020 ++ /xf0/x93/x8c/xa1 EGYPTIAN HIEROGLYPH T021 ++ /xf0/x93/x8c/xa2 EGYPTIAN HIEROGLYPH T022 ++ /xf0/x93/x8c/xa3 EGYPTIAN HIEROGLYPH T023 ++ /xf0/x93/x8c/xa4 EGYPTIAN HIEROGLYPH T024 ++ /xf0/x93/x8c/xa5 EGYPTIAN HIEROGLYPH T025 ++ /xf0/x93/x8c/xa6 EGYPTIAN HIEROGLYPH T026 ++ /xf0/x93/x8c/xa7 EGYPTIAN HIEROGLYPH T027 ++ /xf0/x93/x8c/xa8 EGYPTIAN HIEROGLYPH T028 ++ /xf0/x93/x8c/xa9 EGYPTIAN HIEROGLYPH T029 ++ /xf0/x93/x8c/xaa EGYPTIAN HIEROGLYPH T030 ++ /xf0/x93/x8c/xab EGYPTIAN HIEROGLYPH T031 ++ /xf0/x93/x8c/xac EGYPTIAN HIEROGLYPH T032 ++ /xf0/x93/x8c/xad EGYPTIAN HIEROGLYPH T032A ++ /xf0/x93/x8c/xae EGYPTIAN HIEROGLYPH T033 ++ /xf0/x93/x8c/xaf EGYPTIAN HIEROGLYPH T033A ++ /xf0/x93/x8c/xb0 EGYPTIAN HIEROGLYPH T034 ++ /xf0/x93/x8c/xb1 EGYPTIAN HIEROGLYPH T035 ++ /xf0/x93/x8c/xb2 EGYPTIAN HIEROGLYPH T036 ++ /xf0/x93/x8c/xb3 EGYPTIAN HIEROGLYPH U001 ++ /xf0/x93/x8c/xb4 EGYPTIAN HIEROGLYPH U002 ++ /xf0/x93/x8c/xb5 EGYPTIAN HIEROGLYPH U003 ++ /xf0/x93/x8c/xb6 EGYPTIAN HIEROGLYPH U004 ++ /xf0/x93/x8c/xb7 EGYPTIAN HIEROGLYPH U005 ++ /xf0/x93/x8c/xb8 EGYPTIAN HIEROGLYPH U006 ++ /xf0/x93/x8c/xb9 EGYPTIAN HIEROGLYPH U006A ++ /xf0/x93/x8c/xba EGYPTIAN HIEROGLYPH U006B ++ /xf0/x93/x8c/xbb EGYPTIAN HIEROGLYPH U007 ++ /xf0/x93/x8c/xbc EGYPTIAN HIEROGLYPH U008 ++ /xf0/x93/x8c/xbd EGYPTIAN HIEROGLYPH U009 ++ /xf0/x93/x8c/xbe EGYPTIAN HIEROGLYPH U010 ++ /xf0/x93/x8c/xbf EGYPTIAN HIEROGLYPH U011 ++ /xf0/x93/x8d/x80 EGYPTIAN HIEROGLYPH U012 ++ /xf0/x93/x8d/x81 EGYPTIAN HIEROGLYPH U013 ++ /xf0/x93/x8d/x82 EGYPTIAN HIEROGLYPH U014 ++ /xf0/x93/x8d/x83 EGYPTIAN HIEROGLYPH U015 ++ /xf0/x93/x8d/x84 EGYPTIAN HIEROGLYPH U016 ++ /xf0/x93/x8d/x85 EGYPTIAN HIEROGLYPH U017 ++ /xf0/x93/x8d/x86 EGYPTIAN HIEROGLYPH U018 ++ /xf0/x93/x8d/x87 EGYPTIAN HIEROGLYPH U019 ++ /xf0/x93/x8d/x88 EGYPTIAN HIEROGLYPH U020 ++ /xf0/x93/x8d/x89 EGYPTIAN HIEROGLYPH U021 ++ /xf0/x93/x8d/x8a EGYPTIAN HIEROGLYPH U022 ++ /xf0/x93/x8d/x8b EGYPTIAN HIEROGLYPH U023 ++ /xf0/x93/x8d/x8c EGYPTIAN HIEROGLYPH U023A ++ /xf0/x93/x8d/x8d EGYPTIAN HIEROGLYPH U024 ++ /xf0/x93/x8d/x8e EGYPTIAN HIEROGLYPH U025 ++ /xf0/x93/x8d/x8f EGYPTIAN HIEROGLYPH U026 ++ /xf0/x93/x8d/x90 EGYPTIAN HIEROGLYPH U027 ++ /xf0/x93/x8d/x91 EGYPTIAN HIEROGLYPH U028 ++ /xf0/x93/x8d/x92 EGYPTIAN HIEROGLYPH U029 ++ /xf0/x93/x8d/x93 EGYPTIAN HIEROGLYPH U029A ++ /xf0/x93/x8d/x94 EGYPTIAN HIEROGLYPH U030 ++ /xf0/x93/x8d/x95 EGYPTIAN HIEROGLYPH U031 ++ /xf0/x93/x8d/x96 EGYPTIAN HIEROGLYPH U032 ++ /xf0/x93/x8d/x97 EGYPTIAN HIEROGLYPH U032A ++ /xf0/x93/x8d/x98 EGYPTIAN HIEROGLYPH U033 ++ /xf0/x93/x8d/x99 EGYPTIAN HIEROGLYPH U034 ++ /xf0/x93/x8d/x9a EGYPTIAN HIEROGLYPH U035 ++ /xf0/x93/x8d/x9b EGYPTIAN HIEROGLYPH U036 ++ /xf0/x93/x8d/x9c EGYPTIAN HIEROGLYPH U037 ++ /xf0/x93/x8d/x9d EGYPTIAN HIEROGLYPH U038 ++ /xf0/x93/x8d/x9e EGYPTIAN HIEROGLYPH U039 ++ /xf0/x93/x8d/x9f EGYPTIAN HIEROGLYPH U040 ++ /xf0/x93/x8d/xa0 EGYPTIAN HIEROGLYPH U041 ++ /xf0/x93/x8d/xa1 EGYPTIAN HIEROGLYPH U042 ++ /xf0/x93/x8d/xa2 EGYPTIAN HIEROGLYPH V001 ++ /xf0/x93/x8d/xa3 EGYPTIAN HIEROGLYPH V001A ++ /xf0/x93/x8d/xa4 EGYPTIAN HIEROGLYPH V001B ++ /xf0/x93/x8d/xa5 EGYPTIAN HIEROGLYPH V001C ++ /xf0/x93/x8d/xa6 EGYPTIAN HIEROGLYPH V001D ++ /xf0/x93/x8d/xa7 EGYPTIAN HIEROGLYPH V001E ++ /xf0/x93/x8d/xa8 EGYPTIAN HIEROGLYPH V001F ++ /xf0/x93/x8d/xa9 EGYPTIAN HIEROGLYPH V001G ++ /xf0/x93/x8d/xaa EGYPTIAN HIEROGLYPH V001H ++ /xf0/x93/x8d/xab EGYPTIAN HIEROGLYPH V001I ++ /xf0/x93/x8d/xac EGYPTIAN HIEROGLYPH V002 ++ /xf0/x93/x8d/xad EGYPTIAN HIEROGLYPH V002A ++ /xf0/x93/x8d/xae EGYPTIAN HIEROGLYPH V003 ++ /xf0/x93/x8d/xaf EGYPTIAN HIEROGLYPH V004 ++ /xf0/x93/x8d/xb0 EGYPTIAN HIEROGLYPH V005 ++ /xf0/x93/x8d/xb1 EGYPTIAN HIEROGLYPH V006 ++ /xf0/x93/x8d/xb2 EGYPTIAN HIEROGLYPH V007 ++ /xf0/x93/x8d/xb3 EGYPTIAN HIEROGLYPH V007A ++ /xf0/x93/x8d/xb4 EGYPTIAN HIEROGLYPH V007B ++ /xf0/x93/x8d/xb5 EGYPTIAN HIEROGLYPH V008 ++ /xf0/x93/x8d/xb6 EGYPTIAN HIEROGLYPH V009 ++ /xf0/x93/x8d/xb7 EGYPTIAN HIEROGLYPH V010 ++ /xf0/x93/x8d/xb8 EGYPTIAN HIEROGLYPH V011 ++ /xf0/x93/x8d/xb9 EGYPTIAN HIEROGLYPH V011A ++ /xf0/x93/x8d/xba EGYPTIAN HIEROGLYPH V011B ++ /xf0/x93/x8d/xbb EGYPTIAN HIEROGLYPH V011C ++ /xf0/x93/x8d/xbc EGYPTIAN HIEROGLYPH V012 ++ /xf0/x93/x8d/xbd EGYPTIAN HIEROGLYPH V012A ++ /xf0/x93/x8d/xbe EGYPTIAN HIEROGLYPH V012B ++ /xf0/x93/x8d/xbf EGYPTIAN HIEROGLYPH V013 ++ /xf0/x93/x8e/x80 EGYPTIAN HIEROGLYPH V014 ++ /xf0/x93/x8e/x81 EGYPTIAN HIEROGLYPH V015 ++ /xf0/x93/x8e/x82 EGYPTIAN HIEROGLYPH V016 ++ /xf0/x93/x8e/x83 EGYPTIAN HIEROGLYPH V017 ++ /xf0/x93/x8e/x84 EGYPTIAN HIEROGLYPH V018 ++ /xf0/x93/x8e/x85 EGYPTIAN HIEROGLYPH V019 ++ /xf0/x93/x8e/x86 EGYPTIAN HIEROGLYPH V020 ++ /xf0/x93/x8e/x87 EGYPTIAN HIEROGLYPH V020A ++ /xf0/x93/x8e/x88 EGYPTIAN HIEROGLYPH V020B ++ /xf0/x93/x8e/x89 EGYPTIAN HIEROGLYPH V020C ++ /xf0/x93/x8e/x8a EGYPTIAN HIEROGLYPH V020D ++ /xf0/x93/x8e/x8b EGYPTIAN HIEROGLYPH V020E ++ /xf0/x93/x8e/x8c EGYPTIAN HIEROGLYPH V020F ++ /xf0/x93/x8e/x8d EGYPTIAN HIEROGLYPH V020G ++ /xf0/x93/x8e/x8e EGYPTIAN HIEROGLYPH V020H ++ /xf0/x93/x8e/x8f EGYPTIAN HIEROGLYPH V020I ++ /xf0/x93/x8e/x90 EGYPTIAN HIEROGLYPH V020J ++ /xf0/x93/x8e/x91 EGYPTIAN HIEROGLYPH V020K ++ /xf0/x93/x8e/x92 EGYPTIAN HIEROGLYPH V020L ++ /xf0/x93/x8e/x93 EGYPTIAN HIEROGLYPH V021 ++ /xf0/x93/x8e/x94 EGYPTIAN HIEROGLYPH V022 ++ /xf0/x93/x8e/x95 EGYPTIAN HIEROGLYPH V023 ++ /xf0/x93/x8e/x96 EGYPTIAN HIEROGLYPH V023A ++ /xf0/x93/x8e/x97 EGYPTIAN HIEROGLYPH V024 ++ /xf0/x93/x8e/x98 EGYPTIAN HIEROGLYPH V025 ++ /xf0/x93/x8e/x99 EGYPTIAN HIEROGLYPH V026 ++ /xf0/x93/x8e/x9a EGYPTIAN HIEROGLYPH V027 ++ /xf0/x93/x8e/x9b EGYPTIAN HIEROGLYPH V028 ++ /xf0/x93/x8e/x9c EGYPTIAN HIEROGLYPH V028A ++ /xf0/x93/x8e/x9d EGYPTIAN HIEROGLYPH V029 ++ /xf0/x93/x8e/x9e EGYPTIAN HIEROGLYPH V029A ++ /xf0/x93/x8e/x9f EGYPTIAN HIEROGLYPH V030 ++ /xf0/x93/x8e/xa0 EGYPTIAN HIEROGLYPH V030A ++ /xf0/x93/x8e/xa1 EGYPTIAN HIEROGLYPH V031 ++ /xf0/x93/x8e/xa2 EGYPTIAN HIEROGLYPH V031A ++ /xf0/x93/x8e/xa3 EGYPTIAN HIEROGLYPH V032 ++ /xf0/x93/x8e/xa4 EGYPTIAN HIEROGLYPH V033 ++ /xf0/x93/x8e/xa5 EGYPTIAN HIEROGLYPH V033A ++ /xf0/x93/x8e/xa6 EGYPTIAN HIEROGLYPH V034 ++ /xf0/x93/x8e/xa7 EGYPTIAN HIEROGLYPH V035 ++ /xf0/x93/x8e/xa8 EGYPTIAN HIEROGLYPH V036 ++ /xf0/x93/x8e/xa9 EGYPTIAN HIEROGLYPH V037 ++ /xf0/x93/x8e/xaa EGYPTIAN HIEROGLYPH V037A ++ /xf0/x93/x8e/xab EGYPTIAN HIEROGLYPH V038 ++ /xf0/x93/x8e/xac EGYPTIAN HIEROGLYPH V039 ++ /xf0/x93/x8e/xad EGYPTIAN HIEROGLYPH V040 ++ /xf0/x93/x8e/xae EGYPTIAN HIEROGLYPH V040A ++ /xf0/x93/x8e/xaf EGYPTIAN HIEROGLYPH W001 ++ /xf0/x93/x8e/xb0 EGYPTIAN HIEROGLYPH W002 ++ /xf0/x93/x8e/xb1 EGYPTIAN HIEROGLYPH W003 ++ /xf0/x93/x8e/xb2 EGYPTIAN HIEROGLYPH W003A ++ /xf0/x93/x8e/xb3 EGYPTIAN HIEROGLYPH W004 ++ /xf0/x93/x8e/xb4 EGYPTIAN HIEROGLYPH W005 ++ /xf0/x93/x8e/xb5 EGYPTIAN HIEROGLYPH W006 ++ /xf0/x93/x8e/xb6 EGYPTIAN HIEROGLYPH W007 ++ /xf0/x93/x8e/xb7 EGYPTIAN HIEROGLYPH W008 ++ /xf0/x93/x8e/xb8 EGYPTIAN HIEROGLYPH W009 ++ /xf0/x93/x8e/xb9 EGYPTIAN HIEROGLYPH W009A ++ /xf0/x93/x8e/xba EGYPTIAN HIEROGLYPH W010 ++ /xf0/x93/x8e/xbb EGYPTIAN HIEROGLYPH W010A ++ /xf0/x93/x8e/xbc EGYPTIAN HIEROGLYPH W011 ++ /xf0/x93/x8e/xbd EGYPTIAN HIEROGLYPH W012 ++ /xf0/x93/x8e/xbe EGYPTIAN HIEROGLYPH W013 ++ /xf0/x93/x8e/xbf EGYPTIAN HIEROGLYPH W014 ++ /xf0/x93/x8f/x80 EGYPTIAN HIEROGLYPH W014A ++ /xf0/x93/x8f/x81 EGYPTIAN HIEROGLYPH W015 ++ /xf0/x93/x8f/x82 EGYPTIAN HIEROGLYPH W016 ++ /xf0/x93/x8f/x83 EGYPTIAN HIEROGLYPH W017 ++ /xf0/x93/x8f/x84 EGYPTIAN HIEROGLYPH W017A ++ /xf0/x93/x8f/x85 EGYPTIAN HIEROGLYPH W018 ++ /xf0/x93/x8f/x86 EGYPTIAN HIEROGLYPH W018A ++ /xf0/x93/x8f/x87 EGYPTIAN HIEROGLYPH W019 ++ /xf0/x93/x8f/x88 EGYPTIAN HIEROGLYPH W020 ++ /xf0/x93/x8f/x89 EGYPTIAN HIEROGLYPH W021 ++ /xf0/x93/x8f/x8a EGYPTIAN HIEROGLYPH W022 ++ /xf0/x93/x8f/x8b EGYPTIAN HIEROGLYPH W023 ++ /xf0/x93/x8f/x8c EGYPTIAN HIEROGLYPH W024 ++ /xf0/x93/x8f/x8d EGYPTIAN HIEROGLYPH W024A ++ /xf0/x93/x8f/x8e EGYPTIAN HIEROGLYPH W025 ++ /xf0/x93/x8f/x8f EGYPTIAN HIEROGLYPH X001 ++ /xf0/x93/x8f/x90 EGYPTIAN HIEROGLYPH X002 ++ /xf0/x93/x8f/x91 EGYPTIAN HIEROGLYPH X003 ++ /xf0/x93/x8f/x92 EGYPTIAN HIEROGLYPH X004 ++ /xf0/x93/x8f/x93 EGYPTIAN HIEROGLYPH X004A ++ /xf0/x93/x8f/x94 EGYPTIAN HIEROGLYPH X004B ++ /xf0/x93/x8f/x95 EGYPTIAN HIEROGLYPH X005 ++ /xf0/x93/x8f/x96 EGYPTIAN HIEROGLYPH X006 ++ /xf0/x93/x8f/x97 EGYPTIAN HIEROGLYPH X006A ++ /xf0/x93/x8f/x98 EGYPTIAN HIEROGLYPH X007 ++ /xf0/x93/x8f/x99 EGYPTIAN HIEROGLYPH X008 ++ /xf0/x93/x8f/x9a EGYPTIAN HIEROGLYPH X008A ++ /xf0/x93/x8f/x9b EGYPTIAN HIEROGLYPH Y001 ++ /xf0/x93/x8f/x9c EGYPTIAN HIEROGLYPH Y001A ++ /xf0/x93/x8f/x9d EGYPTIAN HIEROGLYPH Y002 ++ /xf0/x93/x8f/x9e EGYPTIAN HIEROGLYPH Y003 ++ /xf0/x93/x8f/x9f EGYPTIAN HIEROGLYPH Y004 ++ /xf0/x93/x8f/xa0 EGYPTIAN HIEROGLYPH Y005 ++ /xf0/x93/x8f/xa1 EGYPTIAN HIEROGLYPH Y006 ++ /xf0/x93/x8f/xa2 EGYPTIAN HIEROGLYPH Y007 ++ /xf0/x93/x8f/xa3 EGYPTIAN HIEROGLYPH Y008 ++ /xf0/x93/x8f/xa4 EGYPTIAN HIEROGLYPH Z001 ++ /xf0/x93/x8f/xa5 EGYPTIAN HIEROGLYPH Z002 ++ /xf0/x93/x8f/xa6 EGYPTIAN HIEROGLYPH Z002A ++ /xf0/x93/x8f/xa7 EGYPTIAN HIEROGLYPH Z002B ++ /xf0/x93/x8f/xa8 EGYPTIAN HIEROGLYPH Z002C ++ /xf0/x93/x8f/xa9 EGYPTIAN HIEROGLYPH Z002D ++ /xf0/x93/x8f/xaa EGYPTIAN HIEROGLYPH Z003 ++ /xf0/x93/x8f/xab EGYPTIAN HIEROGLYPH Z003A ++ /xf0/x93/x8f/xac EGYPTIAN HIEROGLYPH Z003B ++ /xf0/x93/x8f/xad EGYPTIAN HIEROGLYPH Z004 ++ /xf0/x93/x8f/xae EGYPTIAN HIEROGLYPH Z004A ++ /xf0/x93/x8f/xaf EGYPTIAN HIEROGLYPH Z005 ++ /xf0/x93/x8f/xb0 EGYPTIAN HIEROGLYPH Z005A ++ /xf0/x93/x8f/xb1 EGYPTIAN HIEROGLYPH Z006 ++ /xf0/x93/x8f/xb2 EGYPTIAN HIEROGLYPH Z007 ++ /xf0/x93/x8f/xb3 EGYPTIAN HIEROGLYPH Z008 ++ /xf0/x93/x8f/xb4 EGYPTIAN HIEROGLYPH Z009 ++ /xf0/x93/x8f/xb5 EGYPTIAN HIEROGLYPH Z010 ++ /xf0/x93/x8f/xb6 EGYPTIAN HIEROGLYPH Z011 ++ /xf0/x93/x8f/xb7 EGYPTIAN HIEROGLYPH Z012 ++ /xf0/x93/x8f/xb8 EGYPTIAN HIEROGLYPH Z013 ++ /xf0/x93/x8f/xb9 EGYPTIAN HIEROGLYPH Z014 ++ /xf0/x93/x8f/xba EGYPTIAN HIEROGLYPH Z015 ++ /xf0/x93/x8f/xbb EGYPTIAN HIEROGLYPH Z015A ++ /xf0/x93/x8f/xbc EGYPTIAN HIEROGLYPH Z015B ++ /xf0/x93/x8f/xbd EGYPTIAN HIEROGLYPH Z015C ++ /xf0/x93/x8f/xbe EGYPTIAN HIEROGLYPH Z015D ++ /xf0/x93/x8f/xbf EGYPTIAN HIEROGLYPH Z015E ++ /xf0/x93/x90/x80 EGYPTIAN HIEROGLYPH Z015F ++ /xf0/x93/x90/x81 EGYPTIAN HIEROGLYPH Z015G ++ /xf0/x93/x90/x82 EGYPTIAN HIEROGLYPH Z015H ++ /xf0/x93/x90/x83 EGYPTIAN HIEROGLYPH Z015I ++ /xf0/x93/x90/x84 EGYPTIAN HIEROGLYPH Z016 ++ /xf0/x93/x90/x85 EGYPTIAN HIEROGLYPH Z016A ++ /xf0/x93/x90/x86 EGYPTIAN HIEROGLYPH Z016B ++ /xf0/x93/x90/x87 EGYPTIAN HIEROGLYPH Z016C ++ /xf0/x93/x90/x88 EGYPTIAN HIEROGLYPH Z016D ++ /xf0/x93/x90/x89 EGYPTIAN HIEROGLYPH Z016E ++ /xf0/x93/x90/x8a EGYPTIAN HIEROGLYPH Z016F ++ /xf0/x93/x90/x8b EGYPTIAN HIEROGLYPH Z016G ++ /xf0/x93/x90/x8c EGYPTIAN HIEROGLYPH Z016H ++ /xf0/x93/x90/x8d EGYPTIAN HIEROGLYPH AA001 ++ /xf0/x93/x90/x8e EGYPTIAN HIEROGLYPH AA002 ++ /xf0/x93/x90/x8f EGYPTIAN HIEROGLYPH AA003 ++ /xf0/x93/x90/x90 EGYPTIAN HIEROGLYPH AA004 ++ /xf0/x93/x90/x91 EGYPTIAN HIEROGLYPH AA005 ++ /xf0/x93/x90/x92 EGYPTIAN HIEROGLYPH AA006 ++ /xf0/x93/x90/x93 EGYPTIAN HIEROGLYPH AA007 ++ /xf0/x93/x90/x94 EGYPTIAN HIEROGLYPH AA007A ++ /xf0/x93/x90/x95 EGYPTIAN HIEROGLYPH AA007B ++ /xf0/x93/x90/x96 EGYPTIAN HIEROGLYPH AA008 ++ /xf0/x93/x90/x97 EGYPTIAN HIEROGLYPH AA009 ++ /xf0/x93/x90/x98 EGYPTIAN HIEROGLYPH AA010 ++ /xf0/x93/x90/x99 EGYPTIAN HIEROGLYPH AA011 ++ /xf0/x93/x90/x9a EGYPTIAN HIEROGLYPH AA012 ++ /xf0/x93/x90/x9b EGYPTIAN HIEROGLYPH AA013 ++ /xf0/x93/x90/x9c EGYPTIAN HIEROGLYPH AA014 ++ /xf0/x93/x90/x9d EGYPTIAN HIEROGLYPH AA015 ++ /xf0/x93/x90/x9e EGYPTIAN HIEROGLYPH AA016 ++ /xf0/x93/x90/x9f EGYPTIAN HIEROGLYPH AA017 ++ /xf0/x93/x90/xa0 EGYPTIAN HIEROGLYPH AA018 ++ /xf0/x93/x90/xa1 EGYPTIAN HIEROGLYPH AA019 ++ /xf0/x93/x90/xa2 EGYPTIAN HIEROGLYPH AA020 ++ /xf0/x93/x90/xa3 EGYPTIAN HIEROGLYPH AA021 ++ /xf0/x93/x90/xa4 EGYPTIAN HIEROGLYPH AA022 ++ /xf0/x93/x90/xa5 EGYPTIAN HIEROGLYPH AA023 ++ /xf0/x93/x90/xa6 EGYPTIAN HIEROGLYPH AA024 ++ /xf0/x93/x90/xa7 EGYPTIAN HIEROGLYPH AA025 ++ /xf0/x93/x90/xa8 EGYPTIAN HIEROGLYPH AA026 ++ /xf0/x93/x90/xa9 EGYPTIAN HIEROGLYPH AA027 ++ /xf0/x93/x90/xaa EGYPTIAN HIEROGLYPH AA028 ++ /xf0/x93/x90/xab EGYPTIAN HIEROGLYPH AA029 ++ /xf0/x93/x90/xac EGYPTIAN HIEROGLYPH AA030 ++ /xf0/x93/x90/xad EGYPTIAN HIEROGLYPH AA031 ++ /xf0/x93/x90/xae EGYPTIAN HIEROGLYPH AA032 ++ /xf0/x96/xa0/x80 BAMUM LETTER PHASE-A NGKUE MFON ++ /xf0/x96/xa0/x81 BAMUM LETTER PHASE-A GBIEE FON ++ /xf0/x96/xa0/x82 BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE ++ /xf0/x96/xa0/x83 BAMUM LETTER PHASE-A PON MFON PIPAEMBA ++ /xf0/x96/xa0/x84 BAMUM LETTER PHASE-A NAA MFON ++ /xf0/x96/xa0/x85 BAMUM LETTER PHASE-A SHUENSHUET ++ /xf0/x96/xa0/x86 BAMUM LETTER PHASE-A TITA MFON ++ /xf0/x96/xa0/x87 BAMUM LETTER PHASE-A NZA MFON ++ /xf0/x96/xa0/x88 BAMUM LETTER PHASE-A SHINDA PA NJI ++ /xf0/x96/xa0/x89 BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE ++ /xf0/x96/xa0/x8a BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA ++ /xf0/x96/xa0/x8b BAMUM LETTER PHASE-A MAEMBGBIEE ++ /xf0/x96/xa0/x8c BAMUM LETTER PHASE-A TU MAEMBA ++ /xf0/x96/xa0/x8d BAMUM LETTER PHASE-A NGANGU ++ /xf0/x96/xa0/x8e BAMUM LETTER PHASE-A MAEMVEUX ++ /xf0/x96/xa0/x8f BAMUM LETTER PHASE-A MANSUAE ++ /xf0/x96/xa0/x90 BAMUM LETTER PHASE-A MVEUAENGAM ++ /xf0/x96/xa0/x91 BAMUM LETTER PHASE-A SEUNYAM ++ /xf0/x96/xa0/x92 BAMUM LETTER PHASE-A NTOQPEN ++ /xf0/x96/xa0/x93 BAMUM LETTER PHASE-A KEUKEUTNDA ++ /xf0/x96/xa0/x94 BAMUM LETTER PHASE-A NKINDI ++ /xf0/x96/xa0/x95 BAMUM LETTER PHASE-A SUU ++ /xf0/x96/xa0/x96 BAMUM LETTER PHASE-A NGKUENZEUM ++ /xf0/x96/xa0/x97 BAMUM LETTER PHASE-A LAPAQ ++ /xf0/x96/xa0/x98 BAMUM LETTER PHASE-A LET KUT ++ /xf0/x96/xa0/x99 BAMUM LETTER PHASE-A NTAP MFAA ++ /xf0/x96/xa0/x9a BAMUM LETTER PHASE-A MAEKEUP ++ /xf0/x96/xa0/x9b BAMUM LETTER PHASE-A PASHAE ++ /xf0/x96/xa0/x9c BAMUM LETTER PHASE-A GHEUAERAE ++ /xf0/x96/xa0/x9d BAMUM LETTER PHASE-A PAMSHAE ++ /xf0/x96/xa0/x9e BAMUM LETTER PHASE-A MON NGGEUAET ++ /xf0/x96/xa0/x9f BAMUM LETTER PHASE-A NZUN MEUT ++ /xf0/x96/xa0/xa0 BAMUM LETTER PHASE-A U YUQ NAE ++ /xf0/x96/xa0/xa1 BAMUM LETTER PHASE-A GHEUAEGHEUAE ++ /xf0/x96/xa0/xa2 BAMUM LETTER PHASE-A NTAP NTAA ++ /xf0/x96/xa0/xa3 BAMUM LETTER PHASE-A SISA ++ /xf0/x96/xa0/xa4 BAMUM LETTER PHASE-A MGBASA ++ /xf0/x96/xa0/xa5 BAMUM LETTER PHASE-A MEUNJOMNDEUQ ++ /xf0/x96/xa0/xa6 BAMUM LETTER PHASE-A MOOMPUQ ++ /xf0/x96/xa0/xa7 BAMUM LETTER PHASE-A KAFA ++ /xf0/x96/xa0/xa8 BAMUM LETTER PHASE-A PA LEERAEWA ++ /xf0/x96/xa0/xa9 BAMUM LETTER PHASE-A NDA LEERAEWA ++ /xf0/x96/xa0/xaa BAMUM LETTER PHASE-A PET ++ /xf0/x96/xa0/xab BAMUM LETTER PHASE-A MAEMKPEN ++ /xf0/x96/xa0/xac BAMUM LETTER PHASE-A NIKA ++ /xf0/x96/xa0/xad BAMUM LETTER PHASE-A PUP ++ /xf0/x96/xa0/xae BAMUM LETTER PHASE-A TUAEP ++ /xf0/x96/xa0/xaf BAMUM LETTER PHASE-A LUAEP ++ /xf0/x96/xa0/xb0 BAMUM LETTER PHASE-A SONJAM ++ /xf0/x96/xa0/xb1 BAMUM LETTER PHASE-A TEUTEUWEN ++ /xf0/x96/xa0/xb2 BAMUM LETTER PHASE-A MAENYI ++ /xf0/x96/xa0/xb3 BAMUM LETTER PHASE-A KET ++ /xf0/x96/xa0/xb4 BAMUM LETTER PHASE-A NDAANGGEUAET ++ /xf0/x96/xa0/xb5 BAMUM LETTER PHASE-A KUOQ ++ /xf0/x96/xa0/xb6 BAMUM LETTER PHASE-A MOOMEUT ++ /xf0/x96/xa0/xb7 BAMUM LETTER PHASE-A SHUM ++ /xf0/x96/xa0/xb8 BAMUM LETTER PHASE-A LOMMAE ++ /xf0/x96/xa0/xb9 BAMUM LETTER PHASE-A FIRI ++ /xf0/x96/xa0/xba BAMUM LETTER PHASE-A ROM ++ /xf0/x96/xa0/xbb BAMUM LETTER PHASE-A KPOQ ++ /xf0/x96/xa0/xbc BAMUM LETTER PHASE-A SOQ ++ /xf0/x96/xa0/xbd BAMUM LETTER PHASE-A MAP PIEET ++ /xf0/x96/xa0/xbe BAMUM LETTER PHASE-A SHIRAE ++ /xf0/x96/xa0/xbf BAMUM LETTER PHASE-A NTAP ++ /xf0/x96/xa1/x80 BAMUM LETTER PHASE-A SHOQ NSHUT YUM ++ /xf0/x96/xa1/x81 BAMUM LETTER PHASE-A NYIT MONGKEUAEQ ++ /xf0/x96/xa1/x82 BAMUM LETTER PHASE-A PAARAE ++ /xf0/x96/xa1/x83 BAMUM LETTER PHASE-A NKAARAE ++ /xf0/x96/xa1/x84 BAMUM LETTER PHASE-A UNKNOWN ++ /xf0/x96/xa1/x85 BAMUM LETTER PHASE-A NGGEN ++ /xf0/x96/xa1/x86 BAMUM LETTER PHASE-A MAESI ++ /xf0/x96/xa1/x87 BAMUM LETTER PHASE-A NJAM ++ /xf0/x96/xa1/x88 BAMUM LETTER PHASE-A MBANYI ++ /xf0/x96/xa1/x89 BAMUM LETTER PHASE-A NYET ++ /xf0/x96/xa1/x8a BAMUM LETTER PHASE-A TEUAEN ++ /xf0/x96/xa1/x8b BAMUM LETTER PHASE-A SOT ++ /xf0/x96/xa1/x8c BAMUM LETTER PHASE-A PAAM ++ /xf0/x96/xa1/x8d BAMUM LETTER PHASE-A NSHIEE ++ /xf0/x96/xa1/x8e BAMUM LETTER PHASE-A MAEM ++ /xf0/x96/xa1/x8f BAMUM LETTER PHASE-A NYI ++ /xf0/x96/xa1/x90 BAMUM LETTER PHASE-A KAQ ++ /xf0/x96/xa1/x91 BAMUM LETTER PHASE-A NSHA ++ /xf0/x96/xa1/x92 BAMUM LETTER PHASE-A VEE ++ /xf0/x96/xa1/x93 BAMUM LETTER PHASE-A LU ++ /xf0/x96/xa1/x94 BAMUM LETTER PHASE-A NEN ++ /xf0/x96/xa1/x95 BAMUM LETTER PHASE-A NAQ ++ /xf0/x96/xa1/x96 BAMUM LETTER PHASE-A MBAQ ++ /xf0/x96/xa1/x97 BAMUM LETTER PHASE-B NSHUET ++ /xf0/x96/xa1/x98 BAMUM LETTER PHASE-B TU MAEMGBIEE ++ /xf0/x96/xa1/x99 BAMUM LETTER PHASE-B SIEE ++ /xf0/x96/xa1/x9a BAMUM LETTER PHASE-B SET TU ++ /xf0/x96/xa1/x9b BAMUM LETTER PHASE-B LOM NTEUM ++ /xf0/x96/xa1/x9c BAMUM LETTER PHASE-B MBA MAELEE ++ /xf0/x96/xa1/x9d BAMUM LETTER PHASE-B KIEEM ++ /xf0/x96/xa1/x9e BAMUM LETTER PHASE-B YEURAE ++ /xf0/x96/xa1/x9f BAMUM LETTER PHASE-B MBAARAE ++ /xf0/x96/xa1/xa0 BAMUM LETTER PHASE-B KAM ++ /xf0/x96/xa1/xa1 BAMUM LETTER PHASE-B PEESHI ++ /xf0/x96/xa1/xa2 BAMUM LETTER PHASE-B YAFU LEERAEWA ++ /xf0/x96/xa1/xa3 BAMUM LETTER PHASE-B LAM NSHUT NYAM ++ /xf0/x96/xa1/xa4 BAMUM LETTER PHASE-B NTIEE SHEUOQ ++ /xf0/x96/xa1/xa5 BAMUM LETTER PHASE-B NDU NJAA ++ /xf0/x96/xa1/xa6 BAMUM LETTER PHASE-B GHEUGHEUAEM ++ /xf0/x96/xa1/xa7 BAMUM LETTER PHASE-B PIT ++ /xf0/x96/xa1/xa8 BAMUM LETTER PHASE-B TU NSIEE ++ /xf0/x96/xa1/xa9 BAMUM LETTER PHASE-B SHET NJAQ ++ /xf0/x96/xa1/xaa BAMUM LETTER PHASE-B SHEUAEQTU ++ /xf0/x96/xa1/xab BAMUM LETTER PHASE-B MFON TEUAEQ ++ /xf0/x96/xa1/xac BAMUM LETTER PHASE-B MBIT MBAAKET ++ /xf0/x96/xa1/xad BAMUM LETTER PHASE-B NYI NTEUM ++ /xf0/x96/xa1/xae BAMUM LETTER PHASE-B KEUPUQ ++ /xf0/x96/xa1/xaf BAMUM LETTER PHASE-B GHEUGHEN ++ /xf0/x96/xa1/xb0 BAMUM LETTER PHASE-B KEUYEUX ++ /xf0/x96/xa1/xb1 BAMUM LETTER PHASE-B LAANAE ++ /xf0/x96/xa1/xb2 BAMUM LETTER PHASE-B PARUM ++ /xf0/x96/xa1/xb3 BAMUM LETTER PHASE-B VEUM ++ /xf0/x96/xa1/xb4 BAMUM LETTER PHASE-B NGKINDI MVOP ++ /xf0/x96/xa1/xb5 BAMUM LETTER PHASE-B NGGEU MBU ++ /xf0/x96/xa1/xb6 BAMUM LETTER PHASE-B WUAET ++ /xf0/x96/xa1/xb7 BAMUM LETTER PHASE-B SAKEUAE ++ /xf0/x96/xa1/xb8 BAMUM LETTER PHASE-B TAAM ++ /xf0/x96/xa1/xb9 BAMUM LETTER PHASE-B MEUQ ++ /xf0/x96/xa1/xba BAMUM LETTER PHASE-B NGGUOQ ++ /xf0/x96/xa1/xbb BAMUM LETTER PHASE-B NGGUOQ LARGE ++ /xf0/x96/xa1/xbc BAMUM LETTER PHASE-B MFIYAQ ++ /xf0/x96/xa1/xbd BAMUM LETTER PHASE-B SUE ++ /xf0/x96/xa1/xbe BAMUM LETTER PHASE-B MBEURI ++ /xf0/x96/xa1/xbf BAMUM LETTER PHASE-B MONTIEEN ++ /xf0/x96/xa2/x80 BAMUM LETTER PHASE-B NYAEMAE ++ /xf0/x96/xa2/x81 BAMUM LETTER PHASE-B PUNGAAM ++ /xf0/x96/xa2/x82 BAMUM LETTER PHASE-B MEUT NGGEET ++ /xf0/x96/xa2/x83 BAMUM LETTER PHASE-B FEUX ++ /xf0/x96/xa2/x84 BAMUM LETTER PHASE-B MBUOQ ++ /xf0/x96/xa2/x85 BAMUM LETTER PHASE-B FEE ++ /xf0/x96/xa2/x86 BAMUM LETTER PHASE-B KEUAEM ++ /xf0/x96/xa2/x87 BAMUM LETTER PHASE-B MA NJEUAENA ++ /xf0/x96/xa2/x88 BAMUM LETTER PHASE-B MA NJUQA ++ /xf0/x96/xa2/x89 BAMUM LETTER PHASE-B LET ++ /xf0/x96/xa2/x8a BAMUM LETTER PHASE-B NGGAAM ++ /xf0/x96/xa2/x8b BAMUM LETTER PHASE-B NSEN ++ /xf0/x96/xa2/x8c BAMUM LETTER PHASE-B MA ++ /xf0/x96/xa2/x8d BAMUM LETTER PHASE-B KIQ ++ /xf0/x96/xa2/x8e BAMUM LETTER PHASE-B NGOM ++ /xf0/x96/xa2/x8f BAMUM LETTER PHASE-C NGKUE MAEMBA ++ /xf0/x96/xa2/x90 BAMUM LETTER PHASE-C NZA ++ /xf0/x96/xa2/x91 BAMUM LETTER PHASE-C YUM ++ /xf0/x96/xa2/x92 BAMUM LETTER PHASE-C WANGKUOQ ++ /xf0/x96/xa2/x93 BAMUM LETTER PHASE-C NGGEN ++ /xf0/x96/xa2/x94 BAMUM LETTER PHASE-C NDEUAEREE ++ /xf0/x96/xa2/x95 BAMUM LETTER PHASE-C NGKAQ ++ /xf0/x96/xa2/x96 BAMUM LETTER PHASE-C GHARAE ++ /xf0/x96/xa2/x97 BAMUM LETTER PHASE-C MBEEKEET ++ /xf0/x96/xa2/x98 BAMUM LETTER PHASE-C GBAYI ++ /xf0/x96/xa2/x99 BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN ++ /xf0/x96/xa2/x9a BAMUM LETTER PHASE-C NTU MBIT ++ /xf0/x96/xa2/x9b BAMUM LETTER PHASE-C MBEUM ++ /xf0/x96/xa2/x9c BAMUM LETTER PHASE-C PIRIEEN ++ /xf0/x96/xa2/x9d BAMUM LETTER PHASE-C NDOMBU ++ /xf0/x96/xa2/x9e BAMUM LETTER PHASE-C MBAA CABBAGE-TREE ++ /xf0/x96/xa2/x9f BAMUM LETTER PHASE-C KEUSHEUAEP ++ /xf0/x96/xa2/xa0 BAMUM LETTER PHASE-C GHAP ++ /xf0/x96/xa2/xa1 BAMUM LETTER PHASE-C KEUKAQ ++ /xf0/x96/xa2/xa2 BAMUM LETTER PHASE-C YU MUOMAE ++ /xf0/x96/xa2/xa3 BAMUM LETTER PHASE-C NZEUM ++ /xf0/x96/xa2/xa4 BAMUM LETTER PHASE-C MBUE ++ /xf0/x96/xa2/xa5 BAMUM LETTER PHASE-C NSEUAEN ++ /xf0/x96/xa2/xa6 BAMUM LETTER PHASE-C MBIT ++ /xf0/x96/xa2/xa7 BAMUM LETTER PHASE-C YEUQ ++ /xf0/x96/xa2/xa8 BAMUM LETTER PHASE-C KPARAQ ++ /xf0/x96/xa2/xa9 BAMUM LETTER PHASE-C KAA ++ /xf0/x96/xa2/xaa BAMUM LETTER PHASE-C SEUX ++ /xf0/x96/xa2/xab BAMUM LETTER PHASE-C NDIDA ++ /xf0/x96/xa2/xac BAMUM LETTER PHASE-C TAASHAE ++ /xf0/x96/xa2/xad BAMUM LETTER PHASE-C NJUEQ ++ /xf0/x96/xa2/xae BAMUM LETTER PHASE-C TITA YUE ++ /xf0/x96/xa2/xaf BAMUM LETTER PHASE-C SUAET ++ /xf0/x96/xa2/xb0 BAMUM LETTER PHASE-C NGGUAEN NYAM ++ /xf0/x96/xa2/xb1 BAMUM LETTER PHASE-C VEUX ++ /xf0/x96/xa2/xb2 BAMUM LETTER PHASE-C NANSANAQ ++ /xf0/x96/xa2/xb3 BAMUM LETTER PHASE-C MA KEUAERI ++ /xf0/x96/xa2/xb4 BAMUM LETTER PHASE-C NTAA ++ /xf0/x96/xa2/xb5 BAMUM LETTER PHASE-C NGGUON ++ /xf0/x96/xa2/xb6 BAMUM LETTER PHASE-C LAP ++ /xf0/x96/xa2/xb7 BAMUM LETTER PHASE-C MBIRIEEN ++ /xf0/x96/xa2/xb8 BAMUM LETTER PHASE-C MGBASAQ ++ /xf0/x96/xa2/xb9 BAMUM LETTER PHASE-C NTEUNGBA ++ /xf0/x96/xa2/xba BAMUM LETTER PHASE-C TEUTEUX ++ /xf0/x96/xa2/xbb BAMUM LETTER PHASE-C NGGUM ++ /xf0/x96/xa2/xbc BAMUM LETTER PHASE-C FUE ++ /xf0/x96/xa2/xbd BAMUM LETTER PHASE-C NDEUT ++ /xf0/x96/xa2/xbe BAMUM LETTER PHASE-C NSA ++ /xf0/x96/xa2/xbf BAMUM LETTER PHASE-C NSHAQ ++ /xf0/x96/xa3/x80 BAMUM LETTER PHASE-C BUNG ++ /xf0/x96/xa3/x81 BAMUM LETTER PHASE-C VEUAEPEN ++ /xf0/x96/xa3/x82 BAMUM LETTER PHASE-C MBERAE ++ /xf0/x96/xa3/x83 BAMUM LETTER PHASE-C RU ++ /xf0/x96/xa3/x84 BAMUM LETTER PHASE-C NJAEM ++ /xf0/x96/xa3/x85 BAMUM LETTER PHASE-C LAM ++ /xf0/x96/xa3/x86 BAMUM LETTER PHASE-C TITUAEP ++ /xf0/x96/xa3/x87 BAMUM LETTER PHASE-C NSUOT NGOM ++ /xf0/x96/xa3/x88 BAMUM LETTER PHASE-C NJEEEE ++ /xf0/x96/xa3/x89 BAMUM LETTER PHASE-C KET ++ /xf0/x96/xa3/x8a BAMUM LETTER PHASE-C NGGU ++ /xf0/x96/xa3/x8b BAMUM LETTER PHASE-C MAESI ++ /xf0/x96/xa3/x8c BAMUM LETTER PHASE-C MBUAEM ++ /xf0/x96/xa3/x8d BAMUM LETTER PHASE-C LU ++ /xf0/x96/xa3/x8e BAMUM LETTER PHASE-C KUT ++ /xf0/x96/xa3/x8f BAMUM LETTER PHASE-C NJAM ++ /xf0/x96/xa3/x90 BAMUM LETTER PHASE-C NGOM ++ /xf0/x96/xa3/x91 BAMUM LETTER PHASE-C WUP ++ /xf0/x96/xa3/x92 BAMUM LETTER PHASE-C NGGUEET ++ /xf0/x96/xa3/x93 BAMUM LETTER PHASE-C NSOM ++ /xf0/x96/xa3/x94 BAMUM LETTER PHASE-C NTEN ++ /xf0/x96/xa3/x95 BAMUM LETTER PHASE-C KUOP NKAARAE ++ /xf0/x96/xa3/x96 BAMUM LETTER PHASE-C NSUN ++ /xf0/x96/xa3/x97 BAMUM LETTER PHASE-C NDAM ++ /xf0/x96/xa3/x98 BAMUM LETTER PHASE-C MA NSIEE ++ /xf0/x96/xa3/x99 BAMUM LETTER PHASE-C YAA ++ /xf0/x96/xa3/x9a BAMUM LETTER PHASE-C NDAP ++ /xf0/x96/xa3/x9b BAMUM LETTER PHASE-C SHUEQ ++ /xf0/x96/xa3/x9c BAMUM LETTER PHASE-C SETFON ++ /xf0/x96/xa3/x9d BAMUM LETTER PHASE-C MBI ++ /xf0/x96/xa3/x9e BAMUM LETTER PHASE-C MAEMBA ++ /xf0/x96/xa3/x9f BAMUM LETTER PHASE-C MBANYI ++ /xf0/x96/xa3/xa0 BAMUM LETTER PHASE-C KEUSEUX ++ /xf0/x96/xa3/xa1 BAMUM LETTER PHASE-C MBEUX ++ /xf0/x96/xa3/xa2 BAMUM LETTER PHASE-C KEUM ++ /xf0/x96/xa3/xa3 BAMUM LETTER PHASE-C MBAA PICKET ++ /xf0/x96/xa3/xa4 BAMUM LETTER PHASE-C YUWOQ ++ /xf0/x96/xa3/xa5 BAMUM LETTER PHASE-C NJEUX ++ /xf0/x96/xa3/xa6 BAMUM LETTER PHASE-C MIEE ++ /xf0/x96/xa3/xa7 BAMUM LETTER PHASE-C MUAE ++ /xf0/x96/xa3/xa8 BAMUM LETTER PHASE-C SHIQ ++ /xf0/x96/xa3/xa9 BAMUM LETTER PHASE-C KEN LAW ++ /xf0/x96/xa3/xaa BAMUM LETTER PHASE-C KEN FATIGUE ++ /xf0/x96/xa3/xab BAMUM LETTER PHASE-C NGAQ ++ /xf0/x96/xa3/xac BAMUM LETTER PHASE-C NAQ ++ /xf0/x96/xa3/xad BAMUM LETTER PHASE-C LIQ ++ /xf0/x96/xa3/xae BAMUM LETTER PHASE-C PIN ++ /xf0/x96/xa3/xaf BAMUM LETTER PHASE-C PEN ++ /xf0/x96/xa3/xb0 BAMUM LETTER PHASE-C TET ++ /xf0/x96/xa3/xb1 BAMUM LETTER PHASE-D MBUO ++ /xf0/x96/xa3/xb2 BAMUM LETTER PHASE-D WAP ++ /xf0/x96/xa3/xb3 BAMUM LETTER PHASE-D NJI ++ /xf0/x96/xa3/xb4 BAMUM LETTER PHASE-D MFON ++ /xf0/x96/xa3/xb5 BAMUM LETTER PHASE-D NJIEE ++ /xf0/x96/xa3/xb6 BAMUM LETTER PHASE-D LIEE ++ /xf0/x96/xa3/xb7 BAMUM LETTER PHASE-D NJEUT ++ /xf0/x96/xa3/xb8 BAMUM LETTER PHASE-D NSHEE ++ /xf0/x96/xa3/xb9 BAMUM LETTER PHASE-D NGGAAMAE ++ /xf0/x96/xa3/xba BAMUM LETTER PHASE-D NYAM ++ /xf0/x96/xa3/xbb BAMUM LETTER PHASE-D WUAEN ++ /xf0/x96/xa3/xbc BAMUM LETTER PHASE-D NGKUN ++ /xf0/x96/xa3/xbd BAMUM LETTER PHASE-D SHEE ++ /xf0/x96/xa3/xbe BAMUM LETTER PHASE-D NGKAP ++ /xf0/x96/xa3/xbf BAMUM LETTER PHASE-D KEUAETMEUN ++ /xf0/x96/xa4/x80 BAMUM LETTER PHASE-D TEUT ++ /xf0/x96/xa4/x81 BAMUM LETTER PHASE-D SHEUAE ++ /xf0/x96/xa4/x82 BAMUM LETTER PHASE-D NJAP ++ /xf0/x96/xa4/x83 BAMUM LETTER PHASE-D SUE ++ /xf0/x96/xa4/x84 BAMUM LETTER PHASE-D KET ++ /xf0/x96/xa4/x85 BAMUM LETTER PHASE-D YAEMMAE ++ /xf0/x96/xa4/x86 BAMUM LETTER PHASE-D KUOM ++ /xf0/x96/xa4/x87 BAMUM LETTER PHASE-D SAP ++ /xf0/x96/xa4/x88 BAMUM LETTER PHASE-D MFEUT ++ /xf0/x96/xa4/x89 BAMUM LETTER PHASE-D NDEUX ++ /xf0/x96/xa4/x8a BAMUM LETTER PHASE-D MALEERI ++ /xf0/x96/xa4/x8b BAMUM LETTER PHASE-D MEUT ++ /xf0/x96/xa4/x8c BAMUM LETTER PHASE-D SEUAEQ ++ /xf0/x96/xa4/x8d BAMUM LETTER PHASE-D YEN ++ /xf0/x96/xa4/x8e BAMUM LETTER PHASE-D NJEUAEM ++ /xf0/x96/xa4/x8f BAMUM LETTER PHASE-D KEUOT MBUAE ++ /xf0/x96/xa4/x90 BAMUM LETTER PHASE-D NGKEURI ++ /xf0/x96/xa4/x91 BAMUM LETTER PHASE-D TU ++ /xf0/x96/xa4/x92 BAMUM LETTER PHASE-D GHAA ++ /xf0/x96/xa4/x93 BAMUM LETTER PHASE-D NGKYEE ++ /xf0/x96/xa4/x94 BAMUM LETTER PHASE-D FEUFEUAET ++ /xf0/x96/xa4/x95 BAMUM LETTER PHASE-D NDEE ++ /xf0/x96/xa4/x96 BAMUM LETTER PHASE-D MGBOFUM ++ /xf0/x96/xa4/x97 BAMUM LETTER PHASE-D LEUAEP ++ /xf0/x96/xa4/x98 BAMUM LETTER PHASE-D NDON ++ /xf0/x96/xa4/x99 BAMUM LETTER PHASE-D MONI ++ /xf0/x96/xa4/x9a BAMUM LETTER PHASE-D MGBEUN ++ /xf0/x96/xa4/x9b BAMUM LETTER PHASE-D PUUT ++ /xf0/x96/xa4/x9c BAMUM LETTER PHASE-D MGBIEE ++ /xf0/x96/xa4/x9d BAMUM LETTER PHASE-D MFO ++ /xf0/x96/xa4/x9e BAMUM LETTER PHASE-D LUM ++ /xf0/x96/xa4/x9f BAMUM LETTER PHASE-D NSIEEP ++ /xf0/x96/xa4/xa0 BAMUM LETTER PHASE-D MBAA ++ /xf0/x96/xa4/xa1 BAMUM LETTER PHASE-D KWAET ++ /xf0/x96/xa4/xa2 BAMUM LETTER PHASE-D NYET ++ /xf0/x96/xa4/xa3 BAMUM LETTER PHASE-D TEUAEN ++ /xf0/x96/xa4/xa4 BAMUM LETTER PHASE-D SOT ++ /xf0/x96/xa4/xa5 BAMUM LETTER PHASE-D YUWOQ ++ /xf0/x96/xa4/xa6 BAMUM LETTER PHASE-D KEUM ++ /xf0/x96/xa4/xa7 BAMUM LETTER PHASE-D RAEM ++ /xf0/x96/xa4/xa8 BAMUM LETTER PHASE-D TEEEE ++ /xf0/x96/xa4/xa9 BAMUM LETTER PHASE-D NGKEUAEQ ++ /xf0/x96/xa4/xaa BAMUM LETTER PHASE-D MFEUAE ++ /xf0/x96/xa4/xab BAMUM LETTER PHASE-D NSIEET ++ /xf0/x96/xa4/xac BAMUM LETTER PHASE-D KEUP ++ /xf0/x96/xa4/xad BAMUM LETTER PHASE-D PIP ++ /xf0/x96/xa4/xae BAMUM LETTER PHASE-D PEUTAE ++ /xf0/x96/xa4/xaf BAMUM LETTER PHASE-D NYUE ++ /xf0/x96/xa4/xb0 BAMUM LETTER PHASE-D LET ++ /xf0/x96/xa4/xb1 BAMUM LETTER PHASE-D NGGAAM ++ /xf0/x96/xa4/xb2 BAMUM LETTER PHASE-D MFIEE ++ /xf0/x96/xa4/xb3 BAMUM LETTER PHASE-D NGGWAEN ++ /xf0/x96/xa4/xb4 BAMUM LETTER PHASE-D YUOM ++ /xf0/x96/xa4/xb5 BAMUM LETTER PHASE-D PAP ++ /xf0/x96/xa4/xb6 BAMUM LETTER PHASE-D YUOP ++ /xf0/x96/xa4/xb7 BAMUM LETTER PHASE-D NDAM ++ /xf0/x96/xa4/xb8 BAMUM LETTER PHASE-D NTEUM ++ /xf0/x96/xa4/xb9 BAMUM LETTER PHASE-D SUAE ++ /xf0/x96/xa4/xba BAMUM LETTER PHASE-D KUN ++ /xf0/x96/xa4/xbb BAMUM LETTER PHASE-D NGGEUX ++ /xf0/x96/xa4/xbc BAMUM LETTER PHASE-D NGKIEE ++ /xf0/x96/xa4/xbd BAMUM LETTER PHASE-D TUOT ++ /xf0/x96/xa4/xbe BAMUM LETTER PHASE-D MEUN ++ /xf0/x96/xa4/xbf BAMUM LETTER PHASE-D KUQ ++ /xf0/x96/xa5/x80 BAMUM LETTER PHASE-D NSUM ++ /xf0/x96/xa5/x81 BAMUM LETTER PHASE-D TEUN ++ /xf0/x96/xa5/x82 BAMUM LETTER PHASE-D MAENJET ++ /xf0/x96/xa5/x83 BAMUM LETTER PHASE-D NGGAP ++ /xf0/x96/xa5/x84 BAMUM LETTER PHASE-D LEUM ++ /xf0/x96/xa5/x85 BAMUM LETTER PHASE-D NGGUOM ++ /xf0/x96/xa5/x86 BAMUM LETTER PHASE-D NSHUT ++ /xf0/x96/xa5/x87 BAMUM LETTER PHASE-D NJUEQ ++ /xf0/x96/xa5/x88 BAMUM LETTER PHASE-D GHEUAE ++ /xf0/x96/xa5/x89 BAMUM LETTER PHASE-D KU ++ /xf0/x96/xa5/x8a BAMUM LETTER PHASE-D REN OLD ++ /xf0/x96/xa5/x8b BAMUM LETTER PHASE-D TAE ++ /xf0/x96/xa5/x8c BAMUM LETTER PHASE-D TOQ ++ /xf0/x96/xa5/x8d BAMUM LETTER PHASE-D NYI ++ /xf0/x96/xa5/x8e BAMUM LETTER PHASE-D RII ++ /xf0/x96/xa5/x8f BAMUM LETTER PHASE-D LEEEE ++ /xf0/x96/xa5/x90 BAMUM LETTER PHASE-D MEEEE ++ /xf0/x96/xa5/x91 BAMUM LETTER PHASE-D M ++ /xf0/x96/xa5/x92 BAMUM LETTER PHASE-D SUU ++ /xf0/x96/xa5/x93 BAMUM LETTER PHASE-D MU ++ /xf0/x96/xa5/x94 BAMUM LETTER PHASE-D SHII ++ /xf0/x96/xa5/x95 BAMUM LETTER PHASE-D SHEUX ++ /xf0/x96/xa5/x96 BAMUM LETTER PHASE-D KYEE ++ /xf0/x96/xa5/x97 BAMUM LETTER PHASE-D NU ++ /xf0/x96/xa5/x98 BAMUM LETTER PHASE-D SHU ++ /xf0/x96/xa5/x99 BAMUM LETTER PHASE-D NTEE ++ /xf0/x96/xa5/x9a BAMUM LETTER PHASE-D PEE ++ /xf0/x96/xa5/x9b BAMUM LETTER PHASE-D NI ++ /xf0/x96/xa5/x9c BAMUM LETTER PHASE-D SHOQ ++ /xf0/x96/xa5/x9d BAMUM LETTER PHASE-D PUQ ++ /xf0/x96/xa5/x9e BAMUM LETTER PHASE-D MVOP ++ /xf0/x96/xa5/x9f BAMUM LETTER PHASE-D LOQ ++ /xf0/x96/xa5/xa0 BAMUM LETTER PHASE-D REN MUCH ++ /xf0/x96/xa5/xa1 BAMUM LETTER PHASE-D TI ++ /xf0/x96/xa5/xa2 BAMUM LETTER PHASE-D NTUU ++ /xf0/x96/xa5/xa3 BAMUM LETTER PHASE-D MBAA SEVEN ++ /xf0/x96/xa5/xa4 BAMUM LETTER PHASE-D SAQ ++ /xf0/x96/xa5/xa5 BAMUM LETTER PHASE-D FAA ++ /xf0/x96/xa5/xa6 BAMUM LETTER PHASE-E NDAP ++ /xf0/x96/xa5/xa7 BAMUM LETTER PHASE-E TOON ++ /xf0/x96/xa5/xa8 BAMUM LETTER PHASE-E MBEUM ++ /xf0/x96/xa5/xa9 BAMUM LETTER PHASE-E LAP ++ /xf0/x96/xa5/xaa BAMUM LETTER PHASE-E VOM ++ /xf0/x96/xa5/xab BAMUM LETTER PHASE-E LOON ++ /xf0/x96/xa5/xac BAMUM LETTER PHASE-E PAA ++ /xf0/x96/xa5/xad BAMUM LETTER PHASE-E SOM ++ /xf0/x96/xa5/xae BAMUM LETTER PHASE-E RAQ ++ /xf0/x96/xa5/xaf BAMUM LETTER PHASE-E NSHUOP ++ /xf0/x96/xa5/xb0 BAMUM LETTER PHASE-E NDUN ++ /xf0/x96/xa5/xb1 BAMUM LETTER PHASE-E PUAE ++ /xf0/x96/xa5/xb2 BAMUM LETTER PHASE-E TAM ++ /xf0/x96/xa5/xb3 BAMUM LETTER PHASE-E NGKA ++ /xf0/x96/xa5/xb4 BAMUM LETTER PHASE-E KPEUX ++ /xf0/x96/xa5/xb5 BAMUM LETTER PHASE-E WUO ++ /xf0/x96/xa5/xb6 BAMUM LETTER PHASE-E SEE ++ /xf0/x96/xa5/xb7 BAMUM LETTER PHASE-E NGGEUAET ++ /xf0/x96/xa5/xb8 BAMUM LETTER PHASE-E PAAM ++ /xf0/x96/xa5/xb9 BAMUM LETTER PHASE-E TOO ++ /xf0/x96/xa5/xba BAMUM LETTER PHASE-E KUOP ++ /xf0/x96/xa5/xbb BAMUM LETTER PHASE-E LOM ++ /xf0/x96/xa5/xbc BAMUM LETTER PHASE-E NSHIEE ++ /xf0/x96/xa5/xbd BAMUM LETTER PHASE-E NGOP ++ /xf0/x96/xa5/xbe BAMUM LETTER PHASE-E MAEM ++ /xf0/x96/xa5/xbf BAMUM LETTER PHASE-E NGKEUX ++ /xf0/x96/xa6/x80 BAMUM LETTER PHASE-E NGOQ ++ /xf0/x96/xa6/x81 BAMUM LETTER PHASE-E NSHUE ++ /xf0/x96/xa6/x82 BAMUM LETTER PHASE-E RIMGBA ++ /xf0/x96/xa6/x83 BAMUM LETTER PHASE-E NJEUX ++ /xf0/x96/xa6/x84 BAMUM LETTER PHASE-E PEEM ++ /xf0/x96/xa6/x85 BAMUM LETTER PHASE-E SAA ++ /xf0/x96/xa6/x86 BAMUM LETTER PHASE-E NGGURAE ++ /xf0/x96/xa6/x87 BAMUM LETTER PHASE-E MGBA ++ /xf0/x96/xa6/x88 BAMUM LETTER PHASE-E GHEUX ++ /xf0/x96/xa6/x89 BAMUM LETTER PHASE-E NGKEUAEM ++ /xf0/x96/xa6/x8a BAMUM LETTER PHASE-E NJAEMLI ++ /xf0/x96/xa6/x8b BAMUM LETTER PHASE-E MAP ++ /xf0/x96/xa6/x8c BAMUM LETTER PHASE-E LOOT ++ /xf0/x96/xa6/x8d BAMUM LETTER PHASE-E NGGEEEE ++ /xf0/x96/xa6/x8e BAMUM LETTER PHASE-E NDIQ ++ /xf0/x96/xa6/x8f BAMUM LETTER PHASE-E TAEN NTEUM ++ /xf0/x96/xa6/x90 BAMUM LETTER PHASE-E SET ++ /xf0/x96/xa6/x91 BAMUM LETTER PHASE-E PUM ++ /xf0/x96/xa6/x92 BAMUM LETTER PHASE-E NDAA SOFTNESS ++ /xf0/x96/xa6/x93 BAMUM LETTER PHASE-E NGGUAESHAE NYAM ++ /xf0/x96/xa6/x94 BAMUM LETTER PHASE-E YIEE ++ /xf0/x96/xa6/x95 BAMUM LETTER PHASE-E GHEUN ++ /xf0/x96/xa6/x96 BAMUM LETTER PHASE-E TUAE ++ /xf0/x96/xa6/x97 BAMUM LETTER PHASE-E YEUAE ++ /xf0/x96/xa6/x98 BAMUM LETTER PHASE-E PO ++ /xf0/x96/xa6/x99 BAMUM LETTER PHASE-E TUMAE ++ /xf0/x96/xa6/x9a BAMUM LETTER PHASE-E KEUAE ++ /xf0/x96/xa6/x9b BAMUM LETTER PHASE-E SUAEN ++ /xf0/x96/xa6/x9c BAMUM LETTER PHASE-E TEUAEQ ++ /xf0/x96/xa6/x9d BAMUM LETTER PHASE-E VEUAE ++ /xf0/x96/xa6/x9e BAMUM LETTER PHASE-E WEUX ++ /xf0/x96/xa6/x9f BAMUM LETTER PHASE-E LAAM ++ /xf0/x96/xa6/xa0 BAMUM LETTER PHASE-E PU ++ /xf0/x96/xa6/xa1 BAMUM LETTER PHASE-E TAAQ ++ /xf0/x96/xa6/xa2 BAMUM LETTER PHASE-E GHAAMAE ++ /xf0/x96/xa6/xa3 BAMUM LETTER PHASE-E NGEUREUT ++ /xf0/x96/xa6/xa4 BAMUM LETTER PHASE-E SHEUAEQ ++ /xf0/x96/xa6/xa5 BAMUM LETTER PHASE-E MGBEN ++ /xf0/x96/xa6/xa6 BAMUM LETTER PHASE-E MBEE ++ /xf0/x96/xa6/xa7 BAMUM LETTER PHASE-E NZAQ ++ /xf0/x96/xa6/xa8 BAMUM LETTER PHASE-E NKOM ++ /xf0/x96/xa6/xa9 BAMUM LETTER PHASE-E GBET ++ /xf0/x96/xa6/xaa BAMUM LETTER PHASE-E TUM ++ /xf0/x96/xa6/xab BAMUM LETTER PHASE-E KUET ++ /xf0/x96/xa6/xac BAMUM LETTER PHASE-E YAP ++ /xf0/x96/xa6/xad BAMUM LETTER PHASE-E NYI CLEAVER ++ /xf0/x96/xa6/xae BAMUM LETTER PHASE-E YIT ++ /xf0/x96/xa6/xaf BAMUM LETTER PHASE-E MFEUQ ++ /xf0/x96/xa6/xb0 BAMUM LETTER PHASE-E NDIAQ ++ /xf0/x96/xa6/xb1 BAMUM LETTER PHASE-E PIEEQ ++ /xf0/x96/xa6/xb2 BAMUM LETTER PHASE-E YUEQ ++ /xf0/x96/xa6/xb3 BAMUM LETTER PHASE-E LEUAEM ++ /xf0/x96/xa6/xb4 BAMUM LETTER PHASE-E FUE ++ /xf0/x96/xa6/xb5 BAMUM LETTER PHASE-E GBEUX ++ /xf0/x96/xa6/xb6 BAMUM LETTER PHASE-E NGKUP ++ /xf0/x96/xa6/xb7 BAMUM LETTER PHASE-E KET ++ /xf0/x96/xa6/xb8 BAMUM LETTER PHASE-E MAE ++ /xf0/x96/xa6/xb9 BAMUM LETTER PHASE-E NGKAAMI ++ /xf0/x96/xa6/xba BAMUM LETTER PHASE-E GHET ++ /xf0/x96/xa6/xbb BAMUM LETTER PHASE-E FA ++ /xf0/x96/xa6/xbc BAMUM LETTER PHASE-E NTUM ++ /xf0/x96/xa6/xbd BAMUM LETTER PHASE-E PEUT ++ /xf0/x96/xa6/xbe BAMUM LETTER PHASE-E YEUM ++ /xf0/x96/xa6/xbf BAMUM LETTER PHASE-E NGGEUAE ++ /xf0/x96/xa7/x80 BAMUM LETTER PHASE-E NYI BETWEEN ++ /xf0/x96/xa7/x81 BAMUM LETTER PHASE-E NZUQ ++ /xf0/x96/xa7/x82 BAMUM LETTER PHASE-E POON ++ /xf0/x96/xa7/x83 BAMUM LETTER PHASE-E MIEE ++ /xf0/x96/xa7/x84 BAMUM LETTER PHASE-E FUET ++ /xf0/x96/xa7/x85 BAMUM LETTER PHASE-E NAE ++ /xf0/x96/xa7/x86 BAMUM LETTER PHASE-E MUAE ++ /xf0/x96/xa7/x87 BAMUM LETTER PHASE-E GHEUAE ++ /xf0/x96/xa7/x88 BAMUM LETTER PHASE-E FU I ++ /xf0/x96/xa7/x89 BAMUM LETTER PHASE-E MVI ++ /xf0/x96/xa7/x8a BAMUM LETTER PHASE-E PUAQ ++ /xf0/x96/xa7/x8b BAMUM LETTER PHASE-E NGKUM ++ /xf0/x96/xa7/x8c BAMUM LETTER PHASE-E KUT ++ /xf0/x96/xa7/x8d BAMUM LETTER PHASE-E PIET ++ /xf0/x96/xa7/x8e BAMUM LETTER PHASE-E NTAP ++ /xf0/x96/xa7/x8f BAMUM LETTER PHASE-E YEUAET ++ /xf0/x96/xa7/x90 BAMUM LETTER PHASE-E NGGUP ++ /xf0/x96/xa7/x91 BAMUM LETTER PHASE-E PA PEOPLE ++ /xf0/x96/xa7/x92 BAMUM LETTER PHASE-E FU CALL ++ /xf0/x96/xa7/x93 BAMUM LETTER PHASE-E FOM ++ /xf0/x96/xa7/x94 BAMUM LETTER PHASE-E NJEE ++ /xf0/x96/xa7/x95 BAMUM LETTER PHASE-E A ++ /xf0/x96/xa7/x96 BAMUM LETTER PHASE-E TOQ ++ /xf0/x96/xa7/x97 BAMUM LETTER PHASE-E O ++ /xf0/x96/xa7/x98 BAMUM LETTER PHASE-E I ++ /xf0/x96/xa7/x99 BAMUM LETTER PHASE-E LAQ ++ /xf0/x96/xa7/x9a BAMUM LETTER PHASE-E PA PLURAL ++ /xf0/x96/xa7/x9b BAMUM LETTER PHASE-E TAA ++ /xf0/x96/xa7/x9c BAMUM LETTER PHASE-E TAQ ++ /xf0/x96/xa7/x9d BAMUM LETTER PHASE-E NDAA MY HOUSE ++ /xf0/x96/xa7/x9e BAMUM LETTER PHASE-E SHIQ ++ /xf0/x96/xa7/x9f BAMUM LETTER PHASE-E YEUX ++ /xf0/x96/xa7/xa0 BAMUM LETTER PHASE-E NGUAE ++ /xf0/x96/xa7/xa1 BAMUM LETTER PHASE-E YUAEN ++ /xf0/x96/xa7/xa2 BAMUM LETTER PHASE-E YOQ SWIMMING ++ /xf0/x96/xa7/xa3 BAMUM LETTER PHASE-E YOQ COVER ++ /xf0/x96/xa7/xa4 BAMUM LETTER PHASE-E YUQ ++ /xf0/x96/xa7/xa5 BAMUM LETTER PHASE-E YUN ++ /xf0/x96/xa7/xa6 BAMUM LETTER PHASE-E KEUX ++ /xf0/x96/xa7/xa7 BAMUM LETTER PHASE-E PEUX ++ /xf0/x96/xa7/xa8 BAMUM LETTER PHASE-E NJEE EPOCH ++ /xf0/x96/xa7/xa9 BAMUM LETTER PHASE-E PUE ++ /xf0/x96/xa7/xaa BAMUM LETTER PHASE-E WUE ++ /xf0/x96/xa7/xab BAMUM LETTER PHASE-E FEE ++ /xf0/x96/xa7/xac BAMUM LETTER PHASE-E VEE ++ /xf0/x96/xa7/xad BAMUM LETTER PHASE-E LU ++ /xf0/x96/xa7/xae BAMUM LETTER PHASE-E MI ++ /xf0/x96/xa7/xaf BAMUM LETTER PHASE-E REUX ++ /xf0/x96/xa7/xb0 BAMUM LETTER PHASE-E RAE ++ /xf0/x96/xa7/xb1 BAMUM LETTER PHASE-E NGUAET ++ /xf0/x96/xa7/xb2 BAMUM LETTER PHASE-E NGA ++ /xf0/x96/xa7/xb3 BAMUM LETTER PHASE-E SHO ++ /xf0/x96/xa7/xb4 BAMUM LETTER PHASE-E SHOQ ++ /xf0/x96/xa7/xb5 BAMUM LETTER PHASE-E FU REMEDY ++ /xf0/x96/xa7/xb6 BAMUM LETTER PHASE-E NA ++ /xf0/x96/xa7/xb7 BAMUM LETTER PHASE-E PI ++ /xf0/x96/xa7/xb8 BAMUM LETTER PHASE-E LOQ ++ /xf0/x96/xa7/xb9 BAMUM LETTER PHASE-E KO ++ /xf0/x96/xa7/xba BAMUM LETTER PHASE-E MEN ++ /xf0/x96/xa7/xbb BAMUM LETTER PHASE-E MA ++ /xf0/x96/xa7/xbc BAMUM LETTER PHASE-E MAQ ++ /xf0/x96/xa7/xbd BAMUM LETTER PHASE-E TEU ++ /xf0/x96/xa7/xbe BAMUM LETTER PHASE-E KI ++ /xf0/x96/xa7/xbf BAMUM LETTER PHASE-E MON ++ /xf0/x96/xa8/x80 BAMUM LETTER PHASE-E TEN ++ /xf0/x96/xa8/x81 BAMUM LETTER PHASE-E FAQ ++ /xf0/x96/xa8/x82 BAMUM LETTER PHASE-E GHOM ++ /xf0/x96/xa8/x83 BAMUM LETTER PHASE-F KA ++ /xf0/x96/xa8/x84 BAMUM LETTER PHASE-F U ++ /xf0/x96/xa8/x85 BAMUM LETTER PHASE-F KU ++ /xf0/x96/xa8/x86 BAMUM LETTER PHASE-F EE ++ /xf0/x96/xa8/x87 BAMUM LETTER PHASE-F REE ++ /xf0/x96/xa8/x88 BAMUM LETTER PHASE-F TAE ++ /xf0/x96/xa8/x89 BAMUM LETTER PHASE-F NYI ++ /xf0/x96/xa8/x8a BAMUM LETTER PHASE-F LA ++ /xf0/x96/xa8/x8b BAMUM LETTER PHASE-F RII ++ /xf0/x96/xa8/x8c BAMUM LETTER PHASE-F RIEE ++ /xf0/x96/xa8/x8d BAMUM LETTER PHASE-F MEEEE ++ /xf0/x96/xa8/x8e BAMUM LETTER PHASE-F TAA ++ /xf0/x96/xa8/x8f BAMUM LETTER PHASE-F NDAA ++ /xf0/x96/xa8/x90 BAMUM LETTER PHASE-F NJAEM ++ /xf0/x96/xa8/x91 BAMUM LETTER PHASE-F M ++ /xf0/x96/xa8/x92 BAMUM LETTER PHASE-F SUU ++ /xf0/x96/xa8/x93 BAMUM LETTER PHASE-F SHII ++ /xf0/x96/xa8/x94 BAMUM LETTER PHASE-F SI ++ /xf0/x96/xa8/x95 BAMUM LETTER PHASE-F SEUX ++ /xf0/x96/xa8/x96 BAMUM LETTER PHASE-F KYEE ++ /xf0/x96/xa8/x97 BAMUM LETTER PHASE-F KET ++ /xf0/x96/xa8/x98 BAMUM LETTER PHASE-F NUAE ++ /xf0/x96/xa8/x99 BAMUM LETTER PHASE-F NU ++ /xf0/x96/xa8/x9a BAMUM LETTER PHASE-F NJUAE ++ /xf0/x96/xa8/x9b BAMUM LETTER PHASE-F YOQ ++ /xf0/x96/xa8/x9c BAMUM LETTER PHASE-F SHU ++ /xf0/x96/xa8/x9d BAMUM LETTER PHASE-F YA ++ /xf0/x96/xa8/x9e BAMUM LETTER PHASE-F NSHA ++ /xf0/x96/xa8/x9f BAMUM LETTER PHASE-F PEUX ++ /xf0/x96/xa8/xa0 BAMUM LETTER PHASE-F NTEE ++ /xf0/x96/xa8/xa1 BAMUM LETTER PHASE-F WUE ++ /xf0/x96/xa8/xa2 BAMUM LETTER PHASE-F PEE ++ /xf0/x96/xa8/xa3 BAMUM LETTER PHASE-F RU ++ /xf0/x96/xa8/xa4 BAMUM LETTER PHASE-F NI ++ /xf0/x96/xa8/xa5 BAMUM LETTER PHASE-F REUX ++ /xf0/x96/xa8/xa6 BAMUM LETTER PHASE-F KEN ++ /xf0/x96/xa8/xa7 BAMUM LETTER PHASE-F NGKWAEN ++ /xf0/x96/xa8/xa8 BAMUM LETTER PHASE-F NGGA ++ /xf0/x96/xa8/xa9 BAMUM LETTER PHASE-F SHO ++ /xf0/x96/xa8/xaa BAMUM LETTER PHASE-F PUAE ++ /xf0/x96/xa8/xab BAMUM LETTER PHASE-F FOM ++ /xf0/x96/xa8/xac BAMUM LETTER PHASE-F WA ++ /xf0/x96/xa8/xad BAMUM LETTER PHASE-F LI ++ /xf0/x96/xa8/xae BAMUM LETTER PHASE-F LOQ ++ /xf0/x96/xa8/xaf BAMUM LETTER PHASE-F KO ++ /xf0/x96/xa8/xb0 BAMUM LETTER PHASE-F MBEN ++ /xf0/x96/xa8/xb1 BAMUM LETTER PHASE-F REN ++ /xf0/x96/xa8/xb2 BAMUM LETTER PHASE-F MA ++ /xf0/x96/xa8/xb3 BAMUM LETTER PHASE-F MO ++ /xf0/x96/xa8/xb4 BAMUM LETTER PHASE-F MBAA ++ /xf0/x96/xa8/xb5 BAMUM LETTER PHASE-F TET ++ /xf0/x96/xa8/xb6 BAMUM LETTER PHASE-F KPA ++ /xf0/x96/xa8/xb7 BAMUM LETTER PHASE-F SAMBA ++ /xf0/x96/xa8/xb8 BAMUM LETTER PHASE-F VUEQ ++ /xf0/x9b/x80/x80 KATAKANA LETTER ARCHAIC E ++ /xf0/x9b/x80/x81 HIRAGANA LETTER ARCHAIC YE + /xf0/x9d/x80/x80 BYZANTINE MUSICAL SYMBOL PSILI + /xf0/x9d/x80/x81 BYZANTINE MUSICAL SYMBOL DASEIA + /xf0/x9d/x80/x82 BYZANTINE MUSICAL SYMBOL PERISPOMENI +@@ -30151,6 +33445,1091 @@ CHARMAP + /xf0/x9f/x82/x91 DOMINO TILE VERTICAL-06-04 + /xf0/x9f/x82/x92 DOMINO TILE VERTICAL-06-05 + /xf0/x9f/x82/x93 DOMINO TILE VERTICAL-06-06 ++ /xf0/x9f/x82/xa0 PLAYING CARD BACK ++ /xf0/x9f/x82/xa1 PLAYING CARD ACE OF SPADES ++ /xf0/x9f/x82/xa2 PLAYING CARD TWO OF SPADES ++ /xf0/x9f/x82/xa3 PLAYING CARD THREE OF SPADES ++ /xf0/x9f/x82/xa4 PLAYING CARD FOUR OF SPADES ++ /xf0/x9f/x82/xa5 PLAYING CARD FIVE OF SPADES ++ /xf0/x9f/x82/xa6 PLAYING CARD SIX OF SPADES ++ /xf0/x9f/x82/xa7 PLAYING CARD SEVEN OF SPADES ++ /xf0/x9f/x82/xa8 PLAYING CARD EIGHT OF SPADES ++ /xf0/x9f/x82/xa9 PLAYING CARD NINE OF SPADES ++ /xf0/x9f/x82/xaa PLAYING CARD TEN OF SPADES ++ /xf0/x9f/x82/xab PLAYING CARD JACK OF SPADES ++ /xf0/x9f/x82/xac PLAYING CARD KNIGHT OF SPADES ++ /xf0/x9f/x82/xad PLAYING CARD QUEEN OF SPADES ++ /xf0/x9f/x82/xae PLAYING CARD KING OF SPADES ++ /xf0/x9f/x82/xb1 PLAYING CARD ACE OF HEARTS ++ /xf0/x9f/x82/xb2 PLAYING CARD TWO OF HEARTS ++ /xf0/x9f/x82/xb3 PLAYING CARD THREE OF HEARTS ++ /xf0/x9f/x82/xb4 PLAYING CARD FOUR OF HEARTS ++ /xf0/x9f/x82/xb5 PLAYING CARD FIVE OF HEARTS ++ /xf0/x9f/x82/xb6 PLAYING CARD SIX OF HEARTS ++ /xf0/x9f/x82/xb7 PLAYING CARD SEVEN OF HEARTS ++ /xf0/x9f/x82/xb8 PLAYING CARD EIGHT OF HEARTS ++ /xf0/x9f/x82/xb9 PLAYING CARD NINE OF HEARTS ++ /xf0/x9f/x82/xba PLAYING CARD TEN OF HEARTS ++ /xf0/x9f/x82/xbb PLAYING CARD JACK OF HEARTS ++ /xf0/x9f/x82/xbc PLAYING CARD KNIGHT OF HEARTS ++ /xf0/x9f/x82/xbd PLAYING CARD QUEEN OF HEARTS ++ /xf0/x9f/x82/xbe PLAYING CARD KING OF HEARTS ++ /xf0/x9f/x83/x81 PLAYING CARD ACE OF DIAMONDS ++ /xf0/x9f/x83/x82 PLAYING CARD TWO OF DIAMONDS ++ /xf0/x9f/x83/x83 PLAYING CARD THREE OF DIAMONDS ++ /xf0/x9f/x83/x84 PLAYING CARD FOUR OF DIAMONDS ++ /xf0/x9f/x83/x85 PLAYING CARD FIVE OF DIAMONDS ++ /xf0/x9f/x83/x86 PLAYING CARD SIX OF DIAMONDS ++ /xf0/x9f/x83/x87 PLAYING CARD SEVEN OF DIAMONDS ++ /xf0/x9f/x83/x88 PLAYING CARD EIGHT OF DIAMONDS ++ /xf0/x9f/x83/x89 PLAYING CARD NINE OF DIAMONDS ++ /xf0/x9f/x83/x8a PLAYING CARD TEN OF DIAMONDS ++ /xf0/x9f/x83/x8b PLAYING CARD JACK OF DIAMONDS ++ /xf0/x9f/x83/x8c PLAYING CARD KNIGHT OF DIAMONDS ++ /xf0/x9f/x83/x8d PLAYING CARD QUEEN OF DIAMONDS ++ /xf0/x9f/x83/x8e PLAYING CARD KING OF DIAMONDS ++ /xf0/x9f/x83/x8f PLAYING CARD BLACK JOKER ++ /xf0/x9f/x83/x91 PLAYING CARD ACE OF CLUBS ++ /xf0/x9f/x83/x92 PLAYING CARD TWO OF CLUBS ++ /xf0/x9f/x83/x93 PLAYING CARD THREE OF CLUBS ++ /xf0/x9f/x83/x94 PLAYING CARD FOUR OF CLUBS ++ /xf0/x9f/x83/x95 PLAYING CARD FIVE OF CLUBS ++ /xf0/x9f/x83/x96 PLAYING CARD SIX OF CLUBS ++ /xf0/x9f/x83/x97 PLAYING CARD SEVEN OF CLUBS ++ /xf0/x9f/x83/x98 PLAYING CARD EIGHT OF CLUBS ++ /xf0/x9f/x83/x99 PLAYING CARD NINE OF CLUBS ++ /xf0/x9f/x83/x9a PLAYING CARD TEN OF CLUBS ++ /xf0/x9f/x83/x9b PLAYING CARD JACK OF CLUBS ++ /xf0/x9f/x83/x9c PLAYING CARD KNIGHT OF CLUBS ++ /xf0/x9f/x83/x9d PLAYING CARD QUEEN OF CLUBS ++ /xf0/x9f/x83/x9e PLAYING CARD KING OF CLUBS ++ /xf0/x9f/x83/x9f PLAYING CARD WHITE JOKER ++ /xf0/x9f/x84/x80 DIGIT ZERO FULL STOP ++ /xf0/x9f/x84/x81 DIGIT ZERO COMMA ++ /xf0/x9f/x84/x82 DIGIT ONE COMMA ++ /xf0/x9f/x84/x83 DIGIT TWO COMMA ++ /xf0/x9f/x84/x84 DIGIT THREE COMMA ++ /xf0/x9f/x84/x85 DIGIT FOUR COMMA ++ /xf0/x9f/x84/x86 DIGIT FIVE COMMA ++ /xf0/x9f/x84/x87 DIGIT SIX COMMA ++ /xf0/x9f/x84/x88 DIGIT SEVEN COMMA ++ /xf0/x9f/x84/x89 DIGIT EIGHT COMMA ++ /xf0/x9f/x84/x8a DIGIT NINE COMMA ++ /xf0/x9f/x84/x90 PARENTHESIZED LATIN CAPITAL LETTER A ++ /xf0/x9f/x84/x91 PARENTHESIZED LATIN CAPITAL LETTER B ++ /xf0/x9f/x84/x92 PARENTHESIZED LATIN CAPITAL LETTER C ++ /xf0/x9f/x84/x93 PARENTHESIZED LATIN CAPITAL LETTER D ++ /xf0/x9f/x84/x94 PARENTHESIZED LATIN CAPITAL LETTER E ++ /xf0/x9f/x84/x95 PARENTHESIZED LATIN CAPITAL LETTER F ++ /xf0/x9f/x84/x96 PARENTHESIZED LATIN CAPITAL LETTER G ++ /xf0/x9f/x84/x97 PARENTHESIZED LATIN CAPITAL LETTER H ++ /xf0/x9f/x84/x98 PARENTHESIZED LATIN CAPITAL LETTER I ++ /xf0/x9f/x84/x99 PARENTHESIZED LATIN CAPITAL LETTER J ++ /xf0/x9f/x84/x9a PARENTHESIZED LATIN CAPITAL LETTER K ++ /xf0/x9f/x84/x9b PARENTHESIZED LATIN CAPITAL LETTER L ++ /xf0/x9f/x84/x9c PARENTHESIZED LATIN CAPITAL LETTER M ++ /xf0/x9f/x84/x9d PARENTHESIZED LATIN CAPITAL LETTER N ++ /xf0/x9f/x84/x9e PARENTHESIZED LATIN CAPITAL LETTER O ++ /xf0/x9f/x84/x9f PARENTHESIZED LATIN CAPITAL LETTER P ++ /xf0/x9f/x84/xa0 PARENTHESIZED LATIN CAPITAL LETTER Q ++ /xf0/x9f/x84/xa1 PARENTHESIZED LATIN CAPITAL LETTER R ++ /xf0/x9f/x84/xa2 PARENTHESIZED LATIN CAPITAL LETTER S ++ /xf0/x9f/x84/xa3 PARENTHESIZED LATIN CAPITAL LETTER T ++ /xf0/x9f/x84/xa4 PARENTHESIZED LATIN CAPITAL LETTER U ++ /xf0/x9f/x84/xa5 PARENTHESIZED LATIN CAPITAL LETTER V ++ /xf0/x9f/x84/xa6 PARENTHESIZED LATIN CAPITAL LETTER W ++ /xf0/x9f/x84/xa7 PARENTHESIZED LATIN CAPITAL LETTER X ++ /xf0/x9f/x84/xa8 PARENTHESIZED LATIN CAPITAL LETTER Y ++ /xf0/x9f/x84/xa9 PARENTHESIZED LATIN CAPITAL LETTER Z ++ /xf0/x9f/x84/xaa TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S ++ /xf0/x9f/x84/xab CIRCLED ITALIC LATIN CAPITAL LETTER C ++ /xf0/x9f/x84/xac CIRCLED ITALIC LATIN CAPITAL LETTER R ++ /xf0/x9f/x84/xad CIRCLED CD ++ /xf0/x9f/x84/xae CIRCLED WZ ++ /xf0/x9f/x84/xb0 SQUARED LATIN CAPITAL LETTER A ++ /xf0/x9f/x84/xb1 SQUARED LATIN CAPITAL LETTER B ++ /xf0/x9f/x84/xb2 SQUARED LATIN CAPITAL LETTER C ++ /xf0/x9f/x84/xb3 SQUARED LATIN CAPITAL LETTER D ++ /xf0/x9f/x84/xb4 SQUARED LATIN CAPITAL LETTER E ++ /xf0/x9f/x84/xb5 SQUARED LATIN CAPITAL LETTER F ++ /xf0/x9f/x84/xb6 SQUARED LATIN CAPITAL LETTER G ++ /xf0/x9f/x84/xb7 SQUARED LATIN CAPITAL LETTER H ++ /xf0/x9f/x84/xb8 SQUARED LATIN CAPITAL LETTER I ++ /xf0/x9f/x84/xb9 SQUARED LATIN CAPITAL LETTER J ++ /xf0/x9f/x84/xba SQUARED LATIN CAPITAL LETTER K ++ /xf0/x9f/x84/xbb SQUARED LATIN CAPITAL LETTER L ++ /xf0/x9f/x84/xbc SQUARED LATIN CAPITAL LETTER M ++ /xf0/x9f/x84/xbd SQUARED LATIN CAPITAL LETTER N ++ /xf0/x9f/x84/xbe SQUARED LATIN CAPITAL LETTER O ++ /xf0/x9f/x84/xbf SQUARED LATIN CAPITAL LETTER P ++ /xf0/x9f/x85/x80 SQUARED LATIN CAPITAL LETTER Q ++ /xf0/x9f/x85/x81 SQUARED LATIN CAPITAL LETTER R ++ /xf0/x9f/x85/x82 SQUARED LATIN CAPITAL LETTER S ++ /xf0/x9f/x85/x83 SQUARED LATIN CAPITAL LETTER T ++ /xf0/x9f/x85/x84 SQUARED LATIN CAPITAL LETTER U ++ /xf0/x9f/x85/x85 SQUARED LATIN CAPITAL LETTER V ++ /xf0/x9f/x85/x86 SQUARED LATIN CAPITAL LETTER W ++ /xf0/x9f/x85/x87 SQUARED LATIN CAPITAL LETTER X ++ /xf0/x9f/x85/x88 SQUARED LATIN CAPITAL LETTER Y ++ /xf0/x9f/x85/x89 SQUARED LATIN CAPITAL LETTER Z ++ /xf0/x9f/x85/x8a SQUARED HV ++ /xf0/x9f/x85/x8b SQUARED MV ++ /xf0/x9f/x85/x8c SQUARED SD ++ /xf0/x9f/x85/x8d SQUARED SS ++ /xf0/x9f/x85/x8e SQUARED PPV ++ /xf0/x9f/x85/x8f SQUARED WC ++ /xf0/x9f/x85/x90 NEGATIVE CIRCLED LATIN CAPITAL LETTER A ++ /xf0/x9f/x85/x91 NEGATIVE CIRCLED LATIN CAPITAL LETTER B ++ /xf0/x9f/x85/x92 NEGATIVE CIRCLED LATIN CAPITAL LETTER C ++ /xf0/x9f/x85/x93 NEGATIVE CIRCLED LATIN CAPITAL LETTER D ++ /xf0/x9f/x85/x94 NEGATIVE CIRCLED LATIN CAPITAL LETTER E ++ /xf0/x9f/x85/x95 NEGATIVE CIRCLED LATIN CAPITAL LETTER F ++ /xf0/x9f/x85/x96 NEGATIVE CIRCLED LATIN CAPITAL LETTER G ++ /xf0/x9f/x85/x97 NEGATIVE CIRCLED LATIN CAPITAL LETTER H ++ /xf0/x9f/x85/x98 NEGATIVE CIRCLED LATIN CAPITAL LETTER I ++ /xf0/x9f/x85/x99 NEGATIVE CIRCLED LATIN CAPITAL LETTER J ++ /xf0/x9f/x85/x9a NEGATIVE CIRCLED LATIN CAPITAL LETTER K ++ /xf0/x9f/x85/x9b NEGATIVE CIRCLED LATIN CAPITAL LETTER L ++ /xf0/x9f/x85/x9c NEGATIVE CIRCLED LATIN CAPITAL LETTER M ++ /xf0/x9f/x85/x9d NEGATIVE CIRCLED LATIN CAPITAL LETTER N ++ /xf0/x9f/x85/x9e NEGATIVE CIRCLED LATIN CAPITAL LETTER O ++ /xf0/x9f/x85/x9f NEGATIVE CIRCLED LATIN CAPITAL LETTER P ++ /xf0/x9f/x85/xa0 NEGATIVE CIRCLED LATIN CAPITAL LETTER Q ++ /xf0/x9f/x85/xa1 NEGATIVE CIRCLED LATIN CAPITAL LETTER R ++ /xf0/x9f/x85/xa2 NEGATIVE CIRCLED LATIN CAPITAL LETTER S ++ /xf0/x9f/x85/xa3 NEGATIVE CIRCLED LATIN CAPITAL LETTER T ++ /xf0/x9f/x85/xa4 NEGATIVE CIRCLED LATIN CAPITAL LETTER U ++ /xf0/x9f/x85/xa5 NEGATIVE CIRCLED LATIN CAPITAL LETTER V ++ /xf0/x9f/x85/xa6 NEGATIVE CIRCLED LATIN CAPITAL LETTER W ++ /xf0/x9f/x85/xa7 NEGATIVE CIRCLED LATIN CAPITAL LETTER X ++ /xf0/x9f/x85/xa8 NEGATIVE CIRCLED LATIN CAPITAL LETTER Y ++ /xf0/x9f/x85/xa9 NEGATIVE CIRCLED LATIN CAPITAL LETTER Z ++ /xf0/x9f/x85/xb0 NEGATIVE SQUARED LATIN CAPITAL LETTER A ++ /xf0/x9f/x85/xb1 NEGATIVE SQUARED LATIN CAPITAL LETTER B ++ /xf0/x9f/x85/xb2 NEGATIVE SQUARED LATIN CAPITAL LETTER C ++ /xf0/x9f/x85/xb3 NEGATIVE SQUARED LATIN CAPITAL LETTER D ++ /xf0/x9f/x85/xb4 NEGATIVE SQUARED LATIN CAPITAL LETTER E ++ /xf0/x9f/x85/xb5 NEGATIVE SQUARED LATIN CAPITAL LETTER F ++ /xf0/x9f/x85/xb6 NEGATIVE SQUARED LATIN CAPITAL LETTER G ++ /xf0/x9f/x85/xb7 NEGATIVE SQUARED LATIN CAPITAL LETTER H ++ /xf0/x9f/x85/xb8 NEGATIVE SQUARED LATIN CAPITAL LETTER I ++ /xf0/x9f/x85/xb9 NEGATIVE SQUARED LATIN CAPITAL LETTER J ++ /xf0/x9f/x85/xba NEGATIVE SQUARED LATIN CAPITAL LETTER K ++ /xf0/x9f/x85/xbb NEGATIVE SQUARED LATIN CAPITAL LETTER L ++ /xf0/x9f/x85/xbc NEGATIVE SQUARED LATIN CAPITAL LETTER M ++ /xf0/x9f/x85/xbd NEGATIVE SQUARED LATIN CAPITAL LETTER N ++ /xf0/x9f/x85/xbe NEGATIVE SQUARED LATIN CAPITAL LETTER O ++ /xf0/x9f/x85/xbf NEGATIVE SQUARED LATIN CAPITAL LETTER P ++ /xf0/x9f/x86/x80 NEGATIVE SQUARED LATIN CAPITAL LETTER Q ++ /xf0/x9f/x86/x81 NEGATIVE SQUARED LATIN CAPITAL LETTER R ++ /xf0/x9f/x86/x82 NEGATIVE SQUARED LATIN CAPITAL LETTER S ++ /xf0/x9f/x86/x83 NEGATIVE SQUARED LATIN CAPITAL LETTER T ++ /xf0/x9f/x86/x84 NEGATIVE SQUARED LATIN CAPITAL LETTER U ++ /xf0/x9f/x86/x85 NEGATIVE SQUARED LATIN CAPITAL LETTER V ++ /xf0/x9f/x86/x86 NEGATIVE SQUARED LATIN CAPITAL LETTER W ++ /xf0/x9f/x86/x87 NEGATIVE SQUARED LATIN CAPITAL LETTER X ++ /xf0/x9f/x86/x88 NEGATIVE SQUARED LATIN CAPITAL LETTER Y ++ /xf0/x9f/x86/x89 NEGATIVE SQUARED LATIN CAPITAL LETTER Z ++ /xf0/x9f/x86/x8a CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P ++ /xf0/x9f/x86/x8b NEGATIVE SQUARED IC ++ /xf0/x9f/x86/x8c NEGATIVE SQUARED PA ++ /xf0/x9f/x86/x8d NEGATIVE SQUARED SA ++ /xf0/x9f/x86/x8e NEGATIVE SQUARED AB ++ /xf0/x9f/x86/x8f NEGATIVE SQUARED WC ++ /xf0/x9f/x86/x90 SQUARE DJ ++ /xf0/x9f/x86/x91 SQUARED CL ++ /xf0/x9f/x86/x92 SQUARED COOL ++ /xf0/x9f/x86/x93 SQUARED FREE ++ /xf0/x9f/x86/x94 SQUARED ID ++ /xf0/x9f/x86/x95 SQUARED NEW ++ /xf0/x9f/x86/x96 SQUARED NG ++ /xf0/x9f/x86/x97 SQUARED OK ++ /xf0/x9f/x86/x98 SQUARED SOS ++ /xf0/x9f/x86/x99 SQUARED UP WITH EXCLAMATION MARK ++ /xf0/x9f/x86/x9a SQUARED VS ++ /xf0/x9f/x87/xa6 REGIONAL INDICATOR SYMBOL LETTER A ++ /xf0/x9f/x87/xa7 REGIONAL INDICATOR SYMBOL LETTER B ++ /xf0/x9f/x87/xa8 REGIONAL INDICATOR SYMBOL LETTER C ++ /xf0/x9f/x87/xa9 REGIONAL INDICATOR SYMBOL LETTER D ++ /xf0/x9f/x87/xaa REGIONAL INDICATOR SYMBOL LETTER E ++ /xf0/x9f/x87/xab REGIONAL INDICATOR SYMBOL LETTER F ++ /xf0/x9f/x87/xac REGIONAL INDICATOR SYMBOL LETTER G ++ /xf0/x9f/x87/xad REGIONAL INDICATOR SYMBOL LETTER H ++ /xf0/x9f/x87/xae REGIONAL INDICATOR SYMBOL LETTER I ++ /xf0/x9f/x87/xaf REGIONAL INDICATOR SYMBOL LETTER J ++ /xf0/x9f/x87/xb0 REGIONAL INDICATOR SYMBOL LETTER K ++ /xf0/x9f/x87/xb1 REGIONAL INDICATOR SYMBOL LETTER L ++ /xf0/x9f/x87/xb2 REGIONAL INDICATOR SYMBOL LETTER M ++ /xf0/x9f/x87/xb3 REGIONAL INDICATOR SYMBOL LETTER N ++ /xf0/x9f/x87/xb4 REGIONAL INDICATOR SYMBOL LETTER O ++ /xf0/x9f/x87/xb5 REGIONAL INDICATOR SYMBOL LETTER P ++ /xf0/x9f/x87/xb6 REGIONAL INDICATOR SYMBOL LETTER Q ++ /xf0/x9f/x87/xb7 REGIONAL INDICATOR SYMBOL LETTER R ++ /xf0/x9f/x87/xb8 REGIONAL INDICATOR SYMBOL LETTER S ++ /xf0/x9f/x87/xb9 REGIONAL INDICATOR SYMBOL LETTER T ++ /xf0/x9f/x87/xba REGIONAL INDICATOR SYMBOL LETTER U ++ /xf0/x9f/x87/xbb REGIONAL INDICATOR SYMBOL LETTER V ++ /xf0/x9f/x87/xbc REGIONAL INDICATOR SYMBOL LETTER W ++ /xf0/x9f/x87/xbd REGIONAL INDICATOR SYMBOL LETTER X ++ /xf0/x9f/x87/xbe REGIONAL INDICATOR SYMBOL LETTER Y ++ /xf0/x9f/x87/xbf REGIONAL INDICATOR SYMBOL LETTER Z ++ /xf0/x9f/x88/x80 SQUARE HIRAGANA HOKA ++ /xf0/x9f/x88/x81 SQUARED KATAKANA KOKO ++ /xf0/x9f/x88/x82 SQUARED KATAKANA SA ++ /xf0/x9f/x88/x90 SQUARED CJK UNIFIED IDEOGRAPH-624B ++ /xf0/x9f/x88/x91 SQUARED CJK UNIFIED IDEOGRAPH-5B57 ++ /xf0/x9f/x88/x92 SQUARED CJK UNIFIED IDEOGRAPH-53CC ++ /xf0/x9f/x88/x93 SQUARED KATAKANA DE ++ /xf0/x9f/x88/x94 SQUARED CJK UNIFIED IDEOGRAPH-4E8C ++ /xf0/x9f/x88/x95 SQUARED CJK UNIFIED IDEOGRAPH-591A ++ /xf0/x9f/x88/x96 SQUARED CJK UNIFIED IDEOGRAPH-89E3 ++ /xf0/x9f/x88/x97 SQUARED CJK UNIFIED IDEOGRAPH-5929 ++ /xf0/x9f/x88/x98 SQUARED CJK UNIFIED IDEOGRAPH-4EA4 ++ /xf0/x9f/x88/x99 SQUARED CJK UNIFIED IDEOGRAPH-6620 ++ /xf0/x9f/x88/x9a SQUARED CJK UNIFIED IDEOGRAPH-7121 ++ /xf0/x9f/x88/x9b SQUARED CJK UNIFIED IDEOGRAPH-6599 ++ /xf0/x9f/x88/x9c SQUARED CJK UNIFIED IDEOGRAPH-524D ++ /xf0/x9f/x88/x9d SQUARED CJK UNIFIED IDEOGRAPH-5F8C ++ /xf0/x9f/x88/x9e SQUARED CJK UNIFIED IDEOGRAPH-518D ++ /xf0/x9f/x88/x9f SQUARED CJK UNIFIED IDEOGRAPH-65B0 ++ /xf0/x9f/x88/xa0 SQUARED CJK UNIFIED IDEOGRAPH-521D ++ /xf0/x9f/x88/xa1 SQUARED CJK UNIFIED IDEOGRAPH-7D42 ++ /xf0/x9f/x88/xa2 SQUARED CJK UNIFIED IDEOGRAPH-751F ++ /xf0/x9f/x88/xa3 SQUARED CJK UNIFIED IDEOGRAPH-8CA9 ++ /xf0/x9f/x88/xa4 SQUARED CJK UNIFIED IDEOGRAPH-58F0 ++ /xf0/x9f/x88/xa5 SQUARED CJK UNIFIED IDEOGRAPH-5439 ++ /xf0/x9f/x88/xa6 SQUARED CJK UNIFIED IDEOGRAPH-6F14 ++ /xf0/x9f/x88/xa7 SQUARED CJK UNIFIED IDEOGRAPH-6295 ++ /xf0/x9f/x88/xa8 SQUARED CJK UNIFIED IDEOGRAPH-6355 ++ /xf0/x9f/x88/xa9 SQUARED CJK UNIFIED IDEOGRAPH-4E00 ++ /xf0/x9f/x88/xaa SQUARED CJK UNIFIED IDEOGRAPH-4E09 ++ /xf0/x9f/x88/xab SQUARED CJK UNIFIED IDEOGRAPH-904A ++ /xf0/x9f/x88/xac SQUARED CJK UNIFIED IDEOGRAPH-5DE6 ++ /xf0/x9f/x88/xad SQUARED CJK UNIFIED IDEOGRAPH-4E2D ++ /xf0/x9f/x88/xae SQUARED CJK UNIFIED IDEOGRAPH-53F3 ++ /xf0/x9f/x88/xaf SQUARED CJK UNIFIED IDEOGRAPH-6307 ++ /xf0/x9f/x88/xb0 SQUARED CJK UNIFIED IDEOGRAPH-8D70 ++ /xf0/x9f/x88/xb1 SQUARED CJK UNIFIED IDEOGRAPH-6253 ++ /xf0/x9f/x88/xb2 SQUARED CJK UNIFIED IDEOGRAPH-7981 ++ /xf0/x9f/x88/xb3 SQUARED CJK UNIFIED IDEOGRAPH-7A7A ++ /xf0/x9f/x88/xb4 SQUARED CJK UNIFIED IDEOGRAPH-5408 ++ /xf0/x9f/x88/xb5 SQUARED CJK UNIFIED IDEOGRAPH-6E80 ++ /xf0/x9f/x88/xb6 SQUARED CJK UNIFIED IDEOGRAPH-6709 ++ /xf0/x9f/x88/xb7 SQUARED CJK UNIFIED IDEOGRAPH-6708 ++ /xf0/x9f/x88/xb8 SQUARED CJK UNIFIED IDEOGRAPH-7533 ++ /xf0/x9f/x88/xb9 SQUARED CJK UNIFIED IDEOGRAPH-5272 ++ /xf0/x9f/x88/xba SQUARED CJK UNIFIED IDEOGRAPH-55B6 ++ /xf0/x9f/x89/x80 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C ++ /xf0/x9f/x89/x81 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09 ++ /xf0/x9f/x89/x82 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C ++ /xf0/x9f/x89/x83 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89 ++ /xf0/x9f/x89/x84 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9 ++ /xf0/x9f/x89/x85 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253 ++ /xf0/x9f/x89/x86 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7 ++ /xf0/x9f/x89/x87 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD ++ /xf0/x9f/x89/x88 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 ++ /xf0/x9f/x89/x90 CIRCLED IDEOGRAPH ADVANTAGE ++ /xf0/x9f/x89/x91 CIRCLED IDEOGRAPH ACCEPT ++ /xf0/x9f/x8c/x80 CYCLONE ++ /xf0/x9f/x8c/x81 FOGGY ++ /xf0/x9f/x8c/x82 CLOSED UMBRELLA ++ /xf0/x9f/x8c/x83 NIGHT WITH STARS ++ /xf0/x9f/x8c/x84 SUNRISE OVER MOUNTAINS ++ /xf0/x9f/x8c/x85 SUNRISE ++ /xf0/x9f/x8c/x86 CITYSCAPE AT DUSK ++ /xf0/x9f/x8c/x87 SUNSET OVER BUILDINGS ++ /xf0/x9f/x8c/x88 RAINBOW ++ /xf0/x9f/x8c/x89 BRIDGE AT NIGHT ++ /xf0/x9f/x8c/x8a WATER WAVE ++ /xf0/x9f/x8c/x8b VOLCANO ++ /xf0/x9f/x8c/x8c MILKY WAY ++ /xf0/x9f/x8c/x8d EARTH GLOBE EUROPE-AFRICA ++ /xf0/x9f/x8c/x8e EARTH GLOBE AMERICAS ++ /xf0/x9f/x8c/x8f EARTH GLOBE ASIA-AUSTRALIA ++ /xf0/x9f/x8c/x90 GLOBE WITH MERIDIANS ++ /xf0/x9f/x8c/x91 NEW MOON SYMBOL ++ /xf0/x9f/x8c/x92 WAXING CRESCENT MOON SYMBOL ++ /xf0/x9f/x8c/x93 FIRST QUARTER MOON SYMBOL ++ /xf0/x9f/x8c/x94 WAXING GIBBOUS MOON SYMBOL ++ /xf0/x9f/x8c/x95 FULL MOON SYMBOL ++ /xf0/x9f/x8c/x96 WANING GIBBOUS MOON SYMBOL ++ /xf0/x9f/x8c/x97 LAST QUARTER MOON SYMBOL ++ /xf0/x9f/x8c/x98 WANING CRESCENT MOON SYMBOL ++ /xf0/x9f/x8c/x99 CRESCENT MOON ++ /xf0/x9f/x8c/x9a NEW MOON WITH FACE ++ /xf0/x9f/x8c/x9b FIRST QUARTER MOON WITH FACE ++ /xf0/x9f/x8c/x9c LAST QUARTER MOON WITH FACE ++ /xf0/x9f/x8c/x9d FULL MOON WITH FACE ++ /xf0/x9f/x8c/x9e SUN WITH FACE ++ /xf0/x9f/x8c/x9f GLOWING STAR ++ /xf0/x9f/x8c/xa0 SHOOTING STAR ++ /xf0/x9f/x8c/xb0 CHESTNUT ++ /xf0/x9f/x8c/xb1 SEEDLING ++ /xf0/x9f/x8c/xb2 EVERGREEN TREE ++ /xf0/x9f/x8c/xb3 DECIDUOUS TREE ++ /xf0/x9f/x8c/xb4 PALM TREE ++ /xf0/x9f/x8c/xb5 CACTUS ++ /xf0/x9f/x8c/xb7 TULIP ++ /xf0/x9f/x8c/xb8 CHERRY BLOSSOM ++ /xf0/x9f/x8c/xb9 ROSE ++ /xf0/x9f/x8c/xba HIBISCUS ++ /xf0/x9f/x8c/xbb SUNFLOWER ++ /xf0/x9f/x8c/xbc BLOSSOM ++ /xf0/x9f/x8c/xbd EAR OF MAIZE ++ /xf0/x9f/x8c/xbe EAR OF RICE ++ /xf0/x9f/x8c/xbf HERB ++ /xf0/x9f/x8d/x80 FOUR LEAF CLOVER ++ /xf0/x9f/x8d/x81 MAPLE LEAF ++ /xf0/x9f/x8d/x82 FALLEN LEAF ++ /xf0/x9f/x8d/x83 LEAF FLUTTERING IN WIND ++ /xf0/x9f/x8d/x84 MUSHROOM ++ /xf0/x9f/x8d/x85 TOMATO ++ /xf0/x9f/x8d/x86 AUBERGINE ++ /xf0/x9f/x8d/x87 GRAPES ++ /xf0/x9f/x8d/x88 MELON ++ /xf0/x9f/x8d/x89 WATERMELON ++ /xf0/x9f/x8d/x8a TANGERINE ++ /xf0/x9f/x8d/x8b LEMON ++ /xf0/x9f/x8d/x8c BANANA ++ /xf0/x9f/x8d/x8d PINEAPPLE ++ /xf0/x9f/x8d/x8e RED APPLE ++ /xf0/x9f/x8d/x8f GREEN APPLE ++ /xf0/x9f/x8d/x90 PEAR ++ /xf0/x9f/x8d/x91 PEACH ++ /xf0/x9f/x8d/x92 CHERRIES ++ /xf0/x9f/x8d/x93 STRAWBERRY ++ /xf0/x9f/x8d/x94 HAMBURGER ++ /xf0/x9f/x8d/x95 SLICE OF PIZZA ++ /xf0/x9f/x8d/x96 MEAT ON BONE ++ /xf0/x9f/x8d/x97 POULTRY LEG ++ /xf0/x9f/x8d/x98 RICE CRACKER ++ /xf0/x9f/x8d/x99 RICE BALL ++ /xf0/x9f/x8d/x9a COOKED RICE ++ /xf0/x9f/x8d/x9b CURRY AND RICE ++ /xf0/x9f/x8d/x9c STEAMING BOWL ++ /xf0/x9f/x8d/x9d SPAGHETTI ++ /xf0/x9f/x8d/x9e BREAD ++ /xf0/x9f/x8d/x9f FRENCH FRIES ++ /xf0/x9f/x8d/xa0 ROASTED SWEET POTATO ++ /xf0/x9f/x8d/xa1 DANGO ++ /xf0/x9f/x8d/xa2 ODEN ++ /xf0/x9f/x8d/xa3 SUSHI ++ /xf0/x9f/x8d/xa4 FRIED SHRIMP ++ /xf0/x9f/x8d/xa5 FISH CAKE WITH SWIRL DESIGN ++ /xf0/x9f/x8d/xa6 SOFT ICE CREAM ++ /xf0/x9f/x8d/xa7 SHAVED ICE ++ /xf0/x9f/x8d/xa8 ICE CREAM ++ /xf0/x9f/x8d/xa9 DOUGHNUT ++ /xf0/x9f/x8d/xaa COOKIE ++ /xf0/x9f/x8d/xab CHOCOLATE BAR ++ /xf0/x9f/x8d/xac CANDY ++ /xf0/x9f/x8d/xad LOLLIPOP ++ /xf0/x9f/x8d/xae CUSTARD ++ /xf0/x9f/x8d/xaf HONEY POT ++ /xf0/x9f/x8d/xb0 SHORTCAKE ++ /xf0/x9f/x8d/xb1 BENTO BOX ++ /xf0/x9f/x8d/xb2 POT OF FOOD ++ /xf0/x9f/x8d/xb3 COOKING ++ /xf0/x9f/x8d/xb4 FORK AND KNIFE ++ /xf0/x9f/x8d/xb5 TEACUP WITHOUT HANDLE ++ /xf0/x9f/x8d/xb6 SAKE BOTTLE AND CUP ++ /xf0/x9f/x8d/xb7 WINE GLASS ++ /xf0/x9f/x8d/xb8 COCKTAIL GLASS ++ /xf0/x9f/x8d/xb9 TROPICAL DRINK ++ /xf0/x9f/x8d/xba BEER MUG ++ /xf0/x9f/x8d/xbb CLINKING BEER MUGS ++ /xf0/x9f/x8d/xbc BABY BOTTLE ++ /xf0/x9f/x8e/x80 RIBBON ++ /xf0/x9f/x8e/x81 WRAPPED PRESENT ++ /xf0/x9f/x8e/x82 BIRTHDAY CAKE ++ /xf0/x9f/x8e/x83 JACK-O-LANTERN ++ /xf0/x9f/x8e/x84 CHRISTMAS TREE ++ /xf0/x9f/x8e/x85 FATHER CHRISTMAS ++ /xf0/x9f/x8e/x86 FIREWORKS ++ /xf0/x9f/x8e/x87 FIREWORK SPARKLER ++ /xf0/x9f/x8e/x88 BALLOON ++ /xf0/x9f/x8e/x89 PARTY POPPER ++ /xf0/x9f/x8e/x8a CONFETTI BALL ++ /xf0/x9f/x8e/x8b TANABATA TREE ++ /xf0/x9f/x8e/x8c CROSSED FLAGS ++ /xf0/x9f/x8e/x8d PINE DECORATION ++ /xf0/x9f/x8e/x8e JAPANESE DOLLS ++ /xf0/x9f/x8e/x8f CARP STREAMER ++ /xf0/x9f/x8e/x90 WIND CHIME ++ /xf0/x9f/x8e/x91 MOON VIEWING CEREMONY ++ /xf0/x9f/x8e/x92 SCHOOL SATCHEL ++ /xf0/x9f/x8e/x93 GRADUATION CAP ++ /xf0/x9f/x8e/xa0 CAROUSEL HORSE ++ /xf0/x9f/x8e/xa1 FERRIS WHEEL ++ /xf0/x9f/x8e/xa2 ROLLER COASTER ++ /xf0/x9f/x8e/xa3 FISHING POLE AND FISH ++ /xf0/x9f/x8e/xa4 MICROPHONE ++ /xf0/x9f/x8e/xa5 MOVIE CAMERA ++ /xf0/x9f/x8e/xa6 CINEMA ++ /xf0/x9f/x8e/xa7 HEADPHONE ++ /xf0/x9f/x8e/xa8 ARTIST PALETTE ++ /xf0/x9f/x8e/xa9 TOP HAT ++ /xf0/x9f/x8e/xaa CIRCUS TENT ++ /xf0/x9f/x8e/xab TICKET ++ /xf0/x9f/x8e/xac CLAPPER BOARD ++ /xf0/x9f/x8e/xad PERFORMING ARTS ++ /xf0/x9f/x8e/xae VIDEO GAME ++ /xf0/x9f/x8e/xaf DIRECT HIT ++ /xf0/x9f/x8e/xb0 SLOT MACHINE ++ /xf0/x9f/x8e/xb1 BILLIARDS ++ /xf0/x9f/x8e/xb2 GAME DIE ++ /xf0/x9f/x8e/xb3 BOWLING ++ /xf0/x9f/x8e/xb4 FLOWER PLAYING CARDS ++ /xf0/x9f/x8e/xb5 MUSICAL NOTE ++ /xf0/x9f/x8e/xb6 MULTIPLE MUSICAL NOTES ++ /xf0/x9f/x8e/xb7 SAXOPHONE ++ /xf0/x9f/x8e/xb8 GUITAR ++ /xf0/x9f/x8e/xb9 MUSICAL KEYBOARD ++ /xf0/x9f/x8e/xba TRUMPET ++ /xf0/x9f/x8e/xbb VIOLIN ++ /xf0/x9f/x8e/xbc MUSICAL SCORE ++ /xf0/x9f/x8e/xbd RUNNING SHIRT WITH SASH ++ /xf0/x9f/x8e/xbe TENNIS RACQUET AND BALL ++ /xf0/x9f/x8e/xbf SKI AND SKI BOOT ++ /xf0/x9f/x8f/x80 BASKETBALL AND HOOP ++ /xf0/x9f/x8f/x81 CHEQUERED FLAG ++ /xf0/x9f/x8f/x82 SNOWBOARDER ++ /xf0/x9f/x8f/x83 RUNNER ++ /xf0/x9f/x8f/x84 SURFER ++ /xf0/x9f/x8f/x86 TROPHY ++ /xf0/x9f/x8f/x87 HORSE RACING ++ /xf0/x9f/x8f/x88 AMERICAN FOOTBALL ++ /xf0/x9f/x8f/x89 RUGBY FOOTBALL ++ /xf0/x9f/x8f/x8a SWIMMER ++ /xf0/x9f/x8f/xa0 HOUSE BUILDING ++ /xf0/x9f/x8f/xa1 HOUSE WITH GARDEN ++ /xf0/x9f/x8f/xa2 OFFICE BUILDING ++ /xf0/x9f/x8f/xa3 JAPANESE POST OFFICE ++ /xf0/x9f/x8f/xa4 EUROPEAN POST OFFICE ++ /xf0/x9f/x8f/xa5 HOSPITAL ++ /xf0/x9f/x8f/xa6 BANK ++ /xf0/x9f/x8f/xa7 AUTOMATED TELLER MACHINE ++ /xf0/x9f/x8f/xa8 HOTEL ++ /xf0/x9f/x8f/xa9 LOVE HOTEL ++ /xf0/x9f/x8f/xaa CONVENIENCE STORE ++ /xf0/x9f/x8f/xab SCHOOL ++ /xf0/x9f/x8f/xac DEPARTMENT STORE ++ /xf0/x9f/x8f/xad FACTORY ++ /xf0/x9f/x8f/xae IZAKAYA LANTERN ++ /xf0/x9f/x8f/xaf JAPANESE CASTLE ++ /xf0/x9f/x8f/xb0 EUROPEAN CASTLE ++ /xf0/x9f/x90/x80 RAT ++ /xf0/x9f/x90/x81 MOUSE ++ /xf0/x9f/x90/x82 OX ++ /xf0/x9f/x90/x83 WATER BUFFALO ++ /xf0/x9f/x90/x84 COW ++ /xf0/x9f/x90/x85 TIGER ++ /xf0/x9f/x90/x86 LEOPARD ++ /xf0/x9f/x90/x87 RABBIT ++ /xf0/x9f/x90/x88 CAT ++ /xf0/x9f/x90/x89 DRAGON ++ /xf0/x9f/x90/x8a CROCODILE ++ /xf0/x9f/x90/x8b WHALE ++ /xf0/x9f/x90/x8c SNAIL ++ /xf0/x9f/x90/x8d SNAKE ++ /xf0/x9f/x90/x8e HORSE ++ /xf0/x9f/x90/x8f RAM ++ /xf0/x9f/x90/x90 GOAT ++ /xf0/x9f/x90/x91 SHEEP ++ /xf0/x9f/x90/x92 MONKEY ++ /xf0/x9f/x90/x93 ROOSTER ++ /xf0/x9f/x90/x94 CHICKEN ++ /xf0/x9f/x90/x95 DOG ++ /xf0/x9f/x90/x96 PIG ++ /xf0/x9f/x90/x97 BOAR ++ /xf0/x9f/x90/x98 ELEPHANT ++ /xf0/x9f/x90/x99 OCTOPUS ++ /xf0/x9f/x90/x9a SPIRAL SHELL ++ /xf0/x9f/x90/x9b BUG ++ /xf0/x9f/x90/x9c ANT ++ /xf0/x9f/x90/x9d HONEYBEE ++ /xf0/x9f/x90/x9e LADY BEETLE ++ /xf0/x9f/x90/x9f FISH ++ /xf0/x9f/x90/xa0 TROPICAL FISH ++ /xf0/x9f/x90/xa1 BLOWFISH ++ /xf0/x9f/x90/xa2 TURTLE ++ /xf0/x9f/x90/xa3 HATCHING CHICK ++ /xf0/x9f/x90/xa4 BABY CHICK ++ /xf0/x9f/x90/xa5 FRONT-FACING BABY CHICK ++ /xf0/x9f/x90/xa6 BIRD ++ /xf0/x9f/x90/xa7 PENGUIN ++ /xf0/x9f/x90/xa8 KOALA ++ /xf0/x9f/x90/xa9 POODLE ++ /xf0/x9f/x90/xaa DROMEDARY CAMEL ++ /xf0/x9f/x90/xab BACTRIAN CAMEL ++ /xf0/x9f/x90/xac DOLPHIN ++ /xf0/x9f/x90/xad MOUSE FACE ++ /xf0/x9f/x90/xae COW FACE ++ /xf0/x9f/x90/xaf TIGER FACE ++ /xf0/x9f/x90/xb0 RABBIT FACE ++ /xf0/x9f/x90/xb1 CAT FACE ++ /xf0/x9f/x90/xb2 DRAGON FACE ++ /xf0/x9f/x90/xb3 SPOUTING WHALE ++ /xf0/x9f/x90/xb4 HORSE FACE ++ /xf0/x9f/x90/xb5 MONKEY FACE ++ /xf0/x9f/x90/xb6 DOG FACE ++ /xf0/x9f/x90/xb7 PIG FACE ++ /xf0/x9f/x90/xb8 FROG FACE ++ /xf0/x9f/x90/xb9 HAMSTER FACE ++ /xf0/x9f/x90/xba WOLF FACE ++ /xf0/x9f/x90/xbb BEAR FACE ++ /xf0/x9f/x90/xbc PANDA FACE ++ /xf0/x9f/x90/xbd PIG NOSE ++ /xf0/x9f/x90/xbe PAW PRINTS ++ /xf0/x9f/x91/x80 EYES ++ /xf0/x9f/x91/x82 EAR ++ /xf0/x9f/x91/x83 NOSE ++ /xf0/x9f/x91/x84 MOUTH ++ /xf0/x9f/x91/x85 TONGUE ++ /xf0/x9f/x91/x86 WHITE UP POINTING BACKHAND INDEX ++ /xf0/x9f/x91/x87 WHITE DOWN POINTING BACKHAND INDEX ++ /xf0/x9f/x91/x88 WHITE LEFT POINTING BACKHAND INDEX ++ /xf0/x9f/x91/x89 WHITE RIGHT POINTING BACKHAND INDEX ++ /xf0/x9f/x91/x8a FISTED HAND SIGN ++ /xf0/x9f/x91/x8b WAVING HAND SIGN ++ /xf0/x9f/x91/x8c OK HAND SIGN ++ /xf0/x9f/x91/x8d THUMBS UP SIGN ++ /xf0/x9f/x91/x8e THUMBS DOWN SIGN ++ /xf0/x9f/x91/x8f CLAPPING HANDS SIGN ++ /xf0/x9f/x91/x90 OPEN HANDS SIGN ++ /xf0/x9f/x91/x91 CROWN ++ /xf0/x9f/x91/x92 WOMANS HAT ++ /xf0/x9f/x91/x93 EYEGLASSES ++ /xf0/x9f/x91/x94 NECKTIE ++ /xf0/x9f/x91/x95 T-SHIRT ++ /xf0/x9f/x91/x96 JEANS ++ /xf0/x9f/x91/x97 DRESS ++ /xf0/x9f/x91/x98 KIMONO ++ /xf0/x9f/x91/x99 BIKINI ++ /xf0/x9f/x91/x9a WOMANS CLOTHES ++ /xf0/x9f/x91/x9b PURSE ++ /xf0/x9f/x91/x9c HANDBAG ++ /xf0/x9f/x91/x9d POUCH ++ /xf0/x9f/x91/x9e MANS SHOE ++ /xf0/x9f/x91/x9f ATHLETIC SHOE ++ /xf0/x9f/x91/xa0 HIGH-HEELED SHOE ++ /xf0/x9f/x91/xa1 WOMANS SANDAL ++ /xf0/x9f/x91/xa2 WOMANS BOOTS ++ /xf0/x9f/x91/xa3 FOOTPRINTS ++ /xf0/x9f/x91/xa4 BUST IN SILHOUETTE ++ /xf0/x9f/x91/xa5 BUSTS IN SILHOUETTE ++ /xf0/x9f/x91/xa6 BOY ++ /xf0/x9f/x91/xa7 GIRL ++ /xf0/x9f/x91/xa8 MAN ++ /xf0/x9f/x91/xa9 WOMAN ++ /xf0/x9f/x91/xaa FAMILY ++ /xf0/x9f/x91/xab MAN AND WOMAN HOLDING HANDS ++ /xf0/x9f/x91/xac TWO MEN HOLDING HANDS ++ /xf0/x9f/x91/xad TWO WOMEN HOLDING HANDS ++ /xf0/x9f/x91/xae POLICE OFFICER ++ /xf0/x9f/x91/xaf WOMAN WITH BUNNY EARS ++ /xf0/x9f/x91/xb0 BRIDE WITH VEIL ++ /xf0/x9f/x91/xb1 PERSON WITH BLOND HAIR ++ /xf0/x9f/x91/xb2 MAN WITH GUA PI MAO ++ /xf0/x9f/x91/xb3 MAN WITH TURBAN ++ /xf0/x9f/x91/xb4 OLDER MAN ++ /xf0/x9f/x91/xb5 OLDER WOMAN ++ /xf0/x9f/x91/xb6 BABY ++ /xf0/x9f/x91/xb7 CONSTRUCTION WORKER ++ /xf0/x9f/x91/xb8 PRINCESS ++ /xf0/x9f/x91/xb9 JAPANESE OGRE ++ /xf0/x9f/x91/xba JAPANESE GOBLIN ++ /xf0/x9f/x91/xbb GHOST ++ /xf0/x9f/x91/xbc BABY ANGEL ++ /xf0/x9f/x91/xbd EXTRATERRESTRIAL ALIEN ++ /xf0/x9f/x91/xbe ALIEN MONSTER ++ /xf0/x9f/x91/xbf IMP ++ /xf0/x9f/x92/x80 SKULL ++ /xf0/x9f/x92/x81 INFORMATION DESK PERSON ++ /xf0/x9f/x92/x82 GUARDSMAN ++ /xf0/x9f/x92/x83 DANCER ++ /xf0/x9f/x92/x84 LIPSTICK ++ /xf0/x9f/x92/x85 NAIL POLISH ++ /xf0/x9f/x92/x86 FACE MASSAGE ++ /xf0/x9f/x92/x87 HAIRCUT ++ /xf0/x9f/x92/x88 BARBER POLE ++ /xf0/x9f/x92/x89 SYRINGE ++ /xf0/x9f/x92/x8a PILL ++ /xf0/x9f/x92/x8b KISS MARK ++ /xf0/x9f/x92/x8c LOVE LETTER ++ /xf0/x9f/x92/x8d RING ++ /xf0/x9f/x92/x8e GEM STONE ++ /xf0/x9f/x92/x8f KISS ++ /xf0/x9f/x92/x90 BOUQUET ++ /xf0/x9f/x92/x91 COUPLE WITH HEART ++ /xf0/x9f/x92/x92 WEDDING ++ /xf0/x9f/x92/x93 BEATING HEART ++ /xf0/x9f/x92/x94 BROKEN HEART ++ /xf0/x9f/x92/x95 TWO HEARTS ++ /xf0/x9f/x92/x96 SPARKLING HEART ++ /xf0/x9f/x92/x97 GROWING HEART ++ /xf0/x9f/x92/x98 HEART WITH ARROW ++ /xf0/x9f/x92/x99 BLUE HEART ++ /xf0/x9f/x92/x9a GREEN HEART ++ /xf0/x9f/x92/x9b YELLOW HEART ++ /xf0/x9f/x92/x9c PURPLE HEART ++ /xf0/x9f/x92/x9d HEART WITH RIBBON ++ /xf0/x9f/x92/x9e REVOLVING HEARTS ++ /xf0/x9f/x92/x9f HEART DECORATION ++ /xf0/x9f/x92/xa0 DIAMOND SHAPE WITH A DOT INSIDE ++ /xf0/x9f/x92/xa1 ELECTRIC LIGHT BULB ++ /xf0/x9f/x92/xa2 ANGER SYMBOL ++ /xf0/x9f/x92/xa3 BOMB ++ /xf0/x9f/x92/xa4 SLEEPING SYMBOL ++ /xf0/x9f/x92/xa5 COLLISION SYMBOL ++ /xf0/x9f/x92/xa6 SPLASHING SWEAT SYMBOL ++ /xf0/x9f/x92/xa7 DROPLET ++ /xf0/x9f/x92/xa8 DASH SYMBOL ++ /xf0/x9f/x92/xa9 PILE OF POO ++ /xf0/x9f/x92/xaa FLEXED BICEPS ++ /xf0/x9f/x92/xab DIZZY SYMBOL ++ /xf0/x9f/x92/xac SPEECH BALLOON ++ /xf0/x9f/x92/xad THOUGHT BALLOON ++ /xf0/x9f/x92/xae WHITE FLOWER ++ /xf0/x9f/x92/xaf HUNDRED POINTS SYMBOL ++ /xf0/x9f/x92/xb0 MONEY BAG ++ /xf0/x9f/x92/xb1 CURRENCY EXCHANGE ++ /xf0/x9f/x92/xb2 HEAVY DOLLAR SIGN ++ /xf0/x9f/x92/xb3 CREDIT CARD ++ /xf0/x9f/x92/xb4 BANKNOTE WITH YEN SIGN ++ /xf0/x9f/x92/xb5 BANKNOTE WITH DOLLAR SIGN ++ /xf0/x9f/x92/xb6 BANKNOTE WITH EURO SIGN ++ /xf0/x9f/x92/xb7 BANKNOTE WITH POUND SIGN ++ /xf0/x9f/x92/xb8 MONEY WITH WINGS ++ /xf0/x9f/x92/xb9 CHART WITH UPWARDS TREND AND YEN SIGN ++ /xf0/x9f/x92/xba SEAT ++ /xf0/x9f/x92/xbb PERSONAL COMPUTER ++ /xf0/x9f/x92/xbc BRIEFCASE ++ /xf0/x9f/x92/xbd MINIDISC ++ /xf0/x9f/x92/xbe FLOPPY DISK ++ /xf0/x9f/x92/xbf OPTICAL DISC ++ /xf0/x9f/x93/x80 DVD ++ /xf0/x9f/x93/x81 FILE FOLDER ++ /xf0/x9f/x93/x82 OPEN FILE FOLDER ++ /xf0/x9f/x93/x83 PAGE WITH CURL ++ /xf0/x9f/x93/x84 PAGE FACING UP ++ /xf0/x9f/x93/x85 CALENDAR ++ /xf0/x9f/x93/x86 TEAR-OFF CALENDAR ++ /xf0/x9f/x93/x87 CARD INDEX ++ /xf0/x9f/x93/x88 CHART WITH UPWARDS TREND ++ /xf0/x9f/x93/x89 CHART WITH DOWNWARDS TREND ++ /xf0/x9f/x93/x8a BAR CHART ++ /xf0/x9f/x93/x8b CLIPBOARD ++ /xf0/x9f/x93/x8c PUSHPIN ++ /xf0/x9f/x93/x8d ROUND PUSHPIN ++ /xf0/x9f/x93/x8e PAPERCLIP ++ /xf0/x9f/x93/x8f STRAIGHT RULER ++ /xf0/x9f/x93/x90 TRIANGULAR RULER ++ /xf0/x9f/x93/x91 BOOKMARK TABS ++ /xf0/x9f/x93/x92 LEDGER ++ /xf0/x9f/x93/x93 NOTEBOOK ++ /xf0/x9f/x93/x94 NOTEBOOK WITH DECORATIVE COVER ++ /xf0/x9f/x93/x95 CLOSED BOOK ++ /xf0/x9f/x93/x96 OPEN BOOK ++ /xf0/x9f/x93/x97 GREEN BOOK ++ /xf0/x9f/x93/x98 BLUE BOOK ++ /xf0/x9f/x93/x99 ORANGE BOOK ++ /xf0/x9f/x93/x9a BOOKS ++ /xf0/x9f/x93/x9b NAME BADGE ++ /xf0/x9f/x93/x9c SCROLL ++ /xf0/x9f/x93/x9d MEMO ++ /xf0/x9f/x93/x9e TELEPHONE RECEIVER ++ /xf0/x9f/x93/x9f PAGER ++ /xf0/x9f/x93/xa0 FAX MACHINE ++ /xf0/x9f/x93/xa1 SATELLITE ANTENNA ++ /xf0/x9f/x93/xa2 PUBLIC ADDRESS LOUDSPEAKER ++ /xf0/x9f/x93/xa3 CHEERING MEGAPHONE ++ /xf0/x9f/x93/xa4 OUTBOX TRAY ++ /xf0/x9f/x93/xa5 INBOX TRAY ++ /xf0/x9f/x93/xa6 PACKAGE ++ /xf0/x9f/x93/xa7 E-MAIL SYMBOL ++ /xf0/x9f/x93/xa8 INCOMING ENVELOPE ++ /xf0/x9f/x93/xa9 ENVELOPE WITH DOWNWARDS ARROW ABOVE ++ /xf0/x9f/x93/xaa CLOSED MAILBOX WITH LOWERED FLAG ++ /xf0/x9f/x93/xab CLOSED MAILBOX WITH RAISED FLAG ++ /xf0/x9f/x93/xac OPEN MAILBOX WITH RAISED FLAG ++ /xf0/x9f/x93/xad OPEN MAILBOX WITH LOWERED FLAG ++ /xf0/x9f/x93/xae POSTBOX ++ /xf0/x9f/x93/xaf POSTAL HORN ++ /xf0/x9f/x93/xb0 NEWSPAPER ++ /xf0/x9f/x93/xb1 MOBILE PHONE ++ /xf0/x9f/x93/xb2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT ++ /xf0/x9f/x93/xb3 VIBRATION MODE ++ /xf0/x9f/x93/xb4 MOBILE PHONE OFF ++ /xf0/x9f/x93/xb5 NO MOBILE PHONES ++ /xf0/x9f/x93/xb6 ANTENNA WITH BARS ++ /xf0/x9f/x93/xb7 CAMERA ++ /xf0/x9f/x93/xb9 VIDEO CAMERA ++ /xf0/x9f/x93/xba TELEVISION ++ /xf0/x9f/x93/xbb RADIO ++ /xf0/x9f/x93/xbc VIDEOCASSETTE ++ /xf0/x9f/x94/x80 TWISTED RIGHTWARDS ARROWS ++ /xf0/x9f/x94/x81 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS ++ /xf0/x9f/x94/x82 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY ++ /xf0/x9f/x94/x83 CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS ++ /xf0/x9f/x94/x84 ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS ++ /xf0/x9f/x94/x85 LOW BRIGHTNESS SYMBOL ++ /xf0/x9f/x94/x86 HIGH BRIGHTNESS SYMBOL ++ /xf0/x9f/x94/x87 SPEAKER WITH CANCELLATION STROKE ++ /xf0/x9f/x94/x88 SPEAKER ++ /xf0/x9f/x94/x89 SPEAKER WITH ONE SOUND WAVE ++ /xf0/x9f/x94/x8a SPEAKER WITH THREE SOUND WAVES ++ /xf0/x9f/x94/x8b BATTERY ++ /xf0/x9f/x94/x8c ELECTRIC PLUG ++ /xf0/x9f/x94/x8d LEFT-POINTING MAGNIFYING GLASS ++ /xf0/x9f/x94/x8e RIGHT-POINTING MAGNIFYING GLASS ++ /xf0/x9f/x94/x8f LOCK WITH INK PEN ++ /xf0/x9f/x94/x90 CLOSED LOCK WITH KEY ++ /xf0/x9f/x94/x91 KEY ++ /xf0/x9f/x94/x92 LOCK ++ /xf0/x9f/x94/x93 OPEN LOCK ++ /xf0/x9f/x94/x94 BELL ++ /xf0/x9f/x94/x95 BELL WITH CANCELLATION STROKE ++ /xf0/x9f/x94/x96 BOOKMARK ++ /xf0/x9f/x94/x97 LINK SYMBOL ++ /xf0/x9f/x94/x98 RADIO BUTTON ++ /xf0/x9f/x94/x99 BACK WITH LEFTWARDS ARROW ABOVE ++ /xf0/x9f/x94/x9a END WITH LEFTWARDS ARROW ABOVE ++ /xf0/x9f/x94/x9b ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE ++ /xf0/x9f/x94/x9c SOON WITH RIGHTWARDS ARROW ABOVE ++ /xf0/x9f/x94/x9d TOP WITH UPWARDS ARROW ABOVE ++ /xf0/x9f/x94/x9e NO ONE UNDER EIGHTEEN SYMBOL ++ /xf0/x9f/x94/x9f KEYCAP TEN ++ /xf0/x9f/x94/xa0 INPUT SYMBOL FOR LATIN CAPITAL LETTERS ++ /xf0/x9f/x94/xa1 INPUT SYMBOL FOR LATIN SMALL LETTERS ++ /xf0/x9f/x94/xa2 INPUT SYMBOL FOR NUMBERS ++ /xf0/x9f/x94/xa3 INPUT SYMBOL FOR SYMBOLS ++ /xf0/x9f/x94/xa4 INPUT SYMBOL FOR LATIN LETTERS ++ /xf0/x9f/x94/xa5 FIRE ++ /xf0/x9f/x94/xa6 ELECTRIC TORCH ++ /xf0/x9f/x94/xa7 WRENCH ++ /xf0/x9f/x94/xa8 HAMMER ++ /xf0/x9f/x94/xa9 NUT AND BOLT ++ /xf0/x9f/x94/xaa HOCHO ++ /xf0/x9f/x94/xab PISTOL ++ /xf0/x9f/x94/xac MICROSCOPE ++ /xf0/x9f/x94/xad TELESCOPE ++ /xf0/x9f/x94/xae CRYSTAL BALL ++ /xf0/x9f/x94/xaf SIX POINTED STAR WITH MIDDLE DOT ++ /xf0/x9f/x94/xb0 JAPANESE SYMBOL FOR BEGINNER ++ /xf0/x9f/x94/xb1 TRIDENT EMBLEM ++ /xf0/x9f/x94/xb2 BLACK SQUARE BUTTON ++ /xf0/x9f/x94/xb3 WHITE SQUARE BUTTON ++ /xf0/x9f/x94/xb4 LARGE RED CIRCLE ++ /xf0/x9f/x94/xb5 LARGE BLUE CIRCLE ++ /xf0/x9f/x94/xb6 LARGE ORANGE DIAMOND ++ /xf0/x9f/x94/xb7 LARGE BLUE DIAMOND ++ /xf0/x9f/x94/xb8 SMALL ORANGE DIAMOND ++ /xf0/x9f/x94/xb9 SMALL BLUE DIAMOND ++ /xf0/x9f/x94/xba UP-POINTING RED TRIANGLE ++ /xf0/x9f/x94/xbb DOWN-POINTING RED TRIANGLE ++ /xf0/x9f/x94/xbc UP-POINTING SMALL RED TRIANGLE ++ /xf0/x9f/x94/xbd DOWN-POINTING SMALL RED TRIANGLE ++ /xf0/x9f/x95/x90 CLOCK FACE ONE OCLOCK ++ /xf0/x9f/x95/x91 CLOCK FACE TWO OCLOCK ++ /xf0/x9f/x95/x92 CLOCK FACE THREE OCLOCK ++ /xf0/x9f/x95/x93 CLOCK FACE FOUR OCLOCK ++ /xf0/x9f/x95/x94 CLOCK FACE FIVE OCLOCK ++ /xf0/x9f/x95/x95 CLOCK FACE SIX OCLOCK ++ /xf0/x9f/x95/x96 CLOCK FACE SEVEN OCLOCK ++ /xf0/x9f/x95/x97 CLOCK FACE EIGHT OCLOCK ++ /xf0/x9f/x95/x98 CLOCK FACE NINE OCLOCK ++ /xf0/x9f/x95/x99 CLOCK FACE TEN OCLOCK ++ /xf0/x9f/x95/x9a CLOCK FACE ELEVEN OCLOCK ++ /xf0/x9f/x95/x9b CLOCK FACE TWELVE OCLOCK ++ /xf0/x9f/x95/x9c CLOCK FACE ONE-THIRTY ++ /xf0/x9f/x95/x9d CLOCK FACE TWO-THIRTY ++ /xf0/x9f/x95/x9e CLOCK FACE THREE-THIRTY ++ /xf0/x9f/x95/x9f CLOCK FACE FOUR-THIRTY ++ /xf0/x9f/x95/xa0 CLOCK FACE FIVE-THIRTY ++ /xf0/x9f/x95/xa1 CLOCK FACE SIX-THIRTY ++ /xf0/x9f/x95/xa2 CLOCK FACE SEVEN-THIRTY ++ /xf0/x9f/x95/xa3 CLOCK FACE EIGHT-THIRTY ++ /xf0/x9f/x95/xa4 CLOCK FACE NINE-THIRTY ++ /xf0/x9f/x95/xa5 CLOCK FACE TEN-THIRTY ++ /xf0/x9f/x95/xa6 CLOCK FACE ELEVEN-THIRTY ++ /xf0/x9f/x95/xa7 CLOCK FACE TWELVE-THIRTY ++ /xf0/x9f/x97/xbb MOUNT FUJI ++ /xf0/x9f/x97/xbc TOKYO TOWER ++ /xf0/x9f/x97/xbd STATUE OF LIBERTY ++ /xf0/x9f/x97/xbe SILHOUETTE OF JAPAN ++ /xf0/x9f/x97/xbf MOYAI ++ /xf0/x9f/x98/x81 GRINNING FACE WITH SMILING EYES ++ /xf0/x9f/x98/x82 FACE WITH TEARS OF JOY ++ /xf0/x9f/x98/x83 SMILING FACE WITH OPEN MOUTH ++ /xf0/x9f/x98/x84 SMILING FACE WITH OPEN MOUTH AND SMILING EYES ++ /xf0/x9f/x98/x85 SMILING FACE WITH OPEN MOUTH AND COLD SWEAT ++ /xf0/x9f/x98/x86 SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES ++ /xf0/x9f/x98/x87 SMILING FACE WITH HALO ++ /xf0/x9f/x98/x88 SMILING FACE WITH HORNS ++ /xf0/x9f/x98/x89 WINKING FACE ++ /xf0/x9f/x98/x8a SMILING FACE WITH SMILING EYES ++ /xf0/x9f/x98/x8b FACE SAVOURING DELICIOUS FOOD ++ /xf0/x9f/x98/x8c RELIEVED FACE ++ /xf0/x9f/x98/x8d SMILING FACE WITH HEART-SHAPED EYES ++ /xf0/x9f/x98/x8e SMILING FACE WITH SUNGLASSES ++ /xf0/x9f/x98/x8f SMIRKING FACE ++ /xf0/x9f/x98/x90 NEUTRAL FACE ++ /xf0/x9f/x98/x92 UNAMUSED FACE ++ /xf0/x9f/x98/x93 FACE WITH COLD SWEAT ++ /xf0/x9f/x98/x94 PENSIVE FACE ++ /xf0/x9f/x98/x96 CONFOUNDED FACE ++ /xf0/x9f/x98/x98 FACE THROWING A KISS ++ /xf0/x9f/x98/x9a KISSING FACE WITH CLOSED EYES ++ /xf0/x9f/x98/x9c FACE WITH STUCK-OUT TONGUE AND WINKING EYE ++ /xf0/x9f/x98/x9d FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES ++ /xf0/x9f/x98/x9e DISAPPOINTED FACE ++ /xf0/x9f/x98/xa0 ANGRY FACE ++ /xf0/x9f/x98/xa1 POUTING FACE ++ /xf0/x9f/x98/xa2 CRYING FACE ++ /xf0/x9f/x98/xa3 PERSEVERING FACE ++ /xf0/x9f/x98/xa4 FACE WITH LOOK OF TRIUMPH ++ /xf0/x9f/x98/xa5 DISAPPOINTED BUT RELIEVED FACE ++ /xf0/x9f/x98/xa8 FEARFUL FACE ++ /xf0/x9f/x98/xa9 WEARY FACE ++ /xf0/x9f/x98/xaa SLEEPY FACE ++ /xf0/x9f/x98/xab TIRED FACE ++ /xf0/x9f/x98/xad LOUDLY CRYING FACE ++ /xf0/x9f/x98/xb0 FACE WITH OPEN MOUTH AND COLD SWEAT ++ /xf0/x9f/x98/xb1 FACE SCREAMING IN FEAR ++ /xf0/x9f/x98/xb2 ASTONISHED FACE ++ /xf0/x9f/x98/xb3 FLUSHED FACE ++ /xf0/x9f/x98/xb5 DIZZY FACE ++ /xf0/x9f/x98/xb6 FACE WITHOUT MOUTH ++ /xf0/x9f/x98/xb7 FACE WITH MEDICAL MASK ++ /xf0/x9f/x98/xb8 GRINNING CAT FACE WITH SMILING EYES ++ /xf0/x9f/x98/xb9 CAT FACE WITH TEARS OF JOY ++ /xf0/x9f/x98/xba SMILING CAT FACE WITH OPEN MOUTH ++ /xf0/x9f/x98/xbb SMILING CAT FACE WITH HEART-SHAPED EYES ++ /xf0/x9f/x98/xbc CAT FACE WITH WRY SMILE ++ /xf0/x9f/x98/xbd KISSING CAT FACE WITH CLOSED EYES ++ /xf0/x9f/x98/xbe POUTING CAT FACE ++ /xf0/x9f/x98/xbf CRYING CAT FACE ++ /xf0/x9f/x99/x80 WEARY CAT FACE ++ /xf0/x9f/x99/x85 FACE WITH NO GOOD GESTURE ++ /xf0/x9f/x99/x86 FACE WITH OK GESTURE ++ /xf0/x9f/x99/x87 PERSON BOWING DEEPLY ++ /xf0/x9f/x99/x88 SEE-NO-EVIL MONKEY ++ /xf0/x9f/x99/x89 HEAR-NO-EVIL MONKEY ++ /xf0/x9f/x99/x8a SPEAK-NO-EVIL MONKEY ++ /xf0/x9f/x99/x8b HAPPY PERSON RAISING ONE HAND ++ /xf0/x9f/x99/x8c PERSON RAISING BOTH HANDS IN CELEBRATION ++ /xf0/x9f/x99/x8d PERSON FROWNING ++ /xf0/x9f/x99/x8e PERSON WITH POUTING FACE ++ /xf0/x9f/x99/x8f PERSON WITH FOLDED HANDS ++ /xf0/x9f/x9a/x80 ROCKET ++ /xf0/x9f/x9a/x81 HELICOPTER ++ /xf0/x9f/x9a/x82 STEAM LOCOMOTIVE ++ /xf0/x9f/x9a/x83 RAILWAY CAR ++ /xf0/x9f/x9a/x84 HIGH-SPEED TRAIN ++ /xf0/x9f/x9a/x85 HIGH-SPEED TRAIN WITH BULLET NOSE ++ /xf0/x9f/x9a/x86 TRAIN ++ /xf0/x9f/x9a/x87 METRO ++ /xf0/x9f/x9a/x88 LIGHT RAIL ++ /xf0/x9f/x9a/x89 STATION ++ /xf0/x9f/x9a/x8a TRAM ++ /xf0/x9f/x9a/x8b TRAM CAR ++ /xf0/x9f/x9a/x8c BUS ++ /xf0/x9f/x9a/x8d ONCOMING BUS ++ /xf0/x9f/x9a/x8e TROLLEYBUS ++ /xf0/x9f/x9a/x8f BUS STOP ++ /xf0/x9f/x9a/x90 MINIBUS ++ /xf0/x9f/x9a/x91 AMBULANCE ++ /xf0/x9f/x9a/x92 FIRE ENGINE ++ /xf0/x9f/x9a/x93 POLICE CAR ++ /xf0/x9f/x9a/x94 ONCOMING POLICE CAR ++ /xf0/x9f/x9a/x95 TAXI ++ /xf0/x9f/x9a/x96 ONCOMING TAXI ++ /xf0/x9f/x9a/x97 AUTOMOBILE ++ /xf0/x9f/x9a/x98 ONCOMING AUTOMOBILE ++ /xf0/x9f/x9a/x99 RECREATIONAL VEHICLE ++ /xf0/x9f/x9a/x9a DELIVERY TRUCK ++ /xf0/x9f/x9a/x9b ARTICULATED LORRY ++ /xf0/x9f/x9a/x9c TRACTOR ++ /xf0/x9f/x9a/x9d MONORAIL ++ /xf0/x9f/x9a/x9e MOUNTAIN RAILWAY ++ /xf0/x9f/x9a/x9f SUSPENSION RAILWAY ++ /xf0/x9f/x9a/xa0 MOUNTAIN CABLEWAY ++ /xf0/x9f/x9a/xa1 AERIAL TRAMWAY ++ /xf0/x9f/x9a/xa2 SHIP ++ /xf0/x9f/x9a/xa3 ROWBOAT ++ /xf0/x9f/x9a/xa4 SPEEDBOAT ++ /xf0/x9f/x9a/xa5 HORIZONTAL TRAFFIC LIGHT ++ /xf0/x9f/x9a/xa6 VERTICAL TRAFFIC LIGHT ++ /xf0/x9f/x9a/xa7 CONSTRUCTION SIGN ++ /xf0/x9f/x9a/xa8 POLICE CARS REVOLVING LIGHT ++ /xf0/x9f/x9a/xa9 TRIANGULAR FLAG ON POST ++ /xf0/x9f/x9a/xaa DOOR ++ /xf0/x9f/x9a/xab NO ENTRY SIGN ++ /xf0/x9f/x9a/xac SMOKING SYMBOL ++ /xf0/x9f/x9a/xad NO SMOKING SYMBOL ++ /xf0/x9f/x9a/xae PUT LITTER IN ITS PLACE SYMBOL ++ /xf0/x9f/x9a/xaf DO NOT LITTER SYMBOL ++ /xf0/x9f/x9a/xb0 POTABLE WATER SYMBOL ++ /xf0/x9f/x9a/xb1 NON-POTABLE WATER SYMBOL ++ /xf0/x9f/x9a/xb2 BICYCLE ++ /xf0/x9f/x9a/xb3 NO BICYCLES ++ /xf0/x9f/x9a/xb4 BICYCLIST ++ /xf0/x9f/x9a/xb5 MOUNTAIN BICYCLIST ++ /xf0/x9f/x9a/xb6 PEDESTRIAN ++ /xf0/x9f/x9a/xb7 NO PEDESTRIANS ++ /xf0/x9f/x9a/xb8 CHILDREN CROSSING ++ /xf0/x9f/x9a/xb9 MENS SYMBOL ++ /xf0/x9f/x9a/xba WOMENS SYMBOL ++ /xf0/x9f/x9a/xbb RESTROOM ++ /xf0/x9f/x9a/xbc BABY SYMBOL ++ /xf0/x9f/x9a/xbd TOILET ++ /xf0/x9f/x9a/xbe WATER CLOSET ++ /xf0/x9f/x9a/xbf SHOWER ++ /xf0/x9f/x9b/x80 BATH ++ /xf0/x9f/x9b/x81 BATHTUB ++ /xf0/x9f/x9b/x82 PASSPORT CONTROL ++ /xf0/x9f/x9b/x83 CUSTOMS ++ /xf0/x9f/x9b/x84 BAGGAGE CLAIM ++ /xf0/x9f/x9b/x85 LEFT LUGGAGE ++ /xf0/x9f/x9c/x80 ALCHEMICAL SYMBOL FOR QUINTESSENCE ++ /xf0/x9f/x9c/x81 ALCHEMICAL SYMBOL FOR AIR ++ /xf0/x9f/x9c/x82 ALCHEMICAL SYMBOL FOR FIRE ++ /xf0/x9f/x9c/x83 ALCHEMICAL SYMBOL FOR EARTH ++ /xf0/x9f/x9c/x84 ALCHEMICAL SYMBOL FOR WATER ++ /xf0/x9f/x9c/x85 ALCHEMICAL SYMBOL FOR AQUAFORTIS ++ /xf0/x9f/x9c/x86 ALCHEMICAL SYMBOL FOR AQUA REGIA ++ /xf0/x9f/x9c/x87 ALCHEMICAL SYMBOL FOR AQUA REGIA-2 ++ /xf0/x9f/x9c/x88 ALCHEMICAL SYMBOL FOR AQUA VITAE ++ /xf0/x9f/x9c/x89 ALCHEMICAL SYMBOL FOR AQUA VITAE-2 ++ /xf0/x9f/x9c/x8a ALCHEMICAL SYMBOL FOR VINEGAR ++ /xf0/x9f/x9c/x8b ALCHEMICAL SYMBOL FOR VINEGAR-2 ++ /xf0/x9f/x9c/x8c ALCHEMICAL SYMBOL FOR VINEGAR-3 ++ /xf0/x9f/x9c/x8d ALCHEMICAL SYMBOL FOR SULFUR ++ /xf0/x9f/x9c/x8e ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR ++ /xf0/x9f/x9c/x8f ALCHEMICAL SYMBOL FOR BLACK SULFUR ++ /xf0/x9f/x9c/x90 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE ++ /xf0/x9f/x9c/x91 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2 ++ /xf0/x9f/x9c/x92 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3 ++ /xf0/x9f/x9c/x93 ALCHEMICAL SYMBOL FOR CINNABAR ++ /xf0/x9f/x9c/x94 ALCHEMICAL SYMBOL FOR SALT ++ /xf0/x9f/x9c/x95 ALCHEMICAL SYMBOL FOR NITRE ++ /xf0/x9f/x9c/x96 ALCHEMICAL SYMBOL FOR VITRIOL ++ /xf0/x9f/x9c/x97 ALCHEMICAL SYMBOL FOR VITRIOL-2 ++ /xf0/x9f/x9c/x98 ALCHEMICAL SYMBOL FOR ROCK SALT ++ /xf0/x9f/x9c/x99 ALCHEMICAL SYMBOL FOR ROCK SALT-2 ++ /xf0/x9f/x9c/x9a ALCHEMICAL SYMBOL FOR GOLD ++ /xf0/x9f/x9c/x9b ALCHEMICAL SYMBOL FOR SILVER ++ /xf0/x9f/x9c/x9c ALCHEMICAL SYMBOL FOR IRON ORE ++ /xf0/x9f/x9c/x9d ALCHEMICAL SYMBOL FOR IRON ORE-2 ++ /xf0/x9f/x9c/x9e ALCHEMICAL SYMBOL FOR CROCUS OF IRON ++ /xf0/x9f/x9c/x9f ALCHEMICAL SYMBOL FOR REGULUS OF IRON ++ /xf0/x9f/x9c/xa0 ALCHEMICAL SYMBOL FOR COPPER ORE ++ /xf0/x9f/x9c/xa1 ALCHEMICAL SYMBOL FOR IRON-COPPER ORE ++ /xf0/x9f/x9c/xa2 ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER ++ /xf0/x9f/x9c/xa3 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER ++ /xf0/x9f/x9c/xa4 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2 ++ /xf0/x9f/x9c/xa5 ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE ++ /xf0/x9f/x9c/xa6 ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE ++ /xf0/x9f/x9c/xa7 ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER ++ /xf0/x9f/x9c/xa8 ALCHEMICAL SYMBOL FOR VERDIGRIS ++ /xf0/x9f/x9c/xa9 ALCHEMICAL SYMBOL FOR TIN ORE ++ /xf0/x9f/x9c/xaa ALCHEMICAL SYMBOL FOR LEAD ORE ++ /xf0/x9f/x9c/xab ALCHEMICAL SYMBOL FOR ANTIMONY ORE ++ /xf0/x9f/x9c/xac ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY ++ /xf0/x9f/x9c/xad ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY ++ /xf0/x9f/x9c/xae ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY ++ /xf0/x9f/x9c/xaf ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY ++ /xf0/x9f/x9c/xb0 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY ++ /xf0/x9f/x9c/xb1 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2 ++ /xf0/x9f/x9c/xb2 ALCHEMICAL SYMBOL FOR REGULUS ++ /xf0/x9f/x9c/xb3 ALCHEMICAL SYMBOL FOR REGULUS-2 ++ /xf0/x9f/x9c/xb4 ALCHEMICAL SYMBOL FOR REGULUS-3 ++ /xf0/x9f/x9c/xb5 ALCHEMICAL SYMBOL FOR REGULUS-4 ++ /xf0/x9f/x9c/xb6 ALCHEMICAL SYMBOL FOR ALKALI ++ /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2 ++ /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE ++ /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC ++ /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC ++ /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR ++ /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2 ++ /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT ++ /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE ++ /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR ++ /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2 ++ /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME ++ /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX ++ /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2 ++ /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3 ++ /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM ++ /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL ++ /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT ++ /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE ++ /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM ++ /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX ++ /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER ++ /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX ++ /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2 ++ /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE ++ /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC ++ /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC ++ /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR ++ /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2 ++ /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT ++ /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE ++ /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR ++ /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2 ++ /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME ++ /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX ++ /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2 ++ /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3 ++ /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM ++ /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL ++ /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT ++ /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE ++ /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM ++ /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX ++ /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER ++ /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX ++ /xf0/x9f/x9d/x8d ALCHEMICAL SYMBOL FOR TUTTY ++ /xf0/x9f/x9d/x8e ALCHEMICAL SYMBOL FOR CAPUT MORTUUM ++ /xf0/x9f/x9d/x8f ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE ++ /xf0/x9f/x9d/x90 ALCHEMICAL SYMBOL FOR CADUCEUS ++ /xf0/x9f/x9d/x91 ALCHEMICAL SYMBOL FOR TRIDENT ++ /xf0/x9f/x9d/x92 ALCHEMICAL SYMBOL FOR STARRED TRIDENT ++ /xf0/x9f/x9d/x93 ALCHEMICAL SYMBOL FOR LODESTONE ++ /xf0/x9f/x9d/x94 ALCHEMICAL SYMBOL FOR SOAP ++ /xf0/x9f/x9d/x95 ALCHEMICAL SYMBOL FOR URINE ++ /xf0/x9f/x9d/x96 ALCHEMICAL SYMBOL FOR HORSE DUNG ++ /xf0/x9f/x9d/x97 ALCHEMICAL SYMBOL FOR ASHES ++ /xf0/x9f/x9d/x98 ALCHEMICAL SYMBOL FOR POT ASHES ++ /xf0/x9f/x9d/x99 ALCHEMICAL SYMBOL FOR BRICK ++ /xf0/x9f/x9d/x9a ALCHEMICAL SYMBOL FOR POWDERED BRICK ++ /xf0/x9f/x9d/x9b ALCHEMICAL SYMBOL FOR AMALGAM ++ /xf0/x9f/x9d/x9c ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM ++ /xf0/x9f/x9d/x9d ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2 ++ /xf0/x9f/x9d/x9e ALCHEMICAL SYMBOL FOR SUBLIMATION ++ /xf0/x9f/x9d/x9f ALCHEMICAL SYMBOL FOR PRECIPITATE ++ /xf0/x9f/x9d/xa0 ALCHEMICAL SYMBOL FOR DISTILL ++ /xf0/x9f/x9d/xa1 ALCHEMICAL SYMBOL FOR DISSOLVE ++ /xf0/x9f/x9d/xa2 ALCHEMICAL SYMBOL FOR DISSOLVE-2 ++ /xf0/x9f/x9d/xa3 ALCHEMICAL SYMBOL FOR PURIFY ++ /xf0/x9f/x9d/xa4 ALCHEMICAL SYMBOL FOR PUTREFACTION ++ /xf0/x9f/x9d/xa5 ALCHEMICAL SYMBOL FOR CRUCIBLE ++ /xf0/x9f/x9d/xa6 ALCHEMICAL SYMBOL FOR CRUCIBLE-2 ++ /xf0/x9f/x9d/xa7 ALCHEMICAL SYMBOL FOR CRUCIBLE-3 ++ /xf0/x9f/x9d/xa8 ALCHEMICAL SYMBOL FOR CRUCIBLE-4 ++ /xf0/x9f/x9d/xa9 ALCHEMICAL SYMBOL FOR CRUCIBLE-5 ++ /xf0/x9f/x9d/xaa ALCHEMICAL SYMBOL FOR ALEMBIC ++ /xf0/x9f/x9d/xab ALCHEMICAL SYMBOL FOR BATH OF MARY ++ /xf0/x9f/x9d/xac ALCHEMICAL SYMBOL FOR BATH OF VAPOURS ++ /xf0/x9f/x9d/xad ALCHEMICAL SYMBOL FOR RETORT ++ /xf0/x9f/x9d/xae ALCHEMICAL SYMBOL FOR HOUR ++ /xf0/x9f/x9d/xaf ALCHEMICAL SYMBOL FOR NIGHT ++ /xf0/x9f/x9d/xb0 ALCHEMICAL SYMBOL FOR DAY-NIGHT ++ /xf0/x9f/x9d/xb1 ALCHEMICAL SYMBOL FOR MONTH ++ /xf0/x9f/x9d/xb2 ALCHEMICAL SYMBOL FOR HALF DRAM ++ /xf0/x9f/x9d/xb3 ALCHEMICAL SYMBOL FOR HALF OUNCE + .. /xf0/xa0/x80/x80 + .. /xf0/xa0/x81/x80 + .. /xf0/xa0/x82/x80 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ar_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN +@@ -52,7 +52,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/as_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/as_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/as_IN +@@ -51,7 +51,7 @@ END LC_NUMERIC + %%%%%%%%%%%%% + LC_MONETARY + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/bn_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN +@@ -53,7 +53,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 2;3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/en_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/en_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/en_IN +@@ -52,7 +52,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/gu_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN +@@ -71,7 +71,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/hi_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN +@@ -69,7 +69,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kn_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN +@@ -71,8 +71,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "" +-% *** Change this to reflect Kannada , in Dev it is RA with VS U attached +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kok_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN +@@ -49,7 +49,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ks_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN +@@ -57,7 +57,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ml_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN +@@ -69,7 +69,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/mr_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN +@@ -70,7 +70,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/or_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/or_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/or_IN +@@ -607,7 +607,7 @@ END LC_NUMERIC + %%%%%%%%%%%%% + LC_MONETARY + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/pa_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN +@@ -66,7 +66,7 @@ END LC_COLLATE + LC_MONETARY + % This is the POSIX Locale definition the LC_MONETARY category. + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sa_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN +@@ -52,7 +52,7 @@ LC_MONETARY + % for IBM Class for Unicode/Java + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sd_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN +@@ -57,7 +57,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ta_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN +@@ -74,7 +74,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;2 +Index: glibc-2.12-2-gc4ccff1/localedata/locales/te_IN +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/te_IN ++++ glibc-2.12-2-gc4ccff1/localedata/locales/te_IN +@@ -73,7 +73,7 @@ LC_MONETARY + % for IBM Class for Unicode. + % + int_curr_symbol "" +-currency_symbol "" ++currency_symbol "" + mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;2 diff --git a/src/patches/glibc/glibc-rh694386.patch b/src/patches/glibc/glibc-rh694386.patch new file mode 100644 index 0000000000..3932eb88ec --- /dev/null +++ b/src/patches/glibc/glibc-rh694386.patch @@ -0,0 +1,86 @@ +2011-03-28 Andreas Schwab + + * sysdeps/powerpc/powerpc32/power4/strncmp.S: Don't read past + differing bytes. + * sysdeps/powerpc/powerpc64/power4/strncmp.S: Likewise. + +diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S +index fc0835e..f5d47af 100644 +--- a/sysdeps/powerpc/powerpc32/power4/strncmp.S ++++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S +@@ -139,30 +139,31 @@ L(u1): + bdz L(u4) + cmpw rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpwi cr1, rWORD3, 0 + bdz L(u3) + cmpw rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- bne- L(u3) + cmpwi cr1, rWORD1, 0 + bdz L(u4) + cmpw rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpwi cr1, rWORD3, 0 + bdz L(u3) + cmpw rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- beq+ L(u1) ++ b L(u1) + + L(u3): sub rRTN, rWORD3, rWORD4 + blr +diff --git a/sysdeps/powerpc/powerpc64/power4/strncmp.S b/sysdeps/powerpc/powerpc64/power4/strncmp.S +index 7a1665d..94ae85b 100644 +--- a/sysdeps/powerpc/powerpc64/power4/strncmp.S ++++ b/sysdeps/powerpc/powerpc64/power4/strncmp.S +@@ -143,30 +143,31 @@ L(u1): + bdz L(u4) + cmpd rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpdi cr1, rWORD3, 0 + bdz L(u3) + cmpd rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- bne- L(u3) + cmpdi cr1, rWORD1, 0 + bdz L(u4) + cmpd rWORD1, rWORD2 + beq- cr1, L(u4) ++ bne- L(u4) + lbzu rWORD3, 1(rSTR1) + lbzu rWORD4, 1(rSTR2) +- bne- L(u4) + cmpdi cr1, rWORD3, 0 + bdz L(u3) + cmpd rWORD3, rWORD4 + beq- cr1, L(u3) ++ bne- L(u3) + lbzu rWORD1, 1(rSTR1) + lbzu rWORD2, 1(rSTR2) +- beq+ L(u1) ++ b L(u1) + + L(u3): sub rRTN, rWORD3, rWORD4 + blr diff --git a/src/patches/glibc/glibc-rh695595.patch b/src/patches/glibc/glibc-rh695595.patch new file mode 100644 index 0000000000..0e6c72b169 --- /dev/null +++ b/src/patches/glibc/glibc-rh695595.patch @@ -0,0 +1,17 @@ +2010-11-11 H.J. Lu + + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Support Intel processor model 6 and model 0x2c. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -81,6 +81,7 @@ __init_cpu_features (void) + case 0x1e: + case 0x1f: + case 0x25: ++ case 0x2c: + case 0x2e: + case 0x2f: + /* Rep string instructions are fast on Intel Core i3, i5 diff --git a/src/patches/glibc/glibc-rh695963.patch b/src/patches/glibc/glibc-rh695963.patch new file mode 100644 index 0000000000..e8053dc3fd --- /dev/null +++ b/src/patches/glibc/glibc-rh695963.patch @@ -0,0 +1,1284 @@ +2010-08-27 Ulrich Drepper + + * sysdeps/x86_64/multiarch/strlen-no-bsf.S: Move to .text.slow section. + + * sysdeps/x86_64/strlen.S: Minimal code improvement. + +2010-08-26 H.J. Lu + + * sysdeps/x86_64/strlen.S: Unroll the loop. + * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add + strlen-sse2 strlen-sse2-bsf. + * sysdeps/x86_64/multiarch/strlen.S ((strlen): Return + __strlen_no_bsf if bit_Slow_BSF is set. + (__strlen_sse42): Removed. + * sysdeps/x86_64/multiarch/strlen-no-bsf.S: New file. + * sysdeps/x86_64/multiarch/strlen-sse4.S: New file. + +2010-08-25 H.J. Lu + + * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add + strlen-sse2 strlen-sse2-bsf. + * sysdeps/i386/i686/multiarch/strlen.S (strlen): Return + __strlen_sse2_bsf if bit_Slow_BSF is unset. + (__strlen_sse2): Removed. + * sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: New file. + * sysdeps/i386/i686/multiarch/strlen-sse2.S: New file. + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Set + bit_Slow_BSF for Atom. + * sysdeps/x86_64/multiarch/init-arch.h (bit_Slow_BSF): Define. + (index_Slow_BSF): Define. + (HAS_SLOW_BSF): Define. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile +@@ -9,7 +9,8 @@ sysdep_routines += bzero-sse2 memset-sse + memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \ + memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \ + strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \ +- memcmp-ssse3 memcmp-sse4 strcasestr-nonascii ++ memcmp-ssse3 memcmp-sse4 strcasestr-nonascii \ ++ strlen-sse2 strlen-sse2-bsf + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c + CFLAGS-strcspn-c.c += -msse4 +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S +@@ -0,0 +1,127 @@ ++/* strlen with SSE2 and BSF ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include ++#include "asm-syntax.h" ++ ++#define CFI_PUSH(REG) \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (REG, 0) ++ ++#define CFI_POP(REG) \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (REG) ++ ++#define PUSH(REG) pushl REG; CFI_PUSH (REG) ++#define POP(REG) popl REG; CFI_POP (REG) ++#define PARMS 4 + 8 /* Preserve ESI and EDI. */ ++#define STR PARMS ++#define ENTRANCE PUSH (%esi); PUSH (%edi); cfi_remember_state ++#define RETURN POP (%edi); POP (%esi); ret; \ ++ cfi_restore_state; cfi_remember_state ++ ++ .text ++ENTRY ( __strlen_sse2_bsf) ++ ENTRANCE ++ mov STR(%esp), %edi ++ xor %eax, %eax ++ mov %edi, %ecx ++ and $0x3f, %ecx ++ pxor %xmm0, %xmm0 ++ cmp $0x30, %ecx ++ ja L(next) ++ movdqu (%edi), %xmm1 ++ pcmpeqb %xmm1, %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ jnz L(exit_less16) ++ mov %edi, %eax ++ and $-16, %eax ++ jmp L(align16_start) ++L(next): ++ ++ mov %edi, %eax ++ and $-16, %eax ++ pcmpeqb (%eax), %xmm0 ++ mov $-1, %esi ++ sub %eax, %ecx ++ shl %cl, %esi ++ pmovmskb %xmm0, %edx ++ and %esi, %edx ++ jnz L(exit) ++L(align16_start): ++ pxor %xmm0, %xmm0 ++ pxor %xmm1, %xmm1 ++ pxor %xmm2, %xmm2 ++ pxor %xmm3, %xmm3 ++ .p2align 4 ++L(align16_loop): ++ pcmpeqb 16(%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ jnz L(exit16) ++ ++ pcmpeqb 32(%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ jnz L(exit32) ++ ++ pcmpeqb 48(%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ jnz L(exit48) ++ ++ pcmpeqb 64(%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ lea 64(%eax), %eax ++ test %edx, %edx ++ jz L(align16_loop) ++L(exit): ++ sub %edi, %eax ++L(exit_less16): ++ bsf %edx, %edx ++ add %edx, %eax ++ RETURN ++L(exit16): ++ sub %edi, %eax ++ bsf %edx, %edx ++ add %edx, %eax ++ add $16, %eax ++ RETURN ++L(exit32): ++ sub %edi, %eax ++ bsf %edx, %edx ++ add %edx, %eax ++ add $32, %eax ++ RETURN ++L(exit48): ++ sub %edi, %eax ++ bsf %edx, %edx ++ add %edx, %eax ++ add $48, %eax ++ POP (%edi) ++ POP (%esi) ++ ret ++ ++END ( __strlen_sse2_bsf) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S +@@ -0,0 +1,347 @@ ++/* strlen with SSE2 ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include ++#include "asm-syntax.h" ++ ++#define CFI_PUSH(REG) \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (REG, 0) ++ ++#define CFI_POP(REG) \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (REG) ++ ++#define PUSH(REG) pushl REG; CFI_PUSH (REG) ++#define POP(REG) popl REG; CFI_POP (REG) ++#define PARMS 4 ++#define STR PARMS ++#define ENTRANCE ++#define RETURN ret ++ ++ .text ++ENTRY (__strlen_sse2) ++ ENTRANCE ++ mov STR(%esp), %edx ++ xor %eax, %eax ++ cmpb $0, (%edx) ++ jz L(exit_tail0) ++ cmpb $0, 1(%edx) ++ jz L(exit_tail1) ++ cmpb $0, 2(%edx) ++ jz L(exit_tail2) ++ cmpb $0, 3(%edx) ++ jz L(exit_tail3) ++ cmpb $0, 4(%edx) ++ jz L(exit_tail4) ++ cmpb $0, 5(%edx) ++ jz L(exit_tail5) ++ cmpb $0, 6(%edx) ++ jz L(exit_tail6) ++ cmpb $0, 7(%edx) ++ jz L(exit_tail7) ++ cmpb $0, 8(%edx) ++ jz L(exit_tail8) ++ cmpb $0, 9(%edx) ++ jz L(exit_tail9) ++ cmpb $0, 10(%edx) ++ jz L(exit_tail10) ++ cmpb $0, 11(%edx) ++ jz L(exit_tail11) ++ cmpb $0, 12(%edx) ++ jz L(exit_tail12) ++ cmpb $0, 13(%edx) ++ jz L(exit_tail13) ++ cmpb $0, 14(%edx) ++ jz L(exit_tail14) ++ cmpb $0, 15(%edx) ++ jz L(exit_tail15) ++ pxor %xmm0, %xmm0 ++ mov %edx, %eax ++ mov %edx, %ecx ++ and $-16, %eax ++ add $16, %ecx ++ add $16, %eax ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ pxor %xmm1, %xmm1 ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ pxor %xmm2, %xmm2 ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ pxor %xmm3, %xmm3 ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ pcmpeqb (%eax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%eax), %eax ++ jnz L(exit) ++ ++ and $-0x40, %eax ++ PUSH (%esi) ++ PUSH (%edi) ++ PUSH (%ebx) ++ PUSH (%ebp) ++ xor %ebp, %ebp ++L(aligned_64): ++ pcmpeqb (%eax), %xmm0 ++ pcmpeqb 16(%eax), %xmm1 ++ pcmpeqb 32(%eax), %xmm2 ++ pcmpeqb 48(%eax), %xmm3 ++ pmovmskb %xmm0, %edx ++ pmovmskb %xmm1, %esi ++ pmovmskb %xmm2, %edi ++ pmovmskb %xmm3, %ebx ++ or %edx, %ebp ++ or %esi, %ebp ++ or %edi, %ebp ++ or %ebx, %ebp ++ lea 64(%eax), %eax ++ jz L(aligned_64) ++L(48leave): ++ test %edx, %edx ++ jnz L(aligned_64_exit_16) ++ test %esi, %esi ++ jnz L(aligned_64_exit_32) ++ test %edi, %edi ++ jnz L(aligned_64_exit_48) ++ mov %ebx, %edx ++ lea (%eax), %eax ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_48): ++ lea -16(%eax), %eax ++ mov %edi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_32): ++ lea -32(%eax), %eax ++ mov %esi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_16): ++ lea -48(%eax), %eax ++L(aligned_64_exit): ++ POP (%ebp) ++ POP (%ebx) ++ POP (%edi) ++ POP (%esi) ++L(exit): ++ sub %ecx, %eax ++ test %dl, %dl ++ jz L(exit_high) ++ test $0x01, %dl ++ jnz L(exit_tail0) ++ ++ test $0x02, %dl ++ jnz L(exit_tail1) ++ ++ test $0x04, %dl ++ jnz L(exit_tail2) ++ ++ test $0x08, %dl ++ jnz L(exit_tail3) ++ ++ test $0x10, %dl ++ jnz L(exit_tail4) ++ ++ test $0x20, %dl ++ jnz L(exit_tail5) ++ ++ test $0x40, %dl ++ jnz L(exit_tail6) ++ add $7, %eax ++L(exit_tail0): ++ RETURN ++ ++L(exit_high): ++ add $8, %eax ++ test $0x01, %dh ++ jnz L(exit_tail0) ++ ++ test $0x02, %dh ++ jnz L(exit_tail1) ++ ++ test $0x04, %dh ++ jnz L(exit_tail2) ++ ++ test $0x08, %dh ++ jnz L(exit_tail3) ++ ++ test $0x10, %dh ++ jnz L(exit_tail4) ++ ++ test $0x20, %dh ++ jnz L(exit_tail5) ++ ++ test $0x40, %dh ++ jnz L(exit_tail6) ++ add $7, %eax ++ RETURN ++ ++ .p2align 4 ++L(exit_tail1): ++ add $1, %eax ++ RETURN ++ ++L(exit_tail2): ++ add $2, %eax ++ RETURN ++ ++L(exit_tail3): ++ add $3, %eax ++ RETURN ++ ++L(exit_tail4): ++ add $4, %eax ++ RETURN ++ ++L(exit_tail5): ++ add $5, %eax ++ RETURN ++ ++L(exit_tail6): ++ add $6, %eax ++ RETURN ++ ++L(exit_tail7): ++ add $7, %eax ++ RETURN ++ ++L(exit_tail8): ++ add $8, %eax ++ RETURN ++ ++L(exit_tail9): ++ add $9, %eax ++ RETURN ++ ++L(exit_tail10): ++ add $10, %eax ++ RETURN ++ ++L(exit_tail11): ++ add $11, %eax ++ RETURN ++ ++L(exit_tail12): ++ add $12, %eax ++ RETURN ++ ++L(exit_tail13): ++ add $13, %eax ++ RETURN ++ ++L(exit_tail14): ++ add $14, %eax ++ RETURN ++ ++L(exit_tail15): ++ add $15, %eax ++ ret ++ ++END (__strlen_sse2) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strlen.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S +@@ -48,6 +48,9 @@ ENTRY(strlen) + 1: leal __strlen_ia32@GOTOFF(%ebx), %eax + testl $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx) + jz 2f ++ leal __strlen_sse2_bsf@GOTOFF(%ebx), %eax ++ testl $bit_Slow_BSF, FEATURE_OFFSET+index_Slow_BSF+__cpu_features@GOTOFF(%ebx) ++ jz 2f + leal __strlen_sse2@GOTOFF(%ebx), %eax + 2: popl %ebx + cfi_adjust_cfa_offset (-4); +@@ -55,84 +58,6 @@ ENTRY(strlen) + ret + END(strlen) + +-#define CFI_POP(REG) \ +- cfi_adjust_cfa_offset (-4); \ +- cfi_restore (REG) +- +-#define RETURN popl %esi; CFI_POP (esi); ret +- +- .text +-ENTRY (__strlen_sse2) +-/* +- * This implementation uses SSE instructions to compare up to 16 bytes +- * at a time looking for the end of string (null char). +- */ +- pushl %esi +- cfi_adjust_cfa_offset (4) +- cfi_rel_offset (%esi, 0) +- mov 8(%esp), %eax +- mov %eax, %ecx +- pxor %xmm0, %xmm0 /* 16 null chars */ +- mov %eax, %esi +- and $15, %ecx +- jz 1f /* string is 16 byte aligned */ +- +- /* +- * Unaligned case. Round down to 16-byte boundary before comparing +- * 16 bytes for a null char. The code then compensates for any extra chars +- * preceding the start of the string. +- */ +- and $-16, %esi +- +- pcmpeqb (%esi), %xmm0 +- lea 16(%eax), %esi +- pmovmskb %xmm0, %edx +- +- shr %cl, %edx /* Compensate for bytes preceding the string */ +- test %edx, %edx +- jnz 2f +- sub %ecx, %esi /* no null, adjust to next 16-byte boundary */ +- pxor %xmm0, %xmm0 /* clear xmm0, may have been changed... */ +- +- .p2align 4 +-1: /* 16 byte aligned */ +- pcmpeqb (%esi), %xmm0 /* look for null bytes */ +- pmovmskb %xmm0, %edx /* move each byte mask of %xmm0 to edx */ +- +- add $16, %esi /* prepare to search next 16 bytes */ +- test %edx, %edx /* if no null byte, %edx must be 0 */ +- jnz 2f /* found a null */ +- +- pcmpeqb (%esi), %xmm0 +- pmovmskb %xmm0, %edx +- add $16, %esi +- test %edx, %edx +- jnz 2f +- +- pcmpeqb (%esi), %xmm0 +- pmovmskb %xmm0, %edx +- add $16, %esi +- test %edx, %edx +- jnz 2f +- +- pcmpeqb (%esi), %xmm0 +- pmovmskb %xmm0, %edx +- add $16, %esi +- test %edx, %edx +- jz 1b +- +-2: +- neg %eax +- lea -16(%eax, %esi), %eax /* calculate exact offset */ +- bsf %edx, %ecx /* Least significant 1 bit is index of null */ +- add %ecx, %eax +- popl %esi +- cfi_adjust_cfa_offset (-4) +- cfi_restore (%esi) +- ret +- +-END (__strlen_sse2) +- + # undef ENTRY + # define ENTRY(name) \ + .type __strlen_ia32, @function; \ +--- a/sysdeps/x86_64/multiarch/Makefile 2012-03-01 10:43:30.060487726 -0700 ++++ b/sysdeps/x86_64/multiarch/Makefile 2012-03-01 10:45:57.894692115 -0700 +@@ -7,7 +7,7 @@ ifeq ($(subdir),string) + sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \ + strend-sse4 memcmp-sse4 \ + strcasestr-nonascii strcasecmp_l-ssse3 \ +- strncase_l-ssse3 \ ++ strncase_l-ssse3 strlen-sse4 strlen-no-bsf \ + memset-x86-64 + ifeq (yes,$(config-cflags-sse4)) + sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c +@@ -77,6 +77,12 @@ __init_cpu_features (void) + model += extended_model; + switch (model) + { ++ case 0x1c: ++ case 0x26: ++ /* BSF is slow on Atom. */ ++ __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF; ++ break; ++ + case 0x1a: + case 0x1e: + case 0x1f: +--- a/sysdeps/x86_64/multiarch/init-arch.h 2012-03-01 10:43:30.061487720 -0700 ++++ b/sysdeps/x86_64/multiarch/init-arch.h 2012-03-01 10:48:13.371963005 -0700 +@@ -17,6 +17,7 @@ + 02111-1307 USA. */ + + #define bit_Fast_Rep_String (1 << 0) ++#define bit_Slow_BSF (1 << 2) + #define bit_Prefer_SSE_for_memop (1 << 3) + + #ifdef __ASSEMBLER__ +@@ -34,6 +35,7 @@ + # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET + + #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE ++# define index_Slow_BSF FEATURE_INDEX_1*FEATURE_SIZE + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1*FEATURE_SIZE + + #else /* __ASSEMBLER__ */ +@@ -105,11 +107,15 @@ extern const struct cpu_features *__get_ + # define HAS_FMA HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12) + + # define index_Fast_Rep_String FEATURE_INDEX_1 ++# define index_Slow_BSF FEATURE_INDEX_1 + # define index_Prefer_SSE_for_memop FEATURE_INDEX_1 + + #define HAS_ARCH_FEATURE(idx, bit) \ + ((__get_cpu_features ()->feature[idx] & (bit)) != 0) + ++#define HAS_SLOW_BSF \ ++ HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF) ++ + #define HAS_PREFER_SSE_FOR_MEMOP \ + HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop) + +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S +@@ -0,0 +1,309 @@ ++/* strlen without BSF ++ Copyright (C) 2010 Free Software Foundation, Inc. ++ Contributed by Intel Corporation. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include ++ ++ .section .text.slow,"ax",@progbits ++ENTRY (__strlen_no_bsf) ++ xor %eax, %eax ++ cmpb $0, (%rdi) ++ jz L(exit_tail0) ++ cmpb $0, 1(%rdi) ++ jz L(exit_tail1) ++ cmpb $0, 2(%rdi) ++ jz L(exit_tail2) ++ cmpb $0, 3(%rdi) ++ jz L(exit_tail3) ++ cmpb $0, 4(%rdi) ++ jz L(exit_tail4) ++ cmpb $0, 5(%rdi) ++ jz L(exit_tail5) ++ cmpb $0, 6(%rdi) ++ jz L(exit_tail6) ++ cmpb $0, 7(%rdi) ++ jz L(exit_tail7) ++ cmpb $0, 8(%rdi) ++ jz L(exit_tail8) ++ cmpb $0, 9(%rdi) ++ jz L(exit_tail9) ++ cmpb $0, 10(%rdi) ++ jz L(exit_tail10) ++ cmpb $0, 11(%rdi) ++ jz L(exit_tail11) ++ cmpb $0, 12(%rdi) ++ jz L(exit_tail12) ++ cmpb $0, 13(%rdi) ++ jz L(exit_tail13) ++ cmpb $0, 14(%rdi) ++ jz L(exit_tail14) ++ cmpb $0, 15(%rdi) ++ jz L(exit_tail15) ++ pxor %xmm0, %xmm0 ++ mov %rdi, %rcx ++ mov %rdi, %rax ++ and $-16, %rax ++ add $16, %rax ++ add $16, %rcx ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ pxor %xmm1, %xmm1 ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ pxor %xmm2, %xmm2 ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ pxor %xmm3, %xmm3 ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ pcmpeqb (%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ test %edx, %edx ++ lea 16(%rax), %rax ++ jnz L(exit) ++ ++ and $-0x40, %rax ++ xor %r8d, %r8d ++L(aligned_64): ++ pcmpeqb (%rax), %xmm0 ++ pcmpeqb 16(%rax), %xmm1 ++ pcmpeqb 32(%rax), %xmm2 ++ pcmpeqb 48(%rax), %xmm3 ++ pmovmskb %xmm0, %edx ++ pmovmskb %xmm1, %esi ++ pmovmskb %xmm2, %edi ++ pmovmskb %xmm3, %r9d ++ or %edx, %r8d ++ or %esi, %r8d ++ or %edi, %r8d ++ or %r9d, %r8d ++ lea 64(%rax), %rax ++ jz L(aligned_64) ++ ++ test %edx, %edx ++ jnz L(aligned_64_exit_16) ++ test %esi, %esi ++ jnz L(aligned_64_exit_32) ++ test %edi, %edi ++ jnz L(aligned_64_exit_48) ++L(aligned_64_exit_64): ++ mov %r9d, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_48): ++ lea -16(%rax), %rax ++ mov %edi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_32): ++ lea -32(%rax), %rax ++ mov %esi, %edx ++ jmp L(aligned_64_exit) ++L(aligned_64_exit_16): ++ lea -48(%rax), %rax ++L(aligned_64_exit): ++L(exit): ++ sub %rcx, %rax ++ test %dl, %dl ++ jz L(exit_high) ++ test $0x01, %dl ++ jnz L(exit_tail0) ++ ++ test $0x02, %dl ++ jnz L(exit_tail1) ++ ++ test $0x04, %dl ++ jnz L(exit_tail2) ++ ++ test $0x08, %dl ++ jnz L(exit_tail3) ++ ++ test $0x10, %dl ++ jnz L(exit_tail4) ++ ++ test $0x20, %dl ++ jnz L(exit_tail5) ++ ++ test $0x40, %dl ++ jnz L(exit_tail6) ++ add $7, %eax ++L(exit_tail0): ++ ret ++ ++L(exit_high): ++ add $8, %eax ++ test $0x01, %dh ++ jnz L(exit_tail0) ++ ++ test $0x02, %dh ++ jnz L(exit_tail1) ++ ++ test $0x04, %dh ++ jnz L(exit_tail2) ++ ++ test $0x08, %dh ++ jnz L(exit_tail3) ++ ++ test $0x10, %dh ++ jnz L(exit_tail4) ++ ++ test $0x20, %dh ++ jnz L(exit_tail5) ++ ++ test $0x40, %dh ++ jnz L(exit_tail6) ++ add $7, %eax ++ ret ++ .p2align 4 ++L(exit_tail1): ++ add $1, %eax ++ ret ++ ++L(exit_tail2): ++ add $2, %eax ++ ret ++ ++L(exit_tail3): ++ add $3, %eax ++ ret ++ ++L(exit_tail4): ++ add $4, %eax ++ ret ++ ++L(exit_tail5): ++ add $5, %eax ++ ret ++L(exit_tail6): ++ add $6, %eax ++ ret ++L(exit_tail7): ++ add $7, %eax ++ ret ++L(exit_tail8): ++ add $8, %eax ++ ret ++L(exit_tail9): ++ add $9, %eax ++ ret ++L(exit_tail10): ++ add $10, %eax ++ ret ++L(exit_tail11): ++ add $11, %eax ++ ret ++L(exit_tail12): ++ add $12, %eax ++ ret ++L(exit_tail13): ++ add $13, %eax ++ ret ++L(exit_tail14): ++ add $14, %eax ++ ret ++L(exit_tail15): ++ add $15, %eax ++ ret ++END (__strlen_no_bsf) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S +@@ -0,0 +1,85 @@ ++/* strlen with SSE4 ++ Copyright (C) 2009, 2010 Free Software Foundation, Inc. ++ Contributed by Ulrich Drepper . ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#if defined SHARED && !defined NOT_IN_libc ++ ++#include ++ ++ .section .text.sse4.2,"ax",@progbits ++ENTRY (__strlen_sse42) ++ pxor %xmm1, %xmm1 ++ movl %edi, %ecx ++ movq %rdi, %r8 ++ andq $~15, %rdi ++ xor %edi, %ecx ++ pcmpeqb (%rdi), %xmm1 ++ pmovmskb %xmm1, %edx ++ shrl %cl, %edx ++ shll %cl, %edx ++ andl %edx, %edx ++ jnz L(less16bytes) ++ pxor %xmm1, %xmm1 ++ ++ .p2align 4 ++L(more64bytes_loop): ++ pcmpistri $0x08, 16(%rdi), %xmm1 ++ jz L(more32bytes) ++ ++ pcmpistri $0x08, 32(%rdi), %xmm1 ++ jz L(more48bytes) ++ ++ pcmpistri $0x08, 48(%rdi), %xmm1 ++ jz L(more64bytes) ++ ++ add $64, %rdi ++ pcmpistri $0x08, (%rdi), %xmm1 ++ jnz L(more64bytes_loop) ++ leaq (%rdi,%rcx), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(more32bytes): ++ leaq 16(%rdi,%rcx, 1), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(more48bytes): ++ leaq 32(%rdi,%rcx, 1), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(more64bytes): ++ leaq 48(%rdi,%rcx, 1), %rax ++ subq %r8, %rax ++ ret ++ ++ .p2align 4 ++L(less16bytes): ++ subq %r8, %rdi ++ bsfl %edx, %eax ++ addq %rdi, %rax ++ ret ++ ++END (__strlen_sse42) ++ ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strlen.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S +@@ -36,74 +36,12 @@ ENTRY(strlen) + testl $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip) + jz 2f + leaq __strlen_sse42(%rip), %rax +-2: ret +-END(strlen) +- +- +- .section .text.sse4.2,"ax",@progbits +- .align 16 +- .type __strlen_sse42, @function +-__strlen_sse42: +- cfi_startproc +- CALL_MCOUNT +- pxor %xmm1, %xmm1 +- movl %edi, %ecx +- movq %rdi, %r8 +- andq $~15, %rdi +- xor %edi, %ecx +- pcmpeqb (%rdi), %xmm1 +- pmovmskb %xmm1, %edx +- shrl %cl, %edx +- shll %cl, %edx +- andl %edx, %edx +- jnz L(less16bytes) +- pxor %xmm1, %xmm1 +- +- .p2align 4 +-L(more64bytes_loop): +- pcmpistri $0x08, 16(%rdi), %xmm1 +- jz L(more32bytes) +- +- pcmpistri $0x08, 32(%rdi), %xmm1 +- jz L(more48bytes) +- +- pcmpistri $0x08, 48(%rdi), %xmm1 +- jz L(more64bytes) +- +- add $64, %rdi +- pcmpistri $0x08, (%rdi), %xmm1 +- jnz L(more64bytes_loop) +- leaq (%rdi,%rcx), %rax +- subq %r8, %rax +- ret +- +- .p2align 4 +-L(more32bytes): +- leaq 16(%rdi,%rcx, 1), %rax +- subq %r8, %rax +- ret +- +- .p2align 4 +-L(more48bytes): +- leaq 32(%rdi,%rcx, 1), %rax +- subq %r8, %rax +- ret +- +- .p2align 4 +-L(more64bytes): +- leaq 48(%rdi,%rcx, 1), %rax +- subq %r8, %rax + ret +- +- .p2align 4 +-L(less16bytes): +- subq %r8, %rdi +- bsfl %edx, %eax +- addq %rdi, %rax +- ret +- cfi_endproc +- .size __strlen_sse42, .-__strlen_sse42 +- ++2: testl $bit_Slow_BSF, __cpu_features+FEATURE_OFFSET+index_Slow_BSF(%rip) ++ jz 3f ++ leaq __strlen_no_bsf(%rip), %rax ++3: ret ++END(strlen) + + # undef ENTRY + # define ENTRY(name) \ +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strlen.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S +@@ -23,29 +23,80 @@ + + .text + ENTRY(strlen) +- pxor %xmm2, %xmm2 +- movq %rdi, %rcx +- movq %rdi, %r8 +- andq $~15, %rdi +- movdqa %xmm2, %xmm1 +- pcmpeqb (%rdi), %xmm2 +- orl $0xffffffff, %esi +- subq %rdi, %rcx +- shll %cl, %esi +- pmovmskb %xmm2, %edx +- andl %esi, %edx +- jnz 1f +- +-2: movdqa 16(%rdi), %xmm0 +- leaq 16(%rdi), %rdi ++ xor %rax, %rax ++ mov %edi, %ecx ++ and $0x3f, %ecx ++ pxor %xmm0, %xmm0 ++ cmp $0x30, %ecx ++ ja L(next) ++ movdqu (%rdi), %xmm1 + pcmpeqb %xmm1, %xmm0 + pmovmskb %xmm0, %edx +- testl %edx, %edx +- jz 2b ++ test %edx, %edx ++ jnz L(exit_less16) ++ mov %rdi, %rax ++ and $-16, %rax ++ jmp L(align16_start) ++L(next): ++ mov %rdi, %rax ++ and $-16, %rax ++ pcmpeqb (%rax), %xmm0 ++ mov $-1, %esi ++ sub %rax, %rcx ++ shl %cl, %esi ++ pmovmskb %xmm0, %edx ++ and %esi, %edx ++ jnz L(exit) ++L(align16_start): ++ pxor %xmm0, %xmm0 ++ pxor %xmm1, %xmm1 ++ pxor %xmm2, %xmm2 ++ pxor %xmm3, %xmm3 ++ .p2align 4 ++L(align16_loop): ++ pcmpeqb 16(%rax), %xmm0 ++ pmovmskb %xmm0, %edx ++ test %edx, %edx ++ jnz L(exit16) + +-1: subq %r8, %rdi +- bsfl %edx, %eax +- addq %rdi, %rax ++ pcmpeqb 32(%rax), %xmm1 ++ pmovmskb %xmm1, %edx ++ test %edx, %edx ++ jnz L(exit32) ++ ++ pcmpeqb 48(%rax), %xmm2 ++ pmovmskb %xmm2, %edx ++ test %edx, %edx ++ jnz L(exit48) ++ ++ pcmpeqb 64(%rax), %xmm3 ++ pmovmskb %xmm3, %edx ++ lea 64(%rax), %rax ++ test %edx, %edx ++ jz L(align16_loop) ++L(exit): ++ sub %rdi, %rax ++L(exit_less16): ++ bsf %rdx, %rdx ++ add %rdx, %rax ++ ret ++ .p2align 4 ++L(exit16): ++ sub %rdi, %rax ++ bsf %rdx, %rdx ++ lea 16(%rdx,%rax), %rax ++ ret ++ .p2align 4 ++L(exit32): ++ sub %rdi, %rax ++ bsf %rdx, %rdx ++ lea 32(%rdx,%rax), %rax ++ ret ++ .p2align 4 ++L(exit48): ++ sub %rdi, %rax ++ bsf %rdx, %rdx ++ lea 48(%rdx,%rax), %rax + ret + END(strlen) + libc_hidden_builtin_def (strlen) diff --git a/src/patches/glibc/glibc-rh696472.patch b/src/patches/glibc/glibc-rh696472.patch new file mode 100644 index 0000000000..9d30d38e94 --- /dev/null +++ b/src/patches/glibc/glibc-rh696472.patch @@ -0,0 +1,36 @@ +commit 3d29045b5e8329d97693eda8d98f1d1e60b99c8f +Author: H.J. Lu +Date: Fri Jun 3 07:01:25 2011 -0400 + + Assume Intel Core i3/i5/i7 processor if AVX is available + +2011-06-02 H.J. Lu + + * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): + Assume Intel Core i3/i5/i7 processor if AVX is available. + +diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c +index 34ec2df..809d105 100644 +--- a/sysdeps/x86_64/multiarch/init-arch.c ++++ b/sysdeps/x86_64/multiarch/init-arch.c +@@ -74,6 +74,7 @@ __init_cpu_features (void) + } + else if (family == 0x06) + { ++ ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx; + model += extended_model; + switch (model) + { +@@ -83,6 +84,12 @@ __init_cpu_features (void) + __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF; + break; + ++ default: ++ /* Unknown family 0x06 processors. Assuming this is one ++ of Core i3/i5/i7 processors if AVX is available. */ ++ if ((ecx & bit_AVX) == 0) ++ break; ++ + case 0x1a: + case 0x1e: + case 0x1f: diff --git a/src/patches/glibc/glibc-rh697421.patch b/src/patches/glibc/glibc-rh697421.patch new file mode 100644 index 0000000000..961c8053ae --- /dev/null +++ b/src/patches/glibc/glibc-rh697421.patch @@ -0,0 +1,10 @@ +diff -rup a/iconvdata/gconv-modules b/iconvdata/gconv-modules +--- a/iconvdata/gconv-modules 2010-05-04 05:27:23.000000000 -0600 ++++ b/iconvdata/gconv-modules 2012-01-26 10:58:24.181895489 -0700 +@@ -1954,3 +1954,6 @@ alias HPGREEK8// HP-GREEK8// + alias OSF10010004// HP-GREEK8// + module HP-GREEK8// INTERNAL HP-GREEK8 1 + module INTERNAL HP-GREEK8// HP-GREEK8 1 ++ ++alias ISO-10646-UCS-2// UNICODE// ++alias ISO-10646-UCS-2// ISO-10646/UTF8/ diff --git a/src/patches/glibc/glibc-rh699724.patch b/src/patches/glibc/glibc-rh699724.patch new file mode 100644 index 0000000000..d25ce84233 --- /dev/null +++ b/src/patches/glibc/glibc-rh699724.patch @@ -0,0 +1,188 @@ +2011-02-23 Andreas Schwab + + [BZ #12509] + * elf/dl-load.c (_dl_map_object_from_fd): Free realname before + returning unsuccessfully. + * elf/Makefile ($(objpfx)noload-mem): New rule. + (noload-ENV): Define. + (tests): Add $(objpfx)noload-mem. + * elf/noload.c: Include . + (main): Call mtrace. Close all opened handles. + +2010-09-27 Andreas Schwab + + * include/link.h (struct link_map): Add l_free_initfini. + * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning + l_initfini. + * elf/rtld.c (dl_main): Clear it on all objects loaded on startup. + * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is + set. + +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -211,7 +211,7 @@ endif + ifeq (yesyes,$(have-fpie)$(build-shared)) + tests: $(objpfx)tst-pie1.out + endif +-tests: $(objpfx)tst-leaks1-mem ++tests: $(objpfx)tst-leaks1-mem $(objpfx)noload-mem + tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ +@@ -664,6 +664,10 @@ $(objpfx)noload: $(objpfx)testobj1.so $( + LDFLAGS-noload = -rdynamic + $(objpfx)noload.out: $(objpfx)testobj5.so + ++$(objpfx)noload-mem: $(objpfx)noload.out ++ $(common-objpfx)malloc/mtrace $(objpfx)noload.mtrace > $@ ++noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace ++ + LDFLAGS-nodelete = -rdynamic + LDFLAGS-nodelmod1.so = -Wl,--enable-new-dtags,-z,nodelete + LDFLAGS-nodelmod4.so = -Wl,--enable-new-dtags,-z,nodelete +Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c +@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *ma + nneeded * sizeof needed[0]); + atomic_write_barrier (); + l->l_initfini = l_initfini; ++ l->l_free_initfini = 1; + } + + /* If we have no auxiliary objects just go on to the next map. */ +@@ -662,6 +663,7 @@ Filters not supported with LD_TRACE_PREL + l_initfini[nlist] = NULL; + atomic_write_barrier (); + map->l_initfini = l_initfini; ++ map->l_free_initfini = 1; + if (l_reldeps != NULL) + { + atomic_write_barrier (); +Index: glibc-2.12-2-gc4ccff1/elf/dl-libc.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-libc.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-libc.c +@@ -250,5 +250,9 @@ libc_freeres_fn (free_mem) + if (! old->dont_free) + free (old); + } ++ ++ /* Free the initfini dependency list. */ ++ if (l->l_free_initfini) ++ free (l->l_initfini); + } + } +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -907,6 +907,7 @@ _dl_map_object_from_fd (const char *name + { + /* We are not supposed to load the object unless it is already + loaded. So return now. */ ++ free (realname); + __close (fd); + return NULL; + } +@@ -925,6 +926,7 @@ _dl_map_object_from_fd (const char *name + _dl_zerofd = _dl_sysdep_open_zero_fill (); + if (_dl_zerofd == -1) + { ++ free (realname); + __close (fd); + _dl_signal_error (errno, NULL, NULL, + N_("cannot open zero fill device")); +Index: glibc-2.12-2-gc4ccff1/elf/noload.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/noload.c ++++ glibc-2.12-2-gc4ccff1/elf/noload.c +@@ -1,20 +1,28 @@ + #include + #include ++#include + + int + main (void) + { + int result = 0; ++ void *p; ++ ++ mtrace (); + + /* First try to load an object which is a dependency. This should + succeed. */ +- if (dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD) == NULL) ++ p = dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD); ++ if (p == NULL) + { + printf ("cannot open \"testobj1.so\": %s\n", dlerror ()); + result = 1; + } + else +- puts ("loading \"testobj1.so\" succeeded, OK"); ++ { ++ puts ("loading \"testobj1.so\" succeeded, OK"); ++ dlclose (p); ++ } + + /* Now try loading an object which is not already loaded. */ + if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) != NULL) +@@ -25,8 +33,6 @@ main (void) + else + { + /* Load the object and run the same test again. */ +- void *p; +- + puts ("\"testobj5.so\" wasn't loaded and RTLD_NOLOAD prevented it, OK"); + + p = dlopen ("testobj5.so", RTLD_LAZY); +@@ -41,13 +47,17 @@ main (void) + { + puts ("loading \"testobj5.so\" succeeded, OK"); + +- if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) == NULL) ++ void *q = dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD); ++ if (q == NULL) + { + printf ("cannot open \"testobj5.so\": %s\n", dlerror ()); + result = 1; + } + else +- puts ("loading \"testobj5.so\" with RTLD_NOLOAD succeeded, OK"); ++ { ++ puts ("loading \"testobj5.so\" with RTLD_NOLOAD succeeded, OK"); ++ dlclose (q); ++ } + + if (dlclose (p) != 0) + { +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -2249,6 +2249,7 @@ ERROR: ld.so: object '%s' cannot be load + lnp->dont_free = 1; + lnp = lnp->next; + } ++ l->l_free_initfini = 0; + + if (l != &GL(dl_rtld_map)) + _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0, +Index: glibc-2.12-2-gc4ccff1/include/link.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/link.h ++++ glibc-2.12-2-gc4ccff1/include/link.h +@@ -192,6 +192,9 @@ struct link_map + during LD_TRACE_PRELINKING=1 + contains any DT_SYMBOLIC + libraries. */ ++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be ++ freed, ie. not allocated with ++ the dummy malloc in ld.so. */ + + /* Collected information about own RPATH directories. */ + struct r_search_path_struct l_rpath_dirs; diff --git a/src/patches/glibc/glibc-rh700507.patch b/src/patches/glibc/glibc-rh700507.patch new file mode 100644 index 0000000000..0660431db0 --- /dev/null +++ b/src/patches/glibc/glibc-rh700507.patch @@ -0,0 +1,26 @@ +Index: glibc-2.12-2-gc4ccff1/nscd/nscd.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.c ++++ glibc-2.12-2-gc4ccff1/nscd/nscd.c +@@ -260,10 +260,6 @@ main (int argc, char **argv) + /* In foreground mode we are not paranoid. */ + paranoia = 0; + +- /* Start the SELinux AVC. */ +- if (selinux_enabled) +- nscd_avc_init (); +- + signal (SIGINT, termination_handler); + signal (SIGQUIT, termination_handler); + signal (SIGTERM, termination_handler); +@@ -278,6 +274,10 @@ main (int argc, char **argv) + /* Init databases. */ + nscd_init (); + ++ /* Start the SELinux AVC. */ ++ if (selinux_enabled) ++ nscd_avc_init (); ++ + /* Handle incoming requests */ + start_threads (); + diff --git a/src/patches/glibc/glibc-rh703480.patch b/src/patches/glibc/glibc-rh703480.patch new file mode 100644 index 0000000000..742a79a37a --- /dev/null +++ b/src/patches/glibc/glibc-rh703480.patch @@ -0,0 +1,68 @@ +2011-01-15 Ulrich Drepper + + [BZ #6812] + * nscd/hstcache.c (tryagain): Define. + (cache_addhst): Return tryagain not notfound for temporary errors. + (addhstbyX): Also set h_errno to TRY_AGAIN when memory allocation + failed. + +Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c +@@ -77,6 +77,20 @@ static const hst_response_header notfoun + }; + + ++/* This is the standard reply in case there are temporary problems. */ ++static const hst_response_header tryagain = ++{ ++ .version = NSCD_VERSION, ++ .found = 0, ++ .h_name_len = 0, ++ .h_aliases_cnt = 0, ++ .h_addrtype = -1, ++ .h_length = -1, ++ .h_addr_list_cnt = 0, ++ .error = TRY_AGAIN ++}; ++ ++ + static void + cache_addhst (struct database_dyn *db, int fd, request_header *req, + const void *key, struct hostent *hst, uid_t owner, +@@ -111,11 +125,15 @@ cache_addhst (struct database_dyn *db, i + else + { + /* We have no data. This means we send the standard reply for this +- case. */ ++ case. Possibly this is only temporary. */ + ssize_t total = sizeof (notfound); ++ assert (sizeof (notfound) == sizeof (tryagain)); ++ ++ const hst_response_header *resp = (errval == EAGAIN ++ ? &tryagain : ¬found); + + if (fd != -1 && +- TEMP_FAILURE_RETRY (send (fd, ¬found, total, ++ TEMP_FAILURE_RETRY (send (fd, resp, total, + MSG_NOSIGNAL)) != total) + all_written = false; + +@@ -135,7 +153,7 @@ cache_addhst (struct database_dyn *db, i + ? db->negtimeout : ttl); + + /* This is the reply. */ +- memcpy (&dataset->resp, ¬found, total); ++ memcpy (&dataset->resp, resp, total); + + /* Copy the key data. */ + memcpy (dataset->strdata, key, req->key_len); +@@ -490,6 +508,7 @@ addhstbyX (struct database_dyn *db, int + /* We set the error to indicate this is (possibly) a + temporary error and that it does not mean the entry + is not available at all. */ ++ h_errno = TRY_AGAIN; + errval = EAGAIN; + break; + } diff --git a/src/patches/glibc/glibc-rh703481.patch b/src/patches/glibc/glibc-rh703481.patch new file mode 100644 index 0000000000..fdde4b5de3 --- /dev/null +++ b/src/patches/glibc/glibc-rh703481.patch @@ -0,0 +1,875 @@ +2011-02-05 Ulrich Drepper + + * nscd/nscd-client.h: Define MAX_TIMEOUT_VALUE. + (struct datahead): Reuse 32 bits of the alignment for a TTL field. + * nscd/aicache.c (addhstaiX): Return timeout of added value. + (readdhstai): Return value of addhstaiX call. + * nscd/grpcache.c (cache_addgr): Return timeout of added value. + (addgrbyX): Return value returned by cache_addgr. + (readdgrbyname): Return value returned by addgrbyX. + (readdgrbygid): Likewise. + * nscd/pwdcache.c (cache_addpw): Return timeout of added value. + (addpwbyX): Return value returned by cache_addpw. + (readdpwbyname): Return value returned by addhstbyX. + (readdpwbyuid): Likewise. + * nscd/servicescache.c (cache_addserv): Return timeout of added value. + (addservbyX): Return value returned by cache_addserv. + (readdservbyname): Return value returned by addservbyX: + (readdservbyport): Likewise. + * nscd/hstcache.c (cache_addhst): Return timeout of added value. + (addhstbyX): Return value returned by cache_addhst. + (readdhstbyname): Return value returned by addhstbyX. + (readdhstbyaddr): Likewise. + (readdhstbynamev6): Likewise. + (readdhstbyaddrv6): Likewise. + * nscd/initgrcache.c (addinitgroupsX): Return timeout of added value. + (readdinitgroups): Return value returned by addinitgroupsX. + * nscd/cache.c (readdfcts): Change return value of functions to time_t. + (prune_cache): Keep track of timeout value of re-added entries. + * nscd/connections.c (nscd_run_prune): Use MAX_TIMEOUT_VALUE. + * nscd/nscd.h: Adjust prototypes of readd* functions. + +Index: glibc-2.12-2-gc4ccff1/nscd/aicache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/aicache.c ++++ glibc-2.12-2-gc4ccff1/nscd/aicache.c +@@ -58,7 +58,7 @@ static const ai_response_header notfound + }; + + +-static void ++static time_t + addhstaiX (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid, struct hashentry *const he, + struct datahead *dh) +@@ -119,6 +119,7 @@ addhstaiX (struct database_dyn *db, int + ssize_t total = 0; + char *key_copy = NULL; + bool alloca_used = false; ++ time_t timeout = MAX_TIMEOUT_VALUE; + + while (!no_more) + { +@@ -388,8 +389,8 @@ addhstaiX (struct database_dyn *db, int + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + (ttl == INT32_MAX +- ? db->postimeout : ttl); ++ dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl; ++ timeout = dataset->head.timeout = time (NULL) + dataset->head.ttl; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -421,6 +422,7 @@ addhstaiX (struct database_dyn *db, int + timeout value. Note that the new record has been + allocated on the stack and need not be freed. */ + dh->timeout = dataset->head.timeout; ++ dh->ttl = dataset->head.ttl; + ++dh->nreloads; + } + else +@@ -496,6 +498,9 @@ next_nip: + if (reload_count != UINT_MAX && dh->nreloads == reload_count) + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; ++ ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = time (NULL) + dh->ttl; + } + else + { +@@ -517,7 +522,8 @@ next_nip: + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + db->negtimeout; ++ timeout = dataset->head.timeout = time (NULL) + db->negtimeout; ++ dataset->head.ttl = db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -551,6 +557,8 @@ next_nip: + if (dh != NULL) + dh->usable = false; + } ++ ++ return timeout; + } + + +@@ -562,7 +570,7 @@ addhstai (struct database_dyn *db, int f + } + + +-void ++time_t + readdhstai (struct database_dyn *db, struct hashentry *he, struct datahead *dh) + { + request_header req = +@@ -571,5 +579,5 @@ readdhstai (struct database_dyn *db, str + .key_len = he->len + }; + +- addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/cache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/cache.c ++++ glibc-2.12-2-gc4ccff1/nscd/cache.c +@@ -45,9 +45,9 @@ extern void *xcalloc (size_t n, size_t s + unsigned int reload_count = DEFAULT_RELOAD_LIMIT; + + +-static void (*const readdfcts[LASTREQ]) (struct database_dyn *, +- struct hashentry *, +- struct datahead *) = ++static time_t (*const readdfcts[LASTREQ]) (struct database_dyn *, ++ struct hashentry *, ++ struct datahead *) = + { + [GETPWBYNAME] = readdpwbyname, + [GETPWBYUID] = readdpwbyuid, +@@ -389,7 +389,8 @@ prune_cache (struct database_dyn *table, + assert (runp->type < LASTREQ + && readdfcts[runp->type] != NULL); + +- readdfcts[runp->type] (table, runp, dh); ++ time_t timeout = readdfcts[runp->type] (table, runp, dh); ++ next_timeout = MIN (next_timeout, timeout); + + /* If the entry has been replaced, we might need + cleanup. */ +Index: glibc-2.12-2-gc4ccff1/nscd/connections.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/connections.c ++++ glibc-2.12-2-gc4ccff1/nscd/connections.c +@@ -1533,10 +1533,7 @@ nscd_run_prune (void *p) + pruning we want to know about it. Therefore set the + timeout to the maximum. It will be descreased when adding + new entries to the cache, if necessary. */ +- if (sizeof (time_t) == sizeof (long int)) +- dbs[my_number].wakeup_time = LONG_MAX; +- else +- dbs[my_number].wakeup_time = INT_MAX; ++ dbs[my_number].wakeup_time = MAX_TIMEOUT_VALUE; + + /* Unconditionally reset the flag. */ + time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now; +Index: glibc-2.12-2-gc4ccff1/nscd/grpcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/grpcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/grpcache.c +@@ -71,7 +71,7 @@ static const gr_response_header notfound + }; + + +-static void ++static time_t + cache_addgr (struct database_dyn *db, int fd, request_header *req, + const void *key, struct group *grp, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) +@@ -91,6 +91,7 @@ cache_addgr (struct database_dyn *db, in + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (grp == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -102,6 +103,9 @@ cache_addgr (struct database_dyn *db, in + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; + ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + db->postimeout; ++ + written = total = 0; + } + else +@@ -125,7 +129,7 @@ cache_addgr (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->negtimeout; ++ timeout = dataset->head.timeout = t + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -217,7 +221,7 @@ cache_addgr (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->postimeout; ++ timeout = dataset->head.timeout = t + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -379,6 +383,8 @@ cache_addgr (struct database_dyn *db, in + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -400,7 +406,7 @@ lookup (int type, union keytype key, str + } + + +-static void ++static time_t + addgrbyX (struct database_dyn *db, int fd, request_header *req, + union keytype key, const char *keystr, uid_t uid, + struct hashentry *he, struct datahead *dh) +@@ -456,10 +462,12 @@ addgrbyX (struct database_dyn *db, int f + buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); + } + +- cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval); ++ time_t timeout = cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -473,7 +481,7 @@ addgrbyname (struct database_dyn *db, in + } + + +-void ++time_t + readdgrbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -484,7 +492,7 @@ readdgrbyname (struct database_dyn *db, + }; + union keytype u = { .v = db->data + he->key }; + +- addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } + + +@@ -510,7 +518,7 @@ addgrbygid (struct database_dyn *db, int + } + + +-void ++time_t + readdgrbygid (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -527,5 +535,5 @@ readdgrbygid (struct database_dyn *db, s + }; + union keytype u = { .g = gid }; + +- addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c +@@ -91,7 +91,7 @@ static const hst_response_header tryagai + }; + + +-static void ++static time_t + cache_addhst (struct database_dyn *db, int fd, request_header *req, + const void *key, struct hostent *hst, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval, +@@ -111,6 +111,7 @@ cache_addhst (struct database_dyn *db, i + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (hst == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -121,6 +122,9 @@ cache_addhst (struct database_dyn *db, i + if (reload_count != UINT_MAX) + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; ++ ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + dh->ttl; + } + else + { +@@ -149,8 +153,8 @@ cache_addhst (struct database_dyn *db, i + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + (ttl == INT32_MAX +- ? db->negtimeout : ttl); ++ dataset->head.ttl = ttl == INT32_MAX ? db->negtimeout : ttl; ++ timeout = dataset->head.timeout = t + dataset->head.ttl; + + /* This is the reply. */ + memcpy (&dataset->resp, resp, total); +@@ -214,7 +218,7 @@ cache_addhst (struct database_dyn *db, i + + if (h_addr_list_cnt == 0) + /* Invalid entry. */ +- return; ++ return MAX_TIMEOUT_VALUE; + + total += (sizeof (struct dataset) + + h_name_len +@@ -255,7 +259,8 @@ cache_addhst (struct database_dyn *db, i + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + (ttl == INT32_MAX ? db->postimeout : ttl); ++ dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl; ++ timeout = dataset->head.timeout = t + dataset->head.ttl; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -312,6 +317,7 @@ cache_addhst (struct database_dyn *db, i + timeout value. Note that the new record has been + allocated on the stack and need not be freed. */ + assert (h_addr_list_cnt == 1); ++ dh->ttl = dataset->head.ttl; + dh->timeout = dataset->head.timeout; + ++dh->nreloads; + } +@@ -433,6 +439,8 @@ cache_addhst (struct database_dyn *db, i + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -454,7 +462,7 @@ lookup (int type, void *key, struct host + } + + +-static void ++static time_t + addhstbyX (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid, struct hashentry *he, struct datahead *dh) + { +@@ -520,11 +528,13 @@ addhstbyX (struct database_dyn *db, int + buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); + } + +- cache_addhst (db, fd, req, key, hst, uid, he, dh, +- h_errno == TRY_AGAIN ? errval : 0, ttl); ++ time_t timeout = cache_addhst (db, fd, req, key, hst, uid, he, dh, ++ h_errno == TRY_AGAIN ? errval : 0, ttl); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -536,7 +546,7 @@ addhstbyname (struct database_dyn *db, i + } + + +-void ++time_t + readdhstbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -546,7 +556,7 @@ readdhstbyname (struct database_dyn *db, + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -558,7 +568,7 @@ addhstbyaddr (struct database_dyn *db, i + } + + +-void ++time_t + readdhstbyaddr (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -568,7 +578,7 @@ readdhstbyaddr (struct database_dyn *db, + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -580,7 +590,7 @@ addhstbynamev6 (struct database_dyn *db, + } + + +-void ++time_t + readdhstbynamev6 (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -590,7 +600,7 @@ readdhstbynamev6 (struct database_dyn *d + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -602,7 +612,7 @@ addhstbyaddrv6 (struct database_dyn *db, + } + + +-void ++time_t + readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -612,5 +622,5 @@ readdhstbyaddrv6 (struct database_dyn *d + .key_len = he->len + }; + +- addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/initgrcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/initgrcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/initgrcache.c +@@ -52,7 +52,7 @@ static const initgr_response_header notf + #include "../grp/compat-initgroups.c" + + +-static void ++static time_t + addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid, struct hashentry *const he, + struct datahead *dh) +@@ -174,7 +174,9 @@ addinitgroupsX (struct database_dyn *db, + + ssize_t total; + ssize_t written; ++ time_t timeout; + out: ++ timeout = MAX_TIMEOUT_VALUE; + if (!any_success) + { + /* Nothing found. Create a negative result record. */ +@@ -188,6 +190,9 @@ addinitgroupsX (struct database_dyn *db, + if (reload_count != UINT_MAX && dh->nreloads == reload_count) + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; ++ ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = time (NULL) + db->postimeout; + } + else + { +@@ -209,7 +214,7 @@ addinitgroupsX (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + db->negtimeout; ++ timeout = dataset->head.timeout = time (NULL) + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -273,7 +278,7 @@ addinitgroupsX (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = time (NULL) + db->postimeout; ++ timeout = dataset->head.timeout = time (NULL) + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -401,6 +406,8 @@ addinitgroupsX (struct database_dyn *db, + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -412,7 +419,7 @@ addinitgroups (struct database_dyn *db, + } + + +-void ++time_t + readdinitgroups (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -422,5 +429,5 @@ readdinitgroups (struct database_dyn *db + .key_len = he->len + }; + +- addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/nscd-client.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd-client.h ++++ glibc-2.12-2-gc4ccff1/nscd/nscd-client.h +@@ -179,6 +179,10 @@ typedef uint32_t ref_t; + /* Timestamp type. */ + typedef uint64_t nscd_time_t; + ++/* Maximum timestamp. */ ++#define MAX_TIMEOUT_VALUE \ ++ (sizeof (time_t) == sizeof (long int) ? LONG_MAX : INT_MAX) ++ + /* Alignment requirement of the beginning of the data region. */ + #define ALIGN 16 + +@@ -192,7 +196,8 @@ struct datahead + uint8_t notfound; /* Nonzero if data has not been found. */ + uint8_t nreloads; /* Reloads without use. */ + uint8_t usable; /* False if the entry must be ignored. */ +- uint64_t :40; /* Alignment. */ ++ uint8_t unused; /* Unused. */ ++ uint32_t ttl; /* TTL value used. */ + + /* We need to have the following element aligned for the response + header data types and their use in the 'struct dataset' types +Index: glibc-2.12-2-gc4ccff1/nscd/nscd.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.h ++++ glibc-2.12-2-gc4ccff1/nscd/nscd.h +@@ -217,20 +217,20 @@ extern void addpwbyname (struct database + void *key, uid_t uid); + extern void addpwbyuid (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); +-extern void readdpwbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdpwbyuid (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdpwbyname (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); ++extern time_t readdpwbyuid (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* grpcache.c */ + extern void addgrbyname (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); + extern void addgrbygid (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); +-extern void readdgrbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdgrbygid (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdgrbyname (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); ++extern time_t readdgrbygid (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* hstcache.c */ + extern void addhstbyname (struct database_dyn *db, int fd, request_header *req, +@@ -241,37 +241,37 @@ extern void addhstbynamev6 (struct datab + request_header *req, void *key, uid_t uid); + extern void addhstbyaddrv6 (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdhstbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdhstbyaddr (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); +-extern void readdhstbynamev6 (struct database_dyn *db, struct hashentry *he, ++extern time_t readdhstbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh); +-extern void readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he, ++extern time_t readdhstbyaddr (struct database_dyn *db, struct hashentry *he, + struct datahead *dh); ++extern time_t readdhstbynamev6 (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); ++extern time_t readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* aicache.c */ + extern void addhstai (struct database_dyn *db, int fd, request_header *req, + void *key, uid_t uid); +-extern void readdhstai (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdhstai (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + + /* initgrcache.c */ + extern void addinitgroups (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdinitgroups (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdinitgroups (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* servicecache.c */ + extern void addservbyname (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdservbyname (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdservbyname (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + extern void addservbyport (struct database_dyn *db, int fd, + request_header *req, void *key, uid_t uid); +-extern void readdservbyport (struct database_dyn *db, struct hashentry *he, +- struct datahead *dh); ++extern time_t readdservbyport (struct database_dyn *db, struct hashentry *he, ++ struct datahead *dh); + + /* mem.c */ + extern void *mempool_alloc (struct database_dyn *db, size_t len, +Index: glibc-2.12-2-gc4ccff1/nscd/pwdcache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/pwdcache.c ++++ glibc-2.12-2-gc4ccff1/nscd/pwdcache.c +@@ -77,7 +77,7 @@ static const pw_response_header notfound + }; + + +-static void ++static time_t + cache_addpw (struct database_dyn *db, int fd, request_header *req, + const void *key, struct passwd *pwd, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) +@@ -97,6 +97,7 @@ cache_addpw (struct database_dyn *db, in + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (pwd == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -108,6 +109,9 @@ cache_addpw (struct database_dyn *db, in + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; + ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + db->postimeout; ++ + written = total = 0; + } + else +@@ -132,7 +136,7 @@ cache_addpw (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->negtimeout; ++ timeout = dataset->head.timeout = t + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -212,7 +216,7 @@ cache_addpw (struct database_dyn *db, in + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->postimeout; ++ timeout = dataset->head.timeout = t + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -293,8 +297,8 @@ cache_addpw (struct database_dyn *db, in + assert ((char *) dataset - (char *) db->head + + total + <= (sizeof (struct database_pers_head) +- + db->head->module * sizeof (ref_t) +- + db->head->data_size)); ++ + db->head->module * sizeof (ref_t) ++ + db->head->data_size)); + written = sendfileall (fd, db->wr_fd, + (char *) &dataset->resp + - (char *) db->head, dataset->head.recsize ); +@@ -374,6 +378,8 @@ cache_addpw (struct database_dyn *db, in + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -395,7 +401,7 @@ lookup (int type, union keytype key, str + } + + +-static void ++static time_t + addpwbyX (struct database_dyn *db, int fd, request_header *req, + union keytype key, const char *keystr, uid_t c_uid, + struct hashentry *he, struct datahead *dh) +@@ -452,10 +458,13 @@ addpwbyX (struct database_dyn *db, int f + } + + /* Add the entry to the cache. */ +- cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh, errval); ++ time_t timeout = cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh, ++ errval); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -469,7 +478,7 @@ addpwbyname (struct database_dyn *db, in + } + + +-void ++time_t + readdpwbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -480,7 +489,7 @@ readdpwbyname (struct database_dyn *db, + }; + union keytype u = { .v = db->data + he->key }; + +- addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } + + +@@ -506,7 +515,7 @@ addpwbyuid (struct database_dyn *db, int + } + + +-void ++time_t + readdpwbyuid (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -523,5 +532,5 @@ readdpwbyuid (struct database_dyn *db, s + }; + union keytype u = { .u = uid }; + +- addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); ++ return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh); + } +Index: glibc-2.12-2-gc4ccff1/nscd/servicescache.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nscd/servicescache.c ++++ glibc-2.12-2-gc4ccff1/nscd/servicescache.c +@@ -61,7 +61,7 @@ static const serv_response_header notfou + }; + + +-static void ++static time_t + cache_addserv (struct database_dyn *db, int fd, request_header *req, + const void *key, struct servent *serv, uid_t owner, + struct hashentry *const he, struct datahead *dh, int errval) +@@ -81,6 +81,7 @@ cache_addserv (struct database_dyn *db, + + assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data)); + ++ time_t timeout = MAX_TIMEOUT_VALUE; + if (serv == NULL) + { + if (he != NULL && errval == EAGAIN) +@@ -92,6 +93,9 @@ cache_addserv (struct database_dyn *db, + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; + ++ /* Reload with the same time-to-live value. */ ++ timeout = dh->timeout = t + db->postimeout; ++ + written = total = 0; + } + else +@@ -115,7 +119,7 @@ cache_addserv (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->negtimeout; ++ timeout = dataset->head.timeout = t + db->negtimeout; + + /* This is the reply. */ + memcpy (&dataset->resp, ¬found, total); +@@ -203,7 +207,7 @@ cache_addserv (struct database_dyn *db, + dataset->head.usable = true; + + /* Compute the timeout time. */ +- dataset->head.timeout = t + db->postimeout; ++ timeout = dataset->head.timeout = t + db->postimeout; + + dataset->resp.version = NSCD_VERSION; + dataset->resp.found = 1; +@@ -328,6 +332,8 @@ cache_addserv (struct database_dyn *db, + dbg_log (_("short write in %s: %s"), __FUNCTION__, + strerror_r (errno, buf, sizeof (buf))); + } ++ ++ return timeout; + } + + +@@ -354,7 +360,7 @@ lookup (int type, char *key, struct serv + } + + +-static void ++static time_t + addservbyX (struct database_dyn *db, int fd, request_header *req, + char *key, uid_t uid, struct hashentry *he, struct datahead *dh) + { +@@ -409,10 +415,12 @@ addservbyX (struct database_dyn *db, int + buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); + } + +- cache_addserv (db, fd, req, key, serv, uid, he, dh, errval); ++ time_t timeout = cache_addserv (db, fd, req, key, serv, uid, he, dh, errval); + + if (use_malloc) + free (buffer); ++ ++ return timeout; + } + + +@@ -424,7 +432,7 @@ addservbyname (struct database_dyn *db, + } + + +-void ++time_t + readdservbyname (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -434,7 +442,7 @@ readdservbyname (struct database_dyn *db + .key_len = he->len + }; + +- addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } + + +@@ -446,7 +454,7 @@ addservbyport (struct database_dyn *db, + } + + +-void ++time_t + readdservbyport (struct database_dyn *db, struct hashentry *he, + struct datahead *dh) + { +@@ -456,5 +464,5 @@ readdservbyport (struct database_dyn *db + .key_len = he->len + }; + +- addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); ++ return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh); + } diff --git a/src/patches/glibc/glibc-rh705465.patch b/src/patches/glibc/glibc-rh705465.patch new file mode 100644 index 0000000000..63b971e7dc --- /dev/null +++ b/src/patches/glibc/glibc-rh705465.patch @@ -0,0 +1,449 @@ +2011-11-07 Andreas Schwab + + * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): + Fix size of allocated buffer. + +2011-05-10 Ulrich Drepper + + [BZ #11257] + * grp/initgroups.c (internal_getgrouplist): When we found the service + list through the initgroups entry in nsswitch.conf do not always + continue on a successful lookup. Don't always use the + __nss_group_data-ase value if it is set. + * nss/nsswitch.conf (initgroups): Change action for successful db + lookup to continue for compatibility. + +2011-05-06 Ulrich Drepper + + * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Return + NSS_STATUS_NOTFOUND if no record was found. + +2011-04-29 Ulrich Drepper + + * grp/initgroups.c (internal_getgrouplist): Prefer initgroups setting + to groups setting in database lookup. + * nss/nsswitch.conf: Add initgroups entry. + +2011-04-21 Ulrich Drepper + + * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Fix + problem in reallocation in last patch. + +2011-04-19 Ulrich Drepper + + * nss/nss_files/files-initgroups.c: New file. + * nss/Makefile (libnss_files-routines): Add files-initgroups. + * nss/Versions (libnss_files) [GLIBC_PRIVATE]: Export + _nss_files_initgroups_dyn. + +2011-01-13 Ulrich Drepper + + [BZ #10484] + * nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Handle overflows of + temporary buffer used to handle multi lookups locally. + * include/alloca.h: Add libc_hidden_proto for __libc_alloca_cutoff. + +2011-01-13 Ulrich Drepper + + [BZ #10484] + * Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff. + * alloca_cutoff.c: Add libc_hidden_def. + +Index: glibc-2.12-2-gc4ccff1/grp/initgroups.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/grp/initgroups.c ++++ glibc-2.12-2-gc4ccff1/grp/initgroups.c +@@ -43,6 +43,8 @@ extern int __nss_group_lookup (service_u + extern void *__nss_lookup_function (service_user *ni, const char *fct_name); + + extern service_user *__nss_group_database attribute_hidden; ++static service_user *initgroups_database; ++static bool use_initgroups_entry; + + + #include "compat-initgroups.c" +@@ -67,32 +69,41 @@ internal_getgrouplist (const char *user, + } + #endif + +- service_user *nip = NULL; +- initgroups_dyn_function fct; + enum nss_status status = NSS_STATUS_UNAVAIL; +- int no_more; +- /* Start is one, because we have the first group as parameter. */ +- long int start = 1; ++ int no_more = 0; + + /* Never store more than the starting *SIZE number of elements. */ + assert (*size > 0); + (*groupsp)[0] = group; ++ /* Start is one, because we have the first group as parameter. */ ++ long int start = 1; + +- if (__nss_group_database != NULL) ++ if (initgroups_database == NULL) + { +- no_more = 0; +- nip = __nss_group_database; ++ no_more = __nss_database_lookup ("initgroups", NULL, "", ++ &initgroups_database); ++ if (no_more == 0 && initgroups_database == NULL) ++ { ++ if (__nss_group_database == NULL) ++ no_more = __nss_database_lookup ("group", NULL, "compat files", ++ &__nss_group_database); ++ ++ initgroups_database = __nss_group_database; ++ } ++ else if (initgroups_database != NULL) ++ { ++ assert (no_more == 0); ++ use_initgroups_entry = true; ++ } + } +- else +- no_more = __nss_database_lookup ("group", NULL, +- "compat [NOTFOUND=return] files", &nip); + ++ service_user *nip = initgroups_database; + while (! no_more) + { + long int prev_start = start; + +- fct = __nss_lookup_function (nip, "initgroups_dyn"); +- ++ initgroups_dyn_function fct = __nss_lookup_function (nip, ++ "initgroups_dyn"); + if (fct == NULL) + status = compat_call (nip, user, group, &start, size, groupsp, + limit, &errno); +@@ -119,7 +130,13 @@ internal_getgrouplist (const char *user, + if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN) + __libc_fatal ("illegal status in internal_getgrouplist"); + +- if (status != NSS_STATUS_SUCCESS ++ /* For compatibility reason we will continue to look for more ++ entries using the next service even though data has already ++ been found if the nsswitch.conf file contained only a 'groups' ++ line and no 'initgroups' line. If the latter is available ++ we always respect the status. This means that the default ++ for successful lookups is to return. */ ++ if ((use_initgroups_entry || status != NSS_STATUS_SUCCESS) + && nss_next_action (nip, status) == NSS_ACTION_RETURN) + break; + +Index: glibc-2.12-2-gc4ccff1/include/alloca.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/include/alloca.h ++++ glibc-2.12-2-gc4ccff1/include/alloca.h +@@ -14,6 +14,7 @@ extern void *__alloca (size_t __size); + + extern int __libc_use_alloca (size_t size) __attribute__ ((const)); + extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const)); ++libc_hidden_proto (__libc_alloca_cutoff) + + #define __MAX_ALLOCA_CUTOFF 65536 + +Index: glibc-2.12-2-gc4ccff1/nptl/Versions +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/Versions ++++ glibc-2.12-2-gc4ccff1/nptl/Versions +@@ -27,6 +27,7 @@ libc { + pthread_cond_broadcast; pthread_cond_timedwait; + } + GLIBC_PRIVATE { ++ __libc_alloca_cutoff; + # Internal libc interface to libpthread + __libc_dl_error_tsd; + } +Index: glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/alloca_cutoff.c ++++ glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c +@@ -34,3 +34,4 @@ __libc_alloca_cutoff (size_t size) + assume the maximum available stack space. */ + ?: __MAX_ALLOCA_CUTOFF * 4)); + } ++libc_hidden_def (__libc_alloca_cutoff) +Index: glibc-2.12-2-gc4ccff1/nss/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile ++++ glibc-2.12-2-gc4ccff1/nss/Makefile +@@ -63,7 +63,7 @@ vpath %.c $(subdir-dirs) + + + libnss_files-routines := $(addprefix files-,$(databases)) \ +- files-have_o_cloexec ++ files-initgroups files-have_o_cloexec + distribute += files-XXX.c files-parse.c + + +Index: glibc-2.12-2-gc4ccff1/nss/Versions +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/Versions ++++ glibc-2.12-2-gc4ccff1/nss/Versions +@@ -95,5 +95,7 @@ libnss_files { + _nss_netgroup_parseline; + _nss_files_getpublickey; + _nss_files_getsecretkey; ++ ++ _nss_files_initgroups_dyn; + } + } +Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/nss_files/files-hosts.c ++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c +@@ -129,19 +129,22 @@ _nss_files_get##name##_r (proto, + && _res_hconf.flags & HCONF_FLAG_MULTI) \ + { \ + /* We have to get all host entries from the file. */ \ +- const size_t tmp_buflen = MIN (buflen, 4096); \ +- char tmp_buffer[tmp_buflen] \ ++ size_t tmp_buflen = MIN (buflen, 4096); \ ++ char tmp_buffer_stack[tmp_buflen] \ + __attribute__ ((__aligned__ (__alignof__ (struct hostent_data))));\ ++ char *tmp_buffer = tmp_buffer_stack; \ + struct hostent tmp_result_buf; \ + int naddrs = 1; \ + int naliases = 0; \ + char *bufferend; \ ++ bool tmp_buffer_malloced = false; \ + \ + while (result->h_aliases[naliases] != NULL) \ + ++naliases; \ + \ + bufferend = (char *) &result->h_aliases[naliases + 1]; \ + \ ++ again: \ + while ((status = internal_getent (&tmp_result_buf, tmp_buffer, \ + tmp_buflen, errnop H_ERRNO_ARG \ + EXTRA_ARGS_VALUE)) \ +@@ -182,7 +185,7 @@ _nss_files_get##name##_r (proto, + } \ + /* If the real name is different add it also to the \ + aliases. This means that there is a duplication \ +- in the alias list but this is really the users \ ++ in the alias list but this is really the user's \ + problem. */ \ + if (strcmp (old_result->h_name, \ + tmp_result_buf.h_name) != 0) \ +@@ -204,7 +207,7 @@ _nss_files_get##name##_r (proto, + *errnop = ERANGE; \ + *herrnop = NETDB_INTERNAL; \ + status = NSS_STATUS_TRYAGAIN; \ +- break; \ ++ goto out; \ + } \ + \ + new_h_addr_list = \ +@@ -268,8 +271,54 @@ _nss_files_get##name##_r (proto, + } \ + } \ + \ +- if (status != NSS_STATUS_TRYAGAIN) \ ++ if (status == NSS_STATUS_TRYAGAIN) \ ++ { \ ++ size_t newsize = 2 * tmp_buflen; \ ++ if (tmp_buffer_malloced) \ ++ { \ ++ char *newp = realloc (tmp_buffer, newsize); \ ++ if (newp != NULL) \ ++ { \ ++ assert ((((uintptr_t) newp) \ ++ & (__alignof__ (struct hostent_data) - 1)) \ ++ == 0); \ ++ tmp_buffer = newp; \ ++ tmp_buflen = newsize; \ ++ goto again; \ ++ } \ ++ } \ ++ else if (!__libc_use_alloca (buflen + newsize)) \ ++ { \ ++ tmp_buffer = malloc (newsize); \ ++ if (tmp_buffer != NULL) \ ++ { \ ++ assert ((((uintptr_t) tmp_buffer) \ ++ & (__alignof__ (struct hostent_data) - 1)) \ ++ == 0); \ ++ tmp_buffer_malloced = true; \ ++ tmp_buflen = newsize; \ ++ goto again; \ ++ } \ ++ } \ ++ else \ ++ { \ ++ tmp_buffer \ ++ = extend_alloca (tmp_buffer, tmp_buflen, \ ++ newsize \ ++ + __alignof__ (struct hostent_data)); \ ++ tmp_buffer = (char *) (((uintptr_t) tmp_buffer \ ++ + __alignof__ (struct hostent_data) \ ++ - 1) \ ++ & ~(__alignof__ (struct hostent_data)\ ++ - 1)); \ ++ goto again; \ ++ } \ ++ } \ ++ else \ + status = NSS_STATUS_SUCCESS; \ ++ out: \ ++ if (tmp_buffer_malloced) \ ++ free (tmp_buffer); \ + } \ + \ + \ +Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c +@@ -0,0 +1,137 @@ ++/* Initgroups handling in nss_files module. ++ Copyright (C) 2011 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++enum nss_status ++_nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, ++ long int *size, gid_t **groupsp, long int limit, ++ int *errnop) ++{ ++ FILE *stream = fopen ("/etc/group", "re"); ++ if (stream == NULL) ++ { ++ *errnop = errno; ++ return *errnop == ENOMEM ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL; ++ } ++ ++ /* No other thread using this stream. */ ++ __fsetlocking (stream, FSETLOCKING_BYCALLER); ++ ++ char *line = NULL; ++ size_t linelen = 0; ++ enum nss_status status = NSS_STATUS_SUCCESS; ++ bool any = false; ++ ++ size_t buflen = 1024; ++ void *buffer = alloca (buflen); ++ bool buffer_use_malloc = false; ++ ++ gid_t *groups = *groupsp; ++ ++ /* We have to iterate over the entire file. */ ++ while (!feof_unlocked (stream)) ++ { ++ ssize_t n = getline (&line, &linelen, stream); ++ if (n < 0) ++ { ++ if (! feof_unlocked (stream)) ++ status = ((*errnop = errno) == ENOMEM ++ ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL); ++ break; ++ } ++ ++ struct group grp; ++ int res; ++ while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen, ++ errnop)) == -1) ++ { ++ size_t newbuflen = 2 * buflen; ++ if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen)) ++ { ++ void *newbuf = realloc (buffer_use_malloc ? buffer : NULL, ++ newbuflen); ++ if (newbuf == NULL) ++ { ++ *errnop = ENOMEM; ++ status = NSS_STATUS_TRYAGAIN; ++ goto out; ++ } ++ buffer = newbuf; ++ buflen = newbuflen; ++ buffer_use_malloc = true; ++ } ++ else ++ buffer = extend_alloca (buffer, buflen, newbuflen); ++ } ++ ++ if (res > 0 && grp.gr_gid != group) ++ for (char **m = grp.gr_mem; *m != NULL; ++m) ++ if (strcmp (*m, user) == 0) ++ { ++ /* Matches user. Insert this group. */ ++ if (*start == *size) ++ { ++ /* Need a bigger buffer. */ ++ if (limit > 0 && *size == limit) ++ /* We reached the maximum. */ ++ goto out; ++ ++ long int newsize; ++ if (limit <= 0) ++ newsize = 2 * *size; ++ else ++ newsize = MIN (limit, 2 * *size); ++ ++ gid_t *newgroups = realloc (groups, ++ newsize * sizeof (*groups)); ++ if (newgroups == NULL) ++ { ++ *errnop = ENOMEM; ++ status = NSS_STATUS_TRYAGAIN; ++ goto out; ++ } ++ *groupsp = groups = newgroups; ++ *size = newsize; ++ } ++ ++ groups[*start] = grp.gr_gid; ++ *start += 1; ++ any = true; ++ ++ break; ++ } ++ } ++ ++ out: ++ /* Free memory. */ ++ if (buffer_use_malloc) ++ free (buffer); ++ free (line); ++ ++ fclose (stream); ++ ++ return status == NSS_STATUS_SUCCESS && !any ? NSS_STATUS_NOTFOUND : status; ++} +Index: glibc-2.12-2-gc4ccff1/nss/nsswitch.conf +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nss/nsswitch.conf ++++ glibc-2.12-2-gc4ccff1/nss/nsswitch.conf +@@ -5,6 +5,7 @@ + + passwd: db files + group: db files ++initgroups: db [SUCCESS=continue] files + shadow: db files + gshadow: files + diff --git a/src/patches/glibc/glibc-rh711927.patch b/src/patches/glibc/glibc-rh711927.patch new file mode 100644 index 0000000000..26949fe073 --- /dev/null +++ b/src/patches/glibc/glibc-rh711927.patch @@ -0,0 +1,503 @@ +Index: glibc-2.12-2-gc4ccff1/config.h.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/config.h.in ++++ glibc-2.12-2-gc4ccff1/config.h.in +@@ -201,6 +201,9 @@ + /* Define if multi-arch DSOs should be generated. */ + #undef USE_MULTIARCH + ++/* Define if Systemtap probes should be defined. */ ++#undef USE_STAP_PROBE ++ + /* + */ + +Index: glibc-2.12-2-gc4ccff1/configure +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/configure ++++ glibc-2.12-2-gc4ccff1/configure +@@ -830,6 +830,7 @@ enable_all_warnings + enable_multi_arch + enable_experimental_malloc + enable_nss_crypt ++enable_systemtap + with_cpu + ' + ac_precious_vars='build_alias +@@ -1501,6 +1502,7 @@ Optional Features: + --enable-experimental-malloc + enable experimental malloc features + --enable-nss-crypt enable libcrypt to use nss ++ --enable-systemtap enable systemtap static probe points [default=no] + + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] +@@ -3932,6 +3934,79 @@ else + fi + + ++# Check whether --enable-systemtap was given. ++if test "${enable_systemtap+set}" = set; then ++ enableval=$enable_systemtap; systemtap=$enableval ++else ++ systemtap=no ++fi ++ ++if test x$systemtap != xno; then ++ ++ { $as_echo "$as_me:$LINENO: checking for systemtap static probe support" >&5 ++$as_echo_n "checking for systemtap static probe support... " >&6; } ++if test "${libc_cv_sdt+set}" = set; then ++ $as_echo_n "(cached) " >&6 ++else ++ old_CFLAGS="$CFLAGS" ++ CFLAGS="-std=gnu99 $CFLAGS" ++ cat >conftest.$ac_ext <<_ACEOF ++#include ++void foo (int i, void *p) ++{ ++ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" ++ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (ac_try="$ac_compile" ++case "(($ac_try" in ++ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; ++ *) ac_try_echo=$ac_try;; ++esac ++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" ++$as_echo "$ac_try_echo") >&5 ++ (eval "$ac_compile") 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ++ test -z "$ac_c_werror_flag" || ++ test ! -s conftest.err ++ } && test -s conftest.$ac_objext; then ++ libc_cv_sdt=yes ++else ++ $as_echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ libc_cv_sdt=no ++fi ++ ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$old_CFLAGS" ++fi ++{ $as_echo "$as_me:$LINENO: result: $libc_cv_sdt" >&5 ++$as_echo "$libc_cv_sdt" >&6; } ++ if test $libc_cv_sdt = yes; then ++ cat >>confdefs.h <<\_ACEOF ++#define USE_STAP_PROBE 1 ++_ACEOF ++ ++ else ++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ++{ { $as_echo "$as_me:$LINENO: error: systemtap support needs sys/sdt.h with asm support ++See \`config.log' for more details." >&5 ++$as_echo "$as_me: error: systemtap support needs sys/sdt.h with asm support ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; }; } ++ fi ++ ++fi ++ ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +Index: glibc-2.12-2-gc4ccff1/configure.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/configure.in ++++ glibc-2.12-2-gc4ccff1/configure.in +@@ -319,6 +319,29 @@ else + fi + AC_SUBST(libc_cv_nss_crypt) + ++AC_ARG_ENABLE([systemtap], ++ [AS_HELP_STRING([--enable-systemtap], ++ [enable systemtap static probe points @<:@default=no@:>@])], ++ [systemtap=$enableval], ++ [systemtap=no]) ++AS_IF([test x$systemtap != xno], [ ++ AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl ++ old_CFLAGS="$CFLAGS" ++ CFLAGS="-std=gnu99 $CFLAGS" ++ AC_COMPILE_IFELSE([#include ++void foo (int i, void *p) ++{ ++ asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) "" ++ :: STAP_PROBE_ASM_OPERANDS (2, i, p)); ++}], [libc_cv_sdt=yes], [libc_cv_sdt=no]) ++ CFLAGS="$old_CFLAGS"]) ++ if test $libc_cv_sdt = yes; then ++ AC_DEFINE([USE_STAP_PROBE]) ++ else ++ AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support]) ++ fi ++]) ++ + # The way shlib-versions is used to generate soversions.mk uses a + # fairly simplistic model for name recognition that can't distinguish + # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os +Index: glibc-2.12-2-gc4ccff1/elf/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile ++++ glibc-2.12-2-gc4ccff1/elf/Makefile +@@ -458,7 +458,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D' + CFLAGS-dl-cache.c = $(SYSCONF-FLAGS) + CFLAGS-cache.c = $(SYSCONF-FLAGS) + +-CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1) ++CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\ ++ -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld) + + test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names)))) + generated += $(addsuffix .so,$(strip $(modules-names))) +Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + + /* Type of the constructor functions. */ +@@ -469,6 +470,7 @@ _dl_close_worker (struct link_map *map) + struct r_debug *r = _dl_debug_initialize (0, nsid); + r->r_state = RT_DELETE; + _dl_debug_state (); ++ LIBC_PROBE (rtld_unmap_start, 2, nsid, r); + + if (unload_global) + { +@@ -722,6 +724,7 @@ _dl_close_worker (struct link_map *map) + /* Notify the debugger those objects are finalized and gone. */ + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_unmap_complete, 2, nsid, r); + + /* Recheck if we need to retry, release the lock. */ + out: +Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #include + +@@ -806,7 +807,7 @@ _dl_init_paths (const char *llp) + static void + __attribute__ ((noreturn, noinline)) + lose (int code, int fd, const char *name, char *realname, struct link_map *l, +- const char *msg, struct r_debug *r) ++ const char *msg, struct r_debug *r, Lmid_t nsid) + { + /* The file might already be closed. */ + if (fd != -1) +@@ -818,6 +819,7 @@ lose (int code, int fd, const char *name + { + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_map_complete, 2, nsid, r); + } + + _dl_signal_error (code, name, NULL, msg); +@@ -856,7 +858,7 @@ _dl_map_object_from_fd (const char *name + errval = errno; + call_lose: + lose (errval, fd, name, realname, l, errstring, +- make_consistent ? r : NULL); ++ make_consistent ? r : NULL, nsid); + } + + /* Look again to see if the real name matched another already loaded. */ +@@ -963,6 +965,7 @@ _dl_map_object_from_fd (const char *name + linking has not been used before. */ + r->r_state = RT_ADD; + _dl_debug_state (); ++ LIBC_PROBE (rtld_map_start, 2, nsid, r); + make_consistent = true; + } + else +@@ -1656,7 +1659,7 @@ open_verify (const char *name, struct fi + name = strdupa (realname); + free (realname); + } +- lose (errval, fd, name, NULL, NULL, errstring, NULL); ++ lose (errval, fd, name, NULL, NULL, errstring, NULL, 0); + } + + /* See whether the ELF header is what we expect. */ +Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c ++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + #include + +@@ -297,6 +298,7 @@ dl_open_worker (void *a) + struct r_debug *r = _dl_debug_initialize (0, args->nsid); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_map_complete, 2, args->nsid, r); + + /* Only do lazy relocation if `LD_BIND_NOW' is not set. */ + int reloc_mode = mode & __RTLD_AUDIT; +@@ -309,10 +311,18 @@ dl_open_worker (void *a) + struct link_map *l = new; + while (l->l_next) + l = l->l_next; ++ int relocation_in_progress = 0; + while (1) + { + if (! l->l_real->l_relocated) + { ++ if (! relocation_in_progress) ++ { ++ /* Notify the debugger that relocations are about to happen. */ ++ LIBC_PROBE (rtld_reloc_start, 2, args->nsid, r); ++ relocation_in_progress = 1; ++ } ++ + #ifdef SHARED + if (__builtin_expect (GLRO(dl_profile) != NULL, 0)) + { +@@ -460,6 +470,10 @@ cannot load any more object with static + _dl_fatal_printf (N_("\ + TLS generation counter wrapped! Please report this.")); + ++ /* Notify the debugger all new objects have been relocated. */ ++ if (relocation_in_progress) ++ LIBC_PROBE (rtld_reloc_complete, 2, args->nsid, r); ++ + /* Run the initializer functions of new objects. */ + _dl_init (new, args->argc, args->argv, args->env); + +Index: glibc-2.12-2-gc4ccff1/elf/rtld-Rules +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld-Rules ++++ glibc-2.12-2-gc4ccff1/elf/rtld-Rules +@@ -122,6 +122,6 @@ ifdef rtld-depfiles + endif + + # This here is the whole point of all the shenanigans. +-rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 ++rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld + + endif +Index: glibc-2.12-2-gc4ccff1/elf/rtld.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c ++++ glibc-2.12-2-gc4ccff1/elf/rtld.c +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + #include + +@@ -1656,6 +1657,7 @@ ERROR: ld.so: object '%s' cannot be load + /* We start adding objects. */ + r->r_state = RT_ADD; + _dl_debug_state (); ++ LIBC_PROBE (rtld_init_start, 2, LM_ID_BASE, r); + + /* Auditing checkpoint: we are ready to signal that the initial map + is being constructed. */ +@@ -2353,6 +2355,7 @@ ERROR: ld.so: object '%s' cannot be load + r = _dl_debug_initialize (0, LM_ID_BASE); + r->r_state = RT_CONSISTENT; + _dl_debug_state (); ++ LIBC_PROBE (rtld_init_complete, 2, LM_ID_BASE, r); + + #ifndef MAP_COPY + /* We must munmap() the cache file. */ +Index: glibc-2.12-2-gc4ccff1/extra-lib.mk +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/extra-lib.mk ++++ glibc-2.12-2-gc4ccff1/extra-lib.mk +@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left)) + include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) + endif + +-CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 ++CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib) +Index: glibc-2.12-2-gc4ccff1/include/stap-probe.h +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/include/stap-probe.h +@@ -0,0 +1,140 @@ ++/* Macros for defining Systemtap static probe points. ++ Copyright (C) 2011 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _STAP_PROBE_H ++#define _STAP_PROBE_H 1 ++ ++#ifdef USE_STAP_PROBE ++ ++# include ++ ++/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn). ++ ++ Without USE_STAP_PROBE, that does nothing but evaluates all ++ its arguments (to prevent bit rot, unlike e.g. assert). ++ ++ Systemtap's header defines the macros STAP_PROBE (provider, name) and ++ STAP_PROBEn (provider, name, arg1, ..., argn). For "provider" we paste ++ in the IN_LIB name (libc, libpthread, etc.) automagically. */ ++ ++# ifndef NOT_IN_libc ++# define IN_LIB libc ++# elif !defined IN_LIB ++/* This is intentionally defined with extra unquoted commas in it so ++ that macro substitution will bomb out when it is used. We don't ++ just use #error here, so that this header can be included by ++ other headers that use LIBC_PROBE inside their own macros. We ++ only want such headers to fail to compile if those macros are ++ actually used in a context where IN_LIB has not been defined. */ ++# define IN_LIB ,,,missing -DIN_LIB=... -- not extra-lib.mk?,,, ++# endif ++ ++# define LIBC_PROBE(name, n, ...) \ ++ LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__) ++ ++# define LIBC_PROBE_1(lib, name, n, ...) \ ++ STAP_PROBE##n (lib, name, ## __VA_ARGS__) ++ ++# define STAP_PROBE0 STAP_PROBE ++ ++# define LIBC_PROBE_ASM(name, template) \ ++ STAP_PROBE_ASM (IN_LIB, name, template) ++ ++# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS ++ ++#else /* Not USE_STAP_PROBE. */ ++ ++# ifndef __ASSEMBLER__ ++# define LIBC_PROBE(name, n, ...) DUMMY_PROBE##n (__VA_ARGS__) ++# else ++# define LIBC_PROBE(name, n, ...) /* Nothing. */ ++# endif ++ ++# define LIBC_PROBE_ASM(name, template) /* Nothing. */ ++# define LIBC_PROBE_ASM_OPERANDS(n, ...) /* Nothing. */ ++ ++/* This silliness lets us evaluate all the arguments for each arity ++ of probe. My kingdom for a real macro system. */ ++ ++# define DUMMY_PROBE0() do {} while (0) ++# define DUMMY_PROBE1(a1) do {} while ((void) (a1), 0) ++# define DUMMY_PROBE2(a1, a2) do {} while ((void) (a1), \ ++ (void) (a2), 0) ++# define DUMMY_PROBE3(a1, a2, a3) do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), 0) ++# define DUMMY_PROBE4(a1, a2, a3, a4) do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), 0) ++# define DUMMY_PROBE5(a1, a2, a3, a4, a5) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), 0) ++# define DUMMY_PROBE6(a1, a2, a3, a4, a5, a6) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), 0) ++# define DUMMY_PROBE7(a1, a2, a3, a4, a5, a6, a7) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), 0) ++# define DUMMY_PROBE8(a1, a2, a3, a4, a5, a6, a7, a8) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), \ ++ (void) (a8), 0) ++# define DUMMY_PROBE9(a1, a2, a3, a4, a5, a6, a7, a8, a9) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), \ ++ (void) (a8), \ ++ (void) (a9), 0) ++# define DUMMY_PROBE10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \ ++ do {} while ((void) (a1), \ ++ (void) (a2), \ ++ (void) (a3), \ ++ (void) (a4), \ ++ (void) (a5), \ ++ (void) (a6), \ ++ (void) (a7), \ ++ (void) (a8), \ ++ (void) (a9), \ ++ (void) (a10), 0) ++ ++#endif /* USE_STAP_PROBE. */ ++ ++#endif /* stap-probe.h */ +Index: glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/scripts/check-local-headers.sh ++++ glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh +@@ -31,6 +31,8 @@ fgrep -v "$includedir/asm" | + fgrep -v "$includedir/linux" | + fgrep -v "$includedir/selinux" | + fgrep -v "$includedir/sys/capability.h" | ++fgrep -v "$includedir/sys/sdt.h" | ++fgrep -v "$includedir/sys/sdt-config.h" | + fgrep -v "$includedir/gd" | + fgrep -v "$includedir/nss3"; then + # If we found a match something is wrong. diff --git a/src/patches/glibc/glibc-rh711987.patch b/src/patches/glibc/glibc-rh711987.patch new file mode 100644 index 0000000000..bd286e1aac --- /dev/null +++ b/src/patches/glibc/glibc-rh711987.patch @@ -0,0 +1,136 @@ +2010-08-11 Ulrich Drepper + + * sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs): Add f_flags + field. + (struct statfs64): Likewise. + (_STATFS_F_FLAGS): Define. + * sysdeps/unix/sysv/linux/s390/bits/statfs.h: Likewise. + * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): + Don't define if __ASSUME_STATFS_F_FLAGS is defined. + (ST_VALID): Define locally. + (INTERNAL_STATVFS): If f_flags has ST_VALID set don't call + __statvfs_getflags, use the provided value. + * sysdeps/unix/sysv/linux/kernel-features.h: Define + __ASSUME_STATFS_F_FLAGS. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/statfs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h +@@ -42,7 +42,8 @@ struct statfs + __fsid_t f_fsid; + __SWORD_TYPE f_namelen; + __SWORD_TYPE f_frsize; +- __SWORD_TYPE f_spare[5]; ++ __SWORD_TYPE f_flags; ++ __SWORD_TYPE f_spare[4]; + }; + + #ifdef __USE_LARGEFILE64 +@@ -58,10 +59,12 @@ struct statfs64 + __fsid_t f_fsid; + __SWORD_TYPE f_namelen; + __SWORD_TYPE f_frsize; +- __SWORD_TYPE f_spare[5]; ++ __SWORD_TYPE f_flags; ++ __SWORD_TYPE f_spare[4]; + }; + #endif + + /* Tell code we have these members. */ + #define _STATFS_F_NAMELEN + #define _STATFS_F_FRSIZE ++#define _STATFS_F_FLAGS +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +@@ -29,6 +29,11 @@ + #include + #include + #include "linux_fsinfo.h" ++#include "kernel-features.h" ++ ++ ++/* Special internal-only bit value. */ ++#define ST_VALID 0x0020 + + + #ifndef STATFS +@@ -37,6 +42,7 @@ + # define INTERNAL_STATVFS __internal_statvfs + + ++# ifndef __ASSUME_STATFS_F_FLAGS + int + __statvfs_getflags (const char *name, int fstype, struct stat64 *st) + { +@@ -200,6 +206,7 @@ __statvfs_getflags (const char *name, in + + return result; + } ++# endif + #else + extern int __statvfs_getflags (const char *name, int fstype, + struct stat64 *st); +@@ -240,9 +247,14 @@ INTERNAL_STATVFS (const char *name, stru + /* XXX I have no idea how to compute f_favail. Any idea??? */ + buf->f_favail = buf->f_ffree; + +- /* Determining the flags is tricky. We have to read /proc/mounts or +- the /etc/mtab file and search for the entry which matches the given +- file. The way we can test for matching filesystem is using the +- device number. */ +- buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st); ++#ifndef __ASSUME_STATFS_F_FLAGS ++ if ((fsbuf->f_flags & ST_VALID) == 0) ++ /* Determining the flags is tricky. We have to read /proc/mounts or ++ the /etc/mtab file and search for the entry which matches the given ++ file. The way we can test for matching filesystem is using the ++ device number. */ ++ buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st); ++ else ++#endif ++ buf->f_flag = fsbuf->f_flags ^ ST_VALID; + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h +@@ -552,3 +552,8 @@ + #if __LINUX_KERNEL_VERSION >= 0x020621 + # define __ASSUME_RECVMMSG 1 + #endif ++ ++/* statfs fills in f_flags since 2.6.36. */ ++#if __LINUX_KERNEL_VERSION >= 0x020624 ++# define __ASSUME_STATFS_F_FLAGS 1 ++#endif +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/s390/bits/statfs.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h +@@ -42,7 +42,8 @@ struct statfs + __fsid_t f_fsid; + int f_namelen; + int f_frsize; +- int f_spare[5]; ++ int f_flags; ++ int f_spare[4]; + }; + + #ifdef __USE_LARGEFILE64 +@@ -58,10 +59,12 @@ struct statfs64 + __fsid_t f_fsid; + int f_namelen; + int f_frsize; +- int f_spare[5]; ++ int f_flags; ++ int f_spare[4]; + }; + #endif + + /* Tell code we have this member. */ + #define _STATFS_F_NAMELEN + #define _STATFS_F_FRSIZE ++#define _STATFS_F_FLAGS diff --git a/src/patches/glibc/glibc-rh712248.patch b/src/patches/glibc/glibc-rh712248.patch new file mode 100644 index 0000000000..afadc6601b --- /dev/null +++ b/src/patches/glibc/glibc-rh712248.patch @@ -0,0 +1,69 @@ +2011-07-07 Ulrich Drepper + + [BZ #12868] + * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define Lustre constants. + * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags): + Handle Lustre. + * sysdeps/unix/sysv/linux/pathconf.c (__statfs_link_max): Likewise. + (__statfs_filesize_max): Likewise. + Patch mostly by Andreas Dilger . + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c +@@ -109,6 +109,9 @@ __statvfs_getflags (const char *name, in + case LOGFS_MAGIC_U32: + fsname = "logfs"; + break; ++ case LUSTRE_SUPER_MAGIC: ++ fsname = "lustre"; ++ break; + } + + FILE *mtab = __setmntent ("/proc/mounts", "r"); +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/linux_fsinfo.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h +@@ -77,6 +77,9 @@ + /* Constant that identifies the `logfs´ filesystem. */ + #define LOGFS_MAGIC_U32 0xc97e8168u + ++/* Constant that identifies the `lustre' filesystem. */ ++#define LUSTRE_SUPER_MAGIC 0x0BD00BD0 ++ + /* Constants that identify the `minix2' filesystem. */ + #define MINIX2_SUPER_MAGIC 0x2468 + #define MINIX2_SUPER_MAGIC2 0x2478 +@@ -144,6 +147,8 @@ + /* Maximum link counts. */ + #define COH_LINK_MAX 10000 + #define EXT2_LINK_MAX 32000 ++#define EXT4_LINK_MAX 65000 ++#define LUSTRE_LINK_MAX EXT4_LINK_MAX + #define MINIX2_LINK_MAX 65530 + #define MINIX_LINK_MAX 250 + #define REISERFS_LINK_MAX 64535 +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/pathconf.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c +@@ -104,6 +104,9 @@ __statfs_link_max (int result, const str + case XFS_SUPER_MAGIC: + return XFS_LINK_MAX; + ++ case LUSTRE_SUPER_MAGIC: ++ return LUSTRE_LINK_MAX; ++ + default: + return LINUX_LINK_MAX; + } +@@ -136,6 +139,7 @@ __statfs_filesize_max (int result, const + case UDF_SUPER_MAGIC: + case JFS_SUPER_MAGIC: + case VXFS_SUPER_MAGIC: ++ case LUSTRE_SUPER_MAGIC: + return 64; + + case MSDOS_SUPER_MAGIC: diff --git a/src/patches/glibc/glibc-rh713134.patch b/src/patches/glibc/glibc-rh713134.patch new file mode 100644 index 0000000000..dc979be300 --- /dev/null +++ b/src/patches/glibc/glibc-rh713134.patch @@ -0,0 +1,36 @@ +2011-03-18 Andreas Schwab + + * elf/ldd.bash.in: Never run file directly. + +Index: glibc-2.12-2-gc4ccff1/elf/ldd.bash.in +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/ldd.bash.in ++++ glibc-2.12-2-gc4ccff1/elf/ldd.bash.in +@@ -167,18 +167,6 @@ warning: you do not have execution permi + fi + done + case $ret in +- 0) +- # If the program exits with exit code 5, it means the process has been +- # invoked with __libc_enable_secure. Fall back to running it through +- # the dynamic linker. +- try_trace "$file" +- rc=$? +- if [ $rc = 5 ]; then +- try_trace "$RTLD" "$file" +- rc=$? +- fi +- [ $rc = 0 ] || result=1 +- ;; + 1) + # This can be a non-ELF binary or no binary at all. + nonelf "$file" || { +@@ -186,7 +174,7 @@ warning: you do not have execution permi + result=1 + } + ;; +- 2) ++ 0|2) + try_trace "$RTLD" "$file" || result=1 + ;; + *) diff --git a/src/patches/glibc/glibc-rh714823.patch b/src/patches/glibc/glibc-rh714823.patch new file mode 100644 index 0000000000..8bd121b999 --- /dev/null +++ b/src/patches/glibc/glibc-rh714823.patch @@ -0,0 +1,126 @@ +2011-06-28 Andreas Schwab + + * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use gethostbyaddr + to determine canonical name. + +2011-06-22 Andreas Schwab + + * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change. + +2011-06-21 Ulrich Drepper + + [BZ #12885] + * sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6 + addresses using gethostbyname4_r ignore IPv4 addresses. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c +@@ -512,10 +512,11 @@ gaih_inet (const char *name, const struc + + /* If we do not have to look for IPv4 and IPv6 together, use + the simple, old functions. */ +- if (req->ai_family == AF_INET +- || (req->ai_family == AF_INET6 +- && ((req->ai_flags & AI_V4MAPPED) == 0 +- || (req->ai_flags & AI_ALL) == 0))) ++ if ((req->ai_family == AF_INET ++ || (req->ai_family == AF_INET6 ++ && ((req->ai_flags & AI_V4MAPPED) == 0 ++ || (req->ai_flags & AI_ALL) == 0))) ++ && (req->ai_flags & AI_CANONNAME) == 0) + { + int family = req->ai_family; + size_t tmpbuflen = 512; +@@ -731,16 +732,44 @@ gaih_inet (const char *name, const struc + tmpbuflen, 2 * tmpbuflen); + } + +- no_inet6_data = no_data; +- + if (status == NSS_STATUS_SUCCESS) + { ++ assert (!no_data); ++ no_data = 1; ++ + if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL) + canon = (*pat)->name; + + while (*pat != NULL) +- pat = &((*pat)->next); ++ { ++ if ((*pat)->family == AF_INET ++ && req->ai_family == AF_INET6 ++ && (req->ai_flags & AI_V4MAPPED) != 0) ++ { ++ uint32_t *pataddr = (*pat)->addr; ++ (*pat)->family = AF_INET6; ++ pataddr[3] = pataddr[0]; ++ pataddr[2] = htonl (0xffff); ++ pataddr[1] = 0; ++ pataddr[0] = 0; ++ pat = &((*pat)->next); ++ no_data = 0; ++ } ++ else if (req->ai_family == AF_UNSPEC ++ || (*pat)->family == req->ai_family) ++ { ++ pat = &((*pat)->next); ++ ++ no_data = 0; ++ if (req->ai_family == AF_INET6) ++ got_ipv6 = true; ++ } ++ else ++ *pat = ((*pat)->next); ++ } + } ++ ++ no_inet6_data = no_data; + } + else + { +@@ -905,39 +934,9 @@ gaih_inet (const char *name, const struc + { + if (canon == NULL) + { +- struct hostent *h = NULL; +- int herrno; +- struct hostent th; +- size_t tmpbuflen = 512; +- char *tmpbuf = NULL; +- +- do +- { +- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, tmpbuflen * 2); +- rc = __gethostbyaddr_r (at2->addr, +- ((at2->family == AF_INET6) +- ? sizeof (struct in6_addr) +- : sizeof (struct in_addr)), +- at2->family, &th, tmpbuf, +- tmpbuflen, &h, &herrno); +- } +- while (rc == ERANGE && herrno == NETDB_INTERNAL); +- +- if (rc != 0 && herrno == NETDB_INTERNAL) +- { +- __set_h_errno (herrno); +- return -EAI_SYSTEM; +- } +- +- if (h != NULL) +- canon = h->h_name; +- else +- { +- assert (orig_name != NULL); +- /* If the canonical name cannot be determined, use +- the passed in string. */ +- canon = orig_name; +- } ++ /* If the canonical name cannot be determined, use ++ the passed in string. */ ++ canon = orig_name; + } + + #ifdef HAVE_LIBIDN diff --git a/src/patches/glibc/glibc-rh718057.patch b/src/patches/glibc/glibc-rh718057.patch new file mode 100644 index 0000000000..d331996721 --- /dev/null +++ b/src/patches/glibc/glibc-rh718057.patch @@ -0,0 +1,109 @@ +2011-07-01 Andreas Schwab + + * nis/nss_compat/compat-pwd.c (getpwent_next_nss_netgr): Query NIS + domain only when needed. + +Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-pwd.c ++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c +@@ -360,7 +360,7 @@ getpwent_next_nss_netgr (const char *nam + char *group, char *buffer, size_t buflen, + int *errnop) + { +- char *curdomain, *host, *user, *domain, *p2; ++ char *curdomain = NULL, *host, *user, *domain, *p2; + int status; + size_t p2len; + +@@ -369,15 +369,7 @@ getpwent_next_nss_netgr (const char *nam + if (!nss_getpwnam_r) + return NSS_STATUS_UNAVAIL; + +- if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS) +- { +- ent->netgroup = false; +- ent->first = false; +- give_pwd_free (&ent->pwd); +- return NSS_STATUS_UNAVAIL; +- } +- +- if (ent->first == true) ++ if (ent->first) + { + memset (&ent->netgrdata, 0, sizeof (struct __netgrent)); + __internal_setnetgrent (group, &ent->netgrdata); +@@ -403,8 +395,19 @@ getpwent_next_nss_netgr (const char *nam + if (user == NULL || user[0] == '-') + continue; + +- if (domain != NULL && strcmp (curdomain, domain) != 0) +- continue; ++ if (domain != NULL) ++ { ++ if (curdomain == NULL ++ && yp_get_default_domain (&curdomain) != YPERR_SUCCESS) ++ { ++ __internal_endnetgrent (&ent->netgrdata); ++ ent->netgroup = false; ++ give_pwd_free (&ent->pwd); ++ return NSS_STATUS_UNAVAIL; ++ } ++ if (strcmp (curdomain, domain) != 0) ++ continue; ++ } + + /* If name != NULL, we are called from getpwnam. */ + if (name != NULL) +Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-spwd.c ++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c +@@ -317,7 +317,7 @@ getspent_next_nss_netgr (const char *nam + char *group, char *buffer, size_t buflen, + int *errnop) + { +- char *curdomain, *host, *user, *domain, *p2; ++ char *curdomain = NULL, *host, *user, *domain, *p2; + size_t p2len; + + if (!nss_getspnam_r) +@@ -327,15 +327,7 @@ getspent_next_nss_netgr (const char *nam + if (ent->setent_status != NSS_STATUS_SUCCESS) + return ent->setent_status; + +- if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS) +- { +- ent->netgroup = false; +- ent->first = false; +- give_spwd_free (&ent->pwd); +- return NSS_STATUS_UNAVAIL; +- } +- +- if (ent->first == true) ++ if (ent->first) + { + memset (&ent->netgrdata, 0, sizeof (struct __netgrent)); + __internal_setnetgrent (group, &ent->netgrdata); +@@ -362,8 +354,19 @@ getspent_next_nss_netgr (const char *nam + if (user == NULL || user[0] == '-') + continue; + +- if (domain != NULL && strcmp (curdomain, domain) != 0) +- continue; ++ if (domain != NULL) ++ { ++ if (curdomain == NULL ++ && yp_get_default_domain (&curdomain) != YPERR_SUCCESS) ++ { ++ __internal_endnetgrent (&ent->netgrdata); ++ ent->netgroup = false; ++ give_spwd_free (&ent->pwd); ++ return NSS_STATUS_UNAVAIL; ++ } ++ if (strcmp (curdomain, domain) != 0) ++ continue; ++ } + + /* If name != NULL, we are called from getpwnam */ + if (name != NULL) diff --git a/src/patches/glibc/glibc-rh726517.patch b/src/patches/glibc/glibc-rh726517.patch new file mode 100644 index 0000000000..26addbfb77 --- /dev/null +++ b/src/patches/glibc/glibc-rh726517.patch @@ -0,0 +1,173 @@ +Index: glibc-2.12-2-gc4ccff1/malloc/arena.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/arena.c ++++ glibc-2.12-2-gc4ccff1/malloc/arena.c +@@ -870,7 +870,7 @@ heap_trim(heap, pad) heap_info *heap; si + heap = prev_heap; + if(!prev_inuse(p)) { /* consolidate backward */ + p = prev_chunk(p); +- unlink(p, bck, fwd); ++ unlink(ar_ptr, p, bck, fwd); + } + assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0); + assert( ((char*)p + new_size) == ((char*)heap + heap->size) ); +Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/hooks.c ++++ glibc-2.12-2-gc4ccff1/malloc/hooks.c +@@ -219,7 +219,9 @@ top_check() + (char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem))) + return 0; + ++ mutex_unlock(&main_arena); + malloc_printerr (check_action, "malloc: top chunk is corrupt", t); ++ mutex_lock(&main_arena); + + /* Try to set up a new top chunk. */ + brk = MORECORE(0); +Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c ++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c +@@ -2109,12 +2109,14 @@ typedef struct malloc_chunk* mbinptr; + #define last(b) ((b)->bk) + + /* Take a chunk off a bin list */ +-#define unlink(P, BK, FD) { \ ++#define unlink(AV, P, BK, FD) { \ + FD = P->fd; \ + BK = P->bk; \ +- if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) \ ++ if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) { \ ++ mutex_unlock(&(AV)->mutex); \ + malloc_printerr (check_action, "corrupted double-linked list", P); \ +- else { \ ++ mutex_lock(&(AV)->mutex); \ ++ } else { \ + FD->bk = BK; \ + BK->fd = FD; \ + if (!in_smallbin_range (P->size) \ +@@ -3257,7 +3259,9 @@ static Void_t* sYSMALLOc(nb, av) INTERNA + + else if (contiguous(av) && old_size && brk < old_end) { + /* Oops! Someone else killed our space.. Can't touch anything. */ ++ mutex_unlock(&av->mutex); + malloc_printerr (3, "break adjusted to free malloc space", brk); ++ mutex_lock(&av->mutex); + } + + /* +@@ -4305,7 +4309,9 @@ _int_malloc(mstate av, size_t bytes) + { + errstr = "malloc(): memory corruption (fast)"; + errout: ++ mutex_unlock(&av->mutex); + malloc_printerr (check_action, errstr, chunk2mem (victim)); ++ mutex_lock(&av->mutex); + return NULL; + } + #ifndef ATOMIC_FASTBINS +@@ -4393,8 +4399,12 @@ _int_malloc(mstate av, size_t bytes) + bck = victim->bk; + if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0) + || __builtin_expect (victim->size > av->system_mem, 0)) +- malloc_printerr (check_action, "malloc(): memory corruption", +- chunk2mem (victim)); ++ { ++ void *p = chunk2mem(victim); ++ mutex_unlock(&av->mutex); ++ malloc_printerr (check_action, "malloc(): memory corruption", p); ++ mutex_lock(&av->mutex); ++ } + size = chunksize(victim); + + /* +@@ -4535,7 +4545,7 @@ _int_malloc(mstate av, size_t bytes) + victim = victim->fd; + + remainder_size = size - nb; +- unlink(victim, bck, fwd); ++ unlink(av, victim, bck, fwd); + + /* Exhaust */ + if (remainder_size < MINSIZE) { +@@ -4633,7 +4643,7 @@ _int_malloc(mstate av, size_t bytes) + remainder_size = size - nb; + + /* unlink */ +- unlink(victim, bck, fwd); ++ unlink(av, victim, bck, fwd); + + /* Exhaust */ + if (remainder_size < MINSIZE) { +@@ -4789,10 +4799,14 @@ _int_free(mstate av, mchunkptr p) + errstr = "free(): invalid pointer"; + errout: + #ifdef ATOMIC_FASTBINS +- if (! have_lock && locked) ++ if (have_lock || locked) + (void)mutex_unlock(&av->mutex); + #endif + malloc_printerr (check_action, errstr, chunk2mem(p)); ++#ifdef ATOMIC_FASTBINS ++ if (have_lock) ++ mutex_lock(&av->mutex); ++#endif + return; + } + /* We know that each chunk is at least MINSIZE bytes in size. */ +@@ -4961,7 +4975,7 @@ _int_free(mstate av, mchunkptr p) + prevsize = p->prev_size; + size += prevsize; + p = chunk_at_offset(p, -((long) prevsize)); +- unlink(p, bck, fwd); ++ unlink(av, p, bck, fwd); + } + + if (nextchunk != av->top) { +@@ -4970,7 +4984,7 @@ _int_free(mstate av, mchunkptr p) + + /* consolidate forward */ + if (!nextinuse) { +- unlink(nextchunk, bck, fwd); ++ unlink(av, nextchunk, bck, fwd); + size += nextsize; + } else + clear_inuse_bit_at_offset(nextchunk, 0); +@@ -5158,7 +5172,7 @@ static void malloc_consolidate(av) mstat + prevsize = p->prev_size; + size += prevsize; + p = chunk_at_offset(p, -((long) prevsize)); +- unlink(p, bck, fwd); ++ unlink(av, p, bck, fwd); + } + + if (nextchunk != av->top) { +@@ -5166,7 +5180,7 @@ static void malloc_consolidate(av) mstat + + if (!nextinuse) { + size += nextsize; +- unlink(nextchunk, bck, fwd); ++ unlink(av, nextchunk, bck, fwd); + } else + clear_inuse_bit_at_offset(nextchunk, 0); + +@@ -5235,7 +5249,9 @@ _int_realloc(mstate av, mchunkptr oldp, + { + errstr = "realloc(): invalid old size"; + errout: ++ mutex_unlock(&av->mutex); + malloc_printerr (check_action, errstr, chunk2mem(oldp)); ++ mutex_lock(&av->mutex); + return NULL; + } + +@@ -5282,7 +5298,7 @@ _int_realloc(mstate av, mchunkptr oldp, + (unsigned long)(newsize = oldsize + nextsize) >= + (unsigned long)(nb)) { + newp = oldp; +- unlink(next, bck, fwd); ++ unlink(av, next, bck, fwd); + } + + /* allocate, copy, free */ diff --git a/src/patches/glibc/glibc-rh730379.patch b/src/patches/glibc/glibc-rh730379.patch new file mode 100644 index 0000000000..45808afed5 --- /dev/null +++ b/src/patches/glibc/glibc-rh730379.patch @@ -0,0 +1,34 @@ +2011-08-17 Ulrich Drepper + + * Makeconfig (override CFLAGS): Add library-specific CFLAGS. + * resolv/Makefile: Define CFLAGS-libresolv. + +Index: glibc-2.12-2-gc4ccff1/Makeconfig +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/Makeconfig ++++ glibc-2.12-2-gc4ccff1/Makeconfig +@@ -700,7 +700,9 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+incl + override CFLAGS = -std=gnu99 $(gnu89-inline-CFLAGS) \ + $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \ + $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$( + + * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned + stack. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise. + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S +@@ -71,7 +71,9 @@ ENTRY(__pthread_enable_asynccancel) + + 1: ret + +-3: movq $TCB_PTHREAD_CANCELED, %fs:RESULT ++3: subq $8, %rsp ++ cfi_adjust_cfa_offset(8) ++ movq $TCB_PTHREAD_CANCELED, %fs:RESULT + lock + orl $TCB_EXITING_BITMASK, %fs:CANCELHANDLING + movq %fs:CLEANUP_JMP_BUF, %rdi +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S +@@ -63,9 +63,9 @@ __pthread_cond_timedwait: + cfi_adjust_cfa_offset(8) + cfi_rel_offset(%r15, 0) + #ifdef __ASSUME_FUTEX_CLOCK_REALTIME +-# define FRAME_SIZE 32 ++# define FRAME_SIZE (32+8) + #else +-# define FRAME_SIZE 48 ++# define FRAME_SIZE (48+8) + #endif + subq $FRAME_SIZE, %rsp + cfi_adjust_cfa_offset(FRAME_SIZE) +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S +@@ -45,7 +45,7 @@ __pthread_cond_wait: + cfi_lsda(DW_EH_PE_udata4, .LexceptSTART) + #endif + +-#define FRAME_SIZE 32 ++#define FRAME_SIZE (32+8) + leaq -FRAME_SIZE(%rsp), %rsp + cfi_adjust_cfa_offset(FRAME_SIZE) + diff --git a/src/patches/glibc/glibc-rh736346.patch b/src/patches/glibc/glibc-rh736346.patch new file mode 100644 index 0000000000..2dd3f8a8df --- /dev/null +++ b/src/patches/glibc/glibc-rh736346.patch @@ -0,0 +1,116 @@ +2011-01-14 Ulrich Drepper + + [BZ #10563] + * sysdeps/unix/sysv/linux/i386/setgroups.c: Use INLINE_SETXID_SYSCALL + to make the syscall. + * sysdeps/unix/sysv/linux/setgroups.c: New file. + +2011-01-14 Ulrich Drepper + + [BZ #10563] + * sysdeps/pthread/setxid.h (__SETXID_1): Add cast to assignment. + (__SETXID_2): Likewise. + (__SETXID_3): Likewise. + +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/setxid.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h +@@ -20,11 +20,11 @@ + #include + + #define __SETXID_1(cmd, arg1) \ +- cmd.id[0] = arg1 ++ cmd.id[0] = (long int) arg1 + #define __SETXID_2(cmd, arg1, arg2) \ +- __SETXID_1 (cmd, arg1); cmd.id[1] = arg2 ++ __SETXID_1 (cmd, arg1); cmd.id[1] = (long int) arg2 + #define __SETXID_3(cmd, arg1, arg2, arg3) \ +- __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = arg3 ++ __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = (long int) arg3 + + #ifdef SINGLE_THREAD + # define INLINE_SETXID_SYSCALL(name, nr, args...) \ +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/setgroups.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c +@@ -25,6 +25,7 @@ + #include + #include + ++#include + #include + #include + +@@ -44,7 +45,7 @@ int + setgroups (size_t n, const gid_t *groups) + { + #if __ASSUME_32BITUIDS > 0 +- return INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n)); ++ return INLINE_SETXID_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n)); + #else + if (n > (size_t) __sysconf (_SC_NGROUPS_MAX)) + { +@@ -62,7 +63,8 @@ setgroups (size_t n, const gid_t *groups + int result; + int saved_errno = errno; + +- result = INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n)); ++ result = INLINE_SETXID_SYSCALL (setgroups32, 2, n, ++ CHECK_N (groups, n)); + if (result == 0 || errno != ENOSYS) + return result; + +@@ -80,7 +82,8 @@ setgroups (size_t n, const gid_t *groups + } + } + +- return INLINE_SYSCALL (setgroups, 2, n, CHECK_N (kernel_groups, n)); ++ return INLINE_SETXID_SYSCALL (setgroups, 2, n, ++ CHECK_N (kernel_groups, n)); + } + #endif + } +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c +=================================================================== +--- /dev/null ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c +@@ -0,0 +1,37 @@ ++/* Copyright (C) 1997,1998,2000,2002,2004,2006,2011 ++ Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++ ++ ++/* Set the group set for the current user to GROUPS (N of them). For ++ Linux we must convert the array of groups into the format that the ++ kernel expects. */ ++int ++setgroups (size_t n, const gid_t *groups) ++{ ++#ifdef __NR_setgroups32 ++# error "wrong setgroups.c file used" ++#endif ++ return INLINE_SETXID_SYSCALL (setgroups, 2, n, groups); ++} ++libc_hidden_def (setgroups) diff --git a/src/patches/glibc/glibc-rh737778.patch b/src/patches/glibc/glibc-rh737778.patch new file mode 100644 index 0000000000..5d3c131ca4 --- /dev/null +++ b/src/patches/glibc/glibc-rh737778.patch @@ -0,0 +1,122 @@ +2011-08-14 Roland McGrath + + * locale/Makefile (locale-CPPFLAGS): Renamed CPPFLAGS-locale-programs. + (locale-CPPFLAGS): New variable; put LOCALEDIR, LOCALE_ALIAS_PATH and + -Iprograms here. + (cppflags-iterator.mk sequence): Use locale-programs in place of nonlib. + (localedef-modules): Add localedef. + (locale-modules): Add locale. + +2011-08-13 Ulrich Drepper + + * intl/l10nflist.c (_nl_normalize_codeset): Make it compile outside + of libc. Make tolower call locale-independent. Optimize a bit by + using isdigit instead of isalnum. + * locale/Makefile (locale-CPPFLAGS): Add -DNOT_IN_libc. + +2011-08-11 Ulrich Drepper + + * intl/l10nflist.c (_nl_make_l10nflist): Use locale-independent + classification. + +Index: glibc-2.12-2-gc4ccff1/intl/l10nflist.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/intl/l10nflist.c ++++ glibc-2.12-2-gc4ccff1/intl/l10nflist.c +@@ -332,13 +332,18 @@ _nl_normalize_codeset (codeset, name_len + char *retval; + char *wp; + size_t cnt; ++#ifdef NOT_IN_libc ++ locale_t locale = newlocale (0, "C", NULL); ++#else ++# define locale _nl_C_locobj_ptr ++#endif + + for (cnt = 0; cnt < name_len; ++cnt) +- if (isalnum ((unsigned char) codeset[cnt])) ++ if (__isalnum_l ((unsigned char) codeset[cnt], locale)) + { + ++len; + +- if (isalpha ((unsigned char) codeset[cnt])) ++ if (! __isdigit_l ((unsigned char) codeset[cnt], locale)) + only_digit = 0; + } + +@@ -346,15 +351,14 @@ _nl_normalize_codeset (codeset, name_len + + if (retval != NULL) + { ++ wp = retval; + if (only_digit) +- wp = stpcpy (retval, "iso"); +- else +- wp = retval; ++ wp = stpcpy (wp, "iso"); + + for (cnt = 0; cnt < name_len; ++cnt) +- if (isalpha ((unsigned char) codeset[cnt])) +- *wp++ = tolower ((unsigned char) codeset[cnt]); +- else if (isdigit ((unsigned char) codeset[cnt])) ++ if (__isalpha_l ((unsigned char) codeset[cnt], locale)) ++ *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale); ++ else if (__isdigit_l ((unsigned char) codeset[cnt], locale)) + *wp++ = codeset[cnt]; + + *wp = '\0'; +Index: glibc-2.12-2-gc4ccff1/locale/Makefile +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/locale/Makefile ++++ glibc-2.12-2-gc4ccff1/locale/Makefile +@@ -59,10 +59,11 @@ vpath %.c programs ../crypt + vpath %.h programs + vpath %.gperf programs + +-localedef-modules := $(categories:%=ld-%) charmap linereader locfile \ ++localedef-modules := localedef $(categories:%=ld-%) \ ++ charmap linereader locfile \ + repertoire locarchive + localedef-aux := md5 +-locale-modules := locale-spec ++locale-modules := locale locale-spec + lib-modules := charmap-dir simple-hash xmalloc xstrdup + + +@@ -90,22 +91,27 @@ endif + + localepath = "$(localedir):$(i18ndir)" + +-locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \ +- -DLOCALEDIR='"$(localedir)"' \ +- -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \ +- -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ +- -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ +- -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ +- -Iprograms ++# -Iprograms doesn't really belong here, but this gets it at the head ++# of the list instead of the tail, where CPPFLAGS-$(lib) gets added. ++# We need it before the standard -I's to see programs/config.h first. ++locale-CPPFLAGS = -DLOCALEDIR='"$(localedir)"' \ ++ -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \ ++ -Iprograms ++ ++CPPFLAGS-locale-programs = -DLOCALE_PATH='$(localepath)' \ ++ -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \ ++ -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \ ++ -DLOCSRCDIR='"$(i18ndir)/locales"' \ ++ -DHAVE_CONFIG_H -DNOT_IN_libc + + CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts + CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts + CFLAGS-charmap-dir.c = -Wno-write-strings + +-# This makes sure -DNOT_IN_libc is passed for all these modules. ++# This makes sure -DNOT_IN_libc et al are passed for all these modules. + cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \ + $(locale-modules) $(lib-modules)) +-lib := nonlib ++lib := locale-programs + include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) + + # Depend on libc.so so a DT_NEEDED is generated in the shared objects. diff --git a/src/patches/glibc/glibc-rh738665.patch b/src/patches/glibc/glibc-rh738665.patch new file mode 100644 index 0000000000..1eea554e8a --- /dev/null +++ b/src/patches/glibc/glibc-rh738665.patch @@ -0,0 +1,149 @@ +2011-09-15 Andreas Schwab + + * sysdeps/pthread/list.h: Define only list_t if __need_list_t is + defined. + (list_add): Add atomic_write_barrier. + * descr.h: Define __need_list_t before including . + * nptl-init.c: Include + * allocatestack.c: Likewise. + +2011-09-15 Andreas Schwab + + * thread_dbP.h: Include + +Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c ++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + +Index: glibc-2.12-2-gc4ccff1/nptl/descr.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/descr.h ++++ glibc-2.12-2-gc4ccff1/nptl/descr.h +@@ -26,6 +26,7 @@ + #include + #include + #include ++#define __need_list_t + #include + #include + #include +Index: glibc-2.12-2-gc4ccff1/nptl/nptl-init.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/nptl-init.c ++++ glibc-2.12-2-gc4ccff1/nptl/nptl-init.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/list.h ++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h +@@ -18,27 +18,39 @@ + 02111-1307 USA. */ + + #ifndef _LIST_H +-#define _LIST_H 1 ++ ++#ifndef __need_list_t ++# define _LIST_H 1 ++#endif + + /* The definitions of this file are adopted from those which can be + found in the Linux kernel headers to enable people familiar with + the latter find their way in these sources as well. */ + + ++#if defined __need_list_t || defined _LIST_H ++# ifndef __list_t_defined ++# define __list_t_defined + /* Basic type for the double-link list. */ + typedef struct list_head + { + struct list_head *next; + struct list_head *prev; + } list_t; ++# endif ++# undef __need_list_t ++#endif ++ ++#ifdef _LIST_H + ++# include + + /* Define a variable with the head and tail of the list. */ +-#define LIST_HEAD(name) \ ++# define LIST_HEAD(name) \ + list_t name = { &(name), &(name) } + + /* Initialize a new list head. */ +-#define INIT_LIST_HEAD(ptr) \ ++# define INIT_LIST_HEAD(ptr) \ + (ptr)->next = (ptr)->prev = (ptr) + + +@@ -49,6 +61,7 @@ list_add (list_t *newp, list_t *head) + newp->next = head->next; + newp->prev = head; + head->next->prev = newp; ++ atomic_write_barrier (); + head->next = newp; + } + +@@ -78,26 +91,28 @@ list_splice (list_t *add, list_t *head) + + + /* Get typed element from list at a given position. */ +-#define list_entry(ptr, type, member) \ ++# define list_entry(ptr, type, member) \ + ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member))) + + + + /* Iterate forward over the elements of the list. */ +-#define list_for_each(pos, head) \ ++# define list_for_each(pos, head) \ + for (pos = (head)->next; pos != (head); pos = pos->next) + + + /* Iterate forward over the elements of the list. */ +-#define list_for_each_prev(pos, head) \ ++# define list_for_each_prev(pos, head) \ + for (pos = (head)->prev; pos != (head); pos = pos->prev) + + + /* Iterate backwards over the elements list. The list elements can be + removed from the list while doing this. */ +-#define list_for_each_prev_safe(pos, p, head) \ ++# define list_for_each_prev_safe(pos, p, head) \ + for (pos = (head)->prev, p = pos->prev; \ + pos != (head); \ + pos = p, p = pos->prev) + ++#endif /* _LIST_H */ ++ + #endif /* list.h */ +Index: glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/nptl_db/thread_dbP.h ++++ glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h +@@ -29,6 +29,7 @@ + #include "proc_service.h" + #include "thread_db.h" + #include "../nptl/pthreadP.h" /* This is for *_BITMASK only. */ ++#include + + /* Indeces for the symbol names. */ + enum diff --git a/src/patches/glibc/glibc-rh738763.patch b/src/patches/glibc/glibc-rh738763.patch new file mode 100644 index 0000000000..728464d2a3 --- /dev/null +++ b/src/patches/glibc/glibc-rh738763.patch @@ -0,0 +1,17 @@ +2011-09-15 Ulrich Drepper + + * sysdeps/unix/sysv/linux/bits/in.h (IP_MULTICAST_ALL): Define. + Patch mostly by Neil Horman . + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/in.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h +@@ -70,6 +70,7 @@ + #define IP_XFRM_POLICY 17 + #define IP_PASSSEC 18 + #define IP_TRANSPARENT 19 ++#define IP_MULTICAST_ALL 49 /* bool */ + + /* TProxy original addresses */ + #define IP_ORIGDSTADDR 20 diff --git a/src/patches/glibc/glibc-rh739184.patch b/src/patches/glibc/glibc-rh739184.patch new file mode 100644 index 0000000000..cf122465af --- /dev/null +++ b/src/patches/glibc/glibc-rh739184.patch @@ -0,0 +1,18 @@ +2010-06-10 Andreas Schwab + + * sysdeps/unix/sysv/linux/getpagesize.c: Don't assume AT_PAGESIZE + is always available. + +Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getpagesize.c ++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c +@@ -28,7 +28,7 @@ + int + __getpagesize () + { +-#ifdef __ASSUME_AT_PAGESIZE ++#if 0 && defined __ASSUME_AT_PAGESIZE + assert (GLRO(dl_pagesize) != 0); + return GLRO(dl_pagesize); + #else diff --git a/src/patches/glibc/glibc-rh739971.patch b/src/patches/glibc/glibc-rh739971.patch new file mode 100644 index 0000000000..960c192dc0 --- /dev/null +++ b/src/patches/glibc/glibc-rh739971.patch @@ -0,0 +1,44 @@ +commit 32c76b63be605d12314e0c6ac2bd702c883d1423 +Author: Andreas Schwab +Date: Mon Sep 26 17:49:14 2011 +0200 + + Correctly reparse group line after enlarging the buffer + +diff --git a/nss/nss_files/files-initgroups.c b/nss/nss_files/files-initgroups.c +index 113abf2..c343b35 100644 +--- a/nss/nss_files/files-initgroups.c ++++ b/nss/nss_files/files-initgroups.c +@@ -52,8 +52,10 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, + gid_t *groups = *groupsp; + + /* We have to iterate over the entire file. */ +- while (!feof_unlocked (stream)) ++ while (1) + { ++ fpos_t pos; ++ fgetpos (stream, &pos); + ssize_t n = getline (&line, &linelen, stream); + if (n < 0) + { +@@ -64,9 +66,8 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, + } + + struct group grp; +- int res; +- while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen, +- errnop)) == -1) ++ int res = _nss_files_parse_grent (line, &grp, buffer, buflen, errnop); ++ if (res == -1) + { + size_t newbuflen = 2 * buflen; + if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen)) +@@ -85,6 +86,9 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, + } + else + buffer = extend_alloca (buffer, buflen, newbuflen); ++ /* Reread current line, the parser has clobbered it. */ ++ fsetpos (stream, &pos); ++ continue; + } + + if (res > 0 && grp.gr_gid != group) diff --git a/src/patches/glibc/glibc-rh740506-2.patch b/src/patches/glibc/glibc-rh740506-2.patch new file mode 100644 index 0000000000..adefea04bb --- /dev/null +++ b/src/patches/glibc/glibc-rh740506-2.patch @@ -0,0 +1,35 @@ + * malloc/arena.c (arena_get2): Avoid unnecessarily + retrieving #cpus from /proc. + * malloc/malloc.c (mALLOPt): Clamp arena_test based on + the value of arena_max. + +diff --git a/malloc/arena.c b/malloc/arena.c +index cb8548b..00f1da5 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size) + { + if (mp_.arena_max != 0) + narenas_limit = mp_.arena_max; +- else ++ else if (narenas > mp_.arena_test) + { + int n = __get_nprocs (); + +diff --git a/malloc/malloc.c b/malloc/malloc.c +index 8608083..f8d32da 100644 +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -6134,6 +6134,12 @@ int mALLOPt(param_number, value) int par + break; + #endif + } ++#ifdef PER_THREAD ++ /* Clamp ARENA_TEST from ARENA_MAX to avoid creating too many ++ arenas. */ ++ if (mp_.arena_max > 0 && mp_.arena_max <= mp_.arena_test) ++ mp_.arena_test = mp_.arena_max - 1; ++#endif + (void)mutex_unlock(&av->mutex); + return res; + } diff --git a/src/patches/glibc/glibc-rh740506.patch b/src/patches/glibc/glibc-rh740506.patch new file mode 100644 index 0000000000..6c74ccf100 --- /dev/null +++ b/src/patches/glibc/glibc-rh740506.patch @@ -0,0 +1,132 @@ +2011-11-14 Andreas Schwab + + * malloc/arena.c (arena_get2): Don't call reused_arena when + _int_new_arena failed. + +2011-11-10 Andreas Schwab + + * malloc/arena.c (_int_new_arena): Don't increment narenas. + (reused_arena): Don't check arena limit. + (arena_get2): Atomically check arena limit. + +diff --git a/malloc/arena.c b/malloc/arena.c +index 9114fd2..042cac8 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -747,8 +747,6 @@ _int_new_arena(size_t size) + main_arena.next = a; + + #ifdef PER_THREAD +- ++narenas; +- + (void)mutex_unlock(&list_lock); + #endif + +@@ -786,30 +784,6 @@ get_free_list (void) + static mstate + reused_arena (void) + { +- if (narenas <= mp_.arena_test) +- return NULL; +- +- static int narenas_limit; +- if (narenas_limit == 0) +- { +- if (mp_.arena_max != 0) +- narenas_limit = mp_.arena_max; +- else +- { +- int n = __get_nprocs (); +- +- if (n >= 1) +- narenas_limit = NARENAS_FROM_NCORES (n); +- else +- /* We have no information about the system. Assume two +- cores. */ +- narenas_limit = NARENAS_FROM_NCORES (2); +- } +- } +- +- if (narenas < narenas_limit) +- return NULL; +- + mstate result; + static mstate next_to_use; + if (next_to_use == NULL) +@@ -844,10 +818,41 @@ arena_get2(mstate a_tsd, size_t size) + mstate a; + + #ifdef PER_THREAD +- if ((a = get_free_list ()) == NULL +- && (a = reused_arena ()) == NULL) +- /* Nothing immediately available, so generate a new arena. */ +- a = _int_new_arena(size); ++ static size_t narenas_limit; ++ ++ a = get_free_list (); ++ if (a == NULL) ++ { ++ /* Nothing immediately available, so generate a new arena. */ ++ if (narenas_limit == 0) ++ { ++ if (mp_.arena_max != 0) ++ narenas_limit = mp_.arena_max; ++ else ++ { ++ int n = __get_nprocs (); ++ ++ if (n >= 1) ++ narenas_limit = NARENAS_FROM_NCORES (n); ++ else ++ /* We have no information about the system. Assume two ++ cores. */ ++ narenas_limit = NARENAS_FROM_NCORES (2); ++ } ++ } ++ repeat:; ++ size_t n = narenas; ++ if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0)) ++ { ++ if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n)) ++ goto repeat; ++ a = _int_new_arena (size); ++ if (__builtin_expect (a != NULL, 1)) ++ return a; ++ catomic_decrement(&narenas); ++ } ++ a = reused_arena (); ++ } + #else + if(!a_tsd) + a = a_tsd = &main_arena; + +commit a5fb313cb7b7e692fd4684916aaa98e03ec7e8b6 +Author: Andreas Schwab +Date: Mon Nov 14 11:41:52 2011 +0100 + + Don't call reused_arena when _int_new_arena failed + +diff --git a/malloc/arena.c b/malloc/arena.c +index 042cac8..cb8548b 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -844,14 +844,14 @@ arena_get2(mstate a_tsd, size_t size) + size_t n = narenas; + if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0)) + { +- if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n)) ++ if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n)) + goto repeat; + a = _int_new_arena (size); +- if (__builtin_expect (a != NULL, 1)) +- return a; +- catomic_decrement(&narenas); ++ if (__builtin_expect (a == NULL, 0)) ++ catomic_decrement (&narenas); + } +- a = reused_arena (); ++ else ++ a = reused_arena (); + } + #else + if(!a_tsd) diff --git a/src/patches/glibc/glibc-rh749188.patch b/src/patches/glibc/glibc-rh749188.patch new file mode 100644 index 0000000000..43157cd1a3 --- /dev/null +++ b/src/patches/glibc/glibc-rh749188.patch @@ -0,0 +1,32 @@ +commit 0e8131bb32cf026c87baeacb7abf2a9bdbbc4953 +Author: Andreas Schwab +Date: Sun May 8 21:48:03 2011 -0400 + + Remove .UTF-8 suffix from locale names when it is the only supported codeset + +diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED +index d665961..e952c17 100644 +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -46,8 +46,8 @@ ar_TN.UTF-8/UTF-8 \ + ar_TN/ISO-8859-6 \ + ar_YE.UTF-8/UTF-8 \ + ar_YE/ISO-8859-6 \ +-az_AZ.UTF-8/UTF-8 \ +-as_IN.UTF-8/UTF-8 \ ++az_AZ/UTF-8 \ ++as_IN/UTF-8 \ + ast_ES.UTF-8/UTF-8 \ + ast_ES/ISO-8859-15 \ + be_BY.UTF-8/UTF-8 \ +@@ -385,8 +385,8 @@ tr_CY/ISO-8859-9 \ + tr_TR.UTF-8/UTF-8 \ + tr_TR/ISO-8859-9 \ + ts_ZA/UTF-8 \ +-tt_RU.UTF-8/UTF-8 \ +-tt_RU.UTF-8@iqtelif/UTF-8 \ ++tt_RU/UTF-8 \ ++tt_RU@iqtelif/UTF-8 \ + ug_CN/UTF-8 \ + uk_UA.UTF-8/UTF-8 \ + uk_UA/KOI8-U \ diff --git a/src/patches/glibc/glibc-rh750531.patch b/src/patches/glibc/glibc-rh750531.patch new file mode 100644 index 0000000000..a53e770ed1 --- /dev/null +++ b/src/patches/glibc/glibc-rh750531.patch @@ -0,0 +1,122 @@ +commit 69da074d7adfab7b57004a0dea9403a928e310a5 +Author: Ulrich Drepper +Date: Wed Nov 10 02:38:35 2010 -0500 + + Fix warnings in __bswap_16. + +diff --git a/sysdeps/i386/bits/byteswap.h b/sysdeps/i386/bits/byteswap.h +index 1f3fc5e..c246ae8 100644 +--- a/sysdeps/i386/bits/byteswap.h ++++ b/sysdeps/i386/bits/byteswap.h +@@ -1,5 +1,5 @@ + /* Macros to swap the order of bytes in integer values. +- Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008 ++ Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008, 2010 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -27,26 +27,27 @@ + + /* Swap bytes in 16 bit value. */ + #define __bswap_constant_16(x) \ +- ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) ++ ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) + + #ifdef __GNUC__ + # if __GNUC__ >= 2 + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __v, __x = (x); \ ++ ({ register unsigned short int __v, __x = (unsigned short int) (x); \ + if (__builtin_constant_p (__x)) \ + __v = __bswap_constant_16 (__x); \ + else \ + __asm__ ("rorw $8, %w0" \ + : "=r" (__v) \ +- : "0" (__x) \ +- : "cc"); \ ++ : "0" (__x) \ ++ : "cc"); \ + __v; })) + # else + /* This is better than nothing. */ + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); })) ++ ({ register unsigned short int __x = (unsigned short int) (x); \ ++ __bswap_constant_16 (__x); })) + # endif + #else + static __inline unsigned short int +@@ -122,7 +123,7 @@ __bswap_32 (unsigned int __bsx) + (__extension__ \ + ({ union { __extension__ unsigned long long int __ll; \ + unsigned long int __l[2]; } __w, __r; \ +- if (__builtin_constant_p (x)) \ ++ if (__builtin_constant_p (x)) \ + __r.__ll = __bswap_constant_64 (x); \ + else \ + { \ +diff --git a/sysdeps/x86_64/bits/byteswap.h b/sysdeps/x86_64/bits/byteswap.h +index 08b38e8..e350fb8 100644 +--- a/sysdeps/x86_64/bits/byteswap.h ++++ b/sysdeps/x86_64/bits/byteswap.h +@@ -1,5 +1,5 @@ + /* Macros to swap the order of bytes in integer values. +- Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008 ++ Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008, 2010 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -29,12 +29,12 @@ + + /* Swap bytes in 16 bit value. */ + #define __bswap_constant_16(x) \ +- ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) ++ ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) + + #if defined __GNUC__ && __GNUC__ >= 2 + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __v, __x = (x); \ ++ ({ register unsigned short int __v, __x = (unsigned short int) (x); \ + if (__builtin_constant_p (__x)) \ + __v = __bswap_constant_16 (__x); \ + else \ +@@ -47,7 +47,8 @@ + /* This is better than nothing. */ + # define __bswap_16(x) \ + (__extension__ \ +- ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); })) ++ ({ register unsigned short int __x = (unsigned short int) (x); \ ++ __bswap_constant_16 (__x); })) + #endif + + +@@ -120,16 +121,16 @@ + # define __bswap_64(x) \ + (__extension__ \ + ({ union { __extension__ unsigned long long int __ll; \ +- unsigned int __l[2]; } __w, __r; \ +- if (__builtin_constant_p (x)) \ +- __r.__ll = __bswap_constant_64 (x); \ +- else \ +- { \ +- __w.__ll = (x); \ +- __r.__l[0] = __bswap_32 (__w.__l[1]); \ +- __r.__l[1] = __bswap_32 (__w.__l[0]); \ +- } \ +- __r.__ll; })) ++ unsigned int __l[2]; } __w, __r; \ ++ if (__builtin_constant_p (x)) \ ++ __r.__ll = __bswap_constant_64 (x); \ ++ else \ ++ { \ ++ __w.__ll = (x); \ ++ __r.__l[0] = __bswap_32 (__w.__l[1]); \ ++ __r.__l[1] = __bswap_32 (__w.__l[0]); \ ++ } \ ++ __r.__ll; })) + # endif + #endif + diff --git a/src/patches/glibc/glibc-rh751750.patch b/src/patches/glibc/glibc-rh751750.patch new file mode 100644 index 0000000000..6f9dd120de --- /dev/null +++ b/src/patches/glibc/glibc-rh751750.patch @@ -0,0 +1,28 @@ +commit 7583a88d1c7170caad26966bcea8bfc2c92093ba +Author: Andreas Schwab +Date: Mon Nov 7 15:07:31 2011 +0100 + + Fix locking in _IO_flush_all_lockp + +diff --git a/libio/genops.c b/libio/genops.c +index 5d21c42..bb40c34 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -826,7 +826,7 @@ _IO_flush_all_lockp (int do_lock) + int last_stamp; + + #ifdef _IO_MTSAFE_IO +- _IO_cleanup_region_start_noarg (flush_cleanup); ++ __libc_cleanup_region_start (do_lock, flush_cleanup, 0); + if (do_lock) + _IO_lock_lock (list_all_lock); + #endif +@@ -866,7 +866,7 @@ _IO_flush_all_lockp (int do_lock) + #ifdef _IO_MTSAFE_IO + if (do_lock) + _IO_lock_unlock (list_all_lock); +- _IO_cleanup_region_end (0); ++ __libc_cleanup_region_end (0); + #endif + + return result; diff --git a/src/patches/glibc/glibc-rh752122.patch b/src/patches/glibc/glibc-rh752122.patch new file mode 100644 index 0000000000..0176dc9a7e --- /dev/null +++ b/src/patches/glibc/glibc-rh752122.patch @@ -0,0 +1,260 @@ +2011-07-24 H.J. Lu + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Simplify + AVX check. + +2011-08-20 Ulrich Drepper + + * sysdeps/x86_64/dl-trampoline.h: If MORE_CODE is defined, restore + the CFI state in the end. + * sysdeps/x86_64/dl-trampoline.S: Define MORE_CODE before first + inclusion of dl-trampoline.h. + Based on a patch by Jiri Olsa . + +2011-07-23 Ulrich Drepper + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix one more + typo. + (_dl_x86_64_save_sse): Likewise. + +2011-07-22 Ulrich Drepper + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix test for + OSXSAVE. + (_dl_x86_64_save_sse): Likewise. + +2011-07-21 Andreas Schwab + + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix last + change. + (_dl_x86_64_save_sse): Use correct AVX check. + +2011-07-20 Ulrich Drepper + + [BZ #13007] + * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): More complete + check for AVX enablement so that we don't crash with old kernels and + new hardware. + * elf/tst-audit4.c: Add same checks here. + * elf/tst-audit6.c: Likewise. + +Index: glibc-2.12-2-gc4ccff1/elf/tst-audit4.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit4.c ++++ glibc-2.12-2-gc4ccff1/elf/tst-audit4.c +@@ -6,16 +6,30 @@ + #include + #include + ++ ++static int ++avx_enabled (void) ++{ ++ unsigned int eax, ebx, ecx, edx; ++ ++ if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0 ++ || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE)) ++ return 0; ++ ++ /* Check the OS has AVX and SSE saving enabled. */ ++ asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0)); ++ ++ return (eax & 6) == 6; ++} ++ ++ + extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i, + __m256i, __m256i, __m256i, __m256i); + int + main (void) + { +- unsigned int eax, ebx, ecx, edx; +- + /* Run AVX test only if AVX is supported. */ +- if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) +- && (ecx & bit_AVX)) ++ if (avx_enabled ()) + { + __m256i ymm = _mm256_setzero_si256 (); + __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm); +Index: glibc-2.12-2-gc4ccff1/elf/tst-audit6.c +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit6.c ++++ glibc-2.12-2-gc4ccff1/elf/tst-audit6.c +@@ -8,14 +8,28 @@ + extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i, + __m128i, __m128i, __m128i, __m128i); + +-int +-main (void) ++ ++static int ++avx_enabled (void) + { + unsigned int eax, ebx, ecx, edx; + ++ if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0 ++ || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE)) ++ return 0; ++ ++ /* Check the OS has AVX and SSE saving enabled. */ ++ asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0)); ++ ++ return (eax & 6) == 6; ++} ++ ++ ++int ++main (void) ++{ + /* Run AVX test only if AVX is supported. */ +- if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) +- && (ecx & bit_AVX)) ++ if (avx_enabled ()) + { + __m128i xmm = _mm_setzero_si128 (); + __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm); +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.S ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S +@@ -139,24 +139,31 @@ L(have_avx): + movl $1, %eax + cpuid + movq %r11,%rbx # Restore rbx +- movl $1, %eax +- testl $(1 << 28), %ecx ++ xorl %eax, %eax ++ // AVX and XSAVE supported? ++ andl $((1 << 28) | (1 << 27)), %ecx ++ cmpl $((1 << 28) | (1 << 27)), %ecx + jne 2f +- negl %eax +-2: movl %eax, L(have_avx)(%rip) ++ xorl %ecx, %ecx ++ // Get XFEATURE_ENABLED_MASK ++ xgetbv ++ andl $0x6, %eax ++2: subl $0x5, %eax ++ movl %eax, L(have_avx)(%rip) + cmpl $0, %eax + + 1: js L(no_avx) + + # define RESTORE_AVX ++# define MORE_CODE + # include "dl-trampoline.h" + + .align 16 + L(no_avx): + # endif + +-# undef RESTORE_AVX +-# include "dl-trampoline.h" ++# undef RESTORE_AVX ++# include "dl-trampoline.h" + + cfi_endproc + .size _dl_runtime_profile, .-_dl_runtime_profile +@@ -176,11 +183,20 @@ _dl_x86_64_save_sse: + movl $1, %eax + cpuid + movq %r11,%rbx # Restore rbx +- movl $1, %eax +- testl $(1 << 28), %ecx ++ xorl %eax, %eax ++ // AVX and XSAVE supported? ++ andl $((1 << 28) | (1 << 27)), %ecx ++ cmpl $((1 << 28) | (1 << 27)), %ecx + jne 2f +- negl %eax +-2: movl %eax, L(have_avx)(%rip) ++ xorl %ecx, %ecx ++ // Get XFEATURE_ENABLED_MASK ++ xgetbv ++ andl $0x6, %eax ++ cmpl $0x6, %eax ++ // Nonzero if SSE and AVX state saving is enabled. ++ sete %al ++2: leal -1(%eax,%eax), %eax ++ movl %eax, L(have_avx)(%rip) + cmpl $0, %eax + + 1: js L(no_avx5) +Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h +=================================================================== +--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.h ++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h +@@ -195,14 +195,14 @@ + _dl_call_pltexit. The La_x86_64_regs is being pointed by rsp now, + so we just need to allocate the sizeof(La_x86_64_retval) space on + the stack, since the alignment has already been taken care of. */ +-# ifdef RESTORE_AVX ++#ifdef RESTORE_AVX + /* sizeof(La_x86_64_retval). Need extra space for 2 SSE + registers to detect if xmm0/xmm1 registers are changed + by audit module. */ + subq $(LRV_SIZE + XMM_SIZE*2), %rsp +-# else ++#else + subq $LRV_SIZE, %rsp # sizeof(La_x86_64_retval) +-# endif ++#endif + movq %rsp, %rcx # La_x86_64_retval argument to %rcx. + + /* Fill in the La_x86_64_retval structure. */ +@@ -212,7 +212,7 @@ + movaps %xmm0, LRV_XMM0_OFFSET(%rcx) + movaps %xmm1, LRV_XMM1_OFFSET(%rcx) + +-# ifdef RESTORE_AVX ++#ifdef RESTORE_AVX + /* This is to support AVX audit modules. */ + vmovdqu %ymm0, LRV_VECTOR0_OFFSET(%rcx) + vmovdqu %ymm1, LRV_VECTOR1_OFFSET(%rcx) +@@ -221,14 +221,14 @@ + by audit module. */ + vmovdqa %xmm0, (LRV_SIZE)(%rcx) + vmovdqa %xmm1, (LRV_SIZE + XMM_SIZE)(%rcx) +-# endif ++#endif + + fstpt LRV_ST0_OFFSET(%rcx) + fstpt LRV_ST1_OFFSET(%rcx) + + movq 24(%rbx), %rdx # La_x86_64_regs argument to %rdx. + movq 40(%rbx), %rsi # Copy args pushed by PLT in register. +- movq 32(%rbx), %rdi # %rdi: link_map, %rsi: reloc_index ++ movq 32(%rbx), %rdi # %rdi: link_map, %rsi: reloc_index + call _dl_call_pltexit + + /* Restore return registers. */ +@@ -238,7 +238,7 @@ + movaps LRV_XMM0_OFFSET(%rsp), %xmm0 + movaps LRV_XMM1_OFFSET(%rsp), %xmm1 + +-# ifdef RESTORE_AVX ++#ifdef RESTORE_AVX + /* Check if xmm0/xmm1 registers are changed by audit module. */ + vpcmpeqq (LRV_SIZE)(%rsp), %xmm0, %xmm2 + vpmovmskb %xmm2, %esi +@@ -253,7 +253,7 @@ + vmovdqu LRV_VECTOR1_OFFSET(%rsp), %ymm1 + + 1: +-# endif ++#endif + + fldt LRV_ST1_OFFSET(%rsp) + fldt LRV_ST0_OFFSET(%rsp) +@@ -267,3 +267,10 @@ + # (eats the reloc index and link_map) + cfi_adjust_cfa_offset(-48) + retq ++ ++#ifdef MORE_CODE ++ cfi_adjust_cfa_offset(48) ++ cfi_rel_offset(%rbx, 0) ++ cfi_def_cfa_register(%rbx) ++# undef MORE_CODE ++#endif diff --git a/src/patches/glibc/glibc-rh757888.patch b/src/patches/glibc/glibc-rh757888.patch new file mode 100644 index 0000000000..721d4a481d --- /dev/null +++ b/src/patches/glibc/glibc-rh757888.patch @@ -0,0 +1,225 @@ +commit f3a6cc0a560a17f32a3e90d2f20501a53cab6058 +Author: Andreas Schwab +Date: Tue Nov 29 10:52:22 2011 +0100 + + Fix access after end of search string in regex matcher + +diff --git a/locale/weight.h b/locale/weight.h +index dc70a00..967e176 100644 +--- a/locale/weight.h ++++ b/locale/weight.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004 Free Software Foundation, Inc. ++/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Ulrich Drepper, . + +@@ -20,7 +20,7 @@ + /* Find index of weight. */ + auto inline int32_t + __attribute ((always_inline)) +-findidx (const unsigned char **cpp) ++findidx (const unsigned char **cpp, size_t len) + { + int_fast32_t i = table[*(*cpp)++]; + const unsigned char *cp; +@@ -34,6 +34,7 @@ findidx (const unsigned char **cpp) + Search for the correct one. */ + cp = &extra[-i]; + usrc = *cpp; ++ --len; + while (1) + { + size_t nhere; +@@ -56,7 +57,7 @@ findidx (const unsigned char **cpp) + already. */ + size_t cnt; + +- for (cnt = 0; cnt < nhere; ++cnt) ++ for (cnt = 0; cnt < nhere && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + +@@ -79,13 +80,13 @@ findidx (const unsigned char **cpp) + size_t cnt; + size_t offset = 0; + +- for (cnt = 0; cnt < nhere; ++cnt) ++ for (cnt = 0; cnt < nhere && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + + if (cnt != nhere) + { +- if (cp[cnt] > usrc[cnt]) ++ if (cnt == len || cp[cnt] > usrc[cnt]) + { + /* Cannot be in this range. */ + cp += 2 * nhere; +diff --git a/locale/weightwc.h b/locale/weightwc.h +index 9ea1126..7862091 100644 +--- a/locale/weightwc.h ++++ b/locale/weightwc.h +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996-2001,2003,2004,2005,2007 Free Software Foundation, Inc. ++/* Copyright (C) 1996-2001,2003,2004,2005,2007,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Ulrich Drepper, . + +@@ -20,7 +20,7 @@ + /* Find index of weight. */ + auto inline int32_t + __attribute ((always_inline)) +-findidx (const wint_t **cpp) ++findidx (const wint_t **cpp, size_t len) + { + wint_t ch = *(*cpp)++; + int32_t i = __collidx_table_lookup ((const char *) table, ch); +@@ -32,6 +32,7 @@ findidx (const wint_t **cpp) + /* Oh well, more than one sequence starting with this byte. + Search for the correct one. */ + const int32_t *cp = (const int32_t *) &extra[-i]; ++ --len; + while (1) + { + size_t nhere; +@@ -54,7 +55,7 @@ findidx (const wint_t **cpp) + already. */ + size_t cnt; + +- for (cnt = 0; cnt < nhere; ++cnt) ++ for (cnt = 0; cnt < nhere && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + +@@ -75,7 +76,7 @@ findidx (const wint_t **cpp) + size_t cnt; + size_t offset; + +- for (cnt = 0; cnt < nhere - 1; ++cnt) ++ for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt) + if (cp[cnt] != usrc[cnt]) + break; + +diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c +index 18a6667..72bd3ee 100644 +--- a/posix/fnmatch_loop.c ++++ b/posix/fnmatch_loop.c +@@ -412,7 +412,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); + # endif + +- idx = findidx (&cp); ++ idx = findidx (&cp, 1); + if (idx != 0) + { + /* We found a table entry. Now see whether the +@@ -422,7 +422,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used) + int32_t idx2; + const UCHAR *np = (const UCHAR *) n; + +- idx2 = findidx (&np); ++ idx2 = findidx (&np, string_end - n); + if (idx2 != 0 + && (idx >> 24) == (idx2 >> 24) + && len == weights[idx2 & 0xffffff]) +diff --git a/posix/regcomp.c b/posix/regcomp.c +index b238c08..34ee845 100644 +--- a/posix/regcomp.c ++++ b/posix/regcomp.c +@@ -1,5 +1,5 @@ + /* Extended regular expression matching and search library. +- Copyright (C) 2002-2007,2009,2010 Free Software Foundation, Inc. ++ Copyright (C) 2002-2007,2009,2010,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Isamu Hasegawa . + +@@ -3409,19 +3409,18 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) + _NL_COLLATE_EXTRAMB); + indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_INDIRECTMB); +- idx1 = findidx (&cp); +- if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0)) ++ idx1 = findidx (&cp, -1); ++ if (BE (idx1 == 0 || *cp != '\0', 0)) + /* This isn't a valid character. */ + return REG_ECOLLATE; + + /* Build single byte matcing table for this equivalence class. */ +- char_buf[1] = (unsigned char) '\0'; + len = weights[idx1 & 0xffffff]; + for (ch = 0; ch < SBC_MAX; ++ch) + { + char_buf[0] = ch; + cp = char_buf; +- idx2 = findidx (&cp); ++ idx2 = findidx (&cp, 1); + /* + idx2 = table[ch]; + */ + +--- a/posix/regex_internal.h 2011-11-30 12:47:02.706567482 -0700 ++++ a/posix/regex_internal.h 2011-11-30 12:47:32.969558337 -0700 +@@ -756,7 +756,7 @@ + indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, + _NL_COLLATE_INDIRECTMB); + p = pstr->mbs + idx; +- tmp = findidx (&p); ++ tmp = findidx (&p, pstr->len - idx); + return p - pstr->mbs - idx; + } + else +diff --git a/posix/regexec.c b/posix/regexec.c +index 9e0c565..3ea810b 100644 +--- a/posix/regexec.c ++++ b/posix/regexec.c +@@ -3924,7 +3924,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); + indirect = (const int32_t *) + _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); +- int32_t idx = findidx (&cp); ++ int32_t idx = findidx (&cp, elem_len); + if (idx > 0) + for (i = 0; i < cset->nequiv_classes; ++i) + { +diff --git a/string/strcoll_l.c b/string/strcoll_l.c +index d8d1139..fb77d08 100644 +--- a/string/strcoll_l.c ++++ b/string/strcoll_l.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1995-1997,2002,2004,2007,2010 Free Software Foundation, Inc. ++/* Copyright (C) 1995-1997,2002,2004,2007,2010,2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Ulrich Drepper , 1995. + +@@ -205,7 +205,7 @@ STRCOLL (s1, s2, l) + + while (*us1 != L('\0')) + { +- int32_t tmp = findidx (&us1); ++ int32_t tmp = findidx (&us1, -1); + rule1arr[idx1max] = tmp >> 24; + idx1arr[idx1max] = tmp & 0xffffff; + idx1cnt = idx1max++; +@@ -267,7 +267,7 @@ STRCOLL (s1, s2, l) + + while (*us2 != L('\0')) + { +- int32_t tmp = findidx (&us2); ++ int32_t tmp = findidx (&us2, -1); + rule2arr[idx2max] = tmp >> 24; + idx2arr[idx2max] = tmp & 0xffffff; + idx2cnt = idx2max++; +diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c +index 220253c..b06556d 100644 +--- a/string/strxfrm_l.c ++++ b/string/strxfrm_l.c +@@ -176,7 +176,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) + idxmax = 0; + do + { +- int32_t tmp = findidx (&usrc); ++ int32_t tmp = findidx (&usrc, -1); + rulearr[idxmax] = tmp >> 24; + idxarr[idxmax] = tmp & 0xffffff; + diff --git a/src/patches/glibc/glibc-rh766513.patch b/src/patches/glibc/glibc-rh766513.patch new file mode 100644 index 0000000000..3f629b4fcc --- /dev/null +++ b/src/patches/glibc/glibc-rh766513.patch @@ -0,0 +1,14 @@ +diff -rup a/po/ja.po b/po/ja.po +--- a/po/ja.po 2010-05-04 05:27:23.000000000 -0600 ++++ b/po/ja.po 2012-02-07 12:21:03.023806370 -0700 +@@ -3549,8 +3549,8 @@ msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n + + #: posix/getopt.c:945 posix/getopt.c:948 + #, c-format +-msgid "%s: invalid option -- %c\n" +-msgstr "%s: ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹ -- %c\n" ++msgid "%s: invalid option -- '%c'\n" ++msgstr "%s: ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹ -- '%c'\n" + + #: posix/getopt.c:1003 posix/getopt.c:1022 posix/getopt.c:1234 + #: posix/getopt.c:1255 diff --git a/src/patches/glibc/glibc-rh767146.patch b/src/patches/glibc/glibc-rh767146.patch new file mode 100644 index 0000000000..82520620bc --- /dev/null +++ b/src/patches/glibc/glibc-rh767146.patch @@ -0,0 +1,21 @@ +diff -rup a/elf/dl-load.c b/elf/dl-load.c +--- a/elf/dl-load.c 2012-02-03 10:59:58.917870716 -0700 ++++ b/elf/dl-load.c 2012-02-03 11:01:01.796580644 -0700 +@@ -1130,6 +1130,16 @@ _dl_map_object_from_fd (const char *name + = N_("ELF load command address/offset not properly aligned"); + goto call_lose; + } ++ if (__builtin_expect ((ph->p_offset + ph->p_filesz > st.st_size), 0)) ++ { ++ /* If the segment requires zeroing of part of its last ++ page, we'll crash when accessing the unmapped page. ++ There's still a possibility of a race, if the shared ++ object is truncated between the fxstat above and the ++ memset below. */ ++ errstring = N_("ELF load command past end of file"); ++ goto call_lose; ++ } + + c = &loadcmds[nloadcmds++]; + c->mapstart = ph->p_vaddr & ~(GLRO(dl_pagesize) - 1); +Only in b/elf: dl-load.c.orig diff --git a/src/patches/glibc/glibc-rh767693-2.patch b/src/patches/glibc/glibc-rh767693-2.patch new file mode 100644 index 0000000000..4418ac6420 --- /dev/null +++ b/src/patches/glibc/glibc-rh767693-2.patch @@ -0,0 +1,79 @@ +Index: glibc-2.5-20061008T1257/sunrpc/svc_tcp.c +=================================================================== +--- glibc-2.5-20061008T1257.orig/sunrpc/svc_tcp.c ++++ glibc-2.5-20061008T1257/sunrpc/svc_tcp.c +@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1. + #include + #include + #include ++#include + + #ifdef USE_IN_LIBIO + # include +@@ -249,6 +250,11 @@ again: + { + if (errno == EINTR) + goto again; ++ if (errno == EMFILE) ++ { ++ struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 }; ++ __nanosleep(&ts , NULL); ++ } + return FALSE; + } + /* +Index: glibc-2.5-20061008T1257/sunrpc/svc_udp.c +=================================================================== +--- glibc-2.5-20061008T1257.orig/sunrpc/svc_udp.c ++++ glibc-2.5-20061008T1257/sunrpc/svc_udp.c +@@ -46,6 +46,7 @@ static char sccsid[] = "@(#)svc_udp.c 1. + #include + #include + #include ++#include + + #ifdef IP_PKTINFO + #include +@@ -277,8 +278,16 @@ again: + (int) su->su_iosz, 0, + (struct sockaddr *) &(xprt->xp_raddr), &len); + xprt->xp_addrlen = len; +- if (rlen == -1 && errno == EINTR) +- goto again; ++ if (rlen == -1) ++ { ++ if (errno == EINTR) ++ goto again; ++ if (errno == EMFILE) ++ { ++ struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 }; ++ __nanosleep(&ts , NULL); ++ } ++ } + if (rlen < 16) /* < 4 32-bit ints? */ + return FALSE; + xdrs->x_op = XDR_DECODE; +Index: glibc-2.5-20061008T1257/sunrpc/svc_unix.c +=================================================================== +--- glibc-2.5-20061008T1257.orig/sunrpc/svc_unix.c ++++ glibc-2.5-20061008T1257/sunrpc/svc_unix.c +@@ -48,6 +48,7 @@ + #include + #include + #include ++#include + + #ifdef USE_IN_LIBIO + # include +@@ -247,6 +248,11 @@ again: + { + if (errno == EINTR) + goto again; ++ if (errno == EMFILE) ++ { ++ struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 }; ++ __nanosleep(&ts , NULL); ++ } + return FALSE; + } + /* diff --git a/src/patches/glibc/glibc-rh767693.patch b/src/patches/glibc/glibc-rh767693.patch new file mode 100644 index 0000000000..8f76beb3d3 --- /dev/null +++ b/src/patches/glibc/glibc-rh767693.patch @@ -0,0 +1,89 @@ +commit 97ac2654b2d831acaa18a2b018b0736245903fd2 +Author: Ulrich Drepper +Date: Sat Dec 17 20:18:42 2011 -0500 + + Check values from TZ file header + + + [BZ #13506] + * time/tzfile.c (__tzfile_read): Check values from file header. + +diff -ru a/time/tzfile.c b/time/tzfile.c +--- a/time/tzfile.c 2010-05-04 11:27:23.000000000 +0000 ++++ b/time/tzfile.c 2011-12-19 06:39:49.875358578 +0000 +@@ -19,6 +19,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -234,23 +235,58 @@ + goto read_again; + } + ++ if (__builtin_expect (num_transitions ++ > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1)) ++ / (sizeof (time_t) + 1)), 0)) ++ goto lose; + total_size = num_transitions * (sizeof (time_t) + 1); + total_size = ((total_size + __alignof__ (struct ttinfo) - 1) + & ~(__alignof__ (struct ttinfo) - 1)); + types_idx = total_size; +- total_size += num_types * sizeof (struct ttinfo) + chars; ++ if (__builtin_expect (num_types ++ > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0)) ++ goto lose; ++ total_size += num_types * sizeof (struct ttinfo); ++ if (__builtin_expect (chars > SIZE_MAX - total_size, 0)) ++ goto lose; ++ total_size += chars; ++ if (__builtin_expect (__alignof__ (struct leap) - 1 ++ > SIZE_MAX - total_size, 0)) ++ goto lose; + total_size = ((total_size + __alignof__ (struct leap) - 1) + & ~(__alignof__ (struct leap) - 1)); + leaps_idx = total_size; ++ if (__builtin_expect (num_leaps ++ > (SIZE_MAX - total_size) / sizeof (struct leap), 0)) ++ goto lose; + total_size += num_leaps * sizeof (struct leap); +- tzspec_len = (sizeof (time_t) == 8 && trans_width == 8 +- ? st.st_size - (ftello (f) +- + num_transitions * (8 + 1) +- + num_types * 6 +- + chars +- + num_leaps * 12 +- + num_isstd +- + num_isgmt) - 1 : 0); ++ tzspec_len = 0; ++ if (sizeof (time_t) == 8 && trans_width == 8) ++ { ++ off_t rem = st.st_size - ftello (f); ++ if (__builtin_expect (rem < 0 ++ || (size_t) rem < (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars), 0)) ++ goto lose; ++ tzspec_len = (size_t) rem - (num_transitions * (8 + 1) ++ + num_types * 6 ++ + chars); ++ if (__builtin_expect (num_leaps > SIZE_MAX / 12 ++ || tzspec_len < num_leaps * 12, 0)) ++ goto lose; ++ tzspec_len -= num_leaps * 12; ++ if (__builtin_expect (tzspec_len < num_isstd, 0)) ++ goto lose; ++ tzspec_len -= num_isstd; ++ if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0)) ++ goto lose; ++ tzspec_len -= num_isgmt + 1; ++ if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0)) ++ goto lose; ++ } ++ if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0)) ++ goto lose; + + /* Allocate enough memory including the extra block requested by the + caller. */ diff --git a/src/patches/glibc/glibc-rh767746.patch b/src/patches/glibc/glibc-rh767746.patch new file mode 100644 index 0000000000..58d96d8108 --- /dev/null +++ b/src/patches/glibc/glibc-rh767746.patch @@ -0,0 +1,14 @@ +--- a/nptl/pthread_create.c 2011-12-13 11:41:37.000000000 -0700 ++++ b/nptl/pthread_create.c 2011-12-14 10:03:13.000000000 -0700 +@@ -440,8 +440,9 @@ + int err = ALLOCATE_STACK (iattr, &pd); + if (__builtin_expect (err != 0, 0)) + /* Something went wrong. Maybe a parameter of the attributes is +- invalid or we could not allocate memory. */ +- return err; ++ invalid or we could not allocate memory. Note we have to ++ translate error codes. */ ++ return err == ENOMEM ? EAGAIN : err; + + + /* Initialize the TCB. All initializations with zero should be diff --git a/src/patches/glibc/glibc-rh771342.patch b/src/patches/glibc/glibc-rh771342.patch new file mode 100644 index 0000000000..0a49b8c934 --- /dev/null +++ b/src/patches/glibc/glibc-rh771342.patch @@ -0,0 +1,155 @@ +2011-06-30 Ulrich Drepper + + * nptl-init.c (__nptl_set_robust): New function. + (pthread_functions): Add reference. + * npthreadP.h: Declare __nptl_set_robust. + * sysdeps/pthread/pthread-functions.h (pthread_functions): Add + ptr_set_robust member. + * sysdeps/unix/sysv/linux/fork.c: Call set_robust_list syscall in + child if threads are used. + +diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c +--- a/nptl/nptl-init.c 2011-12-20 00:29:54.645538691 -0700 ++++ b/nptl/nptl-init.c 2012-01-03 10:18:38.977513783 -0700 +@@ -69,6 +69,13 @@ extern void __libc_setup_tls (size_t tcb + #endif + + #ifdef SHARED ++static ++#else ++extern ++#endif ++void __nptl_set_robust (struct pthread *); ++ ++#ifdef SHARED + static void nptl_freeres (void); + + +@@ -131,13 +138,25 @@ static const struct pthread_functions pt + .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd, + .ptr__nptl_setxid = __nptl_setxid, + /* For now only the stack cache needs to be freed. */ +- .ptr_freeres = nptl_freeres ++ .ptr_freeres = nptl_freeres, ++ .ptr_set_robust = __nptl_set_robust + }; + # define ptr_pthread_functions &pthread_functions + #else + # define ptr_pthread_functions NULL + #endif + ++#ifdef SHARED ++static ++#endif ++void ++__nptl_set_robust (struct pthread *self) ++{ ++ INTERNAL_SYSCALL_DECL (err); ++ INTERNAL_SYSCALL (set_robust_list, err, 2, &self->robust_head, ++ sizeof (struct robust_list_head)); ++} ++ + + #ifdef SHARED + /* This function is called indirectly from the freeres code in libc. */ +diff -Nrup a/nptl/pthreadP.h b/nptl/pthreadP.h +--- a/nptl/pthreadP.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/nptl/pthreadP.h 2012-01-03 10:12:35.599269269 -0700 +@@ -555,17 +555,20 @@ extern void __pthread_cleanup_pop_restor + + /* Old cleanup interfaces, still used in libc.so. */ + extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer, +- void (*routine) (void *), void *arg); ++ void (*routine) (void *), void *arg); + extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, +- int execute); ++ int execute); + extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer, +- void (*routine) (void *), void *arg); ++ void (*routine) (void *), void *arg); + extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer, +- int execute); ++ int execute); + + extern void __nptl_deallocate_tsd (void) attribute_hidden; + + extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden; ++#ifndef SHARED ++extern void __nptl_set_robust (struct pthread *self); ++#endif + + extern void __free_stacks (size_t limit) attribute_hidden; + +diff -Nrup a/nptl/sysdeps/pthread/pthread-functions.h b/nptl/sysdeps/pthread/pthread-functions.h +--- a/nptl/sysdeps/pthread/pthread-functions.h 2010-05-04 05:27:23.000000000 -0600 ++++ b/nptl/sysdeps/pthread/pthread-functions.h 2012-01-03 10:12:35.639269301 -0700 +@@ -97,6 +97,7 @@ struct pthread_functions + void (*ptr__nptl_deallocate_tsd) (void); + int (*ptr__nptl_setxid) (struct xid_command *); + void (*ptr_freeres) (void); ++ void (*ptr_set_robust) (struct pthread *); + }; + + /* Variable in libc.so. */ +diff -Nrup a/nptl/sysdeps/unix/sysv/linux/fork.c b/nptl/sysdeps/unix/sysv/linux/fork.c +--- a/nptl/sysdeps/unix/sysv/linux/fork.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/nptl/sysdeps/unix/sysv/linux/fork.c 2012-01-03 10:12:35.649269309 -0700 +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + + unsigned long int *__fork_generation_pointer; +@@ -86,8 +87,8 @@ __libc_fork (void) + just go away. The unloading code works in the order of the + list. + +- While executing the registered handlers we are building a +- list of all the entries so that we can go backward later on. */ ++ While executing the registered handlers we are building a ++ list of all the entries so that we can go backward later on. */ + while (1) + { + /* Execute the handler if there is one. */ +@@ -154,6 +155,24 @@ __libc_fork (void) + GL(dl_cpuclock_offset) = now; + #endif + ++#ifdef __NR_set_robust_list ++ /* Initialize the robust mutex list which has been reset during ++ the fork. We do not check for errors since if it fails here ++ it failed at process start as well and noone could have used ++ robust mutexes. We also do not have to set ++ self->robust_head.futex_offset since we inherit the correct ++ value from the parent. */ ++# ifdef SHARED ++ if (__libc_pthread_functions.ptr_set_robust != NULL) ++ PTHFCT_CALL (ptr_set_robust, (self)); ++# else ++ extern __typeof (__nptl_set_robust) __nptl_set_robust ++ __attribute__((weak)); ++ if (__builtin_expect (__nptl_set_robust != NULL, 0)) ++ __nptl_set_robust (self); ++# endif ++#endif ++ + /* Reset the file list. These are recursive mutexes. */ + fresetlockfiles (); + +@@ -170,10 +189,10 @@ __libc_fork (void) + allp->handler->child_handler (); + + /* Note that we do not have to wake any possible waiter. +- This is the only thread in the new process. The count +- may have been bumped up by other threads doing a fork. +- We reset it to 1, to avoid waiting for non-existing +- thread(s) to release the count. */ ++ This is the only thread in the new process. The count ++ may have been bumped up by other threads doing a fork. ++ We reset it to 1, to avoid waiting for non-existing ++ thread(s) to release the count. */ + allp->handler->refcntr = 1; + + /* XXX We could at this point look through the object pool diff --git a/src/patches/glibc/glibc-rh782585.patch b/src/patches/glibc/glibc-rh782585.patch new file mode 100644 index 0000000000..a554d4bd8b --- /dev/null +++ b/src/patches/glibc/glibc-rh782585.patch @@ -0,0 +1,329 @@ +diff -rup a/elf/dl-close.c b/elf/dl-close.c +--- a/elf/dl-close.c 2012-01-19 12:59:42.759484350 -0700 ++++ b/elf/dl-close.c 2012-01-19 14:10:20.439263806 -0700 +@@ -223,7 +223,7 @@ _dl_close_worker (struct link_map *map) + } + + /* Sort the entries. */ +- _dl_sort_fini (ns->_ns_loaded, maps, nloaded, used, nsid); ++ _dl_sort_fini (maps, nloaded, used, nsid); + + /* Call all termination functions at once. */ + #ifdef SHARED +diff -rup a/elf/dl-deps.c b/elf/dl-deps.c +--- a/elf/dl-deps.c 2012-01-19 12:59:42.716484301 -0700 ++++ b/elf/dl-deps.c 2012-01-19 13:52:35.223720556 -0700 +@@ -614,51 +614,67 @@ Filters not supported with LD_TRACE_PREL + map->l_searchlist.r_list[i]->l_reserved = 0; + } + +- /* Now determine the order in which the initialization has to happen. */ ++ /* Sort the initializer list to take dependencies into account. The binary ++ itself will always be initialize last. */ + memcpy (l_initfini, map->l_searchlist.r_list, + nlist * sizeof (struct link_map *)); +- /* We can skip looking for the binary itself which is at the front +- of the search list. Look through the list backward so that circular +- dependencies are not changing the order. */ +- for (i = 1; i < nlist; ++i) ++ if (__builtin_expect (nlist > 1, 1)) + { +- struct link_map *l = map->l_searchlist.r_list[i]; +- unsigned int j; +- unsigned int k; +- +- /* Find the place in the initfini list where the map is currently +- located. */ +- for (j = 1; l_initfini[j] != l; ++j) +- ; +- +- /* Find all object for which the current one is a dependency and +- move the found object (if necessary) in front. */ +- for (k = j + 1; k < nlist; ++k) ++ /* We can skip looking for the binary itself which is at the front ++ of the search list. */ ++ i = 1; ++ unsigned int seen[nlist]; ++ memset (seen, 0, nlist * sizeof (seen[0])); ++ while (1) + { +- struct link_map **runp; +- +- runp = l_initfini[k]->l_initfini; +- if (runp != NULL) ++ /* Keep track of which object we looked at this round. */ ++ ++seen[i]; ++ struct link_map *thisp = l_initfini[i]; ++ ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ unsigned int k = nlist - 1; ++ while (k > i) + { +- while (*runp != NULL) +- if (__builtin_expect (*runp++ == l, 0)) +- { +- struct link_map *here = l_initfini[k]; +- +- /* Move it now. */ +- memmove (&l_initfini[j] + 1, &l_initfini[j], +- (k - j) * sizeof (struct link_map *)); +- l_initfini[j] = here; +- +- /* Don't insert further matches before the last +- entry moved to the front. */ +- ++j; ++ struct link_map **runp = l_initfini[k]->l_initfini; ++ if (runp != NULL) ++ /* Look through the dependencies of the object. */ ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == thisp, 0)) ++ { ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ memmove (&l_initfini[i], &l_initfini[i + 1], ++ (k - i) * sizeof (l_initfini[0])); ++ l_initfini[k] = thisp; ++ ++ if (seen[i + 1] > nlist - i - 2) ++ { ++ ++i; ++ goto next_clear; ++ } ++ ++ unsigned int this_seen = seen[i]; ++ memmove (&seen[i], &seen[i + 1], ++ (k - i) * sizeof (seen[0])); ++ seen[k] = this_seen; ++ ++ goto next; ++ } + +- break; +- } ++ --k; + } ++ ++ if (++i == nlist) ++ break; ++ next_clear: ++ memset (&seen[i], 0, (nlist - i) * sizeof (seen[0])); ++ ++ next:; + } + } ++ + /* Terminate the list of dependencies. */ + l_initfini[nlist] = NULL; + atomic_write_barrier (); +diff -rup a/elf/dl-fini.c b/elf/dl-fini.c +--- a/elf/dl-fini.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/elf/dl-fini.c 2012-01-19 13:56:38.653842046 -0700 +@@ -1,5 +1,6 @@ + /* Call the termination functions of loaded shared objects. +- Copyright (C) 1995,96,1998-2002,2004-2005,2009 Free Software Foundation, Inc. ++ Copyright (C) 1995,96,1998-2002,2004-2005,2009,2011 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -29,89 +30,100 @@ typedef void (*fini_t) (void); + + void + internal_function +-_dl_sort_fini (struct link_map *l, struct link_map **maps, size_t nmaps, +- char *used, Lmid_t ns) ++_dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns) + { +- if (ns == LM_ID_BASE) +- /* The main executable always comes first. */ +- l = l->l_next; +- +- for (; l != NULL; l = l->l_next) +- /* Do not handle ld.so in secondary namespaces and object which +- are not removed. */ +- if (l == l->l_real && l->l_idx != -1) +- { +- /* Find the place in the 'maps' array. */ +- unsigned int j; +- for (j = ns == LM_ID_BASE ? 1 : 0; maps[j] != l; ++j) +- assert (j < nmaps); +- +- /* Find all object for which the current one is a dependency +- and move the found object (if necessary) in front. */ +- for (unsigned int k = j + 1; k < nmaps; ++k) +- { +- struct link_map **runp = maps[k]->l_initfini; +- if (runp != NULL) +- { +- while (*runp != NULL) +- if (*runp == l) +- { +- struct link_map *here = maps[k]; ++ /* A list of one element need not be sorted. */ ++ if (nmaps == 1) ++ return; ++ ++ /* We can skip looking for the binary itself which is at the front ++ of the search list for the main namespace. */ ++ unsigned int i = ns == LM_ID_BASE; ++ unsigned int seen[nmaps]; ++ memset (seen, 0, nmaps * sizeof (seen[0])); ++ while (1) ++ { ++ /* Keep track of which object we looked at this round. */ ++ ++seen[i]; ++ struct link_map *thisp = maps[i]; ++ ++ /* Do not handle ld.so in secondary namespaces and object which ++ are not removed. */ ++ if (thisp != thisp->l_real || thisp->l_idx == -1) ++ goto skip; ++ ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ unsigned int k = nmaps - 1; ++ while (k > i) ++ { ++ struct link_map **runp = maps[k]->l_initfini; ++ if (runp != NULL) ++ /* Look through the dependencies of the object. */ ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == thisp, 0)) ++ { ++ move: ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ memmove (&maps[i], &maps[i + 1], ++ (k - i) * sizeof (maps[0])); ++ maps[k] = thisp; + +- /* Move it now. */ +- memmove (&maps[j] + 1, +- &maps[j], (k - j) * sizeof (struct link_map *)); +- maps[j] = here; ++ if (used != NULL) ++ { ++ char here_used = used[i]; ++ memmove (&used[i], &used[i + 1], ++ (k - i) * sizeof (used[0])); ++ used[k] = here_used; ++ } + +- if (used != NULL) +- { +- char here_used = used[k]; ++ if (seen[i + 1] > nmaps - i - 2) ++ { ++ ++i; ++ goto next_clear; ++ } + +- memmove (&used[j] + 1, +- &used[j], (k - j) * sizeof (char)); +- used[j] = here_used; +- } ++ unsigned int this_seen = seen[i]; ++ memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); ++ seen[k] = this_seen; + +- ++j; ++ goto next; ++ } + +- break; +- } +- else +- ++runp; +- } +- +- if (__builtin_expect (maps[k]->l_reldeps != NULL, 0)) +- { +- unsigned int m = maps[k]->l_reldeps->act; +- struct link_map **relmaps = &maps[k]->l_reldeps->list[0]; ++ if (__builtin_expect (maps[k]->l_reldeps != NULL, 0)) ++ { ++ unsigned int m = maps[k]->l_reldeps->act; ++ struct link_map **relmaps = &maps[k]->l_reldeps->list[0]; + +- while (m-- > 0) ++ /* Look through the relocation dependencies of the object. */ ++ while (m-- > 0) ++ if (__builtin_expect (relmaps[m] == thisp, 0)) + { +- if (relmaps[m] == l) +- { +- struct link_map *here = maps[k]; +- +- /* Move it now. */ +- memmove (&maps[j] + 1, +- &maps[j], +- (k - j) * sizeof (struct link_map *)); +- maps[j] = here; +- +- if (used != NULL) +- { +- char here_used = used[k]; +- +- memmove (&used[j] + 1, +- &used[j], (k - j) * sizeof (char)); +- used[j] = here_used; +- } +- +- break; +- } ++ /* If a cycle exists with a link time dependency, ++ preserve the latter. */ ++ struct link_map **runp = thisp->l_initfini; ++ if (runp != NULL) ++ while (*runp != NULL) ++ if (__builtin_expect (*runp++ == maps[k], 0)) ++ goto ignore; ++ goto move; + } +- } +- } +- } ++ ignore:; ++ } ++ ++ --k; ++ } ++ ++ skip: ++ if (++i == nmaps) ++ break; ++ next_clear: ++ memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); ++ ++ next:; ++ } + } + + +@@ -196,9 +208,8 @@ _dl_fini (void) + assert (ns == LM_ID_BASE || i == nloaded || i == nloaded - 1); + nmaps = i; + +- if (nmaps != 0) +- /* Now we have to do the sorting. */ +- _dl_sort_fini (GL(dl_ns)[ns]._ns_loaded, maps, nmaps, NULL, ns); ++ /* Now we have to do the sorting. */ ++ _dl_sort_fini (maps, nmaps, NULL, ns); + + /* We do not rely on the linked list of loaded object anymore from + this point on. We have our own list here (maps). The various +diff -rup a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +--- a/sysdeps/generic/ldsodefs.h 2012-01-19 12:59:42.446483997 -0700 ++++ b/sysdeps/generic/ldsodefs.h 2012-01-19 14:16:36.242453532 -0700 +@@ -947,7 +947,7 @@ extern void _dl_init (struct link_map *m + extern void _dl_fini (void) internal_function; + + /* Sort array MAPS according to dependencies of the contained objects. */ +-extern void _dl_sort_fini (struct link_map *l, struct link_map **maps, ++extern void _dl_sort_fini (struct link_map **maps, + size_t nmaps, char *used, Lmid_t ns) + internal_function; + diff --git a/src/patches/glibc/glibc-rh784402.patch b/src/patches/glibc/glibc-rh784402.patch new file mode 100644 index 0000000000..d75773e523 --- /dev/null +++ b/src/patches/glibc/glibc-rh784402.patch @@ -0,0 +1,166 @@ +commit 3e1aa84e7f9f38815f5db9cd7654b1a9497cf6e4 +Author: Ulrich Drepper +Date: Fri Jan 20 22:39:54 2012 -0500 + + Do not cache negative results in nscd if these are transient + +diff -rup a/nscd/aicache.c b/nscd/aicache.c +--- a/nscd/aicache.c 2012-01-24 20:32:58.906826425 -0700 ++++ b/nscd/aicache.c 2012-01-24 20:42:17.663968882 -0700 +@@ -511,9 +511,17 @@ next_nip: + if (fd != -1) + TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store the ++ result, so be it. */ ++ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ dataset = NULL; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/grpcache.c b/nscd/grpcache.c +--- a/nscd/grpcache.c 2012-01-24 20:32:58.910826427 -0700 ++++ b/nscd/grpcache.c 2012-01-24 20:42:17.666968883 -0700 +@@ -114,13 +114,21 @@ cache_addgr (struct database_dyn *db, in + case. */ + total = sizeof (notfound); + +- written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, +- MSG_NOSIGNAL)); ++ if (fd != -1) ++ written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, ++ MSG_NOSIGNAL)); ++ else ++ written = total; + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/hstcache.c b/nscd/hstcache.c +--- a/nscd/hstcache.c 2012-01-24 20:32:58.911826427 -0700 ++++ b/nscd/hstcache.c 2012-01-24 20:42:17.668968883 -0700 +@@ -141,10 +141,16 @@ cache_addhst (struct database_dyn *db, i + MSG_NOSIGNAL)) != total) + all_written = false; + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/initgrcache.c b/nscd/initgrcache.c +--- a/nscd/initgrcache.c 2012-01-24 20:32:58.912826427 -0700 ++++ b/nscd/initgrcache.c 2012-01-24 20:42:17.671968883 -0700 +@@ -202,10 +202,16 @@ addinitgroupsX (struct database_dyn *db, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/pwdcache.c b/nscd/pwdcache.c +--- a/nscd/pwdcache.c 2012-01-24 20:32:58.914826427 -0700 ++++ b/nscd/pwdcache.c 2012-01-24 20:42:17.671968883 -0700 +@@ -124,10 +124,16 @@ cache_addpw (struct database_dyn *db, in + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; +diff -rup a/nscd/servicescache.c b/nscd/servicescache.c +--- a/nscd/servicescache.c 2012-01-24 20:32:58.915826427 -0700 ++++ b/nscd/servicescache.c 2012-01-24 20:42:17.672968884 -0700 +@@ -102,15 +102,22 @@ cache_addserv (struct database_dyn *db, + { + /* We have no data. This means we send the standard reply for this + case. */ +- total = sizeof (notfound); ++ written = total = sizeof (notfound); + +- written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, +- MSG_NOSIGNAL)); ++ if (fd != -1) ++ written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, ++ MSG_NOSIGNAL)); + +- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, +- 1); +- /* If we cannot permanently store the result, so be it. */ +- if (dataset != NULL) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) ++ { ++ /* Mark the old entry as obsolete. */ ++ if (dh != NULL) ++ dh->usable = false; ++ } ++ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset) ++ + req->key_len), 1)) != NULL) + { + dataset->head.allocsize = sizeof (struct dataset) + req->key_len; + dataset->head.recsize = total; diff --git a/src/patches/glibc/glibc-rh785984.patch b/src/patches/glibc/glibc-rh785984.patch new file mode 100644 index 0000000000..80ba5e8458 --- /dev/null +++ b/src/patches/glibc/glibc-rh785984.patch @@ -0,0 +1,20 @@ +diff -rup a/localedata/locales/zh_CN b/localedata/locales/zh_CN +--- a/localedata/locales/zh_CN 2006-07-30 16:19:43.000000000 -0600 ++++ b/localedata/locales/zh_CN 2012-01-30 21:24:46.905115483 -0700 +@@ -108,11 +108,11 @@ day "";/ + "";/ + "" + +-abmon "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ +- "";"";/ ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ + "";"" + + mon "";"";"";/ diff --git a/src/patches/glibc/glibc-rh788959-2.patch b/src/patches/glibc/glibc-rh788959-2.patch new file mode 100644 index 0000000000..1064640af5 --- /dev/null +++ b/src/patches/glibc/glibc-rh788959-2.patch @@ -0,0 +1,153 @@ +diff -rcp a/nscd/grpcache.c b/nscd/grpcache.c +*** a/nscd/grpcache.c Wed Apr 11 12:50:07 2012 +--- b/nscd/grpcache.c Wed Apr 11 21:45:58 2012 +*************** cache_addgr (struct database_dyn *db, in +*** 178,184 **** + char *cp; + const size_t key_len = strlen (key); + const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1; +! char *buf = alloca (buf_len); + ssize_t n; + size_t cnt; + +--- 178,185 ---- + char *cp; + const size_t key_len = strlen (key); + const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1; +! size_t alloca_used = 0; +! char *buf = alloca_account (buf_len, alloca_used); + ssize_t n; + size_t cnt; + +*************** cache_addgr (struct database_dyn *db, in +*** 190,196 **** + /* Determine the length of all members. */ + while (grp->gr_mem[gr_mem_cnt]) + ++gr_mem_cnt; +! gr_mem_len = (uint32_t *) alloca (gr_mem_cnt * sizeof (uint32_t)); + for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt) + { + gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1; +--- 191,198 ---- + /* Determine the length of all members. */ + while (grp->gr_mem[gr_mem_cnt]) + ++gr_mem_cnt; +! gr_mem_len = (uint32_t *) alloca_account (gr_mem_cnt * sizeof (uint32_t), +! alloca_used); + for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt) + { + gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1; +*************** cache_addgr (struct database_dyn *db, in +*** 205,214 **** + change. Allocate memory on the cache since it is likely + discarded anyway. If it turns out to be necessary to have a + new record we can still allocate real memory. */ +! bool alloca_used = false; + dataset = NULL; + +! if (he == NULL) + dataset = (struct dataset *) mempool_alloc (db, total + n, 1); + + if (dataset == NULL) +--- 207,216 ---- + change. Allocate memory on the cache since it is likely + discarded anyway. If it turns out to be necessary to have a + new record we can still allocate real memory. */ +! bool dataset_in_stack_or_freed = false; + dataset = NULL; + +! if (he == NULL || ! __libc_use_alloca (alloca_used + total + n)) + dataset = (struct dataset *) mempool_alloc (db, total + n, 1); + + if (dataset == NULL) +*************** cache_addgr (struct database_dyn *db, in +*** 216,225 **** + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +! dataset = (struct dataset *) alloca (total + n); + + /* We cannot add this record to the permanent database. */ +! alloca_used = true; + } + + dataset->head.allocsize = total + n; +--- 218,227 ---- + /* We cannot permanently add the result in the moment. But + we can provide the result as is. Store the data in some + temporary memory. */ +! dataset = (struct dataset *) alloca_account (total + n, alloca_used); + + /* We cannot add this record to the permanent database. */ +! dataset_in_stack_or_freed = true; + } + + dataset->head.allocsize = total + n; +*************** cache_addgr (struct database_dyn *db, in +*** 273,278 **** +--- 275,288 ---- + allocated on the stack and need not be freed. */ + dh->timeout = dataset->head.timeout; + ++dh->nreloads; ++ ++ /* If the new record was not allocated on the stack, then it must ++ be freed. Note that it can no longer be used. */ ++ if (! dataset_in_stack_or_freed) ++ { ++ free (dataset); ++ dataset_in_stack_or_freed = true; ++ } + } + else + { +*************** cache_addgr (struct database_dyn *db, in +*** 288,294 **** + key_copy = (char *) newp + (key_copy - (char *) dataset); + + dataset = memcpy (newp, dataset, total + n); +! alloca_used = false; + } + + /* Mark the old record as obsolete. */ +--- 298,304 ---- + key_copy = (char *) newp + (key_copy - (char *) dataset); + + dataset = memcpy (newp, dataset, total + n); +! dataset_in_stack_or_freed = false; + } + + /* Mark the old record as obsolete. */ +*************** cache_addgr (struct database_dyn *db, in +*** 303,309 **** + assert (fd != -1); + + #ifdef HAVE_SENDFILE +! if (__builtin_expect (db->mmap_used, 1) && !alloca_used) + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +--- 313,319 ---- + assert (fd != -1); + + #ifdef HAVE_SENDFILE +! if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed) + { + assert (db->wr_fd != -1); + assert ((char *) &dataset->resp > (char *) db->data); +*************** cache_addgr (struct database_dyn *db, in +*** 330,336 **** + + /* Add the record to the database. But only if it has not been + stored on the stack. */ +! if (! alloca_used) + { + /* If necessary, we also propagate the data to disk. */ + if (db->persistent) +--- 340,346 ---- + + /* Add the record to the database. But only if it has not been + stored on the stack. */ +! if (! dataset_in_stack_or_freed) + { + /* If necessary, we also propagate the data to disk. */ + if (db->persistent) diff --git a/src/patches/glibc/glibc-rh788959.patch b/src/patches/glibc/glibc-rh788959.patch new file mode 100644 index 0000000000..adc6c9947f --- /dev/null +++ b/src/patches/glibc/glibc-rh788959.patch @@ -0,0 +1,130 @@ +diff -pruN glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c +--- glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c 2010-05-04 16:57:23.000000000 +0530 ++++ glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c 2012-02-21 11:11:19.877008465 +0530 +@@ -297,6 +297,8 @@ getgrent_next_nss (ent_t *ent, char *buf + if (nss_initgroups_dyn (user, group, &mystart, &mysize, &mygroups, + limit, errnop) == NSS_STATUS_SUCCESS) + { ++ status = NSS_STATUS_NOTFOUND; ++ + /* If there is no blacklist we can trust the underlying + initgroups implementation. */ + if (ent->blacklist.current <= 1) +@@ -309,6 +311,7 @@ getgrent_next_nss (ent_t *ent, char *buf + overwrite the pointer with one to a bigger buffer. */ + char *tmpbuf = buffer; + size_t tmplen = buflen; ++ bool use_malloc = false; + + for (int i = 0; i < mystart; i++) + { +@@ -316,21 +319,36 @@ getgrent_next_nss (ent_t *ent, char *buf + tmpbuf, tmplen, errnop)) + == NSS_STATUS_TRYAGAIN + && *errnop == ERANGE) +- if (tmpbuf == buffer) +- { +- tmplen *= 2; +- tmpbuf = __alloca (tmplen); +- } +- else +- tmpbuf = extend_alloca (tmpbuf, tmplen, 2 * tmplen); ++ { ++ if (__libc_use_alloca (tmplen * 2)) ++ { ++ if (tmpbuf == buffer) ++ { ++ tmplen *= 2; ++ tmpbuf = __alloca (tmplen); ++ } ++ else ++ tmpbuf = extend_alloca (tmpbuf, tmplen, tmplen * 2); ++ } ++ else ++ { ++ tmplen *= 2; ++ char *newbuf = realloc (use_malloc ? tmpbuf : NULL, tmplen); ++ ++ if (newbuf == NULL) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ goto done; ++ } ++ use_malloc = true; ++ tmpbuf = newbuf; ++ } ++ } + + if (__builtin_expect (status != NSS_STATUS_NOTFOUND, 1)) + { + if (__builtin_expect (status != NSS_STATUS_SUCCESS, 0)) +- { +- free (mygroups); +- return status; +- } ++ goto done; + + if (!in_blacklist (grpbuf.gr_name, + strlen (grpbuf.gr_name), ent) +@@ -348,11 +366,17 @@ getgrent_next_nss (ent_t *ent, char *buf + } + } + } ++ ++ status = NSS_STATUS_NOTFOUND; ++ ++ done: ++ if (use_malloc) ++ free (tmpbuf); + } + + free (mygroups); + +- return NSS_STATUS_NOTFOUND; ++ return status; + } + + free (mygroups); +@@ -506,6 +530,7 @@ _nss_compat_initgroups_dyn (const char * + char *tmpbuf; + enum nss_status status; + ent_t intern = { true, false, false, NULL, {NULL, 0, 0} }; ++ bool use_malloc = false; + + status = internal_setgrent (&intern); + if (status != NSS_STATUS_SUCCESS) +@@ -519,13 +544,32 @@ _nss_compat_initgroups_dyn (const char * + user, group, start, size, + groupsp, limit, errnop)) + == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) +- tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); ++ if (__libc_use_alloca (buflen * 2)) ++ tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); ++ else ++ { ++ buflen *= 2; ++ char *newbuf = realloc (use_malloc ? tmpbuf : NULL, buflen); ++ if (newbuf == NULL) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ goto done; ++ } ++ use_malloc = true; ++ tmpbuf = newbuf; ++ } + } + while (status == NSS_STATUS_SUCCESS); + ++ status = NSS_STATUS_SUCCESS; ++ ++ done: ++ if (use_malloc) ++ free (tmpbuf); ++ + internal_endgrent (&intern); + +- return NSS_STATUS_SUCCESS; ++ return status; + } + + diff --git a/src/patches/glibc/glibc-rh789189.patch b/src/patches/glibc/glibc-rh789189.patch new file mode 100644 index 0000000000..fc0e2e0171 --- /dev/null +++ b/src/patches/glibc/glibc-rh789189.patch @@ -0,0 +1,12 @@ +diff -rup a/resolv/res_init.c b/resolv/res_init.c +--- a/resolv/res_init.c 2010-05-04 05:27:23.000000000 -0600 ++++ b/resolv/res_init.c 2012-02-10 10:20:24.923578396 -0700 +@@ -325,7 +325,7 @@ __res_vinit(res_state statp, int preinit + struct in6_addr a6; + char *el; + +- if ((el = strchr(cp, '\n')) != NULL) ++ if ((el = strpbrk(cp, " \t\n")) != NULL) + *el = '\0'; + if ((el = strchr(cp, SCOPE_DELIMITER)) != NULL) + *el = '\0'; diff --git a/src/patches/glibc/glibc-rh789209.patch b/src/patches/glibc/glibc-rh789209.patch new file mode 100644 index 0000000000..3aea97ede4 --- /dev/null +++ b/src/patches/glibc/glibc-rh789209.patch @@ -0,0 +1,12 @@ +diff -rup a/localedata/locales/uk_UA b/localedata/locales/uk_UA +--- a/localedata/locales/uk_UA 2010-05-04 05:27:23.000000000 -0600 ++++ b/localedata/locales/uk_UA 2012-02-10 09:59:16.934189715 -0700 +@@ -700,7 +700,7 @@ LC_MONETARY + % 200 hrv. - 200 hryven (money) + + % the local currency symbol +-currency_symbol "" % hr (hryvnya) ++currency_symbol "" % hr (hryvnya) + + % This must be a 4-character string containing the international currency + % symbol as defined by the ISO 4217 standard (three characters) followed diff --git a/src/patches/glibc/glibc-rh789238-2.patch b/src/patches/glibc/glibc-rh789238-2.patch new file mode 100644 index 0000000000..62b5492b15 --- /dev/null +++ b/src/patches/glibc/glibc-rh789238-2.patch @@ -0,0 +1,114 @@ +diff -rup a/malloc/arena.c b/malloc/arena.c +--- a/malloc/arena.c 2012-03-02 10:22:47.025002715 -0700 ++++ b/malloc/arena.c 2012-03-02 10:27:47.442361529 -0700 +@@ -123,14 +123,14 @@ int __malloc_initialized = -1; + if(ptr) \ + (void)mutex_lock(&ptr->mutex); \ + else \ +- ptr = arena_get2(ptr, (size)); \ ++ ptr = arena_get2(ptr, (size), false); \ + } while(0) + #else + #define arena_lock(ptr, size) do { \ + if(ptr && !mutex_trylock(&ptr->mutex)) { \ + THREAD_STAT(++(ptr->stat_lock_direct)); \ + } else \ +- ptr = arena_get2(ptr, (size)); \ ++ ptr = arena_get2(ptr, (size), false); \ + } while(0) + #endif + +@@ -982,7 +982,7 @@ get_free_list (void) + + + static mstate +-reused_arena (void) ++reused_arena (bool retrying) + { + mstate result; + static mstate next_to_use; +@@ -999,6 +999,15 @@ reused_arena (void) + } + while (result != next_to_use); + ++ /* If we are retrying due to a failure to allocate in the main ++ arena, don't wait for the main arena to become available, select ++ another. ++ ++ To really fix this right we would have to try the allocation ++ in every other arena, but that seems like severe overkill. */ ++ if (retrying && result == &main_arena) ++ result = result->next; ++ + /* No arena available. Wait for the next in line. */ + (void)mutex_lock(&result->mutex); + +@@ -1014,9 +1023,9 @@ reused_arena (void) + static mstate + internal_function + #if __STD_C +-arena_get2(mstate a_tsd, size_t size) ++arena_get2(mstate a_tsd, size_t size, bool retrying) + #else +-arena_get2(a_tsd, size) mstate a_tsd; size_t size; ++arena_get2(a_tsd, size, retrying) mstate a_tsd; size_t size; bool retrying + #endif + { + mstate a; +@@ -1055,7 +1064,7 @@ arena_get2(a_tsd, size) mstate a_tsd; si + catomic_decrement (&narenas); + } + else +- a = reused_arena (); ++ a = reused_arena (retrying); + } + #else + if(!a_tsd) +diff -rup a/malloc/malloc.c b/malloc/malloc.c +--- a/malloc/malloc.c 2012-03-02 10:22:47.061002519 -0700 ++++ b/malloc/malloc.c 2012-03-02 10:23:53.151643863 -0700 +@@ -3671,7 +3671,7 @@ public_mALLOc(size_t bytes) + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes); ++ ar_ptr = arena_get2(prev, bytes, true); + if(ar_ptr) { + victim = _int_malloc(ar_ptr, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3892,7 +3892,7 @@ public_mEMALIGn(size_t alignment, size_t + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes); ++ ar_ptr = arena_get2(prev, bytes, true); + if(ar_ptr) { + p = _int_memalign(ar_ptr, alignment, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3943,7 +3943,7 @@ public_vALLOc(size_t bytes) + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes); ++ ar_ptr = arena_get2(prev, bytes, true); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3992,7 +3992,7 @@ public_pVALLOc(size_t bytes) + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = ar_ptr->next ? ar_ptr : 0; + (void)mutex_unlock(&ar_ptr->mutex); +- ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE); ++ ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE, true); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, rounded_bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -4086,7 +4086,7 @@ public_cALLOc(size_t n, size_t elem_size + /* ... or sbrk() has failed and there is still a chance to mmap() */ + mstate prev = av->next ? av : 0; + (void)mutex_unlock(&av->mutex); +- av = arena_get2(prev, sz); ++ av = arena_get2(prev, sz, true); + if(av) { + mem = _int_malloc(av, sz); + (void)mutex_unlock(&av->mutex); diff --git a/src/patches/glibc/glibc-rh789238.patch b/src/patches/glibc/glibc-rh789238.patch new file mode 100644 index 0000000000..f2c90e25ab --- /dev/null +++ b/src/patches/glibc/glibc-rh789238.patch @@ -0,0 +1,119 @@ +diff -rup a/malloc/malloc.c b/malloc/malloc.c +--- a/malloc/malloc.c 2012-02-13 21:46:11.678847531 -0700 ++++ b/malloc/malloc.c 2012-02-13 22:43:14.788431976 -0700 +@@ -3669,8 +3669,9 @@ public_mALLOc(size_t bytes) + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes); +- (void)mutex_unlock(&main_arena.mutex); ++ mstate prev = ar_ptr->next ? ar_ptr : 0; ++ (void)mutex_unlock(&ar_ptr->mutex); ++ ar_ptr = arena_get2(prev, bytes); + if(ar_ptr) { + victim = _int_malloc(ar_ptr, bytes); + (void)mutex_unlock(&ar_ptr->mutex); +@@ -3929,10 +3930,10 @@ public_vALLOc(size_t bytes) + if(!ar_ptr) + return 0; + p = _int_valloc(ar_ptr, bytes); +- (void)mutex_unlock(&ar_ptr->mutex); + if(!p) { + /* Maybe the failure is due to running out of mmapped areas. */ + if(ar_ptr != &main_arena) { ++ (void)mutex_unlock(&ar_ptr->mutex); + ar_ptr = &main_arena; + (void)mutex_lock(&ar_ptr->mutex); + p = _int_memalign(ar_ptr, pagesz, bytes); +@@ -3940,14 +3941,17 @@ public_vALLOc(size_t bytes) + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes); ++ mstate prev = ar_ptr->next ? ar_ptr : 0; ++ (void)mutex_unlock(&ar_ptr->mutex); ++ ar_ptr = arena_get2(prev, bytes); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, bytes); + (void)mutex_unlock(&ar_ptr->mutex); + } + #endif + } +- } ++ } else ++ (void)mutex_unlock(&ar_ptr->mutex); + assert(!p || chunk_is_mmapped(mem2chunk(p)) || + ar_ptr == arena_for_chunk(mem2chunk(p))); + +@@ -3975,10 +3979,10 @@ public_pVALLOc(size_t bytes) + + arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE); + p = _int_pvalloc(ar_ptr, bytes); +- (void)mutex_unlock(&ar_ptr->mutex); + if(!p) { + /* Maybe the failure is due to running out of mmapped areas. */ + if(ar_ptr != &main_arena) { ++ (void)mutex_unlock(&ar_ptr->mutex); + ar_ptr = &main_arena; + (void)mutex_lock(&ar_ptr->mutex); + p = _int_memalign(ar_ptr, pagesz, rounded_bytes); +@@ -3986,15 +3990,17 @@ public_pVALLOc(size_t bytes) + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, +- bytes + 2*pagesz + MINSIZE); ++ mstate prev = ar_ptr->next ? ar_ptr : 0; ++ (void)mutex_unlock(&ar_ptr->mutex); ++ ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE); + if(ar_ptr) { + p = _int_memalign(ar_ptr, pagesz, rounded_bytes); + (void)mutex_unlock(&ar_ptr->mutex); + } + #endif + } +- } ++ } else ++ (void)mutex_unlock(&ar_ptr->mutex); + assert(!p || chunk_is_mmapped(mem2chunk(p)) || + ar_ptr == arena_for_chunk(mem2chunk(p))); + +@@ -4064,8 +4070,6 @@ public_cALLOc(size_t n, size_t elem_size + #endif + mem = _int_malloc(av, sz); + +- /* Only clearing follows, so we can unlock early. */ +- (void)mutex_unlock(&av->mutex); + + assert(!mem || chunk_is_mmapped(mem2chunk(mem)) || + av == arena_for_chunk(mem2chunk(mem))); +@@ -4073,15 +4077,16 @@ public_cALLOc(size_t n, size_t elem_size + if (mem == 0) { + /* Maybe the failure is due to running out of mmapped areas. */ + if(av != &main_arena) { ++ (void)mutex_unlock(&av->mutex); + (void)mutex_lock(&main_arena.mutex); + mem = _int_malloc(&main_arena, sz); + (void)mutex_unlock(&main_arena.mutex); + } else { + #if USE_ARENAS + /* ... or sbrk() has failed and there is still a chance to mmap() */ +- (void)mutex_lock(&main_arena.mutex); +- av = arena_get2(av->next ? av : 0, sz); +- (void)mutex_unlock(&main_arena.mutex); ++ mstate prev = av->next ? av : 0; ++ (void)mutex_unlock(&av->mutex); ++ av = arena_get2(prev, sz); + if(av) { + mem = _int_malloc(av, sz); + (void)mutex_unlock(&av->mutex); +@@ -4089,7 +4094,8 @@ public_cALLOc(size_t n, size_t elem_size + #endif + } + if (mem == 0) return 0; +- } ++ } else ++ (void)mutex_unlock(&av->mutex); + p = mem2chunk(mem); + + /* Two optional cases in which clearing not necessary */ diff --git a/src/patches/glibc/glibc-rh794817-2.patch b/src/patches/glibc/glibc-rh794817-2.patch new file mode 100644 index 0000000000..15774b43e3 --- /dev/null +++ b/src/patches/glibc/glibc-rh794817-2.patch @@ -0,0 +1,85 @@ +diff -rup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-03-05 09:43:14.705536167 -0700 ++++ b/stdio-common/vfprintf.c 2012-03-05 09:48:11.602890982 -0700 +@@ -822,7 +822,7 @@ vfprintf (FILE *s, const CHAR_T *format, + \ + if (function_done < 0) \ + { \ +- /* Error in print handler. */ \ ++ /* Error in print handler; up to handler to set errno. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -876,7 +876,7 @@ vfprintf (FILE *s, const CHAR_T *format, + \ + if (function_done < 0) \ + { \ +- /* Error in print handler. */ \ ++ /* Error in print handler; up to handler to set errno. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -1117,7 +1117,7 @@ vfprintf (FILE *s, const CHAR_T *format, + &mbstate); \ + if (len == (size_t) -1) \ + { \ +- /* Something went wron gduring the conversion. Bail out. */ \ ++ /* Something went wrong during the conversion. Bail out. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -1188,6 +1188,7 @@ vfprintf (FILE *s, const CHAR_T *format, + if (__mbsnrtowcs (ignore, &str2, strend - str2, \ + ignore_size, &ps) == (size_t) -1) \ + { \ ++ /* Conversion function has set errno. */ \ + done = -1; \ + goto all_done; \ + } \ +@@ -1599,6 +1600,7 @@ vfprintf (FILE *s, const CHAR_T *format, + if (spec == L_('\0')) + { + /* The format string ended before the specifier is complete. */ ++ __set_errno (EINVAL); + done = -1; + goto all_done; + } +@@ -1696,17 +1698,20 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ /* Calculate total size needed to represent a single argument across ++ all three argument-related arrays. */ + bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) + + sizeof (*args_type); + + /* Check for potential integer overflow. */ +- if (nargs > SIZE_MAX / bytes_per_arg) ++ if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0)) + { ++ __set_errno (ERANGE); + done = -1; + goto all_done; + } + +- /* Allocate memory for the argument descriptions. */ ++ /* Allocate memory for all three argument arrays. */ + if (__libc_use_alloca (nargs * bytes_per_arg)) + args_value = alloca (nargs * bytes_per_arg); + else +@@ -1937,6 +1942,7 @@ do_positional: + about # of chars. */ + if (function_done < 0) + { ++ /* Function has set errno. */ + done = -1; + goto all_done; + } +@@ -1971,6 +1977,7 @@ do_positional: + of chars. */ + if (function_done < 0) + { ++ /* Function has set errno. */ + done = -1; + goto all_done; + } diff --git a/src/patches/glibc/glibc-rh794817.patch b/src/patches/glibc/glibc-rh794817.patch new file mode 100644 index 0000000000..e21caaa635 --- /dev/null +++ b/src/patches/glibc/glibc-rh794817.patch @@ -0,0 +1,239 @@ +From libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Thu Feb 16 16:21:17 2012 +Return-Path: +Delivered-To: listarch-libc-alpha at sources dot redhat dot com +Received: (qmail 5187 invoked by alias); 16 Feb 2012 16:21:14 -0000 +Delivered-To: moderator for libc-alpha at sourceware dot org +Received: (qmail 2174 invoked by uid 22791); 16 Feb 2012 16:17:18 -0000 +X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 + tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,TW_TV,TW_VB,TW_VF,T_RP_MATCHES_RCVD +X-Spam-Check-By: sourceware.org +Date: Thu, 16 Feb 2012 08:16:13 -0800 +From: Kees Cook +To: "Ryan S dot Arnold" +Cc: libc-alpha at sourceware dot org, Paul Eggert , + Roland McGrath , + Andreas Schwab +Subject: Re: [PATCH] vfprintf: validate nargs and maybe allocate from heap +Message-ID: <20120216161613.GZ20420@outflux.net> +References: <20120206062537.GM4979@outflux.net> + <20120207000509 dot GP4989 at outflux dot net> + <20120210192457 dot GF20420 at outflux dot net> + + <20120214223048 dot GM20420 at outflux dot net> + + <20120214224543 dot GN20420 at outflux dot net> +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline +In-Reply-To: <20120214224543 dot GN20420 at outflux dot net> +X-MIMEDefang-Filter: outflux$Revision: 1.316 $ +X-HELO: www.outflux.net +Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm +Precedence: bulk +List-Id: +List-Subscribe: +List-Archive: +List-Post: +List-Help: , +Sender: libc-alpha-owner at sourceware dot org +Delivered-To: mailing list libc-alpha at sourceware dot org + +The nargs value can overflow when doing allocations, allowing arbitrary +memory writes via format strings, bypassing _FORTIFY_SOURCE: +http://www.phrack.org/issues.html?issue=67&id=9 + +This checks for nargs overflow and possibly allocates from heap instead of +stack, and adds a regression test for the situation. + +I have FSF assignment via Google. (Sent from @outflux since that's how I'm +subscribed here, but CL shows @chromium.org as part of my Google work.) + +This version disables the useless test on non-32-bit platforms. + +2012-02-16 Kees Cook + + [BZ #13656] + * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and + possibly allocate from heap instead of stack. + * stdio-common/bug-vfprintf-nargs.c: New file. + * stdio-common/Makefile (tests): Add nargs overflow test. + + +diff -rup a/stdio-common/Makefile b/stdio-common/Makefile +--- a/stdio-common/Makefile 2010-05-04 05:27:23.000000000 -0600 ++++ b/stdio-common/Makefile 2012-02-20 21:57:52.983040992 -0700 +@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 ++ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs + + test-srcs = tst-unbputc tst-printf + +diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c +new file mode 100644 +index 0000000..13c66c0 +--- /dev/null ++++ b/stdio-common/bug-vfprintf-nargs.c +@@ -0,0 +1,78 @@ ++/* Test for vfprintf nargs allocation overflow (BZ #13656). ++ Copyright (C) 2012 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Kees Cook , 2012. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library 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 ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++format_failed (const char *fmt, const char *expected) ++{ ++ char output[80]; ++ ++ printf ("%s : ", fmt); ++ ++ memset (output, 0, sizeof output); ++ /* Having sprintf itself detect a failure is good. */ ++ if (sprintf (output, fmt, 1, 2, 3, "test") > 0 ++ && strcmp (output, expected) != 0) ++ { ++ printf ("FAIL (output '%s' != expected '%s')\n", output, expected); ++ return 1; ++ } ++ puts ("ok"); ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ int rc = 0; ++ char buf[64]; ++ ++ /* Regular positionals work. */ ++ if (format_failed ("%1$d", "1") != 0) ++ rc = 1; ++ ++ /* Regular width positionals work. */ ++ if (format_failed ("%1$*2$d", " 1") != 0) ++ rc = 1; ++ ++ /* Positional arguments are constructed via read_int, so nargs can only ++ overflow on 32-bit systems. On 64-bit systems, it will attempt to ++ allocate a giant amount of memory and possibly crash, which is the ++ expected situation. Since the 64-bit behavior is arch-specific, only ++ test this on 32-bit systems. */ ++ if (sizeof (long int) == 4) ++ { ++ sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int)); ++ if (format_failed (buf, "1 %$d") != 0) ++ rc = 1; ++ } ++ ++ return rc; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +index 863cd5d..022e72b 100644 +--- a/stdio-common/vfprintf.c ++++ b/stdio-common/vfprintf.c +@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) + 0 if unknown. */ + int readonly_format = 0; + ++ /* For the argument descriptions, which may be allocated on the heap. */ ++ void *args_malloced = NULL; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1647,9 +1650,10 @@ do_positional: + determine the size of the array needed to store the argument + attributes. */ + size_t nargs = 0; +- int *args_type; +- union printf_arg *args_value = NULL; ++ size_t bytes_per_arg; ++ union printf_arg *args_value; + int *args_size; ++ int *args_type; + + /* Positional parameters refer to arguments directly. This could + also determine the maximum number of arguments. Track the +@@ -1698,13 +1702,33 @@ do_positional: + + /* Determine the number of arguments the format string consumes. */ + nargs = MAX (nargs, max_ref_arg); ++ bytes_per_arg = sizeof (*args_value) + sizeof (*args_size) ++ + sizeof (*args_type); ++ ++ /* Check for potential integer overflow. */ ++ if (nargs > SIZE_MAX / bytes_per_arg) ++ { ++ done = -1; ++ goto all_done; ++ } + + /* Allocate memory for the argument descriptions. */ +- args_type = alloca (nargs * sizeof (int)); ++ if (__libc_use_alloca (nargs * bytes_per_arg)) ++ args_value = alloca (nargs * bytes_per_arg); ++ else ++ { ++ args_value = args_malloced = malloc (nargs * bytes_per_arg); ++ if (args_value == NULL) ++ { ++ done = -1; ++ goto all_done; ++ } ++ } ++ ++ args_size = &args_value[nargs].pa_int; ++ args_type = &args_size[nargs]; + memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0', +- nargs * sizeof (int)); +- args_value = alloca (nargs * sizeof (union printf_arg)); +- args_size = alloca (nargs * sizeof (int)); ++ nargs * sizeof (*args_type)); + + /* XXX Could do sanity check here: If any element in ARGS_TYPE is + still zero after this loop, format is invalid. For now we +@@ -1973,8 +1997,8 @@ do_positional: + } + + all_done: +- if (__builtin_expect (workstart != NULL, 0)) +- free (workstart); ++ free (args_malloced); ++ free (workstart); + /* Unlock the stream. */ + _IO_funlockfile (s); + _IO_cleanup_region_end (0); +-- +1.7.5.4 + +-- +Kees Cook @outflux.net + diff --git a/src/patches/glibc/glibc-rh795498.patch b/src/patches/glibc/glibc-rh795498.patch new file mode 100644 index 0000000000..729c5a4d7a --- /dev/null +++ b/src/patches/glibc/glibc-rh795498.patch @@ -0,0 +1,13 @@ +diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +index 01369f6..44ad04d 100644 +--- a/resolv/nss_dns/dns-host.c ++++ b/resolv/nss_dns/dns-host.c +@@ -1219,7 +1219,7 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, + &first); + if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND + || (status == NSS_STATUS_TRYAGAIN +- && (errno != ERANGE || *h_errnop != NO_RECOVERY))) ++ && (*errnop != ERANGE || *h_errnop == NO_RECOVERY))) + && answer2 != NULL && anslen2 > 0) + { + enum nss_status status2 = gaih_getanswer_slice(answer2, anslen2, qname, diff --git a/src/patches/glibc/glibc-rh797094-1.patch b/src/patches/glibc/glibc-rh797094-1.patch new file mode 100644 index 0000000000..e98b9c03ef --- /dev/null +++ b/src/patches/glibc/glibc-rh797094-1.patch @@ -0,0 +1,657 @@ +diff -rup a/include/alloca.h b/include/alloca.h +--- a/include/alloca.h 2012-02-29 13:11:19.439693476 -0700 ++++ b/include/alloca.h 2012-02-29 13:11:49.832530623 -0700 +@@ -49,15 +49,24 @@ libc_hidden_proto (__libc_alloca_cutoff) + + #if defined stackinfo_get_sp && defined stackinfo_sub_sp + # define alloca_account(size, avar) \ +- ({ void *old__ = stackinfo_get_sp (); \ +- void *m__ = __alloca (size); \ +- avar += stackinfo_sub_sp (old__); \ ++ ({ void *old__ = stackinfo_get_sp (); \ ++ void *m__ = __alloca (size); \ ++ avar += stackinfo_sub_sp (old__); \ ++ m__; }) ++# define extend_alloca_account(buf, len, newlen, avar) \ ++ ({ void *old__ = stackinfo_get_sp (); \ ++ void *m__ = extend_alloca (buf, len, newlen); \ ++ avar += stackinfo_sub_sp (old__); \ + m__; }) + #else + # define alloca_account(size, avar) \ +- ({ size_t s__ = (size); \ +- avar += s__; \ ++ ({ size_t s__ = (size); \ ++ avar += s__; \ + __alloca (s__); }) ++# define extend_alloca_account(buf, len, newlen, avar) \ ++ ({ size_t s__ = (newlen); \ ++ avar += s__; \ ++ extend_alloca (buf, len, s__); }) + #endif + + #endif +diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +--- a/sysdeps/posix/getaddrinfo.c 2012-02-29 13:11:19.588692676 -0700 ++++ b/sysdeps/posix/getaddrinfo.c 2012-02-29 13:12:42.972245862 -0700 +@@ -278,6 +278,7 @@ gaih_inet (const char *name, const struc + bool got_ipv6 = false; + const char *canon = NULL; + const char *orig_name = name; ++ size_t alloca_used = 0; + + if (req->ai_protocol || req->ai_socktype) + { +@@ -310,7 +311,7 @@ gaih_inet (const char *name, const struc + if (tp->name[0]) + { + st = (struct gaih_servtuple *) +- __alloca (sizeof (struct gaih_servtuple)); ++ alloca_account (sizeof (struct gaih_servtuple), alloca_used); + + if ((rc = gaih_inet_serv (service->name, tp, req, st))) + return rc; +@@ -334,7 +335,8 @@ gaih_inet (const char *name, const struc + continue; + + newp = (struct gaih_servtuple *) +- __alloca (sizeof (struct gaih_servtuple)); ++ alloca_account (sizeof (struct gaih_servtuple), ++ alloca_used); + + if ((rc = gaih_inet_serv (service->name, tp, req, newp))) + { +@@ -362,7 +364,7 @@ gaih_inet (const char *name, const struc + + if (req->ai_socktype || req->ai_protocol) + { +- st = __alloca (sizeof (struct gaih_servtuple)); ++ st = alloca_account (sizeof (struct gaih_servtuple), alloca_used); + st->next = NULL; + st->socktype = tp->socktype; + st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY) +@@ -379,7 +381,8 @@ gaih_inet (const char *name, const struc + { + struct gaih_servtuple *newp; + +- newp = __alloca (sizeof (struct gaih_servtuple)); ++ newp = alloca_account (sizeof (struct gaih_servtuple), ++ alloca_used); + newp->next = NULL; + newp->socktype = tp->socktype; + newp->protocol = tp->protocol; +@@ -391,10 +394,17 @@ gaih_inet (const char *name, const struc + } + } + ++ bool malloc_name = false; ++ bool malloc_addrmem = false; ++ struct gaih_addrtuple *addrmem = NULL; ++ bool malloc_canonbuf = false; ++ char *canonbuf = NULL; ++ bool malloc_tmpbuf = false; ++ char *tmpbuf = NULL; ++ int result = 0; + if (name != NULL) + { +- at = __alloca (sizeof (struct gaih_addrtuple)); +- ++ at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used); + at->family = AF_UNSPEC; + at->scopeid = 0; + at->next = NULL; +@@ -412,6 +422,7 @@ gaih_inet (const char *name, const struc + rc = __idna_to_ascii_lz (name, &p, idn_flags); + if (rc != IDNA_SUCCESS) + { ++ /* No need to jump to free_and_return here. */ + if (rc == IDNA_MALLOC_ERROR) + return -EAI_MEMORY; + if (rc == IDNA_DLOPEN_ERROR) +@@ -421,10 +432,7 @@ gaih_inet (const char *name, const struc + /* In case the output string is the same as the input string + no new string has been allocated. */ + if (p != name) +- { +- name = strdupa (p); +- free (p); +- } ++ malloc_name = true; + } + #endif + +@@ -441,23 +449,59 @@ gaih_inet (const char *name, const struc + at->family = AF_INET6; + } + else +- return -EAI_ADDRFAMILY; ++ { ++ result = -EAI_ADDRFAMILY; ++ goto free_and_return; ++ } + + if (req->ai_flags & AI_CANONNAME) + canon = name; + } + else if (at->family == AF_UNSPEC) + { +- char *namebuf = (char *) name; + char *scope_delim = strchr (name, SCOPE_DELIMITER); ++ int e; + +- if (__builtin_expect (scope_delim != NULL, 0)) +- { +- namebuf = alloca (scope_delim - name + 1); +- *((char *) __mempcpy (namebuf, name, scope_delim - name)) = '\0'; +- } ++ { ++ bool malloc_namebuf = false; ++ char *namebuf = (char *) name; ++ ++ if (__builtin_expect (scope_delim != NULL, 0)) ++ { ++ if (malloc_name) ++ *scope_delim = '\0'; ++ else ++ { ++ if (__libc_use_alloca (alloca_used ++ + scope_delim - name + 1)) ++ { ++ namebuf = alloca_account (scope_delim - name + 1, ++ alloca_used); ++ *((char *) __mempcpy (namebuf, name, ++ scope_delim - name)) = '\0'; ++ } ++ else ++ { ++ namebuf = strndup (name, scope_delim - name); ++ if (namebuf == NULL) ++ { ++ assert (!malloc_name); ++ return -EAI_MEMORY; ++ } ++ malloc_namebuf = true; ++ } ++ } ++ } + +- if (inet_pton (AF_INET6, namebuf, at->addr) > 0) ++ e = inet_pton (AF_INET6, namebuf, at->addr); ++ ++ if (malloc_namebuf) ++ free (namebuf); ++ else if (scope_delim != NULL && malloc_name) ++ /* Undo what we did above. */ ++ *scope_delim = SCOPE_DELIMITER; ++ } ++ if (e > 0) + { + if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET6) + at->family = AF_INET6; +@@ -468,7 +512,10 @@ gaih_inet (const char *name, const struc + at->family = AF_INET; + } + else +- return -EAI_ADDRFAMILY; ++ { ++ result = -EAI_ADDRFAMILY; ++ goto free_and_return; ++ } + + if (scope_delim != NULL) + { +@@ -490,7 +537,10 @@ gaih_inet (const char *name, const struc + at->scopeid = (uint32_t) strtoul (scope_delim + 1, &end, + 10); + if (*end != '\0') +- return GAIH_OKIFUNSPEC | -EAI_NONAME; ++ { ++ result = GAIH_OKIFUNSPEC | -EAI_NONAME; ++ goto free_and_return; ++ } + } + } + +@@ -520,59 +570,80 @@ gaih_inet (const char *name, const struc + { + int family = req->ai_family; + size_t tmpbuflen = 512; +- char *tmpbuf = alloca (tmpbuflen); ++ assert (tmpbuf == NULL); ++ tmpbuf = alloca_account (tmpbuflen, alloca_used); + int rc; + struct hostent th; + struct hostent *h; + int herrno; + +- simple_again: + while (1) + { +- rc = __gethostbyname2_r (name, family, &th, tmpbuf, ++ rc = __gethostbyname2_r (name, AF_INET, &th, tmpbuf, + tmpbuflen, &h, &herrno); + if (rc != ERANGE || herrno != NETDB_INTERNAL) + break; +- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen); ++ ++ if (!malloc_tmpbuf ++ && __libc_use_alloca (alloca_used + 2 * tmpbuflen)) ++ tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, ++ 2 * tmpbuflen, ++ alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL, ++ 2 * tmpbuflen); ++ if (newp == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ tmpbuf = newp; ++ malloc_tmpbuf = true; ++ tmpbuflen = 2 * tmpbuflen; ++ } + } + + if (rc == 0) + { +- if (h == NULL) ++ if (h != NULL) + { +- if (req->ai_family == AF_INET6 +- && (req->ai_flags & AI_V4MAPPED) +- && family == AF_INET6) ++ int i; ++ /* We found data, count the number of addresses. */ ++ for (i = 0; h->h_addr_list[i]; ++i) ++ ; ++ if (i > 0 && *pat != NULL) ++ --i; ++ ++ if (__libc_use_alloca (alloca_used ++ + i * sizeof (struct gaih_addrtuple))) ++ addrmem = alloca_account (i * sizeof (struct gaih_addrtuple), ++ alloca_used); ++ else + { +- /* Try again, this time looking for IPv4 +- addresses. */ +- family = AF_INET; +- goto simple_again; ++ addrmem = malloc (i ++ * sizeof (struct gaih_addrtuple)); ++ if (addrmem == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; + } ++ malloc_addrmem = true; + } +- else +- { +- /* We found data, now convert it into the list. */ +- for (int i = 0; h->h_addr_list[i]; ++i) ++ ++ /* Now convert it into the list. */ ++ struct gaih_addrtuple *addrfree = addrmem; ++ for (i = 0; h->h_addr_list[i]; ++i) + { + if (*pat == NULL) + { +- *pat = __alloca (sizeof (struct gaih_addrtuple)); ++ *pat = addrfree++; + (*pat)->scopeid = 0; + } + (*pat)->next = NULL; +- (*pat)->family = req->ai_family; +- if (family == req->ai_family) ++ (*pat)->family = AF_INET; + memcpy ((*pat)->addr, h->h_addr_list[i], + h->h_length); +- else +- { +- uint32_t *addr = (uint32_t *) (*pat)->addr; +- addr[3] = *(uint32_t *) h->h_addr_list[i]; +- addr[2] = htonl (0xffff); +- addr[1] = 0; +- addr[0] = 0; +- } + pat = &((*pat)->next); + } + } +@@ -582,15 +653,16 @@ gaih_inet (const char *name, const struc + if (herrno == NETDB_INTERNAL) + { + __set_h_errno (herrno); +- return -EAI_SYSTEM; +- } +- if (herrno == TRY_AGAIN) +- { +- return -EAI_AGAIN; ++ result = -EAI_SYSTEM; + } ++ else if (herrno == TRY_AGAIN) ++ result = -EAI_AGAIN; ++ else + /* We made requests but they turned out no data. + The name is known, though. */ +- return GAIH_OKIFUNSPEC | -EAI_NODATA; ++ result = GAIH_OKIFUNSPEC | -EAI_NODATA; ++ ++ goto free_and_return; + } + + goto process_list; +@@ -613,21 +685,56 @@ gaih_inet (const char *name, const struc + bool added_canon = (req->ai_flags & AI_CANONNAME) == 0; + char *addrs = air->addrs; + ++ if (__libc_use_alloca (alloca_used ++ + air->naddrs * sizeof (struct gaih_addrtuple))) ++ addrmem = alloca_account (air->naddrs ++ * sizeof (struct gaih_addrtuple), ++ alloca_used); ++ else ++ { ++ addrmem = malloc (air->naddrs ++ * sizeof (struct gaih_addrtuple)); ++ if (addrmem == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ malloc_addrmem = true; ++ } ++ ++ struct gaih_addrtuple *addrfree = addrmem; + for (int i = 0; i < air->naddrs; ++i) + { + socklen_t size = (air->family[i] == AF_INET + ? INADDRSZ : IN6ADDRSZ); + if (*pat == NULL) + { +- *pat = __alloca (sizeof (struct gaih_addrtuple)); ++ *pat = addrfree++; + (*pat)->scopeid = 0; + } + uint32_t *pataddr = (*pat)->addr; + (*pat)->next = NULL; + if (added_canon || air->canon == NULL) + (*pat)->name = NULL; +- else +- canon = (*pat)->name = strdupa (air->canon); ++ else if (canonbuf == NULL) ++ { ++ size_t canonlen = strlen (air->canon) + 1; ++ if ((req->ai_flags & AI_CANONIDN) != 0 ++ && __libc_use_alloca (alloca_used + canonlen)) ++ canonbuf = alloca_account (canonlen, alloca_used); ++ else ++ { ++ canonbuf = malloc (canonlen); ++ if (canonbuf == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ malloc_canonbuf = true; ++ } ++ canon = (*pat)->name = memcpy (canonbuf, air->canon, ++ canonlen); ++ } + + if (air->family[i] == AF_INET + && req->ai_family == AF_INET6 +@@ -657,20 +764,26 @@ gaih_inet (const char *name, const struc + free (air); + + if (at->family == AF_UNSPEC) +- return GAIH_OKIFUNSPEC | -EAI_NONAME; ++ { ++ result = GAIH_OKIFUNSPEC | -EAI_NONAME; ++ goto free_and_return; ++ } + + goto process_list; + } + else if (err == 0) + /* The database contains a negative entry. */ +- return 0; ++ goto free_and_return; + else if (__nss_not_use_nscd_hosts == 0) + { + if (herrno == NETDB_INTERNAL && errno == ENOMEM) +- return -EAI_MEMORY; +- if (herrno == TRY_AGAIN) +- return -EAI_AGAIN; +- return -EAI_SYSTEM; ++ result = -EAI_MEMORY; ++ else if (herrno == TRY_AGAIN) ++ result = -EAI_AGAIN; ++ else ++ result = -EAI_SYSTEM; ++ ++ goto free_and_return; + } + } + #endif +@@ -699,7 +812,19 @@ gaih_inet (const char *name, const struc + _res.options &= ~RES_USE_INET6; + + size_t tmpbuflen = 1024; +- char *tmpbuf = alloca (tmpbuflen); ++ malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen); ++ assert (tmpbuf == NULL); ++ if (!malloc_tmpbuf) ++ tmpbuf = alloca_account (tmpbuflen, alloca_used); ++ else ++ { ++ tmpbuf = malloc (tmpbuflen); ++ if (tmpbuf == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ } + + while (!no_more) + { +@@ -728,8 +853,25 @@ gaih_inet (const char *name, const struc + no_data = herrno == NO_DATA; + break; + } +- tmpbuf = extend_alloca (tmpbuf, +- tmpbuflen, 2 * tmpbuflen); ++ ++ if (!malloc_tmpbuf ++ && __libc_use_alloca (alloca_used + 2 * tmpbuflen)) ++ tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, ++ 2 * tmpbuflen, ++ alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL, ++ 2 * tmpbuflen); ++ if (newp == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ tmpbuf = newp; ++ malloc_tmpbuf = true; ++ tmpbuflen = 2 * tmpbuflen; ++ } + } + + if (status == NSS_STATUS_SUCCESS) +@@ -832,18 +974,40 @@ gaih_inet (const char *name, const struc + if (cfct != NULL) + { + const size_t max_fqdn_len = 256; +- char *buf = alloca (max_fqdn_len); ++ if ((req->ai_flags & AI_CANONIDN) != 0 ++ && __libc_use_alloca (alloca_used ++ + max_fqdn_len)) ++ canonbuf = alloca_account (max_fqdn_len, ++ alloca_used); ++ else ++ { ++ canonbuf = malloc (max_fqdn_len); ++ if (canonbuf == NULL) ++ { ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ malloc_canonbuf = true; ++ } + char *s; + + if (DL_CALL_FCT (cfct, (at->name ?: name, +- buf, max_fqdn_len, ++ canonbuf, ++ max_fqdn_len, + &s, &rc, &herrno)) + == NSS_STATUS_SUCCESS) + canon = s; + else +- /* Set to name now to avoid using +- gethostbyaddr. */ +- canon = name; ++ { ++ /* Set to name now to avoid using ++ gethostbyaddr. */ ++ if (malloc_canonbuf) ++ { ++ free (canonbuf); ++ malloc_canonbuf = false; ++ } ++ canon = name; ++ } + } + } + status = NSS_STATUS_SUCCESS; +@@ -878,22 +1042,27 @@ gaih_inet (const char *name, const struc + { + /* If both requests timed out report this. */ + if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN) +- return -EAI_AGAIN; ++ result = -EAI_AGAIN; ++ else ++ /* We made requests but they turned out no data. The name ++ is known, though. */ ++ result = GAIH_OKIFUNSPEC | -EAI_NODATA; + +- /* We made requests but they turned out no data. The name +- is known, though. */ +- return GAIH_OKIFUNSPEC | -EAI_NODATA; ++ goto free_and_return; + } + } + + process_list: + if (at->family == AF_UNSPEC) +- return GAIH_OKIFUNSPEC | -EAI_NONAME; ++ { ++ result = GAIH_OKIFUNSPEC | -EAI_NONAME; ++ goto free_and_return; ++ } + } + else + { + struct gaih_addrtuple *atr; +- atr = at = __alloca (sizeof (struct gaih_addrtuple)); ++ atr = at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used); + memset (at, '\0', sizeof (struct gaih_addrtuple)); + + if (req->ai_family == AF_UNSPEC) +@@ -932,6 +1101,9 @@ gaih_inet (const char *name, const struc + /* Only the first entry gets the canonical name. */ + if (at2 == at && (req->ai_flags & AI_CANONNAME) != 0) + { ++ char *tmpbuf2 = NULL; ++ bool malloc_tmpbuf2 = false; ++ + if (canon == NULL) + { + /* If the canonical name cannot be determined, use +@@ -952,11 +1124,16 @@ gaih_inet (const char *name, const struc + int rc = __idna_to_unicode_lzlz (canon, &out, idn_flags); + if (rc != IDNA_SUCCESS) + { ++ if (malloc_tmpbuf2) ++ free (tmpbuf2); ++ + if (rc == IDNA_MALLOC_ERROR) +- return -EAI_MEMORY; +- if (rc == IDNA_DLOPEN_ERROR) +- return -EAI_SYSTEM; +- return -EAI_IDN_ENCODE; ++ result = -EAI_MEMORY; ++ else if (rc == IDNA_DLOPEN_ERROR) ++ result = -EAI_SYSTEM; ++ else ++ result = -EAI_IDN_ENCODE; ++ goto free_and_return; + } + /* In case the output string is the same as the input + string no new string has been allocated and we +@@ -970,10 +1147,25 @@ gaih_inet (const char *name, const struc + #ifdef HAVE_LIBIDN + make_copy: + #endif +- canon = strdup (canon); +- if (canon == NULL) +- return -EAI_MEMORY; ++ if (malloc_canonbuf) ++ /* We already allocated the string using malloc. */ ++ malloc_canonbuf = false; ++ else ++ { ++ canon = strdup (canon); ++ if (canon == NULL) ++ { ++ if (malloc_tmpbuf2) ++ free (tmpbuf2); ++ ++ result = -EAI_MEMORY; ++ goto free_and_return; ++ } ++ } + } ++ ++ if (malloc_tmpbuf2) ++ free (tmpbuf2); + } + + family = at2->family; +@@ -999,7 +1191,8 @@ gaih_inet (const char *name, const struc + if (ai == NULL) + { + free ((char *) canon); +- return -EAI_MEMORY; ++ result = -EAI_MEMORY; ++ goto free_and_return; + } + + ai->ai_flags = req->ai_flags; +@@ -1052,7 +1245,18 @@ gaih_inet (const char *name, const struc + at2 = at2->next; + } + } +- return 0; ++ ++ free_and_return: ++ if (malloc_name) ++ free ((char *) name); ++ if (malloc_addrmem) ++ free (addrmem); ++ if (malloc_canonbuf) ++ free (canonbuf); ++ if (malloc_tmpbuf) ++ free (tmpbuf); ++ ++ return result; + } + + diff --git a/src/patches/glibc/glibc-rh797094-2.patch b/src/patches/glibc/glibc-rh797094-2.patch new file mode 100644 index 0000000000..5aa90840d6 --- /dev/null +++ b/src/patches/glibc/glibc-rh797094-2.patch @@ -0,0 +1,862 @@ +From: Ulrich Drepper +Date: Mon, 23 May 2011 03:04:16 +0000 (-0400) +Subject: Add a few more alloca size checks +X-Git-Tag: glibc-2.14~41 +X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=f2962a71959fd254a7a223437ca4b63b9e81130c + +Add a few more alloca size checks +--- + + 2011-05-22 Ulrich Drepper + + [BZ #12671] + * nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Use malloc in + some situations. + * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise. + * posix/glob.c (glob_in_dir): Take additional parameter alloca_used. + add in in __libc_use_alloca calls. Adjust callers. + (glob): Use malloc in some situations. +diff --git a/nis/nss_nis/nis-alias.c b/nis/nss_nis/nis-alias.c +index 9286e36..cfe4097 100644 +--- a/nis/nss_nis/nis-alias.c ++++ b/nis/nss_nis/nis-alias.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc. ++/* Copyright (C) 1996-2002, 2003, 2006, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Thorsten Kukuk , 1996. + +@@ -142,10 +142,10 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer, + int yperr; + + if (new_start) +- yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result, ++ yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result, + &len); + else +- yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey, ++ yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey, + &keylen, &result, &len); + + if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) +@@ -153,20 +153,20 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer, + enum nss_status retval = yperr2nss (yperr); + + if (retval == NSS_STATUS_TRYAGAIN) +- *errnop = errno; +- return retval; +- } ++ *errnop = errno; ++ return retval; ++ } + + if (__builtin_expect ((size_t) (len + 1) > buflen, 0)) +- { ++ { + free (result); +- *errnop = ERANGE; +- return NSS_STATUS_TRYAGAIN; +- } ++ *errnop = ERANGE; ++ return NSS_STATUS_TRYAGAIN; ++ } + char *p = strncpy (buffer, result, len); + buffer[len] = '\0'; + while (isspace (*p)) +- ++p; ++ ++p; + free (result); + + parse_res = _nss_nis_parse_aliasent (outkey, p, alias, buffer, +@@ -213,13 +213,25 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias, + return NSS_STATUS_UNAVAIL; + } + +- size_t namlen = strlen (name); +- char name2[namlen + 1]; +- + char *domain; + if (__builtin_expect (yp_get_default_domain (&domain), 0)) + return NSS_STATUS_UNAVAIL; + ++ size_t namlen = strlen (name); ++ char *name2; ++ int use_alloca = __libc_use_alloca (namlen + 1); ++ if (use_alloca) ++ name2 = __alloca (namlen + 1); ++ else ++ { ++ name2 = malloc (namlen + 1); ++ if (name2 == NULL) ++ { ++ *errnop = ENOMEM; ++ return NSS_STATUS_TRYAGAIN; ++ } ++ } ++ + /* Convert name to lowercase. */ + size_t i; + for (i = 0; i < namlen; ++i) +@@ -230,6 +242,9 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias, + int len; + int yperr = yp_match (domain, "mail.aliases", name2, namlen, &result, &len); + ++ if (!use_alloca) ++ free (name2); ++ + if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) + { + enum nss_status retval = yperr2nss (yperr); +diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c +index dce4165..de96a57 100644 +--- a/nscd/nscd_getserv_r.c ++++ b/nscd/nscd_getserv_r.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2007, 2009 Free Software Foundation, Inc. ++/* Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2007. + +@@ -17,6 +17,7 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include + #include + #include + #include +@@ -80,6 +81,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + { + int gc_cycle; + int nretries = 0; ++ size_t alloca_used = 0; + + /* If the mapping is available, try to search there instead of + communicating with the nscd. */ +@@ -88,13 +90,23 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + &gc_cycle); + size_t protolen = proto == NULL ? 0 : strlen (proto); + size_t keylen = critlen + 1 + protolen + 1; +- char *key = alloca (keylen); ++ int alloca_key = __libc_use_alloca (keylen); ++ char *key; ++ if (alloca_key) ++ key = alloca_account (keylen, alloca_used); ++ else ++ { ++ key = malloc (keylen); ++ if (key == NULL) ++ return -1; ++ } + memcpy (__mempcpy (__mempcpy (key, crit, critlen), + "/", 1), proto ?: "", protolen + 1); + + retry:; + const char *s_name = NULL; + const char *s_proto = NULL; ++ int alloca_aliases_len = 0; + const uint32_t *aliases_len = NULL; + const char *aliases_list = NULL; + int retval = -1; +@@ -136,8 +148,22 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + if (((uintptr_t) aliases_len & (__alignof__ (*aliases_len) - 1)) + != 0) + { +- uint32_t *tmp = alloca (serv_resp.s_aliases_cnt +- * sizeof (uint32_t)); ++ uint32_t *tmp; ++ alloca_aliases_len ++ = __libc_use_alloca (alloca_used ++ + (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t))); ++ if (alloca_aliases_len) ++ tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t)); ++ else ++ { ++ tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t)); ++ if (tmp == NULL) ++ { ++ retval = ENOMEM; ++ goto out; ++ } ++ } + aliases_len = memcpy (tmp, aliases_len, + serv_resp.s_aliases_cnt + * sizeof (uint32_t)); +@@ -217,8 +243,24 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + + if (serv_resp.s_aliases_cnt > 0) + { +- aliases_len = alloca (serv_resp.s_aliases_cnt +- * sizeof (uint32_t)); ++ assert (alloca_aliases_len == 0); ++ alloca_aliases_len ++ = __libc_use_alloca (alloca_used ++ + (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t))); ++ if (alloca_aliases_len) ++ aliases_len = alloca (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t)); ++ else ++ { ++ aliases_len = malloc (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t)); ++ if (aliases_len == NULL) ++ { ++ retval = ENOMEM; ++ goto out_close; ++ } ++ } + vec[n].iov_base = (void *) aliases_len; + vec[n].iov_len = serv_resp.s_aliases_cnt * sizeof (uint32_t); + +@@ -329,5 +371,10 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, + goto retry; + } + ++ if (!alloca_aliases_len) ++ free ((void *) aliases_len); ++ if (!alloca_key) ++ free (key); ++ + return retval; + } +diff --git a/posix/glob.c b/posix/glob.c +index 6df083a..79b6e50 100644 +--- a/posix/glob.c ++++ b/posix/glob.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 ++/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -199,7 +199,7 @@ static const char *next_brace_sub (const char *begin, int flags) __THROW; + + static int glob_in_dir (const char *pattern, const char *directory, + int flags, int (*errfunc) (const char *, int), +- glob_t *pglob); ++ glob_t *pglob, size_t alloca_used); + extern int __glob_pattern_type (const char *pattern, int quote) + attribute_hidden; + +@@ -253,13 +253,18 @@ glob (pattern, flags, errfunc, pglob) + glob_t *pglob; + { + const char *filename; +- const char *dirname; ++ char *dirname = NULL; + size_t dirlen; + int status; + size_t oldcount; + int meta; + int dirname_modified; ++ int malloc_dirname = 0; + glob_t dirs; ++ int retval = 0; ++#ifdef _LIBC ++ size_t alloca_used = 0; ++#endif + + if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0) + { +@@ -308,20 +313,26 @@ glob (pattern, flags, errfunc, pglob) + const char *next; + const char *rest; + size_t rest_len; +-#ifdef __GNUC__ +- char onealt[strlen (pattern) - 1]; +-#else +- char *onealt = (char *) malloc (strlen (pattern) - 1); +- if (onealt == NULL) ++ char *onealt; ++ size_t pattern_len = strlen (pattern) - 1; ++#ifdef _LIBC ++ int alloca_onealt = __libc_use_alloca (alloca_used + pattern_len); ++ if (alloca_onealt) ++ onealt = alloca_account (pattern_len, alloca_used); ++ else ++#endif + { +- if (!(flags & GLOB_APPEND)) ++ onealt = (char *) malloc (pattern_len); ++ if (onealt == NULL) + { +- pglob->gl_pathc = 0; +- pglob->gl_pathv = NULL; ++ if (!(flags & GLOB_APPEND)) ++ { ++ pglob->gl_pathc = 0; ++ pglob->gl_pathv = NULL; ++ } ++ return GLOB_NOSPACE; + } +- return GLOB_NOSPACE; + } +-#endif + + /* We know the prefix for all sub-patterns. */ + alt_start = mempcpy (onealt, pattern, begin - pattern); +@@ -332,9 +343,11 @@ glob (pattern, flags, errfunc, pglob) + if (next == NULL) + { + /* It is an illegal expression. */ +-#ifndef __GNUC__ +- free (onealt); ++ illegal_brace: ++#ifdef _LIBC ++ if (__builtin_expect (!alloca_onealt, 0)) + #endif ++ free (onealt); + return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob); + } + +@@ -344,13 +357,8 @@ glob (pattern, flags, errfunc, pglob) + { + rest = next_brace_sub (rest + 1, flags); + if (rest == NULL) +- { +- /* It is an illegal expression. */ +-#ifndef __GNUC__ +- free (onealt); +-#endif +- return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob); +- } ++ /* It is an illegal expression. */ ++ goto illegal_brace; + } + /* Please note that we now can be sure the brace expression + is well-formed. */ +@@ -386,9 +394,10 @@ glob (pattern, flags, errfunc, pglob) + /* If we got an error, return it. */ + if (result && result != GLOB_NOMATCH) + { +-#ifndef __GNUC__ +- free (onealt); ++#ifdef _LIBC ++ if (__builtin_expect (!alloca_onealt, 0)) + #endif ++ free (onealt); + if (!(flags & GLOB_APPEND)) + { + globfree (pglob); +@@ -406,9 +415,10 @@ glob (pattern, flags, errfunc, pglob) + assert (next != NULL); + } + +-#ifndef __GNUC__ +- free (onealt); ++#ifdef _LIBC ++ if (__builtin_expect (!alloca_onealt, 0)) + #endif ++ free (onealt); + + if (pglob->gl_pathc != firstc) + /* We found some entries. */ +@@ -455,7 +465,7 @@ glob (pattern, flags, errfunc, pglob) + case is nothing but a notation for a directory. */ + if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && pattern[0] == '~') + { +- dirname = pattern; ++ dirname = (char *) pattern; + dirlen = strlen (pattern); + + /* Set FILENAME to NULL as a special flag. This is ugly but +@@ -473,9 +483,9 @@ glob (pattern, flags, errfunc, pglob) + + filename = pattern; + #ifdef _AMIGA +- dirname = ""; ++ dirname = (char *) ""; + #else +- dirname = "."; ++ dirname = (char *) "."; + #endif + dirlen = 0; + } +@@ -485,7 +495,7 @@ glob (pattern, flags, errfunc, pglob) + && (flags & GLOB_NOESCAPE) == 0)) + { + /* "/pattern" or "\\/pattern". */ +- dirname = "/"; ++ dirname = (char *) "/"; + dirlen = 1; + ++filename; + } +@@ -511,7 +521,17 @@ glob (pattern, flags, errfunc, pglob) + from "d:/", since "d:" and "d:/" are not the same.*/ + } + #endif +- newp = (char *) __alloca (dirlen + 1); ++#ifdef _LIBC ++ if (__libc_use_alloca (alloca_used + dirlen + 1)) ++ newp = alloca_account (dirlen + 1, alloca_used); ++ else ++#endif ++ { ++ newp = malloc (dirlen + 1); ++ if (newp == NULL) ++ return GLOB_NOSPACE; ++ malloc_dirname = 1; ++ } + *((char *) mempcpy (newp, pattern, dirlen)) = '\0'; + dirname = newp; + ++filename; +@@ -551,7 +571,8 @@ glob (pattern, flags, errfunc, pglob) + oldcount = pglob->gl_pathc + pglob->gl_offs; + goto no_matches; + } +- return val; ++ retval = val; ++ goto out; + } + } + +@@ -563,7 +584,8 @@ glob (pattern, flags, errfunc, pglob) + && (dirname[2] == '\0' || dirname[2] == '/'))) + { + /* Look up home directory. */ +- const char *home_dir = getenv ("HOME"); ++ char *home_dir = getenv ("HOME"); ++ int malloc_home_dir = 0; + # ifdef _AMIGA + if (home_dir == NULL || home_dir[0] == '\0') + home_dir = "SYS:"; +@@ -582,7 +604,7 @@ glob (pattern, flags, errfunc, pglob) + /* `sysconf' does not support _SC_LOGIN_NAME_MAX. Try + a moderate value. */ + buflen = 20; +- name = (char *) __alloca (buflen); ++ name = alloca_account (buflen, alloca_used); + + success = getlogin_r (name, buflen) == 0; + if (success) +@@ -592,6 +614,7 @@ glob (pattern, flags, errfunc, pglob) + long int pwbuflen = GETPW_R_SIZE_MAX (); + char *pwtmpbuf; + struct passwd pwbuf; ++ int malloc_pwtmpbuf = 0; + int save = errno; + + # ifndef _LIBC +@@ -600,7 +623,18 @@ glob (pattern, flags, errfunc, pglob) + Try a moderate value. */ + pwbuflen = 1024; + # endif +- pwtmpbuf = (char *) __alloca (pwbuflen); ++ if (__libc_use_alloca (alloca_used + pwbuflen)) ++ pwtmpbuf = alloca_account (pwbuflen, alloca_used); ++ else ++ { ++ pwtmpbuf = malloc (pwbuflen); ++ if (pwtmpbuf == NULL) ++ { ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_pwtmpbuf = 1; ++ } + + while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p) + != 0) +@@ -610,46 +644,115 @@ glob (pattern, flags, errfunc, pglob) + p = NULL; + break; + } +-# ifdef _LIBC +- pwtmpbuf = extend_alloca (pwtmpbuf, pwbuflen, ++ ++ if (!malloc_pwtmpbuf ++ && __libc_use_alloca (alloca_used ++ + 2 * pwbuflen)) ++ pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen, ++ 2 * pwbuflen, ++ alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_pwtmpbuf ++ ? pwtmpbuf : NULL, + 2 * pwbuflen); +-# else +- pwbuflen *= 2; +- pwtmpbuf = (char *) __alloca (pwbuflen); +-# endif ++ if (newp == NULL) ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ pwtmpbuf = newp; ++ pwbuflen = 2 * pwbuflen; ++ malloc_pwtmpbuf = 1; ++ } + __set_errno (save); + } + # else + p = getpwnam (name); + # endif + if (p != NULL) +- home_dir = p->pw_dir; ++ { ++ if (!malloc_pwtmpbuf) ++ home_dir = p->pw_dir; ++ else ++ { ++ size_t home_dir_len = strlen (p->pw_dir) + 1; ++ if (__libc_use_alloca (alloca_used + home_dir_len)) ++ home_dir = alloca_account (home_dir_len, ++ alloca_used); ++ else ++ { ++ home_dir = malloc (home_dir_len); ++ if (home_dir == NULL) ++ { ++ free (pwtmpbuf); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_home_dir = 1; ++ } ++ memcpy (home_dir, p->pw_dir, home_dir_len); ++ ++ free (pwtmpbuf); ++ } ++ } + } + } + if (home_dir == NULL || home_dir[0] == '\0') + { + if (flags & GLOB_TILDE_CHECK) +- return GLOB_NOMATCH; ++ { ++ if (__builtin_expect (malloc_home_dir, 0)) ++ free (home_dir); ++ retval = GLOB_NOMATCH; ++ goto out; ++ } + else +- home_dir = "~"; /* No luck. */ ++ home_dir = (char *) "~"; /* No luck. */ + } + # endif /* WINDOWS32 */ + # endif + /* Now construct the full directory. */ + if (dirname[1] == '\0') + { ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ + dirname = home_dir; + dirlen = strlen (dirname); ++ malloc_dirname = malloc_home_dir; + } + else + { + char *newp; + size_t home_len = strlen (home_dir); +- newp = (char *) __alloca (home_len + dirlen); ++ int use_alloca = __libc_use_alloca (alloca_used ++ + home_len + dirlen); ++ if (use_alloca) ++ newp = alloca_account (home_len + dirlen, alloca_used); ++ else ++ { ++ newp = malloc (home_len + dirlen); ++ if (newp == NULL) ++ { ++ if (__builtin_expect (malloc_home_dir, 0)) ++ free (home_dir); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ } ++ + mempcpy (mempcpy (newp, home_dir, home_len), + &dirname[1], dirlen); ++ ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ + dirname = newp; + dirlen += home_len - 1; ++ malloc_dirname = !use_alloca; + } + dirname_modified = 1; + } +@@ -657,7 +760,8 @@ glob (pattern, flags, errfunc, pglob) + else + { + char *end_name = strchr (dirname, '/'); +- const char *user_name; ++ char *user_name; ++ int malloc_user_name = 0; + const char *home_dir; + char *unescape = NULL; + +@@ -677,7 +781,18 @@ glob (pattern, flags, errfunc, pglob) + else + { + char *newp; +- newp = (char *) __alloca (end_name - dirname); ++ if (__libc_use_alloca (alloca_used + (end_name - dirname))) ++ newp = alloca_account (end_name - dirname, alloca_used); ++ else ++ { ++ newp = malloc (end_name - dirname); ++ if (newp == NULL) ++ { ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_user_name = 1; ++ } + if (unescape != NULL) + { + char *p = mempcpy (newp, dirname + 1, +@@ -714,6 +829,7 @@ glob (pattern, flags, errfunc, pglob) + # if defined HAVE_GETPWNAM_R || defined _LIBC + long int buflen = GETPW_R_SIZE_MAX (); + char *pwtmpbuf; ++ int malloc_pwtmpbuf = 0; + struct passwd pwbuf; + int save = errno; + +@@ -723,7 +839,21 @@ glob (pattern, flags, errfunc, pglob) + moderate value. */ + buflen = 1024; + # endif +- pwtmpbuf = (char *) __alloca (buflen); ++ if (__libc_use_alloca (alloca_used + buflen)) ++ pwtmpbuf = alloca_account (buflen, alloca_used); ++ else ++ { ++ pwtmpbuf = malloc (buflen); ++ if (pwtmpbuf == NULL) ++ { ++ nomem_getpw: ++ if (__builtin_expect (malloc_user_name, 0)) ++ free (user_name); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_pwtmpbuf = 1; ++ } + + while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0) + { +@@ -732,40 +862,77 @@ glob (pattern, flags, errfunc, pglob) + p = NULL; + break; + } +-# ifdef _LIBC +- pwtmpbuf = extend_alloca (pwtmpbuf, buflen, 2 * buflen); +-# else +- buflen *= 2; +- pwtmpbuf = __alloca (buflen); +-# endif ++ if (!malloc_pwtmpbuf ++ && __libc_use_alloca (alloca_used + 2 * buflen)) ++ pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen, ++ 2 * buflen, alloca_used); ++ else ++ { ++ char *newp = realloc (malloc_pwtmpbuf ? pwtmpbuf : NULL, ++ 2 * buflen); ++ if (newp == NULL) ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ goto nomem_getpw; ++ } ++ pwtmpbuf = newp; ++ malloc_pwtmpbuf = 1; ++ } + __set_errno (save); + } + # else + p = getpwnam (user_name); + # endif ++ ++ if (__builtin_expect (malloc_user_name, 0)) ++ free (user_name); ++ ++ /* If we found a home directory use this. */ + if (p != NULL) +- home_dir = p->pw_dir; ++ { ++ size_t home_len = strlen (p->pw_dir); ++ size_t rest_len = end_name == NULL ? 0 : strlen (end_name); ++ ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ malloc_dirname = 0; ++ ++ if (__libc_use_alloca (alloca_used + home_len + rest_len + 1)) ++ dirname = alloca_account (home_len + rest_len + 1, ++ alloca_used); ++ else ++ { ++ dirname = malloc (home_len + rest_len + 1); ++ if (dirname == NULL) ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ retval = GLOB_NOSPACE; ++ goto out; ++ } ++ malloc_dirname = 1; ++ } ++ *((char *) mempcpy (mempcpy (dirname, p->pw_dir, home_len), ++ end_name, rest_len)) = '\0'; ++ ++ dirlen = home_len + rest_len; ++ dirname_modified = 1; ++ ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ } + else +- home_dir = NULL; ++ { ++ if (__builtin_expect (malloc_pwtmpbuf, 0)) ++ free (pwtmpbuf); ++ ++ if (flags & GLOB_TILDE_CHECK) ++ /* We have to regard it as an error if we cannot find the ++ home directory. */ ++ return GLOB_NOMATCH; ++ } + } +- /* If we found a home directory use this. */ +- if (home_dir != NULL) +- { +- char *newp; +- size_t home_len = strlen (home_dir); +- size_t rest_len = end_name == NULL ? 0 : strlen (end_name); +- newp = (char *) __alloca (home_len + rest_len + 1); +- *((char *) mempcpy (mempcpy (newp, home_dir, home_len), +- end_name, rest_len)) = '\0'; +- dirname = newp; +- dirlen = home_len + rest_len; +- dirname_modified = 1; +- } +- else +- if (flags & GLOB_TILDE_CHECK) +- /* We have to regard it as an error if we cannot find the +- home directory. */ +- return GLOB_NOMATCH; + } + # endif /* Not Amiga && not WINDOWS32. */ + } +@@ -899,7 +1066,7 @@ glob (pattern, flags, errfunc, pglob) + status = glob_in_dir (filename, dirs.gl_pathv[i], + ((flags | GLOB_APPEND) + & ~(GLOB_NOCHECK | GLOB_NOMAGIC)), +- errfunc, pglob); ++ errfunc, pglob, alloca_used); + if (status == GLOB_NOMATCH) + /* No matches in this directory. Try the next. */ + continue; +@@ -1000,7 +1167,8 @@ glob (pattern, flags, errfunc, pglob) + } + if (dirname_modified) + flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC); +- status = glob_in_dir (filename, dirname, flags, errfunc, pglob); ++ status = glob_in_dir (filename, dirname, flags, errfunc, pglob, ++ alloca_used); + if (status != 0) + { + if (status == GLOB_NOMATCH && flags != orig_flags +@@ -1063,7 +1231,11 @@ glob (pattern, flags, errfunc, pglob) + sizeof (char *), collated_compare); + } + +- return 0; ++ out: ++ if (__builtin_expect (malloc_dirname, 0)) ++ free (dirname); ++ ++ return retval; + } + #if defined _LIBC && !defined glob + libc_hidden_def (glob) +@@ -1273,7 +1445,7 @@ link_exists2_p (const char *dir, size_t dirlen, const char *fname, + static int + glob_in_dir (const char *pattern, const char *directory, int flags, + int (*errfunc) (const char *, int), +- glob_t *pglob) ++ glob_t *pglob, size_t alloca_used) + { + size_t dirlen = strlen (directory); + void *stream = NULL; +@@ -1288,11 +1460,12 @@ glob_in_dir (const char *pattern, const char *directory, int flags, + struct globnames *names = &init_names; + struct globnames *names_alloca = &init_names; + size_t nfound = 0; +- size_t allocasize = sizeof (init_names); + size_t cur = 0; + int meta; + int save; + ++ alloca_used += sizeof (init_names); ++ + init_names.next = NULL; + init_names.count = INITIAL_COUNT; + +@@ -1308,20 +1481,36 @@ glob_in_dir (const char *pattern, const char *directory, int flags, + { + /* Since we use the normal file functions we can also use stat() + to verify the file is there. */ +- struct stat st; +- struct_stat64 st64; ++ union ++ { ++ struct stat st; ++ struct_stat64 st64; ++ } ust; + size_t patlen = strlen (pattern); +- char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1); ++ int alloca_fullname = __libc_use_alloca (alloca_used ++ + dirlen + 1 + patlen + 1); ++ char *fullname; ++ if (alloca_fullname) ++ fullname = alloca_account (dirlen + 1 + patlen + 1, alloca_used); ++ else ++ { ++ fullname = malloc (dirlen + 1 + patlen + 1); ++ if (fullname == NULL) ++ return GLOB_NOSPACE; ++ } + + mempcpy (mempcpy (mempcpy (fullname, directory, dirlen), + "/", 1), + pattern, patlen + 1); + if ((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) +- ? (*pglob->gl_stat) (fullname, &st) +- : __stat64 (fullname, &st64)) == 0) ++ ? (*pglob->gl_stat) (fullname, &ust.st) ++ : __stat64 (fullname, &ust.st64)) == 0) + /* We found this file to be existing. Now tell the rest + of the function to copy this name into the result. */ + flags |= GLOB_NOCHECK; ++ ++ if (__builtin_expect (!alloca_fullname, 0)) ++ free (fullname); + } + else + { +@@ -1409,9 +1598,9 @@ glob_in_dir (const char *pattern, const char *directory, int flags, + size_t size = (sizeof (struct globnames) + + ((count - INITIAL_COUNT) + * sizeof (char *))); +- allocasize += size; +- if (__libc_use_alloca (allocasize)) +- newnames = names_alloca = __alloca (size); ++ if (__libc_use_alloca (alloca_used + size)) ++ newnames = names_alloca ++ = alloca_account (size, alloca_used); + else if ((newnames = malloc (size)) + == NULL) + goto memory_error; diff --git a/src/patches/glibc/glibc-rh804630.patch b/src/patches/glibc/glibc-rh804630.patch new file mode 100644 index 0000000000..75dbe94bd3 --- /dev/null +++ b/src/patches/glibc/glibc-rh804630.patch @@ -0,0 +1,23 @@ +diff -rup c/resolv/res_send.c d/resolv/res_send.c +--- c/resolv/res_send.c 2012-01-01 05:16:32.000000000 -0700 ++++ d/resolv/res_send.c 2012-03-30 12:39:30.862467628 -0600 +@@ -409,6 +409,7 @@ __libc_res_nsend(res_state statp, const + */ + if (EXT(statp).nsinit == 0) { + unsigned char map[MAXNS]; ++ unsigned int ext_total_nscount; + + memset (map, MAXNS, sizeof (map)); + for (n = 0; n < MAXNS; n++) { +@@ -422,8 +423,9 @@ __libc_res_nsend(res_state statp, const + } + } + n = statp->nscount; +- if (statp->nscount > EXT(statp).nscount) +- for (n = EXT(statp).nscount, ns = 0; ++ ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; ++ if (statp->nscount > ext_total_nscount) ++ for (n = ext_total_nscount, ns = 0; + n < statp->nscount; n++) { + while (ns < MAXNS + && EXT(statp).nsmap[ns] != MAXNS) diff --git a/src/patches/glibc/glibc-rh804689.patch b/src/patches/glibc/glibc-rh804689.patch new file mode 100644 index 0000000000..a96a33f700 --- /dev/null +++ b/src/patches/glibc/glibc-rh804689.patch @@ -0,0 +1,23 @@ +diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c +--- a/sysdeps/posix/getaddrinfo.c 2012-03-20 21:31:14.177358937 -0600 ++++ b/sysdeps/posix/getaddrinfo.c 2012-03-21 09:13:17.198290683 -0600 +@@ -560,15 +563,11 @@ gaih_inet (const char *name, const struc + int no_more; + int old_res_options; + +- /* If we do not have to look for IPv4 and IPv6 together, use +- the simple, old functions. */ +- if ((req->ai_family == AF_INET +- || (req->ai_family == AF_INET6 +- && ((req->ai_flags & AI_V4MAPPED) == 0 +- || (req->ai_flags & AI_ALL) == 0))) +- && (req->ai_flags & AI_CANONNAME) == 0) ++ /* If we do not have to look for IPv6 addresses, use ++ the simple, old functions, which do not support ++ IPv6 scope ids. */ ++ if (req->ai_family == AF_INET) + { +- int family = req->ai_family; + size_t tmpbuflen = 512; + assert (tmpbuf == NULL); + tmpbuf = alloca_account (tmpbuflen, alloca_used); diff --git a/src/patches/glibc/glibc-rh808337.patch b/src/patches/glibc/glibc-rh808337.patch new file mode 100644 index 0000000000..bc20cbc26e --- /dev/null +++ b/src/patches/glibc/glibc-rh808337.patch @@ -0,0 +1,21 @@ +commit 6a5ee1029b3966c5ae9adaaa881e255b2880f511 +Author: Ulrich Drepper +Date: Sun Mar 6 00:01:50 2011 -0500 + + Fix loading first object along a path when tracing. + +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 1ad16a0..f866066 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -2111,7 +2111,9 @@ _dl_map_object (struct link_map *loader, const char *name, + { + #ifdef SHARED + // XXX Correct to unconditionally default to namespace 0? +- l = loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded; ++ l = (loader ++ ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded ++ ?: &GL(dl_rtld_map)); + #else + l = loader; + #endif diff --git a/src/patches/glibc/glibc-rh808545.patch b/src/patches/glibc/glibc-rh808545.patch new file mode 100644 index 0000000000..9a2cae332c --- /dev/null +++ b/src/patches/glibc/glibc-rh808545.patch @@ -0,0 +1,44 @@ +diff -rup a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +--- a/resolv/nss_dns/dns-host.c 2012-04-18 11:17:31.527539744 -0600 ++++ b/resolv/nss_dns/dns-host.c 2012-04-18 11:21:45.441394159 -0600 +@@ -745,6 +745,10 @@ getanswer_r (const querybuf *answer, int + + if ((qtype == T_A || qtype == T_AAAA) && type == T_CNAME) + { ++ /* A CNAME could also have a TTL entry. */ ++ if (ttlp != NULL && ttl < *ttlp) ++ *ttlp = ttl; ++ + if (ap >= &host_data->aliases[MAX_NR_ALIASES - 1]) + continue; + n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf); +@@ -906,7 +910,7 @@ getanswer_r (const querybuf *answer, int + { + register int nn; + +- if (ttlp != NULL) ++ if (ttlp != NULL && ttl < *ttlp) + *ttlp = ttl; + if (canonp != NULL) + *canonp = bp; +@@ -1082,6 +1086,11 @@ gaih_getanswer_slice (const querybuf *an + if (type == T_CNAME) + { + char tbuf[MAXDNAME]; ++ ++ /* A CNAME could also have a TTL entry. */ ++ if (ttlp != NULL && ttl < *ttlp) ++ *ttlp = ttl; ++ + n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf); + if (__builtin_expect (n < 0 || res_hnok (tbuf) == 0, 0)) + { +@@ -1162,7 +1171,7 @@ gaih_getanswer_slice (const querybuf *an + + if (*firstp) + { +- if (ttlp != NULL) ++ if (ttlp != NULL && ttl < *ttlp) + *ttlp = ttl; + + (*pat)->name = canon ?: h_name; diff --git a/src/patches/glibc/glibc-rh809602.patch b/src/patches/glibc/glibc-rh809602.patch new file mode 100644 index 0000000000..81aa63aba5 --- /dev/null +++ b/src/patches/glibc/glibc-rh809602.patch @@ -0,0 +1,47 @@ +diff -rup a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c +--- a/nscd/nscd_getserv_r.c 2012-04-04 16:37:27.873951850 -0600 ++++ b/nscd/nscd_getserv_r.c 2012-04-04 16:37:49.904837348 -0600 +@@ -124,6 +123,7 @@ nscd_getserv_r (const char *crit, size_t + s_name = (char *) (&found->data[0].servdata + 1); + serv_resp = found->data[0].servdata; + s_proto = s_name + serv_resp.s_name_len; ++ alloca_aliases_len = 1; + aliases_len = (uint32_t *) (s_proto + serv_resp.s_proto_len); + aliases_list = ((char *) aliases_len + + serv_resp.s_aliases_cnt * sizeof (uint32_t)); +@@ -154,7 +154,9 @@ nscd_getserv_r (const char *crit, size_t + + (serv_resp.s_aliases_cnt + * sizeof (uint32_t))); + if (alloca_aliases_len) +- tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t)); ++ tmp = alloca_account (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t), ++ alloca_used); + else + { + tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t)); +@@ -249,8 +251,9 @@ nscd_getserv_r (const char *crit, size_t + + (serv_resp.s_aliases_cnt + * sizeof (uint32_t))); + if (alloca_aliases_len) +- aliases_len = alloca (serv_resp.s_aliases_cnt +- * sizeof (uint32_t)); ++ aliases_len = alloca_account (serv_resp.s_aliases_cnt ++ * sizeof (uint32_t), ++ alloca_used); + else + { + aliases_len = malloc (serv_resp.s_aliases_cnt +@@ -368,7 +371,11 @@ nscd_getserv_r (const char *crit, size_t + } + + if (retval != -1) +- goto retry; ++ { ++ if (!alloca_aliases_len) ++ free ((void *) aliases_len); ++ goto retry; ++ } + } + + if (!alloca_aliases_len) diff --git a/src/patches/glibc/glibc-rh833716.patch b/src/patches/glibc/glibc-rh833716.patch new file mode 100644 index 0000000000..e44573cf0c --- /dev/null +++ b/src/patches/glibc/glibc-rh833716.patch @@ -0,0 +1,45265 @@ +diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile +--- a/stdio-common/Makefile 2012-05-23 14:54:54.670443298 -0600 ++++ b/stdio-common/Makefile 2012-05-22 13:47:51.000000000 -0600 +@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs ++ scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3 + + test-srcs = tst-unbputc tst-printf + +diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c +--- a/stdio-common/bug23-2.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-2.c 2012-05-24 07:12:55.331644716 -0600 +@@ -0,0 +1,70 @@ ++#include ++#include ++#include ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c +--- a/stdio-common/bug23-3.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23-3.c 2012-05-24 07:13:26.948480695 -0600 +@@ -0,0 +1,45076 @@ ++#include ++#include ++#include ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++ ++ ++int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return (strcmp (buf, expected) != 0); ++} ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" ++ +diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c +--- a/stdio-common/bug23.c 1969-12-31 17:00:00.000000000 -0700 ++++ b/stdio-common/bug23.c 2012-05-24 07:12:27.636788393 -0600 +@@ -0,0 +1,22 @@ ++#include ++#include ++#include ++ ++static const char expected[] = "\ ++\n\ ++a\n\ ++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n"; ++ ++static int ++do_test (void) ++{ ++ char *buf = malloc (strlen (expected) + 1); ++ snprintf (buf, strlen (expected) + 1, ++ "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d" ++ "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", ++ "a", "b", "c", "d", 5); ++ return strcmp (buf, expected) != 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c +--- a/stdio-common/vfprintf.c 2012-05-23 14:54:54.689443199 -0600 ++++ b/stdio-common/vfprintf.c 2012-05-23 23:16:55.376155638 -0600 +@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format, + /* For the argument descriptions, which may be allocated on the heap. */ + void *args_malloced = NULL; + ++ /* For positional argument handling. */ ++ struct printf_spec *specs; ++ ++ /* Track if we malloced the SPECS array and thus must free it. */ ++ bool specs_malloced = false; ++ + /* This table maps a character into a number representing a + class. In each step there is a destination label for each + class. */ +@@ -1638,10 +1644,10 @@ do_positional: + /* Array with information about the needed arguments. This has to + be dynamically extensible. */ + size_t nspecs = 0; +- size_t nspecs_max = 32; /* A more or less arbitrary start value. */ +- struct printf_spec *specs +- = alloca (nspecs_max * sizeof (struct printf_spec)); ++ /* A more or less arbitrary start value. */ ++ size_t nspecs_size = 32 * sizeof (struct printf_spec); + ++ specs = alloca (nspecs_size); + /* The number of arguments the format string requests. This will + determine the size of the array needed to store the argument + attributes. */ +@@ -1678,14 +1684,30 @@ do_positional: + + for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt) + { +- if (nspecs >= nspecs_max) ++ if (nspecs * sizeof (*specs) >= nspecs_size) + { + /* Extend the array of format specifiers. */ + struct printf_spec *old = specs; +- specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max); ++ if (__libc_use_alloca (2 * nspecs_size)) ++ specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size); ++ else ++ { ++ nspecs_size *= 2; ++ specs = malloc (nspecs_size); ++ } ++ + + /* Copy the old array's elements to the new space. */ +- memmove (specs, old, nspecs * sizeof (struct printf_spec)); ++ memmove (specs, old, nspecs * sizeof (*specs)); ++ ++ /* If we had previously malloc'd space for SPECS, then ++ release it after the copy is complete. */ ++ if (specs_malloced) ++ free (old); ++ ++ /* Now set SPECS_MALLOCED if needed. */ ++ if (!__libc_use_alloca (nspecs_size)) ++ specs_malloced = true; + } + + /* Parse the format specifier. */ +@@ -1998,6 +2020,8 @@ do_positional: + } + + all_done: ++ if (specs_malloced) ++ free (specs); + free (args_malloced); + free (workstart); + /* Unlock the stream. */ diff --git a/src/patches/glibc/glibc-rh837026.patch b/src/patches/glibc/glibc-rh837026.patch new file mode 100644 index 0000000000..558ad4f973 --- /dev/null +++ b/src/patches/glibc/glibc-rh837026.patch @@ -0,0 +1,30 @@ +diff -rup a/resolv/res_send.c b/resolv/res_send.c +--- a/resolv/res_send.c 2012-06-28 11:55:38.361886650 -0600 ++++ b/resolv/res_send.c 2012-06-28 11:51:38.253963687 -0600 +@@ -424,17 +424,15 @@ __libc_res_nsend(res_state statp, const + } + n = statp->nscount; + ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6; +- if (statp->nscount > ext_total_nscount) +- for (n = ext_total_nscount, ns = 0; +- n < statp->nscount; n++) { +- while (ns < MAXNS +- && EXT(statp).nsmap[ns] != MAXNS) +- ns++; +- if (ns == MAXNS) +- break; +- EXT(statp).nsmap[ns] = n; +- map[n] = ns++; +- } ++ for (n = 0, ns = 0; n < statp->nscount - ext_total_nscount; n++) { ++ while (ns < MAXNS ++ && EXT(statp).nsmap[ns] != MAXNS) ++ ns++; ++ if (ns == MAXNS) ++ break; ++ EXT(statp).nsmap[ns] = n; ++ map[n] = ns++; ++ } + EXT(statp).nscount = n; + for (ns = 0; ns < EXT(statp).nscount; ns++) { + n = map[ns]; diff --git a/src/patches/grep-2.5.1a-redhat_fixes-2.patch b/src/patches/grep-2.5.1a-redhat_fixes-2.patch deleted file mode 100644 index 9c30342299..0000000000 --- a/src/patches/grep-2.5.1a-redhat_fixes-2.patch +++ /dev/null @@ -1,2109 +0,0 @@ -Submitted by: Alexander E. Patrakov -Date: 2005-08-13 -Initial Package Version: 2.5.1a -Upstream Status: Partially accepted, partially rejected, but required for LSB >= 2.0 certification -Origin: RedHat -Description: Various fixes from RedHat. Individual patches: - - grep-2.5.1-fgrep.patch - grep-2.5.1-bracket.patch - grep-2.5-i18n.patch - grep-2.5.1-oi.patch - grep-2.5.1-manpage.patch - grep-2.5.1-color.patch - grep-2.5.1-icolor.patch - grep-2.5.1-egf-speedup.patch - grep-2.5.1-dfa-optional.patch - grep-2.5.1-tests.patch - grep-2.5.1-w.patch - -Testcases: - - -fgrep: ???, but required for other patches - -bracket: echo "[" | LANG=en_US.UTF-8 grep "[[:space:]]" - -i18n: many fixes for multibyte locale support, required for LSB. - -oi: echo xxYYzz | LANG=C grep -i -o yy - -manpage: typo - -color: restore the background color correctly - -icolor: ??? echo 'spam foo SPAM FOO' | grep -i --color spam - (but that's also fixed by -oi. Is this patch just a cleanup?) - -egf-speedup: without this, grep is as slow as a snail in UTF-8 locales. - -dfa-optional: disables dfa in multibyte locales by default. - -w: (echo 'foo';echo 'fo') > /tmp/testfile && grep -F -w fo /tmp/testfile - -diff -urN grep-2.5.1a.orig/doc/grep.1 grep-2.5.1a/doc/grep.1 ---- grep-2.5.1a.orig/doc/grep.1 2004-11-12 16:26:37.000000000 +0500 -+++ grep-2.5.1a/doc/grep.1 2005-10-23 09:49:43.000000000 +0600 -@@ -191,6 +191,7 @@ - .I PATTERN - as a list of fixed strings, separated by newlines, - any of which is to be matched. -+.TP - .BR \-P ", " \-\^\-perl-regexp - Interpret - .I PATTERN -@@ -302,7 +303,7 @@ - This is especially useful for tools like zgrep, e.g. - .B "gzip -cd foo.gz |grep --label=foo something" - .TP --.BR \-\^\-line-buffering -+.BR \-\^\-line-buffered - Use line buffering, it can be a performance penality. - .TP - .BR \-q ", " \-\^\-quiet ", " \-\^\-silent -diff -urN grep-2.5.1a.orig/lib/posix/regex.h grep-2.5.1a/lib/posix/regex.h ---- grep-2.5.1a.orig/lib/posix/regex.h 2001-04-02 23:56:50.000000000 +0600 -+++ grep-2.5.1a/lib/posix/regex.h 2005-10-23 09:49:31.000000000 +0600 -@@ -109,6 +109,10 @@ - If not set, \{, \}, {, and } are literals. */ - #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - -+/* If this bit is set, then ignore case when matching. -+ If not set, then case is significant. */ -+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) -+ - /* If this bit is set, +, ? and | aren't recognized as operators. - If not set, they are. */ - #define RE_LIMITED_OPS (RE_INTERVALS << 1) -diff -urN grep-2.5.1a.orig/src/dfa.c grep-2.5.1a/src/dfa.c ---- grep-2.5.1a.orig/src/dfa.c 2001-09-26 22:57:55.000000000 +0600 -+++ grep-2.5.1a/src/dfa.c 2005-10-23 09:49:17.000000000 +0600 -@@ -414,7 +414,7 @@ - - /* This function fetch a wide character, and update cur_mb_len, - used only if the current locale is a multibyte environment. */ --static wchar_t -+static wint_t - fetch_wc (char const *eoferr) - { - wchar_t wc; -@@ -423,7 +423,7 @@ - if (eoferr != 0) - dfaerror (eoferr); - else -- return -1; -+ return WEOF; - } - - cur_mb_len = mbrtowc(&wc, lexptr, lexleft, &mbs); -@@ -459,7 +459,7 @@ - static void - parse_bracket_exp_mb () - { -- wchar_t wc, wc1, wc2; -+ wint_t wc, wc1, wc2; - - /* Work area to build a mb_char_classes. */ - struct mb_char_classes *work_mbc; -@@ -496,7 +496,7 @@ - work_mbc->invert = 0; - do - { -- wc1 = -1; /* mark wc1 is not initialized". */ -+ wc1 = WEOF; /* mark wc1 is not initialized". */ - - /* Note that if we're looking at some other [:...:] construct, - we just treat it as a bunch of ordinary characters. We can do -@@ -586,7 +586,7 @@ - work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem; - } - } -- wc = -1; -+ wc1 = wc = WEOF; - } - else - /* We treat '[' as a normal character here. */ -@@ -600,7 +600,7 @@ - wc = fetch_wc(("Unbalanced [")); - } - -- if (wc1 == -1) -+ if (wc1 == WEOF) - wc1 = fetch_wc(_("Unbalanced [")); - - if (wc1 == L'-') -@@ -630,17 +630,17 @@ - } - REALLOC_IF_NECESSARY(work_mbc->range_sts, wchar_t, - range_sts_al, work_mbc->nranges + 1); -- work_mbc->range_sts[work_mbc->nranges] = wc; -+ work_mbc->range_sts[work_mbc->nranges] = (wchar_t)wc; - REALLOC_IF_NECESSARY(work_mbc->range_ends, wchar_t, - range_ends_al, work_mbc->nranges + 1); -- work_mbc->range_ends[work_mbc->nranges++] = wc2; -+ work_mbc->range_ends[work_mbc->nranges++] = (wchar_t)wc2; - } -- else if (wc != -1) -+ else if (wc != WEOF) - /* build normal characters. */ - { - REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al, - work_mbc->nchars + 1); -- work_mbc->chars[work_mbc->nchars++] = wc; -+ work_mbc->chars[work_mbc->nchars++] = (wchar_t)wc; - } - } - while ((wc = wc1) != L']'); -@@ -2552,6 +2552,8 @@ - } - - /* match with a character? */ -+ if (case_fold) -+ wc = towlower (wc); - for (i = 0; inchars; i++) - { - if (wc == work_mbc->chars[i]) -diff -urN grep-2.5.1a.orig/src/grep.c grep-2.5.1a/src/grep.c ---- grep-2.5.1a.orig/src/grep.c 2004-11-12 16:25:35.000000000 +0500 -+++ grep-2.5.1a/src/grep.c 2005-10-23 09:50:06.000000000 +0600 -@@ -30,6 +30,12 @@ - # include - # include - #endif -+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC -+/* We can handle multibyte string. */ -+# define MBS_SUPPORT -+# include -+# include -+#endif - #include - #include "system.h" - #include "getopt.h" -@@ -558,33 +564,6 @@ - { - size_t match_size; - size_t match_offset; -- if(match_icase) -- { -- /* Yuck, this is tricky */ -- char *buf = (char*) xmalloc (lim - beg); -- char *ibeg = buf; -- char *ilim = ibeg + (lim - beg); -- int i; -- for (i = 0; i < lim - beg; i++) -- ibeg[i] = tolower (beg[i]); -- while ((match_offset = (*execute) (ibeg, ilim-ibeg, &match_size, 1)) -- != (size_t) -1) -- { -- char const *b = beg + match_offset; -- if (b == lim) -- break; -- fwrite (beg, sizeof (char), match_offset, stdout); -- printf ("\33[%sm", grep_color); -- fwrite (b, sizeof (char), match_size, stdout); -- fputs ("\33[00m", stdout); -- beg = b + match_size; -- ibeg = ibeg + match_offset + match_size; -- } -- fwrite (beg, 1, lim - beg, stdout); -- free (buf); -- lastout = lim; -- return; -- } - while (lim-beg && (match_offset = (*execute) (beg, lim - beg, &match_size, 1)) - != (size_t) -1) - { -@@ -601,6 +580,7 @@ - fputs ("\33[00m", stdout); - beg = b + match_size; - } -+ fputs ("\33[K", stdout); - } - fwrite (beg, 1, lim - beg, stdout); - if (ferror (stdout)) -@@ -1697,6 +1677,37 @@ - if (!install_matcher (matcher) && !install_matcher ("default")) - abort (); - -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX != 1 && match_icase) -+ { -+ wchar_t wc; -+ mbstate_t cur_state, prev_state; -+ int i, len = strlen(keys); -+ -+ memset(&cur_state, 0, sizeof(mbstate_t)); -+ for (i = 0; i <= len ;) -+ { -+ size_t mbclen; -+ mbclen = mbrtowc(&wc, keys + i, len - i, &cur_state); -+ if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) -+ { -+ /* An invalid sequence, or a truncated multibyte character. -+ We treat it as a singlebyte character. */ -+ mbclen = 1; -+ } -+ else -+ { -+ if (iswupper((wint_t)wc)) -+ { -+ wc = towlower((wint_t)wc); -+ wcrtomb(keys + i, wc, &cur_state); -+ } -+ } -+ i += mbclen; -+ } -+ } -+#endif /* MBS_SUPPORT */ -+ - (*compile)(keys, keycc); - - if ((argc - optind > 1 && !no_filenames) || with_filenames) -diff -urN grep-2.5.1a.orig/src/search.c grep-2.5.1a/src/search.c ---- grep-2.5.1a.orig/src/search.c 2001-04-19 09:42:14.000000000 +0600 -+++ grep-2.5.1a/src/search.c 2005-10-23 09:51:25.000000000 +0600 -@@ -18,9 +18,13 @@ - - /* Written August 1992 by Mike Haertel. */ - -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif - #ifdef HAVE_CONFIG_H - # include - #endif -+#include - #include - #if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC - /* We can handle multibyte string. */ -@@ -31,7 +35,7 @@ - - #include "system.h" - #include "grep.h" --#include "regex.h" -+#include - #include "dfa.h" - #include "kwset.h" - #include "error.h" -@@ -39,6 +43,9 @@ - #ifdef HAVE_LIBPCRE - # include - #endif -+#ifdef HAVE_LANGINFO_CODESET -+# include -+#endif - - #define NCHAR (UCHAR_MAX + 1) - -@@ -70,9 +77,10 @@ - call the regexp matcher at all. */ - static int kwset_exact_matches; - --#if defined(MBS_SUPPORT) --static char* check_multibyte_string PARAMS ((char const *buf, size_t size)); --#endif -+/* UTF-8 encoding allows some optimizations that we can't otherwise -+ assume in a multibyte encoding. */ -+static int using_utf8; -+ - static void kwsinit PARAMS ((void)); - static void kwsmusts PARAMS ((void)); - static void Gcompile PARAMS ((char const *, size_t)); -@@ -84,6 +92,15 @@ - static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int)); - - void -+check_utf8 (void) -+{ -+#ifdef HAVE_LANGINFO_CODESET -+ if (strcmp (nl_langinfo (CODESET), "UTF-8") == 0) -+ using_utf8 = 1; -+#endif -+} -+ -+void - dfaerror (char const *mesg) - { - error (2, 0, mesg); -@@ -141,38 +158,6 @@ - } - } - --#ifdef MBS_SUPPORT --/* This function allocate the array which correspond to "buf". -- Then this check multibyte string and mark on the positions which -- are not singlebyte character nor the first byte of a multibyte -- character. Caller must free the array. */ --static char* --check_multibyte_string(char const *buf, size_t size) --{ -- char *mb_properties = malloc(size); -- mbstate_t cur_state; -- int i; -- memset(&cur_state, 0, sizeof(mbstate_t)); -- memset(mb_properties, 0, sizeof(char)*size); -- for (i = 0; i < size ;) -- { -- size_t mbclen; -- mbclen = mbrlen(buf + i, size - i, &cur_state); -- -- if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) -- { -- /* An invalid sequence, or a truncated multibyte character. -- We treat it as a singlebyte character. */ -- mbclen = 1; -- } -- mb_properties[i] = mbclen; -- i += mbclen; -- } -- -- return mb_properties; --} --#endif -- - static void - Gcompile (char const *pattern, size_t size) - { -@@ -181,7 +166,8 @@ - size_t total = size; - char const *motif = pattern; - -- re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE); -+ check_utf8 (); -+ re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0)); - dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte); - - /* For GNU regex compiler we have to pass the patterns separately to detect -@@ -233,7 +219,7 @@ - static char const line_end[] = "\\)$"; - static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\("; - static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)"; -- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end); - size_t i; - strcpy (n, match_lines ? line_beg : word_beg); - i = strlen (n); -@@ -257,14 +243,15 @@ - size_t total = size; - char const *motif = pattern; - -+ check_utf8 (); - if (strcmp (matcher, "awk") == 0) - { -- re_set_syntax (RE_SYNTAX_AWK); -+ re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0)); - dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte); - } - else - { -- re_set_syntax (RE_SYNTAX_POSIX_EGREP); -+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | (match_icase ? RE_ICASE : 0)); - dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte); - } - -@@ -316,7 +303,7 @@ - static char const line_end[] = ")$"; - static char const word_beg[] = "(^|[^[:alnum:]_])("; - static char const word_end[] = ")([^[:alnum:]_]|$)"; -- char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end); - size_t i; - strcpy (n, match_lines ? line_beg : word_beg); - i = strlen(n); -@@ -339,15 +326,35 @@ - char eol = eolbyte; - int backref, start, len; - struct kwsmatch kwsm; -- size_t i; -+ size_t i, ret_val; -+ static int use_dfa; -+ static int use_dfa_checked = 0; - #ifdef MBS_SUPPORT -- char *mb_properties = NULL; -+ const char *last_char = NULL; -+ int mb_cur_max = MB_CUR_MAX; -+ mbstate_t mbs; -+ memset (&mbs, '\0', sizeof (mbstate_t)); - #endif /* MBS_SUPPORT */ - -+ if (!use_dfa_checked) -+ { -+ char *grep_use_dfa = getenv ("GREP_USE_DFA"); -+ if (!grep_use_dfa) -+ { - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && kwset) -- mb_properties = check_multibyte_string(buf, size); -+ /* Turn off DFA when processing multibyte input. */ -+ use_dfa = (MB_CUR_MAX == 1); -+#else -+ use_dfa = 1; - #endif /* MBS_SUPPORT */ -+ } -+ else -+ { -+ use_dfa = atoi (grep_use_dfa); -+ } -+ -+ use_dfa_checked = 1; -+ } - - buflim = buf + size; - -@@ -358,47 +365,124 @@ - if (kwset) - { - /* Find a possible match using the KWset matcher. */ -- size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); -+#ifdef MBS_SUPPORT -+ size_t bytes_left = 0; -+#endif /* MBS_SUPPORT */ -+ size_t offset; -+#ifdef MBS_SUPPORT -+ /* kwsexec doesn't work with match_icase and multibyte input. */ -+ if (match_icase && mb_cur_max > 1) -+ /* Avoid kwset */ -+ offset = 0; -+ else -+#endif /* MBS_SUPPORT */ -+ offset = kwsexec (kwset, beg, buflim - beg, &kwsm); - if (offset == (size_t) -1) -- { -+ goto failure; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free(mb_properties); --#endif -- return (size_t)-1; -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ /* Offset points inside multibyte character: -+ * no good. */ -+ break; -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } - } -+ else -+#endif /* MBS_SUPPORT */ - beg += offset; - /* Narrow down to the line containing the candidate, and - run it through DFA. */ - end = memchr(beg, eol, buflim - beg); - end++; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0) -+ if (mb_cur_max > 1 && bytes_left) - continue; --#endif -+#endif /* MBS_SUPPORT */ - while (beg > buf && beg[-1] != eol) - --beg; -- if (kwsm.index < kwset_exact_matches) -- goto success; -- if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) -+ if ( -+#ifdef MBS_SUPPORT -+ !(match_icase && mb_cur_max > 1) && -+#endif /* MBS_SUPPORT */ -+ (kwsm.index < kwset_exact_matches)) -+ goto success_in_beg_and_end; -+ if (use_dfa && -+ dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) - continue; - } - else - { - /* No good fixed strings; start with DFA. */ -- size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref); -+#ifdef MBS_SUPPORT -+ size_t bytes_left = 0; -+#endif /* MBS_SUPPORT */ -+ size_t offset = 0; -+ if (use_dfa) -+ offset = dfaexec (&dfa, beg, buflim - beg, &backref); - if (offset == (size_t) -1) - break; - /* Narrow down to the line we've found. */ -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ /* Offset points inside multibyte character: -+ * no good. */ -+ break; -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } -+ } -+ else -+#endif /* MBS_SUPPORT */ - beg += offset; - end = memchr (beg, eol, buflim - beg); - end++; -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && bytes_left) -+ continue; -+#endif /* MBS_SUPPORT */ - while (beg > buf && beg[-1] != eol) - --beg; - } - /* Successful, no backreferences encountered! */ -- if (!backref) -- goto success; -+ if (use_dfa && !backref) -+ goto success_in_beg_and_end; - } - else - end = beg + size; -@@ -413,14 +497,11 @@ - end - beg - 1, &(patterns[i].regs)))) - { - len = patterns[i].regs.end[0] - start; -- if (exact) -- { -- *match_size = len; -- return start; -- } -+ if (exact && !match_words) -+ goto success_in_start_and_len; - if ((!match_lines && !match_words) - || (match_lines && len == end - beg - 1)) -- goto success; -+ goto success_in_beg_and_end; - /* If -w, check if the match aligns with word boundaries. - We do this iteratively because: - (a) the line may contain more than one occurence of the -@@ -431,10 +512,84 @@ - if (match_words) - while (start >= 0) - { -- if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1])) -- && (len == end - beg - 1 -- || !WCHAR ((unsigned char) beg[start + len]))) -- goto success; -+ int lword_match = 0; -+ if (start == 0) -+ lword_match = 1; -+ else -+ { -+ assert (start > 0); -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1) -+ { -+ const char *s; -+ int mr; -+ wchar_t pwc; -+ -+ if (using_utf8) -+ { -+ s = beg + start - 1; -+ while (s > buf -+ && (unsigned char) *s >= 0x80 -+ && (unsigned char) *s <= 0xbf) -+ --s; -+ } -+ else -+ s = last_char; -+ mr = mbtowc (&pwc, s, beg + start - s); -+ if (mr <= 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ lword_match = 1; -+ } -+ else if (!(iswalnum (pwc) || pwc == L'_') -+ && mr == (int) (beg + start - s)) -+ lword_match = 1; -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ if (!WCHAR ((unsigned char) beg[start - 1])) -+ lword_match = 1; -+ } -+ -+ if (lword_match) -+ { -+ int rword_match = 0; -+ if (start + len == end - beg - 1) -+ rword_match = 1; -+ else -+ { -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1) -+ { -+ wchar_t nwc; -+ int mr; -+ -+ mr = mbtowc (&nwc, beg + start + len, -+ end - beg - start - len - 1); -+ if (mr <= 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ rword_match = 1; -+ } -+ else if (!iswalnum (nwc) && nwc != L'_') -+ rword_match = 1; -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ if (!WCHAR ((unsigned char) beg[start + len])) -+ rword_match = 1; -+ } -+ -+ if (rword_match) -+ { -+ if (!exact) -+ /* Returns the whole line. */ -+ goto success_in_beg_and_end; -+ else -+ /* Returns just this word match. */ -+ goto success_in_start_and_len; -+ } -+ } - if (len > 0) - { - /* Try a shorter length anchored at the same place. */ -@@ -461,26 +616,154 @@ - } - } /* for Regex patterns. */ - } /* for (beg = end ..) */ --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties) -- free (mb_properties); --#endif /* MBS_SUPPORT */ -+ -+ failure: - return (size_t) -1; - -- success: --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties) -- free (mb_properties); --#endif /* MBS_SUPPORT */ -- *match_size = end - beg; -- return beg - buf; -+ success_in_beg_and_end: -+ len = end - beg; -+ start = beg - buf; -+ /* FALLTHROUGH */ -+ -+ success_in_start_and_len: -+ *match_size = len; -+ return start; - } - -+#ifdef MBS_SUPPORT -+static int f_i_multibyte; /* whether we're using the new -Fi MB method */ -+static struct -+{ -+ wchar_t **patterns; -+ size_t count, maxlen; -+ unsigned char *match; -+} Fimb; -+#endif -+ - static void - Fcompile (char const *pattern, size_t size) - { -+ int mb_cur_max = MB_CUR_MAX; - char const *beg, *lim, *err; - -+ check_utf8 (); -+#ifdef MBS_SUPPORT -+ /* Support -F -i for UTF-8 input. */ -+ if (match_icase && mb_cur_max > 1) -+ { -+ mbstate_t mbs; -+ wchar_t *wcpattern = xmalloc ((size + 1) * sizeof (wchar_t)); -+ const char *patternend = pattern; -+ size_t wcsize; -+ kwset_t fimb_kwset = NULL; -+ char *starts = NULL; -+ wchar_t *wcbeg, *wclim; -+ size_t allocated = 0; -+ -+ memset (&mbs, '\0', sizeof (mbs)); -+# ifdef __GNU_LIBRARY__ -+ wcsize = mbsnrtowcs (wcpattern, &patternend, size, size, &mbs); -+ if (patternend != pattern + size) -+ wcsize = (size_t) -1; -+# else -+ { -+ char *patterncopy = xmalloc (size + 1); -+ -+ memcpy (patterncopy, pattern, size); -+ patterncopy[size] = '\0'; -+ patternend = patterncopy; -+ wcsize = mbsrtowcs (wcpattern, &patternend, size, &mbs); -+ if (patternend != patterncopy + size) -+ wcsize = (size_t) -1; -+ free (patterncopy); -+ } -+# endif -+ if (wcsize + 2 <= 2) -+ { -+fimb_fail: -+ free (wcpattern); -+ free (starts); -+ if (fimb_kwset) -+ kwsfree (fimb_kwset); -+ free (Fimb.patterns); -+ Fimb.patterns = NULL; -+ } -+ else -+ { -+ if (!(fimb_kwset = kwsalloc (NULL))) -+ error (2, 0, _("memory exhausted")); -+ -+ starts = xmalloc (mb_cur_max * 3); -+ wcbeg = wcpattern; -+ do -+ { -+ int i; -+ size_t wclen; -+ -+ if (Fimb.count >= allocated) -+ { -+ if (allocated == 0) -+ allocated = 128; -+ else -+ allocated *= 2; -+ Fimb.patterns = xrealloc (Fimb.patterns, -+ sizeof (wchar_t *) * allocated); -+ } -+ Fimb.patterns[Fimb.count++] = wcbeg; -+ for (wclim = wcbeg; -+ wclim < wcpattern + wcsize && *wclim != L'\n'; ++wclim) -+ *wclim = towlower (*wclim); -+ *wclim = L'\0'; -+ wclen = wclim - wcbeg; -+ if (wclen > Fimb.maxlen) -+ Fimb.maxlen = wclen; -+ if (wclen > 3) -+ wclen = 3; -+ if (wclen == 0) -+ { -+ if ((err = kwsincr (fimb_kwset, "", 0)) != 0) -+ error (2, 0, err); -+ } -+ else -+ for (i = 0; i < (1 << wclen); i++) -+ { -+ char *p = starts; -+ int j, k; -+ -+ for (j = 0; j < wclen; ++j) -+ { -+ wchar_t wc = wcbeg[j]; -+ if (i & (1 << j)) -+ { -+ wc = towupper (wc); -+ if (wc == wcbeg[j]) -+ continue; -+ } -+ k = wctomb (p, wc); -+ if (k <= 0) -+ goto fimb_fail; -+ p += k; -+ } -+ if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0) -+ error (2, 0, err); -+ } -+ if (wclim < wcpattern + wcsize) -+ ++wclim; -+ wcbeg = wclim; -+ } -+ while (wcbeg < wcpattern + wcsize); -+ f_i_multibyte = 1; -+ kwset = fimb_kwset; -+ free (starts); -+ Fimb.match = xmalloc (Fimb.count); -+ if ((err = kwsprep (kwset)) != 0) -+ error (2, 0, err); -+ return; -+ } -+ } -+#endif /* MBS_SUPPORT */ -+ -+ - kwsinit (); - beg = pattern; - do -@@ -499,6 +782,76 @@ - error (2, 0, err); - } - -+#ifdef MBS_SUPPORT -+static int -+Fimbexec (const char *buf, size_t size, size_t *plen, int exact) -+{ -+ size_t len, letter, i; -+ int ret = -1; -+ mbstate_t mbs; -+ wchar_t wc; -+ int patterns_left; -+ -+ assert (match_icase && f_i_multibyte == 1); -+ assert (MB_CUR_MAX > 1); -+ -+ memset (&mbs, '\0', sizeof (mbs)); -+ memset (Fimb.match, '\1', Fimb.count); -+ letter = len = 0; -+ patterns_left = 1; -+ while (patterns_left && len <= size) -+ { -+ size_t c; -+ -+ patterns_left = 0; -+ if (len < size) -+ { -+ c = mbrtowc (&wc, buf + len, size - len, &mbs); -+ if (c + 2 <= 2) -+ return ret; -+ -+ wc = towlower (wc); -+ } -+ else -+ { -+ c = 1; -+ wc = L'\0'; -+ } -+ -+ for (i = 0; i < Fimb.count; i++) -+ { -+ if (Fimb.match[i]) -+ { -+ if (Fimb.patterns[i][letter] == L'\0') -+ { -+ /* Found a match. */ -+ *plen = len; -+ if (!exact && !match_words) -+ return 0; -+ else -+ { -+ /* For -w or exact look for longest match. */ -+ ret = 0; -+ Fimb.match[i] = '\0'; -+ continue; -+ } -+ } -+ -+ if (Fimb.patterns[i][letter] == wc) -+ patterns_left = 1; -+ else -+ Fimb.match[i] = '\0'; -+ } -+ } -+ -+ len += c; -+ letter++; -+ } -+ -+ return ret; -+} -+#endif /* MBS_SUPPORT */ -+ - static size_t - Fexecute (char const *buf, size_t size, size_t *match_size, int exact) - { -@@ -506,88 +859,268 @@ - register size_t len; - char eol = eolbyte; - struct kwsmatch kwsmatch; -+ size_t ret_val; - #ifdef MBS_SUPPORT -- char *mb_properties; -- if (MB_CUR_MAX > 1) -- mb_properties = check_multibyte_string (buf, size); -+ int mb_cur_max = MB_CUR_MAX; -+ mbstate_t mbs; -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ const char *last_char = NULL; - #endif /* MBS_SUPPORT */ - - for (beg = buf; beg <= buf + size; ++beg) - { -- size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); -+ size_t offset; -+ offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); -+ - if (offset == (size_t) -1) -- { -+ goto failure; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free(mb_properties); --#endif /* MBS_SUPPORT */ -- return offset; -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ size_t bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ /* Offset points inside multibyte character: no good. */ -+ break; -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } -+ -+ if (bytes_left) -+ continue; - } --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) -- continue; /* It is a part of multibyte character. */ -+ else - #endif /* MBS_SUPPORT */ - beg += offset; -- len = kwsmatch.size[0]; -- if (exact) -- { -- *match_size = len; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); -+ /* For f_i_multibyte, the string at beg now matches first 3 chars of -+ one of the search strings (less if there are shorter search strings). -+ See if this is a real match. */ -+ if (f_i_multibyte -+ && Fimbexec (beg, buf + size - beg, &kwsmatch.size[0], exact)) -+ goto next_char; - #endif /* MBS_SUPPORT */ -- return beg - buf; -- } -+ len = kwsmatch.size[0]; -+ if (exact && !match_words) -+ goto success_in_beg_and_len; - if (match_lines) - { - if (beg > buf && beg[-1] != eol) -- continue; -+ goto next_char; - if (beg + len < buf + size && beg[len] != eol) -- continue; -+ goto next_char; - goto success; - } - else if (match_words) -- for (try = beg; len; ) -- { -- if (try > buf && WCHAR((unsigned char) try[-1])) -- break; -- if (try + len < buf + size && WCHAR((unsigned char) try[len])) -- { -- offset = kwsexec (kwset, beg, --len, &kwsmatch); -- if (offset == (size_t) -1) -- { -+ { -+ while (len) -+ { -+ int word_match = 0; -+ if (beg > buf) -+ { - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); -+ if (mb_cur_max > 1) -+ { -+ const char *s; -+ int mr; -+ wchar_t pwc; -+ -+ if (using_utf8) -+ { -+ s = beg - 1; -+ while (s > buf -+ && (unsigned char) *s >= 0x80 -+ && (unsigned char) *s <= 0xbf) -+ --s; -+ } -+ else -+ s = last_char; -+ mr = mbtowc (&pwc, s, beg - s); -+ if (mr <= 0) -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ else if ((iswalnum (pwc) || pwc == L'_') -+ && mr == (int) (beg - s)) -+ goto next_char; -+ } -+ else - #endif /* MBS_SUPPORT */ -- return offset; -- } -- try = beg + offset; -- len = kwsmatch.size[0]; -- } -- else -- goto success; -- } -+ if (WCHAR ((unsigned char) beg[-1])) -+ goto next_char; -+ } -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1) -+ { -+ wchar_t nwc; -+ int mr; -+ -+ mr = mbtowc (&nwc, beg + len, buf + size - beg - len); -+ if (mr <= 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ word_match = 1; -+ } -+ else if (!iswalnum (nwc) && nwc != L'_') -+ word_match = 1; -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ if (beg + len >= buf + size || !WCHAR ((unsigned char) beg[len])) -+ word_match = 1; -+ if (word_match) -+ { -+ if (!exact) -+ /* Returns the whole line now we know there's a word match. */ -+ goto success; -+ else -+ /* Returns just this word match. */ -+ goto success_in_beg_and_len; -+ } -+ if (len > 0) -+ { -+ /* Try a shorter length anchored at the same place. */ -+ --len; -+ offset = kwsexec (kwset, beg, len, &kwsmatch); -+ -+ if (offset == -1) -+ goto next_char; /* Try a different anchor. */ -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ size_t bytes_left = offset; -+ while (bytes_left) -+ { -+ size_t mlen = mbrlen (beg, bytes_left, &mbs); -+ -+ last_char = beg; -+ if (mlen == (size_t) -1 || mlen == 0) -+ { -+ /* Incomplete character: treat as single-byte. */ -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ beg++; -+ bytes_left--; -+ continue; -+ } -+ -+ if (mlen == (size_t) -2) -+ { -+ /* Offset points inside multibyte character: -+ * no good. */ -+ break; -+ } -+ -+ beg += mlen; -+ bytes_left -= mlen; -+ } -+ -+ if (bytes_left) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ goto next_char; /* Try a different anchor. */ -+ } -+ } -+ else -+#endif /* MBS_SUPPORT */ -+ beg += offset; -+#ifdef MBS_SUPPORT -+ /* The string at beg now matches first 3 chars of one of -+ the search strings (less if there are shorter search -+ strings). See if this is a real match. */ -+ if (f_i_multibyte -+ && Fimbexec (beg, len - offset, &kwsmatch.size[0], -+ exact)) -+ goto next_char; -+#endif /* MBS_SUPPORT */ -+ len = kwsmatch.size[0]; -+ } -+ } -+ } - else - goto success; -- } -- -+next_char:; - #ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); -+ /* Advance to next character. For MB_CUR_MAX == 1 case this is handled -+ by ++beg above. */ -+ if (mb_cur_max > 1) -+ { -+ if (using_utf8) -+ { -+ unsigned char c = *beg; -+ if (c >= 0xc2) -+ { -+ if (c < 0xe0) -+ ++beg; -+ else if (c < 0xf0) -+ beg += 2; -+ else if (c < 0xf8) -+ beg += 3; -+ else if (c < 0xfc) -+ beg += 4; -+ else if (c < 0xfe) -+ beg += 5; -+ } -+ } -+ else -+ { -+ size_t l = mbrlen (beg, buf + size - beg, &mbs); -+ -+ last_char = beg; -+ if (l + 2 >= 2) -+ beg += l - 1; -+ else -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ } -+ } - #endif /* MBS_SUPPORT */ -+ } -+ -+ failure: - return -1; - - success: -+#ifdef MBS_SUPPORT -+ if (mb_cur_max > 1 && !using_utf8) -+ { -+ end = beg + len; -+ while (end < buf + size) -+ { -+ size_t mlen = mbrlen (end, buf + size - end, &mbs); -+ if (mlen == (size_t) -1 || mlen == (size_t) -2 || mlen == 0) -+ { -+ memset (&mbs, '\0', sizeof (mbstate_t)); -+ mlen = 1; -+ } -+ if (mlen == 1 && *end == eol) -+ break; -+ -+ end += mlen; -+ } -+ } -+ else -+#endif /* MBS_SUPPORT */ - end = memchr (beg + len, eol, (buf + size) - (beg + len)); -+ - end++; - while (buf < beg && beg[-1] != eol) - --beg; -- *match_size = end - beg; --#ifdef MBS_SUPPORT -- if (MB_CUR_MAX > 1) -- free (mb_properties); --#endif /* MBS_SUPPORT */ -+ len = end - beg; -+ /* FALLTHROUGH */ -+ -+ success_in_beg_and_len: -+ *match_size = len; - return beg - buf; - } - -diff -urN grep-2.5.1a.orig/src/search.c.orig grep-2.5.1a/src/search.c.orig ---- grep-2.5.1a.orig/src/search.c.orig 1970-01-01 05:00:00.000000000 +0500 -+++ grep-2.5.1a/src/search.c.orig 2005-10-23 09:48:39.000000000 +0600 -@@ -0,0 +1,714 @@ -+/* search.c - searching subroutines using dfa, kwset and regex for grep. -+ Copyright 1992, 1998, 2000 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 2, 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, write to the Free Software -+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -+ 02111-1307, USA. */ -+ -+/* Written August 1992 by Mike Haertel. */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+#include -+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC -+/* We can handle multibyte string. */ -+# define MBS_SUPPORT -+# include -+# include -+#endif -+ -+#include "system.h" -+#include "grep.h" -+#include "regex.h" -+#include "dfa.h" -+#include "kwset.h" -+#include "error.h" -+#include "xalloc.h" -+#ifdef HAVE_LIBPCRE -+# include -+#endif -+ -+#define NCHAR (UCHAR_MAX + 1) -+ -+/* For -w, we also consider _ to be word constituent. */ -+#define WCHAR(C) (ISALNUM(C) || (C) == '_') -+ -+/* DFA compiled regexp. */ -+static struct dfa dfa; -+ -+/* The Regex compiled patterns. */ -+static struct patterns -+{ -+ /* Regex compiled regexp. */ -+ struct re_pattern_buffer regexbuf; -+ struct re_registers regs; /* This is here on account of a BRAIN-DEAD -+ Q@#%!# library interface in regex.c. */ -+} patterns0; -+ -+struct patterns *patterns; -+size_t pcount; -+ -+/* KWset compiled pattern. For Ecompile and Gcompile, we compile -+ a list of strings, at least one of which is known to occur in -+ any string matching the regexp. */ -+static kwset_t kwset; -+ -+/* Number of compiled fixed strings known to exactly match the regexp. -+ If kwsexec returns < kwset_exact_matches, then we don't need to -+ call the regexp matcher at all. */ -+static int kwset_exact_matches; -+ -+#if defined(MBS_SUPPORT) -+static char* check_multibyte_string PARAMS ((char const *buf, size_t size)); -+#endif -+static void kwsinit PARAMS ((void)); -+static void kwsmusts PARAMS ((void)); -+static void Gcompile PARAMS ((char const *, size_t)); -+static void Ecompile PARAMS ((char const *, size_t)); -+static size_t EGexecute PARAMS ((char const *, size_t, size_t *, int )); -+static void Fcompile PARAMS ((char const *, size_t)); -+static size_t Fexecute PARAMS ((char const *, size_t, size_t *, int)); -+static void Pcompile PARAMS ((char const *, size_t )); -+static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int)); -+ -+void -+dfaerror (char const *mesg) -+{ -+ error (2, 0, mesg); -+} -+ -+static void -+kwsinit (void) -+{ -+ static char trans[NCHAR]; -+ int i; -+ -+ if (match_icase) -+ for (i = 0; i < NCHAR; ++i) -+ trans[i] = TOLOWER (i); -+ -+ if (!(kwset = kwsalloc (match_icase ? trans : (char *) 0))) -+ error (2, 0, _("memory exhausted")); -+} -+ -+/* If the DFA turns out to have some set of fixed strings one of -+ which must occur in the match, then we build a kwset matcher -+ to find those strings, and thus quickly filter out impossible -+ matches. */ -+static void -+kwsmusts (void) -+{ -+ struct dfamust const *dm; -+ char const *err; -+ -+ if (dfa.musts) -+ { -+ kwsinit (); -+ /* First, we compile in the substrings known to be exact -+ matches. The kwset matcher will return the index -+ of the matching string that it chooses. */ -+ for (dm = dfa.musts; dm; dm = dm->next) -+ { -+ if (!dm->exact) -+ continue; -+ ++kwset_exact_matches; -+ if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0) -+ error (2, 0, err); -+ } -+ /* Now, we compile the substrings that will require -+ the use of the regexp matcher. */ -+ for (dm = dfa.musts; dm; dm = dm->next) -+ { -+ if (dm->exact) -+ continue; -+ if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0) -+ error (2, 0, err); -+ } -+ if ((err = kwsprep (kwset)) != 0) -+ error (2, 0, err); -+ } -+} -+ -+#ifdef MBS_SUPPORT -+/* This function allocate the array which correspond to "buf". -+ Then this check multibyte string and mark on the positions which -+ are not singlebyte character nor the first byte of a multibyte -+ character. Caller must free the array. */ -+static char* -+check_multibyte_string(char const *buf, size_t size) -+{ -+ char *mb_properties = malloc(size); -+ mbstate_t cur_state; -+ int i; -+ memset(&cur_state, 0, sizeof(mbstate_t)); -+ memset(mb_properties, 0, sizeof(char)*size); -+ for (i = 0; i < size ;) -+ { -+ size_t mbclen; -+ mbclen = mbrlen(buf + i, size - i, &cur_state); -+ -+ if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0) -+ { -+ /* An invalid sequence, or a truncated multibyte character. -+ We treat it as a singlebyte character. */ -+ mbclen = 1; -+ } -+ mb_properties[i] = mbclen; -+ i += mbclen; -+ } -+ -+ return mb_properties; -+} -+#endif -+ -+static void -+Gcompile (char const *pattern, size_t size) -+{ -+ const char *err; -+ char const *sep; -+ size_t total = size; -+ char const *motif = pattern; -+ -+ re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE); -+ dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte); -+ -+ /* For GNU regex compiler we have to pass the patterns separately to detect -+ errors like "[\nallo\n]\n". The patterns here are "[", "allo" and "]" -+ GNU regex should have raise a syntax error. The same for backref, where -+ the backref should have been local to each pattern. */ -+ do -+ { -+ size_t len; -+ sep = memchr (motif, '\n', total); -+ if (sep) -+ { -+ len = sep - motif; -+ sep++; -+ total -= (len + 1); -+ } -+ else -+ { -+ len = total; -+ total = 0; -+ } -+ -+ patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns)); -+ if (patterns == NULL) -+ error (2, errno, _("memory exhausted")); -+ -+ patterns[pcount] = patterns0; -+ -+ if ((err = re_compile_pattern (motif, len, -+ &(patterns[pcount].regexbuf))) != 0) -+ error (2, 0, err); -+ pcount++; -+ -+ motif = sep; -+ } while (sep && total != 0); -+ -+ /* In the match_words and match_lines cases, we use a different pattern -+ for the DFA matcher that will quickly throw out cases that won't work. -+ Then if DFA succeeds we do some hairy stuff using the regex matcher -+ to decide whether the match should really count. */ -+ if (match_words || match_lines) -+ { -+ /* In the whole-word case, we use the pattern: -+ \(^\|[^[:alnum:]_]\)\(userpattern\)\([^[:alnum:]_]|$\). -+ In the whole-line case, we use the pattern: -+ ^\(userpattern\)$. */ -+ -+ static char const line_beg[] = "^\\("; -+ static char const line_end[] = "\\)$"; -+ static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\("; -+ static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)"; -+ char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ size_t i; -+ strcpy (n, match_lines ? line_beg : word_beg); -+ i = strlen (n); -+ memcpy (n + i, pattern, size); -+ i += size; -+ strcpy (n + i, match_lines ? line_end : word_end); -+ i += strlen (n + i); -+ pattern = n; -+ size = i; -+ } -+ -+ dfacomp (pattern, size, &dfa, 1); -+ kwsmusts (); -+} -+ -+static void -+Ecompile (char const *pattern, size_t size) -+{ -+ const char *err; -+ const char *sep; -+ size_t total = size; -+ char const *motif = pattern; -+ -+ if (strcmp (matcher, "awk") == 0) -+ { -+ re_set_syntax (RE_SYNTAX_AWK); -+ dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte); -+ } -+ else -+ { -+ re_set_syntax (RE_SYNTAX_POSIX_EGREP); -+ dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte); -+ } -+ -+ /* For GNU regex compiler we have to pass the patterns separately to detect -+ errors like "[\nallo\n]\n". The patterns here are "[", "allo" and "]" -+ GNU regex should have raise a syntax error. The same for backref, where -+ the backref should have been local to each pattern. */ -+ do -+ { -+ size_t len; -+ sep = memchr (motif, '\n', total); -+ if (sep) -+ { -+ len = sep - motif; -+ sep++; -+ total -= (len + 1); -+ } -+ else -+ { -+ len = total; -+ total = 0; -+ } -+ -+ patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns)); -+ if (patterns == NULL) -+ error (2, errno, _("memory exhausted")); -+ patterns[pcount] = patterns0; -+ -+ if ((err = re_compile_pattern (motif, len, -+ &(patterns[pcount].regexbuf))) != 0) -+ error (2, 0, err); -+ pcount++; -+ -+ motif = sep; -+ } while (sep && total != 0); -+ -+ /* In the match_words and match_lines cases, we use a different pattern -+ for the DFA matcher that will quickly throw out cases that won't work. -+ Then if DFA succeeds we do some hairy stuff using the regex matcher -+ to decide whether the match should really count. */ -+ if (match_words || match_lines) -+ { -+ /* In the whole-word case, we use the pattern: -+ (^|[^[:alnum:]_])(userpattern)([^[:alnum:]_]|$). -+ In the whole-line case, we use the pattern: -+ ^(userpattern)$. */ -+ -+ static char const line_beg[] = "^("; -+ static char const line_end[] = ")$"; -+ static char const word_beg[] = "(^|[^[:alnum:]_])("; -+ static char const word_end[] = ")([^[:alnum:]_]|$)"; -+ char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end); -+ size_t i; -+ strcpy (n, match_lines ? line_beg : word_beg); -+ i = strlen(n); -+ memcpy (n + i, pattern, size); -+ i += size; -+ strcpy (n + i, match_lines ? line_end : word_end); -+ i += strlen (n + i); -+ pattern = n; -+ size = i; -+ } -+ -+ dfacomp (pattern, size, &dfa, 1); -+ kwsmusts (); -+} -+ -+static size_t -+EGexecute (char const *buf, size_t size, size_t *match_size, int exact) -+{ -+ register char const *buflim, *beg, *end; -+ char eol = eolbyte; -+ int backref, start, len; -+ struct kwsmatch kwsm; -+ size_t i; -+#ifdef MBS_SUPPORT -+ char *mb_properties = NULL; -+#endif /* MBS_SUPPORT */ -+ -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && kwset) -+ mb_properties = check_multibyte_string(buf, size); -+#endif /* MBS_SUPPORT */ -+ -+ buflim = buf + size; -+ -+ for (beg = end = buf; end < buflim; beg = end) -+ { -+ if (!exact) -+ { -+ if (kwset) -+ { -+ /* Find a possible match using the KWset matcher. */ -+ size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm); -+ if (offset == (size_t) -1) -+ goto failure; -+ beg += offset; -+ /* Narrow down to the line containing the candidate, and -+ run it through DFA. */ -+ end = memchr(beg, eol, buflim - beg); -+ end++; -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0) -+ continue; -+#endif -+ while (beg > buf && beg[-1] != eol) -+ --beg; -+ if (kwsm.index < kwset_exact_matches) -+ goto success_in_beg_and_end; -+ if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1) -+ continue; -+ } -+ else -+ { -+ /* No good fixed strings; start with DFA. */ -+ size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref); -+ if (offset == (size_t) -1) -+ break; -+ /* Narrow down to the line we've found. */ -+ beg += offset; -+ end = memchr (beg, eol, buflim - beg); -+ end++; -+ while (beg > buf && beg[-1] != eol) -+ --beg; -+ } -+ /* Successful, no backreferences encountered! */ -+ if (!backref) -+ goto success_in_beg_and_end; -+ } -+ else -+ end = beg + size; -+ -+ /* If we've made it to this point, this means DFA has seen -+ a probable match, and we need to run it through Regex. */ -+ for (i = 0; i < pcount; i++) -+ { -+ patterns[i].regexbuf.not_eol = 0; -+ if (0 <= (start = re_search (&(patterns[i].regexbuf), beg, -+ end - beg - 1, 0, -+ end - beg - 1, &(patterns[i].regs)))) -+ { -+ len = patterns[i].regs.end[0] - start; -+ if (exact && !match_words) -+ goto success_in_start_and_len; -+ if ((!match_lines && !match_words) -+ || (match_lines && len == end - beg - 1)) -+ goto success_in_beg_and_end; -+ /* If -w, check if the match aligns with word boundaries. -+ We do this iteratively because: -+ (a) the line may contain more than one occurence of the -+ pattern, and -+ (b) Several alternatives in the pattern might be valid at a -+ given point, and we may need to consider a shorter one to -+ find a word boundary. */ -+ if (match_words) -+ while (start >= 0) -+ { -+ if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1])) -+ && (len == end - beg - 1 -+ || !WCHAR ((unsigned char) beg[start + len]))) -+ goto success_in_beg_and_end; -+ if (len > 0) -+ { -+ /* Try a shorter length anchored at the same place. */ -+ --len; -+ patterns[i].regexbuf.not_eol = 1; -+ len = re_match (&(patterns[i].regexbuf), beg, -+ start + len, start, -+ &(patterns[i].regs)); -+ } -+ if (len <= 0) -+ { -+ /* Try looking further on. */ -+ if (start == end - beg - 1) -+ break; -+ ++start; -+ patterns[i].regexbuf.not_eol = 0; -+ start = re_search (&(patterns[i].regexbuf), beg, -+ end - beg - 1, -+ start, end - beg - 1 - start, -+ &(patterns[i].regs)); -+ len = patterns[i].regs.end[0] - start; -+ } -+ } -+ } -+ } /* for Regex patterns. */ -+ } /* for (beg = end ..) */ -+ -+ failure: -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return (size_t) -1; -+ -+ success_in_beg_and_end: -+ len = end - beg; -+ start = beg - buf; -+ /* FALLTHROUGH */ -+ -+ success_in_start_and_len: -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ *match_size = len; -+ return start; -+} -+ -+static void -+Fcompile (char const *pattern, size_t size) -+{ -+ char const *beg, *lim, *err; -+ -+ kwsinit (); -+ beg = pattern; -+ do -+ { -+ for (lim = beg; lim < pattern + size && *lim != '\n'; ++lim) -+ ; -+ if ((err = kwsincr (kwset, beg, lim - beg)) != 0) -+ error (2, 0, err); -+ if (lim < pattern + size) -+ ++lim; -+ beg = lim; -+ } -+ while (beg < pattern + size); -+ -+ if ((err = kwsprep (kwset)) != 0) -+ error (2, 0, err); -+} -+ -+static size_t -+Fexecute (char const *buf, size_t size, size_t *match_size, int exact) -+{ -+ register char const *beg, *try, *end; -+ register size_t len; -+ char eol = eolbyte; -+ struct kwsmatch kwsmatch; -+#ifdef MBS_SUPPORT -+ char *mb_properties; -+ if (MB_CUR_MAX > 1) -+ mb_properties = check_multibyte_string (buf, size); -+#endif /* MBS_SUPPORT */ -+ -+ for (beg = buf; beg <= buf + size; ++beg) -+ { -+ size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch); -+ if (offset == (size_t) -1) -+ goto failure; -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0) -+ continue; /* It is a part of multibyte character. */ -+#endif /* MBS_SUPPORT */ -+ beg += offset; -+ len = kwsmatch.size[0]; -+ if (exact && !match_words) -+ goto success_in_beg_and_len; -+ if (match_lines) -+ { -+ if (beg > buf && beg[-1] != eol) -+ continue; -+ if (beg + len < buf + size && beg[len] != eol) -+ continue; -+ goto success; -+ } -+ else if (match_words) -+ for (try = beg; len; ) -+ { -+ if (try > buf && WCHAR((unsigned char) try[-1])) -+ break; -+ if (try + len < buf + size && WCHAR((unsigned char) try[len])) -+ { -+ offset = kwsexec (kwset, beg, --len, &kwsmatch); -+ if (offset == (size_t) -1) -+ { -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return offset; -+ } -+ try = beg + offset; -+ len = kwsmatch.size[0]; -+ } -+ else -+ goto success; -+ } -+ else -+ goto success; -+ } -+ -+ failure: -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return -1; -+ -+ success: -+ end = memchr (beg + len, eol, (buf + size) - (beg + len)); -+ end++; -+ while (buf < beg && beg[-1] != eol) -+ --beg; -+ len = end - beg; -+ /* FALLTHROUGH */ -+ -+ success_in_beg_and_len: -+ *match_size = len; -+#ifdef MBS_SUPPORT -+ if (MB_CUR_MAX > 1) -+ free (mb_properties); -+#endif /* MBS_SUPPORT */ -+ return beg - buf; -+} -+ -+#if HAVE_LIBPCRE -+/* Compiled internal form of a Perl regular expression. */ -+static pcre *cre; -+ -+/* Additional information about the pattern. */ -+static pcre_extra *extra; -+#endif -+ -+static void -+Pcompile (char const *pattern, size_t size) -+{ -+#if !HAVE_LIBPCRE -+ error (2, 0, _("The -P option is not supported")); -+#else -+ int e; -+ char const *ep; -+ char *re = xmalloc (4 * size + 7); -+ int flags = PCRE_MULTILINE | (match_icase ? PCRE_CASELESS : 0); -+ char const *patlim = pattern + size; -+ char *n = re; -+ char const *p; -+ char const *pnul; -+ -+ /* FIXME: Remove this restriction. */ -+ if (eolbyte != '\n') -+ error (2, 0, _("The -P and -z options cannot be combined")); -+ -+ *n = '\0'; -+ if (match_lines) -+ strcpy (n, "^("); -+ if (match_words) -+ strcpy (n, "\\b("); -+ n += strlen (n); -+ -+ /* The PCRE interface doesn't allow NUL bytes in the pattern, so -+ replace each NUL byte in the pattern with the four characters -+ "\000", removing a preceding backslash if there are an odd -+ number of backslashes before the NUL. -+ -+ FIXME: This method does not work with some multibyte character -+ encodings, notably Shift-JIS, where a multibyte character can end -+ in a backslash byte. */ -+ for (p = pattern; (pnul = memchr (p, '\0', patlim - p)); p = pnul + 1) -+ { -+ memcpy (n, p, pnul - p); -+ n += pnul - p; -+ for (p = pnul; pattern < p && p[-1] == '\\'; p--) -+ continue; -+ n -= (pnul - p) & 1; -+ strcpy (n, "\\000"); -+ n += 4; -+ } -+ -+ memcpy (n, p, patlim - p); -+ n += patlim - p; -+ *n = '\0'; -+ if (match_words) -+ strcpy (n, ")\\b"); -+ if (match_lines) -+ strcpy (n, ")$"); -+ -+ cre = pcre_compile (re, flags, &ep, &e, pcre_maketables ()); -+ if (!cre) -+ error (2, 0, ep); -+ -+ extra = pcre_study (cre, 0, &ep); -+ if (ep) -+ error (2, 0, ep); -+ -+ free (re); -+#endif -+} -+ -+static size_t -+Pexecute (char const *buf, size_t size, size_t *match_size, int exact) -+{ -+#if !HAVE_LIBPCRE -+ abort (); -+ return -1; -+#else -+ /* This array must have at least two elements; everything after that -+ is just for performance improvement in pcre_exec. */ -+ int sub[300]; -+ -+ int e = pcre_exec (cre, extra, buf, size, 0, 0, -+ sub, sizeof sub / sizeof *sub); -+ -+ if (e <= 0) -+ { -+ switch (e) -+ { -+ case PCRE_ERROR_NOMATCH: -+ return -1; -+ -+ case PCRE_ERROR_NOMEMORY: -+ error (2, 0, _("Memory exhausted")); -+ -+ default: -+ abort (); -+ } -+ } -+ else -+ { -+ /* Narrow down to the line we've found. */ -+ char const *beg = buf + sub[0]; -+ char const *end = buf + sub[1]; -+ char const *buflim = buf + size; -+ char eol = eolbyte; -+ if (!exact) -+ { -+ end = memchr (end, eol, buflim - end); -+ end++; -+ while (buf < beg && beg[-1] != eol) -+ --beg; -+ } -+ -+ *match_size = end - beg; -+ return beg - buf; -+ } -+#endif -+} -+ -+struct matcher const matchers[] = { -+ { "default", Gcompile, EGexecute }, -+ { "grep", Gcompile, EGexecute }, -+ { "egrep", Ecompile, EGexecute }, -+ { "awk", Ecompile, EGexecute }, -+ { "fgrep", Fcompile, Fexecute }, -+ { "perl", Pcompile, Pexecute }, -+ { "", 0, 0 }, -+}; -diff -urN grep-2.5.1a.orig/tests/fmbtest.sh grep-2.5.1a/tests/fmbtest.sh ---- grep-2.5.1a.orig/tests/fmbtest.sh 1970-01-01 05:00:00.000000000 +0500 -+++ grep-2.5.1a/tests/fmbtest.sh 2005-10-23 09:51:12.000000000 +0600 -@@ -0,0 +1,111 @@ -+#!/bin/sh -+ -+: ${srcdir=.} -+ -+# If cs_CZ.UTF-8 locale doesn't work, skip this test silently -+LC_ALL=cs_CZ.UTF-8 locale -k LC_CTYPE 2>/dev/null | ${GREP} -q charmap.*UTF-8 \ -+ || exit 77 -+ -+failures=0 -+ -+cat > csinput < cspatfile < ", -+ append_line, NEW_HEAPSIZE + 1, -+ 0, 1)) -+ goto restart; -+ -+ /* have new args; append_line points to the -+ new args and start points to the old -+ args */ -+ -+ i = grub_strlen(start); -+ j = grub_strlen(append_line); -+ -+ if (i > (j + needs_padding)) -+ amount = i; -+ else -+ amount = j + needs_padding; -+ -+ /* align rest of commands properly */ -+ memmove (start + j + needs_padding, start + i, -+ ((int) append_line) - ((int) start) - (amount)); -+ -+ if (needs_padding) -+ *start = ' '; -+ -+ /* copy command to correct area */ -+ memmove (start + needs_padding, append_line, j); -+ -+ /* set up this entry to boot */ -+ config_entries = NULL; -+ cur_entry = entry_copy; -+ heap = new_heap; -+ -+ break; -+ } - #ifdef GRUB_UTIL - if (c == 'q') - { diff --git a/src/patches/grub-0.90-symlinkmenulst.patch b/src/patches/grub-0.90-symlinkmenulst.patch deleted file mode 100644 index 553d15a6c0..0000000000 --- a/src/patches/grub-0.90-symlinkmenulst.patch +++ /dev/null @@ -1,16 +0,0 @@ -Only in grub: ChangeLog~ -diff -ur grub-0.90/util/grub-install.in grub/util/grub-install.in ---- grub-0.90/util/grub-install.in Wed Sep 5 15:50:06 2001 -+++ grub/util/grub-install.in Wed Sep 5 15:50:24 2001 -@@ -320,6 +320,10 @@ - exit 1 - fi - -+if ! test -e ${grubdir}/grub.conf ; then -+ test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf -+fi -+ - # Create a safe temporary file. - test -x /bin/mktemp && log_file=`/bin/mktemp /tmp/grub-install.log.XXXXXX` - -Only in grub/util: grub-install.in.orig diff --git a/src/patches/grub-0.91-splashimagehelp.patch b/src/patches/grub-0.91-splashimagehelp.patch deleted file mode 100644 index cc78073504..0000000000 --- a/src/patches/grub-0.91-splashimagehelp.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -ur grub-0.91/docs/grub.texi grub/docs/grub.texi ---- grub-0.91/docs/grub.texi Mon Jan 21 22:57:46 2002 -+++ grub/docs/grub.texi Mon Jan 21 22:57:51 2002 -@@ -1891,6 +1891,7 @@ - * rarp:: Initialize a network device via RARP - * serial:: Set up a serial device - * setkey:: Configure the key map -+* splashimage:: Use a splash image - * terminal:: Choose a terminal - * tftpserver:: Specify a TFTP server - * unhide:: Unhide a partition -@@ -2260,6 +2261,16 @@ - @end deffn - - -+@node splashimage -+@subsection splashimage -+ -+@deffn Command splashimage file -+Select an image to use as the background image. This should be -+specified using normal GRUB device naming syntax. The format of the -+file is a gzipped xpm which is 640x480 with a 14 color palette. -+@end deffn -+ -+ - @node terminal - @subsection terminal - diff --git a/src/patches/grub-0.93-configfile.patch b/src/patches/grub-0.93-configfile.patch deleted file mode 100644 index 9cb1182471..0000000000 --- a/src/patches/grub-0.93-configfile.patch +++ /dev/null @@ -1,75 +0,0 @@ ---- grub-0.93/stage2/asm.S.config 2002-12-02 18:18:56.000000000 -0500 -+++ grub-0.93/stage2/asm.S 2002-12-28 22:01:24.000000000 -0500 -@@ -97,7 +97,7 @@ - .string VERSION - VARIABLE(config_file) - #ifndef STAGE1_5 -- .string "/boot/grub/menu.lst" -+ .string "/boot/grub/grub.conf" - #else /* STAGE1_5 */ - .long 0xffffffff - .string "/boot/grub/stage2" ---- grub-0.93/stage2/builtins.c.config 2002-12-03 23:41:57.000000000 -0500 -+++ grub-0.93/stage2/builtins.c 2002-12-28 22:01:24.000000000 -0500 -@@ -3838,7 +3838,7 @@ - - /* The prefix was determined. */ - grub_sprintf (stage2, "%s%s", prefix, "/stage2"); -- grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst"); -+ grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf"); - *real_config_filename = 0; - - /* Check if stage2 exists. */ ---- grub-0.93/grub/asmstub.c.config 2002-12-02 18:20:45.000000000 -0500 -+++ grub-0.93/grub/asmstub.c 2002-12-28 22:01:24.000000000 -0500 -@@ -71,7 +71,7 @@ - unsigned long boot_drive = 0; - int saved_entryno = 0; - char version_string[] = VERSION; --char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */ -+char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */ - unsigned long linux_text_len = 0; - char *linux_data_tmp_addr = 0; - char *linux_data_real_addr = 0; ---- grub-0.93/docs/grub.8.config 2002-12-07 22:17:59.000000000 -0500 -+++ grub-0.93/docs/grub.8 2002-12-28 22:01:24.000000000 -0500 -@@ -15,7 +15,7 @@ - specify stage2 boot_drive [default=0x0] - .TP - \fB\-\-config\-file\fR=\fIFILE\fR --specify stage2 config_file [default=/boot/grub/menu.lst] -+specify stage2 config_file [default=/boot/grub/grub.conf] - .TP - \fB\-\-device\-map\fR=\fIFILE\fR - use the device map file FILE ---- grub-0.93/docs/grub.texi.config 2002-12-02 17:35:28.000000000 -0500 -+++ grub-0.93/docs/grub.texi 2002-12-28 22:01:24.000000000 -0500 -@@ -989,7 +989,7 @@ - keys) that will do everything to boot an OS. - - To enable the menu, you need a configuration file, --@file{menu.lst} under the boot directory. We'll analyze an example -+@file{grub.conf} under the boot directory. We'll analyze an example - file. - - The file first contains some general settings, the menu interface -@@ -1596,8 +1596,8 @@ - - An absolute file name resembles a Unix absolute file name, using - @samp{/} for the directory separator (not @samp{\} as in DOS). One --example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file --@file{/boot/grub/menu.lst} in the first partition of the first hard -+example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file -+@file{/boot/grub/grub.conf} in the first partition of the first hard - disk. If you omit the device name in an absolute file name, GRUB uses - GRUB's @dfn{root device} implicitly. So if you set the root device to, - say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then -@@ -3249,7 +3249,7 @@ - - @item --config-file=@var{file} - Read the configuration file @var{file} instead of --@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB -+@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB - syntax. See @ref{Filesystem}, for more information. - - @item --boot-drive=@var{drive} diff --git a/src/patches/grub-0.93-endedit.patch b/src/patches/grub-0.93-endedit.patch deleted file mode 100644 index eb0463cb22..0000000000 --- a/src/patches/grub-0.93-endedit.patch +++ /dev/null @@ -1,77 +0,0 @@ -Index: stage2/cmdline.c -=================================================================== -RCS file: /cvsroot/grub/grub/stage2/cmdline.c,v -retrieving revision 1.27 -diff -u -r1.27 cmdline.c ---- stage2/cmdline.c 3 Dec 2002 00:02:53 -0000 1.27 -+++ stage2/cmdline.c 6 Jan 2003 05:33:33 -0000 -@@ -48,12 +48,17 @@ - - /* Print a helpful message for the command-line interface. */ - void --print_cmdline_message (int forever) -+print_cmdline_message (int type) - { - printf (" [ Minimal BASH-like line editing is supported. For the first word, TAB\n" - " lists possible command completions. Anywhere else TAB lists the possible\n" -- " completions of a device/filename.%s ]\n", -- (forever ? "" : " ESC at any time exits.")); -+ " completions of a device/filename."); -+ if (type == CMDLINE_NORMAL_MODE) -+ printf(" ESC at any time exits."); -+ if (type == CMDLINE_EDIT_MODE) -+ printf(" ESC at any time cancels. ENTER \n" -+ " at any time accepts your changes."); -+ printf("]\n"); - } - - /* Find the builtin whose command name is COMMAND and return the -@@ -128,7 +133,7 @@ - print_network_configuration (); - grub_putchar ('\n'); - #endif -- print_cmdline_message (forever); -+ print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE); - - while (1) - { -Index: stage2/shared.h -=================================================================== -RCS file: /cvsroot/grub/grub/stage2/shared.h,v -retrieving revision 1.90 -diff -u -r1.90 shared.h ---- stage2/shared.h 3 Dec 2002 00:02:53 -0000 1.90 -+++ stage2/shared.h 6 Jan 2003 05:33:33 -0000 -@@ -843,9 +843,15 @@ - void init_config (void); - char *skip_to (int after_equal, char *cmdline); - struct builtin *find_command (char *command); --void print_cmdline_message (int forever); - void enter_cmdline (char *heap, int forever); - int run_script (char *script, char *heap); -+ -+/* the flags for the cmdline message */ -+#define CMDLINE_FOREVER_MODE 0x0 -+#define CMDLINE_NORMAL_MODE 0x1 -+#define CMDLINE_EDIT_MODE 0x2 -+ -+void print_cmdline_message (int type); - #endif - - /* C library replacement functions with identical semantics. */ -Index: stage2/stage2.c -=================================================================== -RCS file: /cvsroot/grub/grub/stage2/stage2.c,v -retrieving revision 1.42 -diff -u -r1.42 stage2.c ---- stage2/stage2.c 4 Dec 2002 00:55:45 -0000 1.42 -+++ stage2/stage2.c 6 Jan 2003 05:33:33 -0000 -@@ -655,7 +655,7 @@ - else - { - cls (); -- print_cmdline_message (0); -+ print_cmdline_message (CMDLINE_EDIT_MODE); - - new_heap = heap + NEW_HEAPSIZE + 1; - diff --git a/src/patches/grub-0.93-graphics-bootterm.patch b/src/patches/grub-0.93-graphics-bootterm.patch deleted file mode 100644 index 1e2be9aacd..0000000000 --- a/src/patches/grub-0.93-graphics-bootterm.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- grub-0.93/stage2/builtins.c.bootterm 2002-12-29 02:01:50.000000000 -0500 -+++ grub-0.93/stage2/builtins.c 2002-12-29 02:01:07.000000000 -0500 -@@ -233,12 +233,22 @@ - static int - boot_func (char *arg, int flags) - { -+ struct term_entry *prev_term = current_term; - /* Clear the int15 handler if we can boot the kernel successfully. - This assumes that the boot code never fails only if KERNEL_TYPE is - not KERNEL_TYPE_NONE. Is this assumption is bad? */ - if (kernel_type != KERNEL_TYPE_NONE) - unset_int15_handler (); - -+ /* if our terminal needed initialization, we should shut it down -+ * before booting the kernel, but we want to save what it was so -+ * we can come back if needed */ -+ if (current_term->shutdown) -+ { -+ (*current_term->shutdown)(); -+ current_term = term_table; /* assumption: console is first */ -+ } -+ - #ifdef SUPPORT_NETBOOT - /* Shut down the networking. */ - cleanup_net (); -@@ -302,6 +312,13 @@ - return 1; - } - -+ /* if we get back here, we should go back to what our term was before */ -+ current_term = prev_term; -+ if (current_term->startup) -+ /* if our terminal fails to initialize, fall back to console since -+ * it should always work */ -+ if ((*current_term->startup)() == 0) -+ current_term = term_table; /* we know that console is first */ - return 0; - } - diff --git a/src/patches/grub-0.93-special-device-names.patch b/src/patches/grub-0.93-special-device-names.patch deleted file mode 100644 index 894f3e8872..0000000000 --- a/src/patches/grub-0.93-special-device-names.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- grub-0.93/lib/device.c.raid 2002-05-20 05:53:46.000000000 -0400 -+++ grub-0.93/lib/device.c 2002-12-28 23:24:10.000000000 -0500 -@@ -689,7 +689,14 @@ - if (strcmp (dev + strlen(dev) - 5, "/disc") == 0) - strcpy (dev + strlen(dev) - 5, "/part"); - } -- sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); -+ -+ sprintf (dev + strlen(dev), "%s%d", -+ /* Compaq smart and others */ -+ (strncmp(dev, "/dev/ida/", 9) == 0 || -+ strncmp(dev, "/dev/ataraid/", 13) == 0 || -+ strncmp(dev, "/dev/cciss/", 11) == 0 || -+ strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "", -+ ((partition >> 16) & 0xFF) + 1); - - /* Open the partition. */ - fd = open (dev, O_RDWR); diff --git a/src/patches/grub-0.94-i2o.patch b/src/patches/grub-0.94-i2o.patch deleted file mode 100644 index 2af846c90f..0000000000 --- a/src/patches/grub-0.94-i2o.patch +++ /dev/null @@ -1,45 +0,0 @@ -Only in grub-0.94/docs: grub.info -Only in grub-0.94/docs: multiboot.info -diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c ---- grub-0.94/lib/device.c 2004-05-07 04:50:36.375238696 +0200 -+++ grub-0.94.new/lib/device.c 2004-05-07 04:48:57.611253104 +0200 -@@ -419,6 +419,12 @@ - { - sprintf (name, "/dev/rd/c%dd%d", controller, drive); - } -+ -+static void -+get_i2o_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/i2o/hd%c", unit + 'a'); -+} - #endif - - /* Check if DEVICE can be read. If an error occurs, return zero, -@@ -789,6 +795,26 @@ - } - } - } -+ -+ /* I2O disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[16]; -+ -+ get_i2o_disk_name (name, i); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ - #endif /* __linux__ */ - - /* OK, close the device map file if opened. */ diff --git a/src/patches/grub-0.94-installcopyonly.patch b/src/patches/grub-0.94-installcopyonly.patch deleted file mode 100644 index a2e38fbd5e..0000000000 --- a/src/patches/grub-0.94-installcopyonly.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- grub-0.94/util/grub-install.in.copyonly 2004-02-02 16:33:29.172127985 -0500 -+++ grub-0.94/util/grub-install.in 2004-02-02 16:34:26.027454320 -0500 -@@ -40,6 +40,7 @@ - force_lba= - recheck=no - debug=no -+justcopy=no - - # look for secure tempfile creation wrappers on this platform - if test -x /bin/tempfile; then -@@ -221,6 +222,17 @@ - echo "$tmp_fname" - } - -+copy_images() { -+ # Copy the GRUB images to the GRUB directory. -+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ rm -f $file || exit 1 -+ done -+ for file in \ -+ ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -+ cp -f $file ${grubdir} || exit 1 -+ done -+} -+ - # Check the arguments. - for option in "$@"; do - case "$option" in -@@ -240,6 +252,8 @@ - force_lba="--force-lba" ;; - --recheck) - recheck=yes ;; -+ --just-copy) -+ justcopy=yes ;; - # This is an undocumented feature... - --debug) - debug=yes ;; -@@ -258,12 +272,6 @@ - esac - done - --if test "x$install_device" = x; then -- echo "install_device not specified." 1>&2 -- usage -- exit 1 --fi -- - # If the debugging feature is enabled, print commands. - if test $debug = yes; then - set -x -@@ -286,6 +294,18 @@ - grubdir=${bootdir}/grub - device_map=${grubdir}/device.map - -+# if they just want the images copied, copy the images and then exit -+if test $justcopy = yes; then -+ copy_images -+ exit 0 -+fi -+ -+if test "x$install_device" = x; then -+ echo "install_device not specified." 1>&2 -+ usage -+ exit 1 -+fi -+ - # Check if GRUB is installed. - # This is necessary, because the user can specify "grub --read-only". - set $grub_shell dummy -@@ -317,14 +337,7 @@ - test -d "$bootdir" || mkdir "$bootdir" || exit 1 - test -d "$grubdir" || mkdir "$grubdir" || exit 1 - --# Copy the GRUB images to the GRUB directory. --for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- rm -f $file || exit 1 --done --for file in \ -- ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -- cp -f $file ${grubdir} || exit 1 --done -+copy_images - - # If --recheck is specified, remove the device map, if present. - if test $recheck = yes; then diff --git a/src/patches/grub-0.95-graphics.patch b/src/patches/grub-0.95-graphics.patch deleted file mode 100644 index 0c62b77f20..0000000000 --- a/src/patches/grub-0.95-graphics.patch +++ /dev/null @@ -1,1283 +0,0 @@ ---- grub-0.95/stage2/asm.S.graphics 2004-06-18 17:35:51.932054040 -0400 -+++ grub-0.95/stage2/asm.S 2004-06-18 17:35:52.473971656 -0400 -@@ -2215,6 +2215,156 @@ - pop %ebx - pop %ebp - ret -+ -+/* graphics mode functions */ -+#ifdef SUPPORT_GRAPHICS -+VARIABLE(cursorX) -+.word 0 -+VARIABLE(cursorY) -+.word 0 -+VARIABLE(cursorCount) -+.word 0 -+VARIABLE(cursorBuf) -+.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -+ -+ -+/* -+ * int set_videomode(mode) -+ * BIOS call "INT 10H Function 0h" to set video mode -+ * Call with %ah = 0x0 -+ * %al = video mode -+ * Returns old videomode. -+ */ -+ENTRY(set_videomode) -+ push %ebp -+ push %ebx -+ push %ecx -+ -+ movb 0x10(%esp), %cl -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ xorw %bx, %bx -+ movb $0xf, %ah -+ int $0x10 /* Get Current Video mode */ -+ movb %al, %ch -+ xorb %ah, %ah -+ movb %cl, %al -+ int $0x10 /* Set Video mode */ -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ xorb %ah, %ah -+ movb %ch, %al -+ -+ pop %ecx -+ pop %ebx -+ pop %ebp -+ ret -+ -+ -+/* -+ * unsigned char * graphics_get_font() -+ * BIOS call "INT 10H Function 11h" to set font -+ * Call with %ah = 0x11 -+ */ -+ENTRY(graphics_get_font) -+ push %ebp -+ push %ebx -+ push %ecx -+ push %edx -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ movw $0x1130, %ax -+ movb $6, %bh /* font 8x16 */ -+ int $0x10 -+ movw %bp, %dx -+ movw %es, %cx -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ xorl %eax, %eax -+ movw %cx, %ax -+ shll $4, %eax -+ movw %dx, %ax -+ -+ pop %edx -+ pop %ecx -+ pop %ebx -+ pop %ebp -+ ret -+ -+ -+ -+/* -+ * graphics_set_palette(index, red, green, blue) -+ * BIOS call "INT 10H Function 10h" to set individual dac register -+ * Call with %ah = 0x10 -+ * %bx = register number -+ * %ch = new value for green (0-63) -+ * %cl = new value for blue (0-63) -+ * %dh = new value for red (0-63) -+ */ -+ -+ENTRY(graphics_set_palette) -+ push %ebp -+ push %eax -+ push %ebx -+ push %ecx -+ push %edx -+ -+ movw $0x3c8, %bx /* address write mode register */ -+ -+ /* wait vertical retrace */ -+ -+ movw $0x3da, %dx -+l1b: inb %dx, %al /* wait vertical active display */ -+ test $8, %al -+ jnz l1b -+ -+l2b: inb %dx, %al /* wait vertical retrace */ -+ test $8, %al -+ jnz l2b -+ -+ mov %bx, %dx -+ movb 0x18(%esp), %al /* index */ -+ outb %al, %dx -+ inc %dx -+ -+ movb 0x1c(%esp), %al /* red */ -+ outb %al, %dx -+ -+ movb 0x20(%esp), %al /* green */ -+ outb %al, %dx -+ -+ movb 0x24(%esp), %al /* blue */ -+ outb %al, %dx -+ -+ movw 0x18(%esp), %bx -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ movb %bl, %bh -+ movw $0x1000, %ax -+ int $0x10 -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ pop %edx -+ pop %ecx -+ pop %ebx -+ pop %eax -+ pop %ebp -+ ret -+ -+#endif /* SUPPORT_GRAPHICS */ - - /* - * getrtsecs() ---- grub-0.95/stage2/stage2.c.graphics 2004-06-18 17:35:52.314995824 -0400 -+++ grub-0.95/stage2/stage2.c 2004-06-18 17:35:52.494968464 -0400 -@@ -233,6 +233,7 @@ - { - int c, time1, time2 = -1, first_entry = 0; - char *cur_entry = 0; -+ struct term_entry *prev_term = NULL; - - /* - * Main loop for menu UI. -@@ -807,6 +808,15 @@ - - cls (); - setcursor (1); -+ /* if our terminal needed initialization, we should shut it down -+ * before booting the kernel, but we want to save what it was so -+ * we can come back if needed */ -+ prev_term = current_term; -+ if (current_term->shutdown) -+ { -+ (*current_term->shutdown)(); -+ current_term = term_table; /* assumption: console is first */ -+ } - - while (1) - { -@@ -838,6 +848,13 @@ - break; - } - -+ /* if we get back here, we should go back to what our term was before */ -+ current_term = prev_term; -+ if (current_term->startup) -+ /* if our terminal fails to initialize, fall back to console since -+ * it should always work */ -+ if ((*current_term->startup)() == 0) -+ current_term = term_table; /* we know that console is first */ - show_menu = 1; - goto restart; - } -@@ -1082,6 +1099,10 @@ - while (is_preset); - } - -+ /* go ahead and make sure the terminal is setup */ -+ if (current_term->startup) -+ (*current_term->startup)(); -+ - if (! num_entries) - { - /* If no acceptable config file, goto command-line, starting ---- grub-0.95/stage2/builtins.c.graphics 2004-06-18 17:35:52.370987312 -0400 -+++ grub-0.95/stage2/builtins.c 2004-06-18 17:35:52.482970288 -0400 -@@ -858,6 +858,138 @@ - }; - #endif /* SUPPORT_NETBOOT */ - -+static int terminal_func (char *arg, int flags); -+ -+#ifdef SUPPORT_GRAPHICS -+ -+static int splashimage_func(char *arg, int flags) { -+ char splashimage[64]; -+ int i; -+ -+ /* filename can only be 64 characters due to our buffer size */ -+ if (strlen(arg) > 63) -+ return 1; -+ if (flags == BUILTIN_CMDLINE) { -+ if (!grub_open(arg)) -+ return 1; -+ grub_close(); -+ } -+ -+ strcpy(splashimage, arg); -+ -+ /* get rid of TERM_NEED_INIT from the graphics terminal. */ -+ for (i = 0; term_table[i].name; i++) { -+ if (grub_strcmp (term_table[i].name, "graphics") == 0) { -+ term_table[i].flags &= ~TERM_NEED_INIT; -+ break; -+ } -+ } -+ -+ graphics_set_splash(splashimage); -+ -+ if (flags == BUILTIN_CMDLINE && graphics_inited) { -+ graphics_end(); -+ graphics_init(); -+ graphics_cls(); -+ } -+ -+ /* FIXME: should we be explicitly switching the terminal as a -+ * side effect here? */ -+ terminal_func("graphics", flags); -+ -+ return 0; -+} -+ -+static struct builtin builtin_splashimage = -+{ -+ "splashimage", -+ splashimage_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "splashimage FILE", -+ "Load FILE as the background image when in graphics mode." -+}; -+ -+ -+/* foreground */ -+static int -+foreground_func(char *arg, int flags) -+{ -+ if (grub_strlen(arg) == 6) { -+ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; -+ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; -+ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; -+ -+ foreground = (r << 16) | (g << 8) | b; -+ if (graphics_inited) -+ graphics_set_palette(15, r, g, b); -+ -+ return (0); -+ } -+ -+ return (1); -+} -+ -+static struct builtin builtin_foreground = -+{ -+ "foreground", -+ foreground_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "foreground RRGGBB", -+ "Sets the foreground color when in graphics mode." -+ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." -+}; -+ -+ -+/* background */ -+static int -+background_func(char *arg, int flags) -+{ -+ if (grub_strlen(arg) == 6) { -+ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; -+ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; -+ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; -+ -+ background = (r << 16) | (g << 8) | b; -+ if (graphics_inited) -+ graphics_set_palette(0, r, g, b); -+ return (0); -+ } -+ -+ return (1); -+} -+ -+static struct builtin builtin_background = -+{ -+ "background", -+ background_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "background RRGGBB", -+ "Sets the background color when in graphics mode." -+ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." -+}; -+ -+#endif /* SUPPORT_GRAPHICS */ -+ -+ -+/* clear */ -+static int -+clear_func() -+{ -+ if (current_term->cls) -+ current_term->cls(); -+ -+ return 0; -+} -+ -+static struct builtin builtin_clear = -+{ -+ "clear", -+ clear_func, -+ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -+ "clear", -+ "Clear the screen" -+}; -+ - - /* displayapm */ - static int -@@ -4090,7 +4222,7 @@ - }; - - --#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) -+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) - /* terminal */ - static int - terminal_func (char *arg, int flags) -@@ -4249,17 +4381,21 @@ - end: - current_term = term_table + default_term; - current_term->flags = term_flags; -- -+ - if (lines) - max_lines = lines; - else -- /* 24 would be a good default value. */ -- max_lines = 24; -- -+ max_lines = current_term->max_lines; -+ - /* If the interface is currently the command-line, - restart it to repaint the screen. */ -- if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) -+ if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){ -+ if (prev_term->shutdown) -+ prev_term->shutdown(); -+ if (current_term->startup) -+ current_term->startup(); - grub_longjmp (restart_cmdline_env, 0); -+ } - - return 0; - } -@@ -4269,7 +4405,7 @@ - "terminal", - terminal_func, - BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -- "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", -+ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]", - "Select a terminal. When multiple terminals are specified, wait until" - " you push any key to continue. If both console and serial are specified," - " the terminal to which you input a key first will be selected. If no" -@@ -4281,7 +4417,7 @@ - " seconds. The option --lines specifies the maximum number of lines." - " The option --silent is used to suppress messages." - }; --#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ -+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ - - - #ifdef SUPPORT_SERIAL -@@ -4809,6 +4945,9 @@ - /* The table of builtin commands. Sorted in dictionary order. */ - struct builtin *builtin_table[] = - { -+#ifdef SUPPORT_GRAPHICS -+ &builtin_background, -+#endif - &builtin_blocklist, - &builtin_boot, - #ifdef SUPPORT_NETBOOT -@@ -4816,6 +4955,7 @@ - #endif /* SUPPORT_NETBOOT */ - &builtin_cat, - &builtin_chainloader, -+ &builtin_clear, - &builtin_cmp, - &builtin_color, - &builtin_configfile, -@@ -4835,6 +4975,9 @@ - &builtin_embed, - &builtin_fallback, - &builtin_find, -+#ifdef SUPPORT_GRAPHICS -+ &builtin_foreground, -+#endif - &builtin_fstest, - &builtin_geometry, - &builtin_halt, -@@ -4878,9 +5021,12 @@ - #endif /* SUPPORT_SERIAL */ - &builtin_setkey, - &builtin_setup, --#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) -+#ifdef SUPPORT_GRAPHICS -+ &builtin_splashimage, -+#endif /* SUPPORT_GRAPHICS */ -+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) - &builtin_terminal, --#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ -+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ - #ifdef SUPPORT_SERIAL - &builtin_terminfo, - #endif /* SUPPORT_SERIAL */ ---- /dev/null 2004-02-23 16:02:56.000000000 -0500 -+++ grub-0.95/stage2/graphics.c 2004-06-18 17:35:52.488969376 -0400 -@@ -0,0 +1,552 @@ -+/* graphics.c - graphics mode support for GRUB */ -+/* Implemented as a terminal type by Jeremy Katz based -+ * on a patch by Paulo César Pereira de Andrade -+ */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2001,2002 Red Hat, Inc. -+ * Portions copyright (C) 2000 Conectiva, 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 2 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, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+ -+ -+#ifdef SUPPORT_GRAPHICS -+ -+#include -+#include -+#include -+ -+int saved_videomode; -+unsigned char *font8x16; -+ -+int graphics_inited = 0; -+static char splashimage[64]; -+ -+#define VSHADOW VSHADOW1 -+unsigned char VSHADOW1[38400]; -+unsigned char VSHADOW2[38400]; -+unsigned char VSHADOW4[38400]; -+unsigned char VSHADOW8[38400]; -+ -+/* constants to define the viewable area */ -+const int x0 = 0; -+const int x1 = 80; -+const int y0 = 0; -+const int y1 = 30; -+ -+/* text buffer has to be kept around so that we can write things as we -+ * scroll and the like */ -+unsigned short text[80 * 30]; -+ -+/* why do these have to be kept here? */ -+int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0; -+ -+/* current position */ -+static int fontx = 0; -+static int fonty = 0; -+ -+/* global state so that we don't try to recursively scroll or cursor */ -+static int no_scroll = 0; -+ -+/* color state */ -+static int graphics_standard_color = A_NORMAL; -+static int graphics_normal_color = A_NORMAL; -+static int graphics_highlight_color = A_REVERSE; -+static int graphics_current_color = A_NORMAL; -+static color_state graphics_color_state = COLOR_STATE_STANDARD; -+ -+ -+/* graphics local functions */ -+static void graphics_setxy(int col, int row); -+static void graphics_scroll(); -+ -+/* FIXME: where do these really belong? */ -+static inline void outb(unsigned short port, unsigned char val) -+{ -+ __asm __volatile ("outb %0,%1"::"a" (val), "d" (port)); -+} -+ -+static void MapMask(int value) { -+ outb(0x3c4, 2); -+ outb(0x3c5, value); -+} -+ -+/* bit mask register */ -+static void BitMask(int value) { -+ outb(0x3ce, 8); -+ outb(0x3cf, value); -+} -+ -+ -+ -+/* Set the splash image */ -+void graphics_set_splash(char *splashfile) { -+ grub_strcpy(splashimage, splashfile); -+} -+ -+/* Get the current splash image */ -+char *graphics_get_splash(void) { -+ return splashimage; -+} -+ -+/* Initialize a vga16 graphics display with the palette based off of -+ * the image in splashimage. If the image doesn't exist, leave graphics -+ * mode. */ -+int graphics_init() -+{ -+ if (!graphics_inited) { -+ saved_videomode = set_videomode(0x12); -+ } -+ -+ if (!read_image(splashimage)) { -+ set_videomode(saved_videomode); -+ grub_printf("failed to read image\n"); -+ return 0; -+ } -+ -+ font8x16 = (unsigned char*)graphics_get_font(); -+ -+ graphics_inited = 1; -+ -+ /* make sure that the highlight color is set correctly */ -+ graphics_highlight_color = ((graphics_normal_color >> 4) | -+ ((graphics_normal_color & 0xf) << 4)); -+ -+ return 1; -+} -+ -+/* Leave graphics mode */ -+void graphics_end(void) -+{ -+ if (graphics_inited) { -+ set_videomode(saved_videomode); -+ graphics_inited = 0; -+ } -+} -+ -+/* Print ch on the screen. Handle any needed scrolling or the like */ -+void graphics_putchar(int ch) { -+ ch &= 0xff; -+ -+ graphics_cursor(0); -+ -+ if (ch == '\n') { -+ if (fonty + 1 < y1) -+ graphics_setxy(fontx, fonty + 1); -+ else -+ graphics_scroll(); -+ graphics_cursor(1); -+ return; -+ } else if (ch == '\r') { -+ graphics_setxy(x0, fonty); -+ graphics_cursor(1); -+ return; -+ } -+ -+ graphics_cursor(0); -+ -+ text[fonty * 80 + fontx] = ch; -+ text[fonty * 80 + fontx] &= 0x00ff; -+ if (graphics_current_color & 0xf0) -+ text[fonty * 80 + fontx] |= 0x100; -+ -+ graphics_cursor(0); -+ -+ if ((fontx + 1) >= x1) { -+ graphics_setxy(x0, fonty); -+ if (fonty + 1 < y1) -+ graphics_setxy(x0, fonty + 1); -+ else -+ graphics_scroll(); -+ } else { -+ graphics_setxy(fontx + 1, fonty); -+ } -+ -+ graphics_cursor(1); -+} -+ -+/* get the current location of the cursor */ -+int graphics_getxy(void) { -+ return (fontx << 8) | fonty; -+} -+ -+void graphics_gotoxy(int x, int y) { -+ graphics_cursor(0); -+ -+ graphics_setxy(x, y); -+ -+ graphics_cursor(1); -+} -+ -+void graphics_cls(void) { -+ int i; -+ unsigned char *mem, *s1, *s2, *s4, *s8; -+ -+ graphics_cursor(0); -+ graphics_gotoxy(x0, y0); -+ -+ mem = (unsigned char*)VIDEOMEM; -+ s1 = (unsigned char*)VSHADOW1; -+ s2 = (unsigned char*)VSHADOW2; -+ s4 = (unsigned char*)VSHADOW4; -+ s8 = (unsigned char*)VSHADOW8; -+ -+ for (i = 0; i < 80 * 30; i++) -+ text[i] = ' '; -+ graphics_cursor(1); -+ -+ BitMask(0xff); -+ -+ /* plano 1 */ -+ MapMask(1); -+ grub_memcpy(mem, s1, 38400); -+ -+ /* plano 2 */ -+ MapMask(2); -+ grub_memcpy(mem, s2, 38400); -+ -+ /* plano 3 */ -+ MapMask(4); -+ grub_memcpy(mem, s4, 38400); -+ -+ /* plano 4 */ -+ MapMask(8); -+ grub_memcpy(mem, s8, 38400); -+ -+ MapMask(15); -+ -+} -+ -+void graphics_setcolorstate (color_state state) { -+ switch (state) { -+ case COLOR_STATE_STANDARD: -+ graphics_current_color = graphics_standard_color; -+ break; -+ case COLOR_STATE_NORMAL: -+ graphics_current_color = graphics_normal_color; -+ break; -+ case COLOR_STATE_HIGHLIGHT: -+ graphics_current_color = graphics_highlight_color; -+ break; -+ default: -+ graphics_current_color = graphics_standard_color; -+ break; -+ } -+ -+ graphics_color_state = state; -+} -+ -+void graphics_setcolor (int normal_color, int highlight_color) { -+ graphics_normal_color = normal_color; -+ graphics_highlight_color = highlight_color; -+ -+ graphics_setcolorstate (graphics_color_state); -+} -+ -+void graphics_setcursor (int on) { -+ /* FIXME: we don't have a cursor in graphics */ -+ return; -+} -+ -+/* Read in the splashscreen image and set the palette up appropriately. -+ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and -+ * 640x480. */ -+int read_image(char *s) -+{ -+ char buf[32], pal[16]; -+ unsigned char c, base, mask, *s1, *s2, *s4, *s8; -+ unsigned i, len, idx, colors, x, y, width, height; -+ -+ if (!grub_open(s)) -+ return 0; -+ -+ /* read header */ -+ if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { -+ grub_close(); -+ return 0; -+ } -+ -+ /* parse info */ -+ while (grub_read(&c, 1)) { -+ if (c == '"') -+ break; -+ } -+ -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ i = 0; -+ width = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ width = width * 10 + c - '0'; -+ else -+ break; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ height = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ height = height * 10 + c - '0'; -+ else -+ break; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ colors = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ colors = colors * 10 + c - '0'; -+ else -+ break; -+ } -+ -+ base = 0; -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ -+ /* palette */ -+ for (i = 0, idx = 1; i < colors; i++) { -+ len = 0; -+ -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ grub_read(&c, 1); /* char */ -+ base = c; -+ grub_read(buf, 4); /* \t c # */ -+ -+ while (grub_read(&c, 1) && c != '"') { -+ if (len < sizeof(buf)) -+ buf[len++] = c; -+ } -+ -+ if (len == 6 && idx < 15) { -+ int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2; -+ int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2; -+ int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2; -+ -+ pal[idx] = base; -+ graphics_set_palette(idx, r, g, b); -+ ++idx; -+ } -+ } -+ -+ x = y = len = 0; -+ -+ s1 = (unsigned char*)VSHADOW1; -+ s2 = (unsigned char*)VSHADOW2; -+ s4 = (unsigned char*)VSHADOW4; -+ s8 = (unsigned char*)VSHADOW8; -+ -+ for (i = 0; i < 38400; i++) -+ s1[i] = s2[i] = s4[i] = s8[i] = 0; -+ -+ /* parse xpm data */ -+ while (y < height) { -+ while (1) { -+ if (!grub_read(&c, 1)) { -+ grub_close(); -+ return 0; -+ } -+ if (c == '"') -+ break; -+ } -+ -+ while (grub_read(&c, 1) && c != '"') { -+ for (i = 1; i < 15; i++) -+ if (pal[i] == c) { -+ c = i; -+ break; -+ } -+ -+ mask = 0x80 >> (x & 7); -+ if (c & 1) -+ s1[len + (x >> 3)] |= mask; -+ if (c & 2) -+ s2[len + (x >> 3)] |= mask; -+ if (c & 4) -+ s4[len + (x >> 3)] |= mask; -+ if (c & 8) -+ s8[len + (x >> 3)] |= mask; -+ -+ if (++x >= 640) { -+ x = 0; -+ -+ if (y < 480) -+ len += 80; -+ ++y; -+ } -+ } -+ } -+ -+ grub_close(); -+ -+ graphics_set_palette(0, (background >> 16), (background >> 8) & 63, -+ background & 63); -+ graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, -+ foreground & 63); -+ graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, -+ border & 63); -+ -+ return 1; -+} -+ -+ -+/* Convert a character which is a hex digit to the appropriate integer */ -+int hex(int v) -+{ -+ if (v >= 'A' && v <= 'F') -+ return (v - 'A' + 10); -+ if (v >= 'a' && v <= 'f') -+ return (v - 'a' + 10); -+ return (v - '0'); -+} -+ -+ -+/* move the graphics cursor location to col, row */ -+static void graphics_setxy(int col, int row) { -+ if (col >= x0 && col < x1) { -+ fontx = col; -+ cursorX = col << 3; -+ } -+ if (row >= y0 && row < y1) { -+ fonty = row; -+ cursorY = row << 4; -+ } -+} -+ -+/* scroll the screen */ -+static void graphics_scroll() { -+ int i, j; -+ -+ /* we don't want to scroll recursively... that would be bad */ -+ if (no_scroll) -+ return; -+ no_scroll = 1; -+ -+ /* move everything up a line */ -+ for (j = y0 + 1; j < y1; j++) { -+ graphics_gotoxy(x0, j - 1); -+ for (i = x0; i < x1; i++) { -+ graphics_putchar(text[j * 80 + i]); -+ } -+ } -+ -+ /* last line should be blank */ -+ graphics_gotoxy(x0, y1 - 1); -+ for (i = x0; i < x1; i++) -+ graphics_putchar(' '); -+ graphics_setxy(x0, y1 - 1); -+ -+ no_scroll = 0; -+} -+ -+ -+void graphics_cursor(int set) { -+ unsigned char *pat, *mem, *ptr, chr[16 << 2]; -+ int i, ch, invert, offset; -+ -+ if (set && no_scroll) -+ return; -+ -+ offset = cursorY * 80 + fontx; -+ ch = text[fonty * 80 + fontx] & 0xff; -+ invert = (text[fonty * 80 + fontx] & 0xff00) != 0; -+ pat = font8x16 + (ch << 4); -+ -+ mem = (unsigned char*)VIDEOMEM + offset; -+ -+ if (!set) { -+ for (i = 0; i < 16; i++) { -+ unsigned char mask = pat[i]; -+ -+ if (!invert) { -+ chr[i ] = ((unsigned char*)VSHADOW1)[offset]; -+ chr[16 + i] = ((unsigned char*)VSHADOW2)[offset]; -+ chr[32 + i] = ((unsigned char*)VSHADOW4)[offset]; -+ chr[48 + i] = ((unsigned char*)VSHADOW8)[offset]; -+ -+ /* FIXME: if (shade) */ -+ if (1) { -+ if (ch == DISP_VERT || ch == DISP_LL || -+ ch == DISP_UR || ch == DISP_LR) { -+ unsigned char pmask = ~(pat[i] >> 1); -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ } -+ if (i > 0 && ch != DISP_VERT) { -+ unsigned char pmask = ~(pat[i - 1] >> 1); -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) { -+ pmask = ~pat[i - 1]; -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ } -+ } -+ } -+ chr[i ] |= mask; -+ chr[16 + i] |= mask; -+ chr[32 + i] |= mask; -+ chr[48 + i] |= mask; -+ -+ offset += 80; -+ } -+ else { -+ chr[i ] = mask; -+ chr[16 + i] = mask; -+ chr[32 + i] = mask; -+ chr[48 + i] = mask; -+ } -+ } -+ } -+ else { -+ MapMask(15); -+ ptr = mem; -+ for (i = 0; i < 16; i++, ptr += 80) { -+ cursorBuf[i] = pat[i]; -+ *ptr = ~pat[i]; -+ } -+ return; -+ } -+ -+ offset = 0; -+ for (i = 1; i < 16; i <<= 1, offset += 16) { -+ int j; -+ -+ MapMask(i); -+ ptr = mem; -+ for (j = 0; j < 16; j++, ptr += 80) -+ *ptr = chr[j + offset]; -+ } -+ -+ MapMask(15); -+} -+ -+#endif /* SUPPORT_GRAPHICS */ ---- grub-0.95/stage2/Makefile.am.graphics 2004-06-13 13:57:27.000000000 -0400 -+++ grub-0.95/stage2/Makefile.am 2004-06-18 17:36:58.289966104 -0400 -@@ -7,7 +7,7 @@ - fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ - imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ - nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ -- terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h -+ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h - EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) - - # For . -@@ -19,7 +19,7 @@ - disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ - fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ - fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ -- terminfo.c tparm.c -+ terminfo.c tparm.c graphics.c - libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ - -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ -@@ -80,8 +80,14 @@ - HERCULES_FLAGS = - endif - -+if GRAPHICS_SUPPORT -+GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 -+else -+GRAPHICS_FLAGS = -+endif -+ - STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) -+ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) - - STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 - STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 -@@ -91,7 +97,8 @@ - cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ - fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ - fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ -- hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c -+ hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \ -+ graphics.c - pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) ---- grub-0.95/stage2/term.h.graphics 2003-07-09 07:45:53.000000000 -0400 -+++ grub-0.95/stage2/term.h 2004-06-18 17:35:52.496968160 -0400 -@@ -60,6 +60,8 @@ - const char *name; - /* The feature flags defined above. */ - unsigned long flags; -+ /* Default for maximum number of lines if not specified */ -+ unsigned short max_lines; - /* Put a character. */ - void (*putchar) (int c); - /* Check if any input character is available. */ -@@ -79,6 +81,11 @@ - void (*setcolor) (int normal_color, int highlight_color); - /* Turn on/off the cursor. */ - int (*setcursor) (int on); -+ -+ /* function to start a terminal */ -+ int (*startup) (void); -+ /* function to use to shutdown a terminal */ -+ void (*shutdown) (void); - }; - - /* This lists up available terminals. */ -@@ -124,4 +131,23 @@ - int hercules_setcursor (int on); - #endif - -+#ifdef SUPPORT_GRAPHICS -+extern int foreground, background, border, graphics_inited; -+ -+void graphics_set_splash(char *splashfile); -+int set_videomode (int mode); -+void graphics_putchar (int c); -+int graphics_getxy(void); -+void graphics_gotoxy(int x, int y); -+void graphics_cls(void); -+void graphics_setcolorstate (color_state state); -+void graphics_setcolor (int normal_color, int highlight_color); -+void graphics_setcursor (int on); -+int graphics_init(void); -+void graphics_end(void); -+ -+int hex(int v); -+void graphics_set_palette(int idx, int red, int green, int blue); -+#endif /* SUPPORT_GRAPHICS */ -+ - #endif /* ! GRUB_TERM_HEADER */ ---- /dev/null 2004-02-23 16:02:56.000000000 -0500 -+++ grub-0.95/stage2/graphics.h 2004-06-18 17:35:52.490969072 -0400 -@@ -0,0 +1,42 @@ -+/* graphics.h - graphics console interface */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002 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 2 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, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifndef GRAPHICS_H -+#define GRAPHICS_H -+ -+/* magic constant */ -+#define VIDEOMEM 0xA0000 -+ -+/* function prototypes */ -+char *graphics_get_splash(void); -+ -+int read_image(char *s); -+void graphics_cursor(int set); -+ -+/* function prototypes for asm functions */ -+void * graphics_get_font(); -+void graphics_set_palette(int idx, int red, int green, int blue); -+void set_int1c_handler(); -+void unset_int1c_handler(); -+ -+extern short cursorX, cursorY; -+extern char cursorBuf[16]; -+ -+#endif /* GRAPHICS_H */ ---- grub-0.95/stage2/shared.h.graphics 2004-06-18 17:35:52.372987008 -0400 -+++ grub-0.95/stage2/shared.h 2004-06-18 17:35:52.492968768 -0400 -@@ -873,6 +873,7 @@ - int grub_tolower (int c); - int grub_isspace (int c); - int grub_strncat (char *s1, const char *s2, int n); -+void grub_memcpy(void *dest, const void *src, int len); - void *grub_memmove (void *to, const void *from, int len); - void *grub_memset (void *start, int c, int len); - int grub_strncat (char *s1, const char *s2, int n); ---- grub-0.95/stage2/char_io.c.graphics 2004-05-23 12:45:43.000000000 -0400 -+++ grub-0.95/stage2/char_io.c 2004-06-18 17:35:52.485969832 -0400 -@@ -35,6 +35,7 @@ - { - "console", - 0, -+ 24, - console_putchar, - console_checkkey, - console_getkey, -@@ -43,13 +44,16 @@ - console_cls, - console_setcolorstate, - console_setcolor, -- console_setcursor -+ console_setcursor, -+ 0, -+ 0 - }, - #ifdef SUPPORT_SERIAL - { - "serial", - /* A serial device must be initialized. */ - TERM_NEED_INIT, -+ 24, - serial_putchar, - serial_checkkey, - serial_getkey, -@@ -58,6 +62,8 @@ - serial_cls, - serial_setcolorstate, - 0, -+ 0, -+ 0, - 0 - }, - #endif /* SUPPORT_SERIAL */ -@@ -65,6 +71,7 @@ - { - "hercules", - 0, -+ 24, - hercules_putchar, - console_checkkey, - console_getkey, -@@ -73,9 +80,28 @@ - hercules_cls, - hercules_setcolorstate, - hercules_setcolor, -- hercules_setcursor -+ hercules_setcursor, -+ 0, -+ 0 - }, - #endif /* SUPPORT_HERCULES */ -+#ifdef SUPPORT_GRAPHICS -+ { "graphics", -+ TERM_NEED_INIT, /* flags */ -+ 30, /* number of lines */ -+ graphics_putchar, /* putchar */ -+ console_checkkey, /* checkkey */ -+ console_getkey, /* getkey */ -+ graphics_getxy, /* getxy */ -+ graphics_gotoxy, /* gotoxy */ -+ graphics_cls, /* cls */ -+ graphics_setcolorstate, /* setcolorstate */ -+ graphics_setcolor, /* setcolor */ -+ graphics_setcursor, /* nocursor */ -+ graphics_init, /* initialize */ -+ graphics_end /* shutdown */ -+ }, -+#endif /* SUPPORT_GRAPHICS */ - /* This must be the last entry. */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } - }; -@@ -1046,13 +1072,15 @@ - the following grub_printf call will print newlines. */ - count_lines = -1; - -+ grub_printf("\n"); - if (current_term->setcolorstate) - current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); - -- grub_printf ("\n[Hit return to continue]"); -+ grub_printf ("[Hit return to continue]"); - - if (current_term->setcolorstate) - current_term->setcolorstate (COLOR_STATE_NORMAL); -+ - - do - { -@@ -1090,7 +1118,7 @@ - cls (void) - { - /* If the terminal is dumb, there is no way to clean the terminal. */ -- if (current_term->flags & TERM_DUMB) -+ if (current_term->flags & TERM_DUMB) - grub_putchar ('\n'); - else - current_term->cls (); -@@ -1214,6 +1242,16 @@ - return ! errnum; - } - -+void -+grub_memcpy(void *dest, const void *src, int len) -+{ -+ int i; -+ register char *d = (char*)dest, *s = (char*)src; -+ -+ for (i = 0; i < len; i++) -+ d[i] = s[i]; -+} -+ - void * - grub_memmove (void *to, const void *from, int len) - { ---- grub-0.95/configure.ac.graphics 2004-06-18 17:35:52.211011632 -0400 -+++ grub-0.95/configure.ac 2004-06-18 17:35:52.498967856 -0400 -@@ -595,6 +595,11 @@ - [ --enable-diskless enable diskless support]) - AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes) - -+dnl Graphical splashscreen support -+AC_ARG_ENABLE(graphics, -+ [ --disable-graphics disable graphics terminal support]) -+AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno) -+ - dnl Hercules terminal - AC_ARG_ENABLE(hercules, - [ --disable-hercules disable hercules terminal support]) diff --git a/src/patches/grub-0.95-hiddenmenu-tweak.patch b/src/patches/grub-0.95-hiddenmenu-tweak.patch deleted file mode 100644 index 56fb083e7d..0000000000 --- a/src/patches/grub-0.95-hiddenmenu-tweak.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- grub-0.95/stage2/stage2.c.hidden 2004-09-30 16:39:38.028893664 -0400 -+++ grub-0.95/stage2/stage2.c 2004-09-30 16:42:07.981097464 -0400 -@@ -235,6 +235,8 @@ - char *cur_entry = 0; - struct term_entry *prev_term = NULL; - -+ cls(); -+ - /* - * Main loop for menu UI. - */ -@@ -262,14 +264,16 @@ - /* Get current time. */ - while ((time1 = getrtsecs ()) == 0xFF) - ; -+ grub_printf("\rPress any key to enter the menu\n\n\n"); - - while (1) - { - /* Check if ESC is pressed. */ -- if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e') -+ if (checkkey () != -1) - { - grub_timeout = -1; - show_menu = 1; -+ getkey (); - break; - } - -@@ -288,7 +292,8 @@ - grub_timeout--; - - /* Print a message. */ -- grub_printf ("\rPress `ESC' to enter the menu... %d ", -+ grub_printf ("\rBooting %s in %d seconds...", -+ get_entry(menu_entries, first_entry + entryno, 0), - grub_timeout); - } - } diff --git a/src/patches/grub-0.95-md-mbr.patch b/src/patches/grub-0.95-md-mbr.patch deleted file mode 100644 index 1aaa3e9ff2..0000000000 --- a/src/patches/grub-0.95-md-mbr.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- grub-0.95/util/grub-install.in.md-mbr 2005-02-20 17:56:48.000000000 -0500 -+++ grub-0.95/util/grub-install.in 2005-02-20 17:57:12.000000000 -0500 -@@ -444,7 +444,7 @@ - /dev/*) - install_device=`resolve_symlink "$install_device"` - for install_drive in `find_real_devs $install_device` ; do -- install_drive=`convert $install_drive` -+ install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'` - if [ "x$install_drive" = "x" ]; then - exit 1 - fi diff --git a/src/patches/grub-0.95-md-rework.patch b/src/patches/grub-0.95-md-rework.patch deleted file mode 100644 index cff1977d2f..0000000000 --- a/src/patches/grub-0.95-md-rework.patch +++ /dev/null @@ -1,183 +0,0 @@ ---- grub-0.95/util/grub-install.in.md2 2005-01-03 14:49:18.133866107 -0500 -+++ grub-0.95/util/grub-install.in 2005-01-03 16:35:44.923732271 -0500 -@@ -35,6 +35,7 @@ - rootdir= - grub_prefix=/boot/grub - -+install_drives= - install_device= - no_floppy= - force_lba= -@@ -272,6 +273,30 @@ - done - } - -+ -+dump_boot_block () { -+ sync -+ $grub_shell --batch $no_floppy --device-map=$device_map <$log_file -+dump ${root_drive}${tmp} ${img_file} -+quit -+EOF -+} -+ -+ -+install_boot_block () { -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync -+ -+ # Now perform the installation. -+ $grub_shell --batch $no_floppy --device-map=$device_map <>$log_file -+root $1 -+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2 -+quit -+EOF -+} -+ -+ - # Check the arguments. - for option in "$@"; do - case "$option" in -@@ -416,28 +441,32 @@ - # Check for INSTALL_DEVICE. - case "$install_device" in - /dev/*) -- # If we are running md on a Linux box, just use the first physical device -- # at this point. - install_device=`resolve_symlink "$install_device"` -- install_device=`find_real_devs $install_device | awk '{print $1}'` -- -- install_drive=`convert "$install_device"` -- # I don't know why, but some shells wouldn't die if exit is -- # called in a function. -- if test "x$install_drive" = x; then -+ for install_drive in `find_real_devs $install_device` ; do -+ install_drive=`convert $install_drive` -+ if [ "x$install_drive" = "x" ]; then -+ exit 1 -+ fi -+ install_drives="${install_drives} ${install_drive}" -+ done -+ unset install_drive -+ -+ if test "x$install_drives" = x ; then - exit 1 - fi ;; - \([hf]d[0-9]*\)) -- install_drive="$install_device" ;; -+ install_drives="$install_device" ;; - [hf]d[0-9]*) - # The GRUB format with no parenthesis. -- install_drive="($install_device)" ;; -+ install_drives="($install_device)" ;; - *) - echo "Format of install_device not recognized." 1>&2 - usage - exit 1 ;; - esac - -+unset install_device -+ - # Get the root drive. - root_device=`find_device ${rootdir}` - bootdir_device=`find_device ${bootdir}` -@@ -465,41 +494,39 @@ - test -n "$mkimg" && img_file=`$mkimg` - test -n "$mklog" && log_file=`$mklog` - --for real_device in `find_real_devs $root_device`; do -- # Convert the root deviceto a GRUB drive. -- root_drive=`convert "$real_device"` -- if [ "x$root_drive" = x ]; then -- exit 1 -- fi -+# There's not a real root device, so just pick the first -+if is_raid1_device $root_device ; then -+ root_device=`find_real_devs $root_device | awk '{print $1}'` -+fi - -- for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- count=5 -- tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -- while test $count -gt 0; do -- sync -- $grub_shell --batch $no_floppy --device-map=$device_map \ -- <$log_file --dump ${root_drive}${tmp} ${img_file} --quit --EOF -- if grep "Error [0-9]*: " $log_file >/dev/null; then -- : -- elif cmp $file $img_file >/dev/null; then -- break -- fi -- sleep 1 -- count=`expr $count - 1` -- done -- if test $count -eq 0; then -- echo "The file $file not read correctly." 1>&2 -- exit 1 -- fi -- done -+# Convert the root deviceto a GRUB drive. -+root_drive=`convert "$root_device"` -+if [ "x$root_drive" = x ]; then -+ exit 1 -+fi - -- rm -f $img_file -- rm -f $log_file -+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ count=5 -+ tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -+ while test $count -gt 0; do -+ dump_boot_block $root_drive $img_file -+ if grep "Error [0-9]*: " $log_file >/dev/null; then -+ : -+ elif cmp $file $img_file >/dev/null; then -+ break -+ fi -+ sleep 1 -+ count=`expr $count - 1` -+ done -+ if test $count -eq 0; then -+ echo "The file $file not read correctly." 1>&2 -+ exit 1 -+ fi - done - -+rm -f $img_file -+rm -f $log_file -+ - if ! test -e ${grubdir}/grub.conf ; then - test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf - fi -@@ -507,24 +534,13 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - --for real_device in `find_real_devs $root_device`; do -+for install_drive in $install_drives; do - # Convert the root deviceto a GRUB drive. -- root_drive=`convert "$real_device"` -+ root_drive=`convert "$root_device"` - if [ "x$root_drive" = x ]; then - exit 1 - fi -- -- # Before all invocations of the grub shell, call sync to make sure -- # the raw device is in sync with any bufferring in filesystems. -- sync -- -- # Now perform the installation. -- $grub_shell --batch $no_floppy --device-map=$device_map <>$log_file --root $root_drive --setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive --quit --EOF -- -+ install_boot_block $root_drive $install_drive - done - - if grep "Error [0-9]*: " $log_file >/dev/null ; then diff --git a/src/patches/grub-0.95-md.patch b/src/patches/grub-0.95-md.patch deleted file mode 100644 index 9e4ff895c5..0000000000 --- a/src/patches/grub-0.95-md.patch +++ /dev/null @@ -1,183 +0,0 @@ ---- grub-0.95/util/grub-install.in.support_md 2004-12-17 17:50:45.000000000 -0500 -+++ grub-0.95/util/grub-install.in 2004-12-19 19:19:20.509409160 -0500 -@@ -207,6 +207,43 @@ - echo "$tmp_fname" - } - -+# Usage: is_raid1_device devicename -+# Returns 0 if devicename is a raid1 md device, 1 if it is not. -+is_raid1_device () { -+ case "$host_os" in -+ linux*) -+ level=`mdadm --query --detail $1 2>/dev/null | \ -+ awk '/Raid Level :/ {print $4}'` -+ if [ "$level" = "raid1" ]; then -+ return 0 -+ fi -+ ;; -+ esac -+ return 1 -+} -+ -+# Usage: find_real_devs device -+# Returns space separated list of devices for linux if device is -+# a raid1 device. In all other cases, the provided value is returned. -+find_real_devs () { -+ source_device=$1 -+ case "$host_os" in -+ linux*) -+ if is_raid1_device $source_device ; then -+ list="" -+ for device in `mdadm --query --detail "${source_device}" | \ -+ awk '/\/dev\/[^(md)]/ {print $7}'` ; do -+ list="$list $device" -+ done -+ echo $list -+ return 0 -+ fi -+ ;; -+ esac -+ echo $source_device -+ return 0 -+} -+ - # Usage: find_device file - # Find block device on which the file resides. - find_device () { -@@ -219,7 +256,7 @@ - exit 1 - fi - -- tmp_fname=`resolve_symlink $tmp_fname` -+ tmp_fname=`resolve_symlink $tmp_fname` - - echo "$tmp_fname" - } -@@ -379,7 +416,11 @@ - # Check for INSTALL_DEVICE. - case "$install_device" in - /dev/*) -+ # If we are running md on a Linux box, just use the first physical device -+ # at this point. - install_device=`resolve_symlink "$install_device"` -+ install_device=`find_real_devs $install_device | awk '{print $1}'` -+ - install_drive=`convert "$install_device"` - # I don't know why, but some shells wouldn't die if exit is - # called in a function. -@@ -408,14 +449,7 @@ - grub_prefix="/grub" - fi - --# Convert the root device to a GRUB drive. --root_drive=`convert "$root_device"` --if test "x$root_drive" = x; then -- exit 1 --fi -- --# Check if the root directory exists in the same device as the grub --# directory. -+# Check if the root directory exists in the same device as the grub directory. - grubdir_device=`find_device ${grubdir}` - - if test "x$grubdir_device" != "x$root_device"; then -@@ -431,30 +465,40 @@ - test -n "$mkimg" && img_file=`$mkimg` - test -n "$mklog" && log_file=`$mklog` - --for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- count=5 -- tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -- while test $count -gt 0; do -- $grub_shell --batch $no_floppy --device-map=$device_map <$log_file -+for real_device in `find_real_devs $root_device`; do -+ # Convert the root deviceto a GRUB drive. -+ root_drive=`convert "$real_device"` -+ if [ "x$root_drive" = x ]; then -+ exit 1 -+ fi -+ -+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ count=5 -+ tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` -+ while test $count -gt 0; do -+ sync -+ $grub_shell --batch $no_floppy --device-map=$device_map \ -+ <$log_file - dump ${root_drive}${tmp} ${img_file} - quit - EOF -- if grep "Error [0-9]*: " $log_file >/dev/null; then -- : -- elif cmp $file $img_file >/dev/null; then -- break -+ if grep "Error [0-9]*: " $log_file >/dev/null; then -+ : -+ elif cmp $file $img_file >/dev/null; then -+ break -+ fi -+ sleep 1 -+ count=`expr $count - 1` -+ done -+ if test $count -eq 0; then -+ echo "The file $file not read correctly." 1>&2 -+ exit 1 - fi -- sleep 1 -- count=`expr $count - 1` - done -- if test $count -eq 0; then -- echo "The file $file not read correctly." 1>&2 -- exit 1 -- fi --done - --rm -f $img_file --rm -f $log_file -+ rm -f $img_file -+ rm -f $log_file -+done - - if ! test -e ${grubdir}/grub.conf ; then - test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf -@@ -463,21 +507,33 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - --# Before all invocations of the grub shell, call sync to make sure --# the raw device is in sync with any bufferring in filesystems. --sync -+for real_device in `find_real_devs $root_device`; do -+ # Convert the root deviceto a GRUB drive. -+ root_drive=`convert "$real_device"` -+ if [ "x$root_drive" = x ]; then -+ exit 1 -+ fi -+ -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync - --# Now perform the installation. --$grub_shell --batch $no_floppy --device-map=$device_map <$log_file -+ # Now perform the installation. -+ $grub_shell --batch $no_floppy --device-map=$device_map <>$log_file - root $root_drive --setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive -+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive - quit - EOF - --if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then -+done -+ -+if grep "Error [0-9]*: " $log_file >/dev/null ; then - cat $log_file 1>&2 - exit 1 - fi -+if test $debug = yes; then -+ cat $log_file 1>&2 -+fi - - rm -f $log_file - diff --git a/src/patches/grub-0.95-moreraid.patch b/src/patches/grub-0.95-moreraid.patch deleted file mode 100644 index 39db23474b..0000000000 --- a/src/patches/grub-0.95-moreraid.patch +++ /dev/null @@ -1,100 +0,0 @@ ---- grub-0.95/lib/device.c.moreraid 2004-11-30 17:09:36.736099360 -0500 -+++ grub-0.95/lib/device.c 2004-11-30 17:12:17.319686944 -0500 -@@ -544,6 +544,17 @@ - } - - static void -+get_cciss_disk_name (char * name, int controller, int drive) -+{ -+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); -+} -+ -+static void -+get_cpqarray_disk_name (char * name, int controller, int drive) -+{ -+ sprintf (name, "/dev/ida/c%dd%d", controller, drive); -+} -+static void - get_ataraid_disk_name (char *name, int unit) - { - sprintf (name, "/dev/ataraid/d%c", unit + '0'); -@@ -920,7 +931,7 @@ - - for (controller = 0; controller < 8; controller++) - { -- for (drive = 0; drive < 15; drive++) -+ for (drive = 0; drive < 32; drive++) - { - char name[24]; - -@@ -940,6 +951,70 @@ - } - } - #endif /* __linux__ */ -+ -+#ifdef __linux__ -+ /* This is for cciss - we have -+ /dev/cciss/cdp. -+ -+ cciss driver currently supports up to 8 controllers, 16 logical -+ drives, and 7 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_cciss_disk_name (name, controller, drive); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ } -+ } -+#endif /* __linux__ */ -+ -+#ifdef __linux__ -+ /* This is for cpqarray - we have -+ /dev/ida/cdp. -+ -+ cpqarray driver currently supports up to 8 controllers, 16 logical -+ drives, and 15 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_cpqarray_disk_name (name, controller, drive); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ } -+ } -+#endif /* __linux__ */ - - /* OK, close the device map file if opened. */ - if (fp) diff --git a/src/patches/grub-0.95-nonmbr.patch b/src/patches/grub-0.95-nonmbr.patch deleted file mode 100644 index 35bd5f3b30..0000000000 --- a/src/patches/grub-0.95-nonmbr.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- grub-0.95/util/grub-install.in.nonmbr 2005-03-16 10:02:50.000000000 -0500 -+++ grub-0.95/util/grub-install.in 2005-03-16 10:02:13.000000000 -0500 -@@ -444,7 +444,10 @@ - /dev/*) - install_device=`resolve_symlink "$install_device"` - for install_drive in `find_real_devs $install_device` ; do -- install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'` -+ install_drive=`convert $install_drive` -+ if is_raid1_device $install_device; then -+ install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'` -+ fi - if [ "x$install_drive" = "x" ]; then - exit 1 - fi diff --git a/src/patches/grub-0.95-odirect.patch b/src/patches/grub-0.95-odirect.patch deleted file mode 100644 index 12dd9d9794..0000000000 --- a/src/patches/grub-0.95-odirect.patch +++ /dev/null @@ -1,115 +0,0 @@ ---- grub-0.95/grub/asmstub.c.odirect 2004-11-30 16:58:06.577019488 -0500 -+++ grub-0.95/grub/asmstub.c 2004-11-30 16:59:56.057375944 -0500 -@@ -53,6 +53,9 @@ - # ifndef BLKFLSBUF - # define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */ - # endif /* ! BLKFLSBUF */ -+# ifndef O_DIRECT -+# define O_DIRECT 040000 -+# endif /* ! O_DIRECT */ - #endif /* __linux__ */ - - /* We want to prevent any circularararity in our stubs, as well as -@@ -764,7 +767,7 @@ - { - /* The unpartitioned device name: /dev/XdX */ - char *devname = device_map[drive]; -- char buf[512]; -+ char * buf, * buf_unaligned; - - if (! devname) - return -1; -@@ -775,13 +778,13 @@ - - /* Open read/write, or read-only if that failed. */ - if (! read_only) -- disks[drive].flags = open (devname, O_RDWR); -+ disks[drive].flags = open (devname, O_RDWR | O_DIRECT); - - if (disks[drive].flags == -1) - { - if (read_only || errno == EACCES || errno == EROFS || errno == EPERM) - { -- disks[drive].flags = open (devname, O_RDONLY); -+ disks[drive].flags = open (devname, O_RDONLY | O_DIRECT); - if (disks[drive].flags == -1) - { - assign_device_name (drive, 0); -@@ -795,6 +798,10 @@ - } - } - -+ buf_unaligned = malloc((512 * sizeof(char)) + 4095); -+ buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ - /* Attempt to read the first sector. */ - if (read (disks[drive].flags, buf, 512) != 512) - { -@@ -806,6 +813,7 @@ - - if (disks[drive].flags != -1) - get_drive_geometry (&disks[drive], device_map, drive); -+ free(buf_unaligned); - } - - if (disks[drive].flags == -1) -@@ -827,24 +835,34 @@ - nread (int fd, char *buf, size_t len) - { - int size = len; -+ char * buf_unaligned, * buff, * obuff; -+ int ret; -+ -+ buf_unaligned = malloc((len * sizeof(char)) + 4095); -+ obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ - - while (len) - { -- int ret = read (fd, buf, len); -+ ret = read (fd, buff, len); - - if (ret <= 0) - { - if (errno == EINTR) - continue; - else -- return ret; -+ break; - } - - len -= ret; -- buf += ret; -+ buff += ret; - } - -- return size; -+ if (!len) ret = size; -+ -+ buf = memcpy(buf, obuff, size); -+ return ret; - } - - /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an -@@ -853,10 +871,18 @@ - nwrite (int fd, char *buf, size_t len) - { - int size = len; -+ char * buf_unaligned, * buff; -+ -+ buf_unaligned = malloc((len * sizeof(char)) + 4095); -+ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); - - while (len) - { -- int ret = write (fd, buf, len); -+ int ret; -+ -+ memcpy(buff, buf, len); -+ ret = write (fd, buff, len); - - if (ret <= 0) - { diff --git a/src/patches/grub-0.95-recheck-bad.patch b/src/patches/grub-0.95-recheck-bad.patch deleted file mode 100644 index b55c6aec14..0000000000 --- a/src/patches/grub-0.95-recheck-bad.patch +++ /dev/null @@ -1,83 +0,0 @@ ---- grub-0.95/docs/grub.texi.recheck-bad 2005-07-25 17:55:57.000000000 -0400 -+++ grub-0.95/docs/grub.texi 2005-07-25 17:58:00.000000000 -0400 -@@ -3417,8 +3417,9 @@ - - @item --recheck - Recheck the device map, even if @file{/boot/grub/device.map} already --exists. You should use this option whenever you add/remove a disk --into/from your computer. -+exists. -+ -+This option is unreliable and its use is strongly discouraged. - @end table - - ---- grub-0.95/util/grub-install.in.recheck-bad 2005-07-25 17:58:19.000000000 -0400 -+++ grub-0.95/util/grub-install.in 2005-07-25 18:05:14.000000000 -0400 -@@ -68,6 +68,8 @@ - --force-lba force GRUB to use LBA mode even for a buggy - BIOS - --recheck probe a device map even if it already exists -+ This flag is unreliable and its use is -+ strongly discouraged. - - INSTALL_DEVICE can be a GRUB device name or a system device filename. - -@@ -328,7 +330,7 @@ - - # If --recheck is specified, remove the device map, if present. - if test $recheck = yes; then -- rm -f $device_map -+ mv $device_map ${device_map}.backup - fi - - # Create the device map file if it is not present. -@@ -357,7 +359,22 @@ - tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \ - | sort | uniq -d | sed -n 1p` - if test -n "$tmp"; then -- echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2 -+ echo "The drive $tmp is defined multiple times in the new device map." 1>&2 -+ if test $recheck = yes; then -+ echo "Reverting to backed up copy." 1>&2 -+ mv ${device_map}.backup $device_map -+ fi -+ exit 1 -+fi -+ -+# Make sure device.map has at least one hd device -+grep -q "^(hd[0-9]\+)" $device_map -+if [ "x$?" != "x0" ]; then -+ echo "No suitable drive was found in the generated device map." 1>&2 -+ if test $recheck = yes; then -+ echo "Reverting to backed up copy." 1>&2 -+ mv ${device_map}.backup $device_map -+ fi - exit 1 - fi - ---- grub-0.95/docs/grub-install.8.recheck-bad 2004-06-13 13:44:59.000000000 -0400 -+++ grub-0.95/docs/grub-install.8 2005-07-25 18:15:02.000000000 -0400 -@@ -30,6 +30,8 @@ - .TP - \fB\-\-recheck\fR - probe a device map even if it already exists -+ -+This option is unreliable and its use is strongly discouraged. - .PP - INSTALL_DEVICE can be a GRUB device name or a system device filename. - .SH "REPORTING BUGS" ---- grub-0.95/docs/grub.info.recheck-bad 2004-05-11 08:22:54.000000000 -0400 -+++ grub-0.95/docs/grub.info 2005-07-25 18:16:09.000000000 -0400 -@@ -3373,9 +3373,9 @@ - - `--recheck' - Recheck the device map, even if `/boot/grub/device.map' already -- exists. You should use this option whenever you add/remove a disk -- into/from your computer. -+ exists. - -+ This option is unreliable and its use is strongly discouraged. -  - File: grub.info, Node: Invoking grub-md5-crypt, Next: Invoking grub-terminfo, Prev: Invoking grub-install, Up: Top - diff --git a/src/patches/grub-0.95-splash-error-term.patch b/src/patches/grub-0.95-splash-error-term.patch deleted file mode 100644 index 71b036aa7e..0000000000 --- a/src/patches/grub-0.95-splash-error-term.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- grub-0.95/stage2/graphics.c.old 2005-01-11 09:34:17.125451981 -0500 -+++ grub-0.95/stage2/graphics.c 2005-01-11 09:34:03.743949015 -0500 -@@ -108,12 +108,8 @@ - * mode. */ - int graphics_init() - { -- if (!graphics_inited) { -- saved_videomode = set_videomode(0x12); -- } -- - if (!read_image(splashimage)) { -- set_videomode(saved_videomode); -+ current_term = term_table; - grub_printf("failed to read image\n"); - return 0; - } -@@ -303,6 +299,8 @@ - if (!xpm_open(s)) - return 0; - -+ saved_videomode = set_videomode(0x12); -+ - /* parse info */ - while (grub_read(&c, 1)) { - if (c == '"') diff --git a/src/patches/grub-0.95-staticcurses.patch b/src/patches/grub-0.95-staticcurses.patch deleted file mode 100644 index ff87dd3e42..0000000000 --- a/src/patches/grub-0.95-staticcurses.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- grub-0.95/configure.ac.static 2004-06-13 13:38:17.000000000 -0400 -+++ grub-0.95/configure.ac 2004-06-18 17:35:23.513374336 -0400 -@@ -207,9 +207,9 @@ - - # Unless the user specify --without-curses, check for curses. - if test "x$with_curses" != "xno"; then -- AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses" -+ AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -Wl,-Bdynamic" - AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])], -- [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses" -+ [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic" - AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])]) - fi - diff --git a/src/patches/grub-0.95-xpmjunk.patch b/src/patches/grub-0.95-xpmjunk.patch deleted file mode 100644 index de02897f9c..0000000000 --- a/src/patches/grub-0.95-xpmjunk.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- grub-0.95/stage2/graphics.c.xpmjunk 2005-01-04 17:01:35.492804523 -0500 -+++ grub-0.95/stage2/graphics.c 2005-01-04 17:02:52.722495885 -0500 -@@ -262,6 +262,35 @@ - return; - } - -+/* Open the file, and search for a valid XPM header. Return 1 if one is found, -+ * leaving the current position as the start of the next line. Else, -+ * return 0. -+ */ -+int xpm_open(const char *s) { -+ char buf, prev, target[]="/* XPM */\n"; -+ int pos=0; -+ -+ if (!grub_open(s)) -+ return 0; -+ -+ prev='\n'; -+ buf=0; -+ do { -+ if (grub_read(&buf, 1) != 1) { -+ grub_close(); -+ return 0; -+ } -+ if ((pos == 0 && prev == '\n') || pos > 0) { -+ if (buf == target[pos]) -+ pos++; -+ else -+ pos=0; -+ } -+ prev=buf; -+ } while (target[pos]); -+ return 1; -+} -+ - /* Read in the splashscreen image and set the palette up appropriately. - * Format of splashscreen is an xpm (can be gzipped) with 16 colors and - * 640x480. */ -@@ -271,15 +300,9 @@ - unsigned char c, base, mask, *s1, *s2, *s4, *s8; - unsigned i, len, idx, colors, x, y, width, height; - -- if (!grub_open(s)) -+ if (!xpm_open(s)) - return 0; - -- /* read header */ -- if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { -- grub_close(); -- return 0; -- } -- - /* parse info */ - while (grub_read(&c, 1)) { - if (c == '"') diff --git a/src/patches/grub-0.97-bz429187-cciss.patch b/src/patches/grub-0.97-bz429187-cciss.patch deleted file mode 100644 index 32f18bcc71..0000000000 --- a/src/patches/grub-0.97-bz429187-cciss.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -up grub-0.97/util/grub-install.in.cciss grub-0.97/util/grub-install.in ---- grub-0.97/util/grub-install.in.cciss 2008-02-04 14:30:31.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2008-02-07 18:34:14.000000000 -0500 -@@ -100,25 +100,56 @@ convert () { - # Break the device name into the disk part and the partition part. - case "$host_os" in - linux*) -+ # formats that need to be handled (disk name -> partition name): -+ # floppies: /dev/fd0 -+ # normal sd/hd devices: /dev/hda -> /dev/hda3 -+ # md: /dev/md0 -> /dev/md0p0 -+ # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc -+ # -> /dev/ide/host0/bus0/target0/lun0/part1 -+ # cciss: /dev/cciss/c0d0 -> /dev/cciss/c0d0p1 -+ # mpath devs: /dev/mapper/mpath0 -> /dev/mapper/mpath0p1 -+ # /dev/mapper/lalala -> /dev/mapper/lalalap1 -+ # dmraid devs: /dev/mapper/via_abcdef -> /dev/mapper/via_abcdefp1 -+ # /dev/mapper/isw_Volume0_abcdef -> /dev/mapper/isw_Volume0_abcdefp1 -+ # the known list (to me) is (X means we should handle it): -+ # X asr_[unfettered crap] -+ # hpt[0-9]+x_[0-9]+-[0-9]+ -+ # X hpt[0-9]+x_[0-9]+ -+ # hpt[0-9]+x_SPARE -+ # isw_[a-z]+_[a-z]+[0-9]+ -+ # X isw_[a-z]+ -+ # jm_[0-9]+-[0-9]+ -+ # X jm_[0-9]+ -+ # lsi_[0-9]+-[0-9]+ -+ # X lsi_[0-9]+ -+ # nvidia_[a-z]+-[0-9]+ -+ # X nvidia_[a-z]+ -+ # pdc_[a-z]+-[0-9]+ -+ # X pdc_[a-z]+ -+ # sil_[0-9]+-[0-9]+ -+ # X sil_[0-9]+ -+ # via_[a-z]+-[0-9]+ -+ # X via_[a-z]+ -+ # -+ # more? - tmp_disk=`echo "$1" | grep -v '/mapper/control$' | -- grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq | -+ grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq | - sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \ -- -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \ -- -e 's%\(fd[0-9]*\)$%\1%' \ -- -e 's%/part[0-9]*$%/disc%' \ -- -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \ -- -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \ -- -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'` -+ -e 's%\(/c[0-9]\+d[0-9]\+\).*$%\1%' \ -+ -e 's%\(fd[0-9]*\)$%\1%' \ -+ -e 's%/part[0-9]*$%/disc%' \ -+ -e 's%\(/mapper/[[:alnum:]_-]\+\)\+p[[:digit:]]\+$%\1%'\ -+ -e 's%\(/mapper/[[:alnum:]]\+\(_[[:alnum:]]\+\)\+\)\p[[:digit:]]\+$%\1%'` - tmp_part=`echo "$1" | grep -v '/mapper/control$' | -- grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq | -+ grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq | - sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \ -- -e 's%.*d[0-9]*p%%' \ -- -e 's%.*/fd[0-9]*$%%' \ -- -e 's%.*/floppy/[0-9]*$%%' \ -- -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \ -- -e 's%.*c[0-7]d[0-9]*p%%' \ -- -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \ -- -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' | -+ -e 's%.*/c[0-9]\+d[0-9]\+p\([[:digit:]]\+\)%\1%' \ -+ -e 's%.*/c[0-9]\+d[0-9]\+$%%' \ -+ -e 's%.*/fd[0-9]\+$%%' \ -+ -e 's%.*/floppy/[0-9]*$%%' \ -+ -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \ -+ -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \ -+ -e 's%.*/mapper/[[:alnum:]]\+\(_[[:alpha:]]\+[[:digit:]]*\)\+p\([[:digit:]]\+\)$%\2%' | - grep -v '.*/mapper/.*'` - ;; - gnu*) diff --git a/src/patches/grub-0.97-cmdline-size.patch b/src/patches/grub-0.97-cmdline-size.patch deleted file mode 100644 index e93aa98634..0000000000 --- a/src/patches/grub-0.97-cmdline-size.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff --git a/stage2/boot.c b/stage2/boot.c -index bf442e1..a6872e0 100644 ---- a/stage2/boot.c -+++ b/stage2/boot.c -@@ -241,6 +241,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - } - - if (lh->version >= 0x0202) -+ /* version 0x0202 and higher can handle 4096 */ - lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET; - else - { -@@ -403,8 +404,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - { - char *src = skip_to (0, arg); - char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET; -- -- while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src) -+ unsigned long cl_end_offset = lh->version < 0x0202 ? -+ LINUX_CL_END_OFFSET : LINUX_CL_END_OFFSET_202; -+ -+ while (dest < linux_data_tmp_addr + cl_end_offset && *src) - *(dest++) = *(src++); - - /* Old Linux kernels have problems determining the amount of -diff --git a/stage2/shared.h b/stage2/shared.h -index d05644b..c052480 100644 ---- a/stage2/shared.h -+++ b/stage2/shared.h -@@ -160,10 +160,13 @@ extern void *grub_scratch_mem; - #define LINUX_VID_MODE_ASK 0xFFFD - - #define LINUX_CL_OFFSET 0x9000 --#define LINUX_CL_END_OFFSET 0x90FF --#define LINUX_SETUP_MOVE_SIZE 0x9100 - #define LINUX_CL_MAGIC 0xA33F - -+#define LINUX_CL_END_OFFSET 0x90FF -+#define LINUX_CL_END_OFFSET_202 0x9FFF /* version 0x0202 or higher */ -+#define LINUX_SETUP_MOVE_SIZE 0xA000 /* where am I putting it? */ -+ -+ - /* - * General disk stuff - */ diff --git a/src/patches/grub-0.97-datadir.patch b/src/patches/grub-0.97-datadir.patch deleted file mode 100644 index eaa89f0d36..0000000000 --- a/src/patches/grub-0.97-datadir.patch +++ /dev/null @@ -1,229 +0,0 @@ ---- grub-0.97/stage1/Makefile.am.datadir 2005-12-14 11:07:01.000000000 -0500 -+++ grub-0.97/stage1/Makefile.am 2005-12-14 11:07:21.000000000 -0500 -@@ -1,7 +1,7 @@ --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) --nodist_pkglib_DATA = stage1 -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+nodist_pkgdata_DATA = stage1 - --CLEANFILES = $(nodist_pkglib_DATA) -+CLEANFILES = $(nodist_pkgdata_DATA) - - # We can't use builtins or standard includes. - AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc ---- grub-0.97/stage1/Makefile.in.datadir 2005-05-07 22:42:36.000000000 -0400 -+++ grub-0.97/stage1/Makefile.in 2005-12-14 11:08:13.000000000 -0500 -@@ -1,8 +1,8 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. -+# Makefile.in generated by automake 1.9.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. -+# 2003, 2004, 2005 Free Software Foundation, Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -15,8 +15,6 @@ - @SET_MAKE@ - - --SOURCES = $(stage1_exec_SOURCES) -- - srcdir = @srcdir@ - top_srcdir = @top_srcdir@ - VPATH = @srcdir@ -@@ -67,13 +65,13 @@ - *) f=$$p;; \ - esac; - am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; --am__installdirs = "$(DESTDIR)$(pkglibdir)" --nodist_pkglibDATA_INSTALL = $(INSTALL_DATA) --DATA = $(nodist_pkglib_DATA) -+am__installdirs = "$(DESTDIR)$(pkgdatadir)" -+nodist_pkgdataDATA_INSTALL = $(INSTALL_DATA) -+DATA = $(nodist_pkgdata_DATA) - ETAGS = etags - CTAGS = ctags - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) - ACLOCAL = @ACLOCAL@ - AMDEP_FALSE = @AMDEP_FALSE@ - AMDEP_TRUE = @AMDEP_TRUE@ -@@ -102,6 +100,8 @@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ - FSYS_CFLAGS = @FSYS_CFLAGS@ -+GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@ -+GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@ - GRUB_CFLAGS = @GRUB_CFLAGS@ - GRUB_LIBS = @GRUB_LIBS@ - HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ -@@ -172,6 +172,7 @@ - infodir = @infodir@ - install_sh = @install_sh@ - libdir = @libdir@ -+datadir = @datadir@ - libexecdir = @libexecdir@ - localstatedir = @localstatedir@ - mandir = @mandir@ -@@ -183,8 +184,8 @@ - sharedstatedir = @sharedstatedir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ --nodist_pkglib_DATA = stage1 --CLEANFILES = $(nodist_pkglib_DATA) -+nodist_pkgdata_DATA = stage1 -+CLEANFILES = $(nodist_pkgdata_DATA) - - # We can't use builtins or standard includes. - AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc -@@ -242,22 +243,22 @@ - .S.obj: - $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'` - uninstall-info-am: --install-nodist_pkglibDATA: $(nodist_pkglib_DATA) -+install-nodist_pkgdataDATA: $(nodist_pkgdata_DATA) - @$(NORMAL_INSTALL) -- test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" -- @list='$(nodist_pkglib_DATA)'; for p in $$list; do \ -+ test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" -+ @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ -- echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ -+ echo " $(nodist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ -+ $(nodist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ - done - --uninstall-nodist_pkglibDATA: -+uninstall-nodist_pkgdataDATA: - @$(NORMAL_UNINSTALL) -- @list='$(nodist_pkglib_DATA)'; for p in $$list; do \ -+ @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \ - f=$(am__strip_dir) \ -- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ -+ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ -+ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ - done - - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -@@ -339,7 +340,7 @@ - check: check-am - all-am: Makefile $(PROGRAMS) $(DATA) - installdirs: -- for dir in "$(DESTDIR)$(pkglibdir)"; do \ -+ for dir in "$(DESTDIR)$(pkgdatadir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done - install: install-am -@@ -388,7 +389,7 @@ - - install-data-am: - --install-exec-am: install-nodist_pkglibDATA -+install-exec-am: install-nodist_pkgdataDATA - - install-info: install-info-am - -@@ -412,19 +413,19 @@ - - ps-am: - --uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA -+uninstall-am: uninstall-info-am uninstall-nodist_pkgdataDATA - - .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-noinstPROGRAMS ctags distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ -- install-info-am install-man install-nodist_pkglibDATA \ -+ install-info-am install-man install-nodist_pkgdataDATA \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ -- uninstall-nodist_pkglibDATA -+ uninstall-nodist_pkgdataDATA - - .exec: - $(OBJCOPY) -O binary $< $@ ---- grub-0.97/util/grub-install.in.datadir 2005-12-14 11:00:21.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2005-12-14 11:00:21.000000000 -0500 -@@ -21,13 +21,13 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ - sbindir=@sbindir@ --libdir=@libdir@ -+datadir=@datadir@ - PACKAGE=@PACKAGE@ - VERSION=@VERSION@ - host_cpu=@host_cpu@ - host_os=@host_os@ - host_vendor=@host_vendor@ --pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} -+pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor} - - grub_shell=${sbindir}/grub - mdadm=${sbindir}/mdadm -@@ -388,17 +388,17 @@ - exit 1 - fi - --if test -f "$pkglibdir/stage1"; then -+if test -f "$pkgdatadir/stage1"; then - : - else -- echo "${pkglibdir}/stage1: Not found." 1>&2 -+ echo "${pkgdatadir}/stage1: Not found." 1>&2 - exit 1 - fi - --if test -f "$pkglibdir/stage2"; then -+if test -f "$pkgdatadir/stage2"; then - : - else -- echo "${pkglibdir}/stage2: Not found." 1>&2 -+ echo "${pkgdatadir}/stage2: Not found." 1>&2 - exit 1 - fi - ---- grub-0.97/stage2/Makefile.am.datadir 2005-12-14 11:03:54.000000000 -0500 -+++ grub-0.97/stage2/Makefile.am 2005-12-14 11:05:04.000000000 -0500 -@@ -27,12 +27,12 @@ - -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 - - # Stage 2 and Stage 1.5's. --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) - - EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec - - if DISKLESS_SUPPORT --pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ -+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ - reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ - nbgrub pxegrub -@@ -43,7 +43,7 @@ - reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ - xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec - else --pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ -+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ - reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 - noinst_DATA = pre_stage2 start start_eltorito -@@ -112,7 +112,7 @@ - BUILT_SOURCES = stage2_size.h - endif - --CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) -+CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES) - - stage2_size.h: pre_stage2 - -rm -f stage2_size.h diff --git a/src/patches/grub-0.97-disk_geometry-1.patch b/src/patches/grub-0.97-disk_geometry-1.patch deleted file mode 100644 index e09686dd7a..0000000000 --- a/src/patches/grub-0.97-disk_geometry-1.patch +++ /dev/null @@ -1,892 +0,0 @@ -Submitted By: Jim Gifford -Date: 05-28-2006 -Initial Package Version: 0.97 -Upstream Status: Unknown -Origin: Fedora and Mandriva -Description: This patch fixes issues with disk geometry not being - detected properly. Part of this patch also fixes - gcc 4 compile errors, which are a part of the issue. - -diff -Naur grub-0.97.orig/configure grub-0.97/configure ---- grub-0.97.orig/configure 2005-05-07 19:48:12.000000000 -0700 -+++ grub-0.97/configure 2006-05-28 20:29:36.025466751 -0700 -@@ -3485,9 +3485,9 @@ - echo "$as_me:$LINENO: result: $size_flag" >&5 - echo "${ECHO_T}$size_flag" >&6 - if test "x$size_flag" = xyes; then -- STAGE2_CFLAGS="-Os" -+ STAGE2_CFLAGS="-Os -fno-strict-aliasing" - else -- STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" -+ STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops" - fi - # OpenBSD has a GCC extension for protecting applications from - # stack smashing attacks, but GRUB doesn't want this feature. -diff -Naur grub-0.97.orig/configure.ac grub-0.97/configure.ac ---- grub-0.97.orig/configure.ac 2005-05-07 19:36:03.000000000 -0700 -+++ grub-0.97/configure.ac 2006-05-28 20:28:41.538819726 -0700 -@@ -93,9 +93,9 @@ - CFLAGS=$saved_CFLAGS - ]) - if test "x$size_flag" = xyes; then -- STAGE2_CFLAGS="-Os" -+ STAGE2_CFLAGS="-Os -fno-strict-aliasing" - else -- STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" -+ STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops" - fi - # OpenBSD has a GCC extension for protecting applications from - # stack smashing attacks, but GRUB doesn't want this feature. -diff -Naur grub-0.97.orig/lib/device.c grub-0.97/lib/device.c ---- grub-0.97.orig/lib/device.c 2005-03-27 15:14:25.000000000 -0800 -+++ grub-0.97/lib/device.c 2006-05-28 20:34:03.546804777 -0700 -@@ -131,6 +131,152 @@ - #include - #include - -+#if defined(__linux__) -+/* The 2.6 kernel has removed all of the geometry handling for IDE drives -+ * that did fixups for LBA, etc. This means that the geometry we get -+ * with the ioctl has a good chance of being wrong. So, we get to -+ * also know about partition tables and try to read what the geometry -+ * is there. *grumble* Very closely based on code from cfdisk -+ */ -+static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) { -+ struct hd_geometry hdg; -+ -+ if (ioctl (fd, HDIO_GETGEO, &hdg)) -+ return; -+ -+ *cyl = hdg.cylinders; -+ *heads = hdg.heads; -+ *sectors = hdg.sectors; -+} -+ -+struct partition { -+ unsigned char boot_ind; /* 0x80 - active */ -+ unsigned char head; /* starting head */ -+ unsigned char sector; /* starting sector */ -+ unsigned char cyl; /* starting cylinder */ -+ unsigned char sys_ind; /* What partition type */ -+ unsigned char end_head; /* end head */ -+ unsigned char end_sector; /* end sector */ -+ unsigned char end_cyl; /* end cylinder */ -+ unsigned char start4[4]; /* starting sector counting from 0 */ -+ unsigned char size4[4]; /* nr of sectors in partition */ -+}; -+ -+#define ALIGNMENT 2 -+typedef union { -+ struct { -+ unsigned char align[ALIGNMENT]; -+ unsigned char b[SECTOR_SIZE]; -+ } c; -+ struct { -+ unsigned char align[ALIGNMENT]; -+ unsigned char buffer[0x1BE]; -+ struct partition part[4]; -+ unsigned char magicflag[2]; -+ } p; -+} partition_table; -+ -+#define PART_TABLE_FLAG0 0x55 -+#define PART_TABLE_FLAG1 0xAA -+ -+static void -+get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, -+ int *sectors) { -+ struct partition *p; -+ int i,h,s,hh,ss; -+ int first = 1; -+ int bad = 0; -+ -+ if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 || -+ bufp->p.magicflag[1] != PART_TABLE_FLAG1) { -+ /* Matthew Wilcox: slightly friendlier version of -+ fatal(_("Bad signature on partition table"), 3); -+ */ -+ fprintf(stderr, "Unknown partition table signature\n"); -+ return; -+ } -+ -+ hh = ss = 0; -+ for (i=0; i<4; i++) { -+ p = &(bufp->p.part[i]); -+ if (p->sys_ind != 0) { -+ h = p->end_head + 1; -+ s = (p->end_sector & 077); -+ if (first) { -+ hh = h; -+ ss = s; -+ first = 0; -+ } else if (hh != h || ss != s) -+ bad = 1; -+ } -+ } -+ -+ if (!first && !bad) { -+ *heads = hh; -+ *sectors = ss; -+ } -+} -+ -+static long long my_lseek (unsigned int fd, long long offset, -+ unsigned int origin) -+{ -+#if defined(__linux__) && (!defined(__GLIBC__) || \ -+ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) -+ /* Maybe libc doesn't have large file support. */ -+ loff_t offset, result; -+ static int _llseek (uint filedes, ulong hi, ulong lo, -+ loff_t *res, uint wh); -+ _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, -+ loff_t *, res, uint, wh); -+ -+ if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0) -+ return (long long) -1; -+ return result; -+#else -+ return lseek(fd, offset, SEEK_SET); -+#endif -+} -+ -+static void get_linux_geometry (int fd, struct geometry *geom) { -+ long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0; -+ long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0; -+ partition_table bufp; -+ char *buff, *buf_unaligned; -+ -+ buf_unaligned = malloc(sizeof(partition_table) + 4095); -+ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ -+ get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors); -+ -+ if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) { -+ fprintf(stderr, "Unable to seek"); -+ } -+ -+ if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) { -+ memcpy(bufp.c.b, buff, SECTOR_SIZE); -+ get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors); -+ } else { -+ fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno)); -+ } -+ -+ if (pt_head && pt_sectors) { -+ int cyl_size; -+ -+ geom->heads = pt_head; -+ geom->sectors = pt_sectors; -+ cyl_size = pt_head * pt_sectors; -+ geom->cylinders = geom->total_sectors/cyl_size; -+ } else { -+ geom->heads = kern_head; -+ geom->sectors = kern_sectors; -+ geom->cylinders = kern_cyl; -+ } -+ -+ return; -+} -+#endif -+ - /* Get the geometry of a drive DRIVE. */ - void - get_drive_geometry (struct geometry *geom, char **map, int drive) -@@ -151,21 +297,16 @@ - #if defined(__linux__) - /* Linux */ - { -- struct hd_geometry hdg; - unsigned long nr; -- -- if (ioctl (fd, HDIO_GETGEO, &hdg)) -- goto fail; - - if (ioctl (fd, BLKGETSIZE, &nr)) - goto fail; - - /* Got the geometry, so save it. */ -- geom->cylinders = hdg.cylinders; -- geom->heads = hdg.heads; -- geom->sectors = hdg.sectors; - geom->total_sectors = nr; -- -+ get_linux_geometry(fd, geom); -+ if (!geom->heads && !geom->cylinders && !geom->sectors) -+ goto fail; - goto success; - } - -@@ -844,6 +985,7 @@ - { - char dev[PATH_MAX]; /* XXX */ - int fd; -+ off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; - - if ((partition & 0x00FF00) != 0x00FF00) - { -@@ -870,35 +1012,13 @@ - errnum = ERR_NO_PART; - return 0; - } -- --#if defined(__linux__) && (!defined(__GLIBC__) || \ -- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) -- /* Maybe libc doesn't have large file support. */ -- { -- loff_t offset, result; -- static int _llseek (uint filedes, ulong hi, ulong lo, -- loff_t *res, uint wh); -- _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, -- loff_t *, res, uint, wh); - -- offset = (loff_t) sector * (loff_t) SECTOR_SIZE; -- if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) -- { -- errnum = ERR_DEV_VALUES; -- return 0; -- } -- } --#else -- { -- off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; - -- if (lseek (fd, offset, SEEK_SET) != offset) -- { -- errnum = ERR_DEV_VALUES; -- return 0; -- } -- } --#endif -+ if (my_lseek(fd, offset, SEEK_SET) != offset) -+ { -+ errnum = ERR_DEV_VALUES; -+ return 0; -+ } - - if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE)) - { -diff -Naur grub-0.97.orig/stage2/Makefile.am grub-0.97/stage2/Makefile.am ---- grub-0.97.orig/stage2/Makefile.am 2005-02-02 12:37:35.000000000 -0800 -+++ grub-0.97/stage2/Makefile.am 2006-05-28 20:28:41.590818435 -0700 -@@ -24,7 +24,8 @@ - -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ - -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ -- -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -+ -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \ -+ -fno-strict-aliasing - - # Stage 2 and Stage 1.5's. - pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -diff -Naur grub-0.97.orig/stage2/boot.c grub-0.97/stage2/boot.c ---- grub-0.97.orig/stage2/boot.c 2004-03-30 03:44:08.000000000 -0800 -+++ grub-0.97/stage2/boot.c 2006-05-28 20:33:30.123638792 -0700 -@@ -55,7 +55,7 @@ - pu; - /* presuming that MULTIBOOT_SEARCH is large enough to encompass an - executable header */ -- unsigned char buffer[MULTIBOOT_SEARCH]; -+ char buffer[MULTIBOOT_SEARCH]; - - /* sets the header pointer to point to the beginning of the - buffer by default */ -@@ -98,7 +98,7 @@ - /* ELF loading supported if multiboot, FreeBSD and NetBSD. */ - if ((type == KERNEL_TYPE_MULTIBOOT - || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD -- || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 -+ || grub_strcmp ((char *) pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 - || suggested_type == KERNEL_TYPE_NETBSD) - && len > sizeof (Elf32_Ehdr) - && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer)))) -@@ -824,8 +824,12 @@ - moveto = (mbi.mem_upper + 0x400) << 10; - - moveto = (moveto - len) & 0xfffff000; -+#if 0 - max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 - ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); -+#else -+ max_addr = LINUX_INITRD_MAX_ADDRESS; -+#endif - if (moveto + len >= max_addr) - moveto = (max_addr - len) & 0xfffff000; - -diff -Naur grub-0.97.orig/stage2/disk_io.c grub-0.97/stage2/disk_io.c ---- grub-0.97.orig/stage2/disk_io.c 2004-05-23 09:35:24.000000000 -0700 -+++ grub-0.97/stage2/disk_io.c 2006-05-28 20:28:41.582818634 -0700 -@@ -127,12 +127,19 @@ - int filepos; - int filemax; - --static inline unsigned long --log2 (unsigned long word) -+#define log2(n) ffz(~(n)) -+ -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ -+static __inline__ unsigned long -+ffz (unsigned long word) - { -- asm volatile ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+ __asm__ ("bsfl %1,%0" -+: "=r" (word) -+: "r" (~word)); - return word; - } - -diff -Naur grub-0.97.orig/stage2/freebsd.h grub-0.97/stage2/freebsd.h ---- grub-0.97.orig/stage2/freebsd.h 2003-07-09 04:45:52.000000000 -0700 -+++ grub-0.97/stage2/freebsd.h 2006-05-28 20:28:41.582818634 -0700 -@@ -78,7 +78,7 @@ - struct bootinfo - { - unsigned int bi_version; -- unsigned char *bi_kernelname; -+ char *bi_kernelname; - struct nfs_diskless *bi_nfs_diskless; - /* End of fields that are always present. */ - #define bi_endcommon bi_n_bios_used -diff -Naur grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c ---- grub-0.97.orig/stage2/fsys_fat.c 2005-03-15 08:52:00.000000000 -0800 -+++ grub-0.97/stage2/fsys_fat.c 2006-05-28 20:28:41.582818634 -0700 -@@ -54,12 +54,19 @@ - - #define FAT_CACHE_SIZE 2048 - -+#define log2(n) ffz(~(n)) -+ -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ - static __inline__ unsigned long --log2 (unsigned long word) -+ffz (unsigned long word) - { - __asm__ ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+: "=r" (word) -+: "r" (~word)); - return word; - } - -diff -Naur grub-0.97.orig/stage2/fsys_iso9660.c grub-0.97/stage2/fsys_iso9660.c ---- grub-0.97.orig/stage2/fsys_iso9660.c 2004-05-11 05:11:19.000000000 -0700 -+++ grub-0.97/stage2/fsys_iso9660.c 2006-05-28 20:28:41.582818634 -0700 -@@ -55,13 +55,19 @@ - #define RRCONT_BUF ((unsigned char *)(FSYS_BUF + 6144)) - #define NAME_BUF ((unsigned char *)(FSYS_BUF + 8192)) - -+#define log2(n) ffz(~(n)) - --static inline unsigned long --log2 (unsigned long word) -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ -+static __inline__ unsigned long -+ffz (unsigned long word) - { -- asm volatile ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+ __asm__ ("bsfl %1,%0" -+: "=r" (word) -+: "r" (~word)); - return word; - } - -@@ -120,7 +126,7 @@ - break; - /* check ISO_VD_PRIMARY and ISO_STANDARD_ID */ - if (PRIMDESC->type.l == ISO_VD_PRIMARY -- && !memcmp(PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id))) -+ && !memcmp((char *) PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id))) - { - ISO_SUPER->vol_sector = sector; - INODE->file_start = 0; -@@ -175,7 +181,7 @@ - for (; idr->length.l > 0; - idr = (struct iso_directory_record *)((char *)idr + idr->length.l) ) - { -- const char *name = idr->name; -+ const u_int8_t *name = idr->name; - unsigned int name_len = idr->name_len.l; - - file_type = (idr->flags.l & 2) ? ISO_DIRECTORY : ISO_REGULAR; -@@ -198,7 +204,7 @@ - rr_len = (idr->length.l - idr->name_len.l - - sizeof(struct iso_directory_record) - + sizeof(idr->name)); -- rr_ptr.ptr = ((unsigned char *)idr + idr->name_len.l -+ rr_ptr.ptr = ((char *)idr + idr->name_len.l - + sizeof(struct iso_directory_record) - - sizeof(idr->name)); - if (rr_ptr.i & 1) -@@ -331,9 +337,9 @@ - memcpy(NAME_BUF, name, name_len); - name = NAME_BUF; - } -- rr_ptr.ptr = RRCONT_BUF + ce_ptr->u.ce.offset.l; -+ rr_ptr.ptr = (char *) RRCONT_BUF + ce_ptr->u.ce.offset.l; - rr_len = ce_ptr->u.ce.size.l; -- if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, RRCONT_BUF)) -+ if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, (char *) RRCONT_BUF)) - { - errnum = 0; /* this is not fatal. */ - break; -@@ -344,7 +350,7 @@ - - filemax = MAXINT; - if (name_len >= pathlen -- && !memcmp(name, dirname, pathlen)) -+ && !memcmp((char *) name, dirname, pathlen)) - { - if (dirname[pathlen] == '/' || !print_possibilities) - { -@@ -381,7 +387,7 @@ - print_possibilities = -print_possibilities; - memcpy(NAME_BUF, name, name_len); - NAME_BUF[name_len] = '\0'; -- print_a_completion (NAME_BUF); -+ print_a_completion ((char *) NAME_BUF); - #endif - } - } -diff -Naur grub-0.97.orig/stage2/fsys_reiserfs.c grub-0.97/stage2/fsys_reiserfs.c ---- grub-0.97.orig/stage2/fsys_reiserfs.c 2004-02-18 14:09:10.000000000 -0800 -+++ grub-0.97/stage2/fsys_reiserfs.c 2006-05-28 20:28:41.586818535 -0700 -@@ -365,13 +365,19 @@ - #define JOURNAL_START ((__u32 *) (INFO + 1)) - #define JOURNAL_END ((__u32 *) (FSYS_BUF + FSYS_BUFLEN)) - -+#define log2(n) ffz(~(n)) - -+/* include/asm-i386/bitops.h */ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ - static __inline__ unsigned long --log2 (unsigned long word) -+ffz (unsigned long word) - { - __asm__ ("bsfl %1,%0" -- : "=r" (word) -- : "r" (word)); -+: "=r" (word) -+: "r" (~word)); - return word; - } - -diff -Naur grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c ---- grub-0.97.orig/stage2/fsys_vstafs.c 2003-07-09 04:45:53.000000000 -0700 -+++ grub-0.97/stage2/fsys_vstafs.c 2006-05-28 20:28:41.586818535 -0700 -@@ -186,35 +186,35 @@ - int - vstafs_read (char *addr, int len) - { -- struct alloc *a; -+ struct alloc *b; - int size, ret = 0, offset, curr_len = 0; -- int curr_ext; -+ int curr_exten; - char extent; - int ext_size; - char *curr_pos; - - get_file_info (f_sector); - size = FILE_INFO->len-VSTAFS_START_DATA; -- a = FILE_INFO->blocks; -+ b = FILE_INFO->blocks; - - if (filepos > 0) - { -- if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA) -+ if (filepos < b[0].a_len * 512 - VSTAFS_START_DATA) - { - offset = filepos + VSTAFS_START_DATA; - extent = 0; -- curr_len = a[0].a_len * 512 - offset - filepos; -+ curr_len = b[0].a_len * 512 - offset - filepos; - } - else - { -- ext_size = a[0].a_len * 512 - VSTAFS_START_DATA; -+ ext_size = b[0].a_len * 512 - VSTAFS_START_DATA; - offset = filepos - ext_size; - extent = 1; - do - { - curr_len -= ext_size; - offset -= ext_size; -- ext_size = a[extent+1].a_len * 512; -+ ext_size = b[extent+1].a_len * 512; - } - while (extent < FILE_INFO->extents && offset>ext_size); - } -@@ -223,16 +223,16 @@ - { - offset = VSTAFS_START_DATA; - extent = 0; -- curr_len = a[0].a_len * 512 - offset; -+ curr_len = b[0].a_len * 512 - offset; - } - - curr_pos = addr; - if (curr_len > len) - curr_len = len; - -- for (curr_ext=extent; -- curr_ext < FILE_INFO->extents; -- curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++) -+ for (curr_exten = extent; -+ curr_exten < FILE_INFO->extents; -+ curr_len = b[curr_exten].a_len * 512, curr_pos += curr_len, curr_exten++) - { - ret += curr_len; - size -= curr_len; -@@ -242,7 +242,7 @@ - curr_len += size; - } - -- devread (a[curr_ext].a_start,offset, curr_len, curr_pos); -+ devread (b[curr_exten].a_start, offset, curr_len, curr_pos); - offset = 0; - } - -diff -Naur grub-0.97.orig/stage2/fsys_xfs.c grub-0.97/stage2/fsys_xfs.c ---- grub-0.97.orig/stage2/fsys_xfs.c 2005-05-07 19:15:55.000000000 -0700 -+++ grub-0.97/stage2/fsys_xfs.c 2006-05-28 20:28:41.586818535 -0700 -@@ -97,7 +97,7 @@ - return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS); - } - --static inline __const__ xfs_uint16_t -+static inline __attribute__((const)) xfs_uint16_t - le16 (xfs_uint16_t x) - { - __asm__("xchgb %b0,%h0" \ -@@ -106,7 +106,7 @@ - return x; - } - --static inline __const__ xfs_uint32_t -+static inline __attribute__((const)) xfs_uint32_t - le32 (xfs_uint32_t x) - { - #if 0 -@@ -122,7 +122,7 @@ - return x; - } - --static inline __const__ xfs_uint64_t -+static inline __attribute__((const)) xfs_uint64_t - le64 (xfs_uint64_t x) - { - xfs_uint32_t h = x >> 32; -@@ -368,7 +368,7 @@ - default: - namelen = sfe->namelen; - *ino = sf_ino ((char *)sfe, namelen); -- name = sfe->name; -+ name = (char *) sfe->name; - sfe = (xfs_dir2_sf_entry_t *) - ((char *)sfe + namelen + 11 - xfs.i8param); - } -diff -Naur grub-0.97.orig/stage2/gunzip.c grub-0.97/stage2/gunzip.c ---- grub-0.97.orig/stage2/gunzip.c 2003-07-09 04:45:53.000000000 -0700 -+++ grub-0.97/stage2/gunzip.c 2006-05-28 20:28:41.586818535 -0700 -@@ -277,7 +277,7 @@ - * is a compressed file, and simply mark it as such. - */ - if (no_decompression -- || grub_read (buf, 10) != 10 -+ || grub_read ((char *) buf, 10) != 10 - || ((*((unsigned short *) buf) != GZIP_HDR_LE) - && (*((unsigned short *) buf) != OLD_GZIP_HDR_LE))) - { -@@ -293,7 +293,7 @@ - if (buf[2] != DEFLATED - || (buf[3] & UNSUPP_FLAGS) - || ((buf[3] & EXTRA_FIELD) -- && (grub_read (buf, 2) != 2 -+ && (grub_read ((char *) buf, 2) != 2 - || bad_field (*((unsigned short *) buf)))) - || ((buf[3] & ORIG_NAME) && bad_field (-1)) - || ((buf[3] & COMMENT) && bad_field (-1))) -@@ -308,7 +308,7 @@ - - filepos = filemax - 8; - -- if (grub_read (buf, 8) != 8) -+ if (grub_read ((char *) buf, 8) != 8) - { - if (! errnum) - errnum = ERR_BAD_GZIP_HEADER; -@@ -485,8 +485,8 @@ - - #define INBUFSIZ 0x2000 - --static uch inbuf[INBUFSIZ]; --static int bufloc; -+static unsigned char inbuf[INBUFSIZ]; -+static int bufloc; - - static int - get_byte (void) -@@ -494,7 +494,7 @@ - if (filepos == gzip_data_offset || bufloc == INBUFSIZ) - { - bufloc = 0; -- grub_read (inbuf, INBUFSIZ); -+ grub_read ((char *) inbuf, INBUFSIZ); - } - - return inbuf[bufloc++]; -@@ -925,7 +925,7 @@ - unsigned m; /* mask for bit lengths table */ - unsigned n; /* number of lengths to get */ - unsigned nb; /* number of bit length codes */ -- unsigned nl; /* number of literal/length codes */ -+ unsigned nc; /* number of literal/length codes */ - unsigned nd; /* number of distance codes */ - unsigned ll[286 + 30]; /* literal/length and distance code lengths */ - register ulg b; /* bit buffer */ -@@ -937,7 +937,7 @@ - - /* read in table lengths */ - NEEDBITS (5); -- nl = 257 + ((unsigned) b & 0x1f); /* number of literal/length codes */ -+ nc = 257 + ((unsigned) b & 0x1f); /* number of literal/length codes */ - DUMPBITS (5); - NEEDBITS (5); - nd = 1 + ((unsigned) b & 0x1f); /* number of distance codes */ -@@ -945,7 +945,7 @@ - NEEDBITS (4); - nb = 4 + ((unsigned) b & 0xf); /* number of bit length codes */ - DUMPBITS (4); -- if (nl > 286 || nd > 30) -+ if (nc > 286 || nd > 30) - { - errnum = ERR_BAD_GZIP_DATA; - return; -@@ -970,7 +970,7 @@ - } - - /* read in literal and distance code lengths */ -- n = nl + nd; -+ n = nc + nd; - m = mask_bits[bl]; - i = l = 0; - while ((unsigned) i < n) -@@ -1034,7 +1034,7 @@ - - /* build the decoding tables for literal/length and distance codes */ - bl = lbits; -- if ((i = huft_build (ll, nl, 257, cplens, cplext, &tl, &bl)) != 0) -+ if ((i = huft_build (ll, nc, 257, cplens, cplext, &tl, &bl)) != 0) - { - #if 0 - if (i == 1) -@@ -1045,7 +1045,7 @@ - return; - } - bd = dbits; -- if ((i = huft_build (ll + nl, nd, 0, cpdist, cpdext, &td, &bd)) != 0) -+ if ((i = huft_build (ll + nc, nd, 0, cpdist, cpdext, &td, &bd)) != 0) - { - #if 0 - if (i == 1) -diff -Naur grub-0.97.orig/stage2/md5.c grub-0.97/stage2/md5.c ---- grub-0.97.orig/stage2/md5.c 2003-07-09 04:45:53.000000000 -0700 -+++ grub-0.97/stage2/md5.c 2006-05-28 20:28:41.590818435 -0700 -@@ -166,7 +166,7 @@ - inputlen -= 64 - buflen; - while (inputlen >= 64) - { -- md5_transform (input); -+ md5_transform ((unsigned char *) input); - input += 64; - inputlen -= 64; - } -@@ -211,7 +211,7 @@ - char *p; - int saltlen; - int i, n; -- unsigned char alt_result[16]; -+ char alt_result[16]; - unsigned char *digest; - - if (check) -diff -Naur grub-0.97.orig/stage2/start_eltorito.S grub-0.97/stage2/start_eltorito.S ---- grub-0.97.orig/stage2/start_eltorito.S 2004-03-27 08:14:20.000000000 -0800 -+++ grub-0.97/stage2/start_eltorito.S 2006-05-28 20:31:17.770936712 -0700 -@@ -40,9 +40,9 @@ - #define ABS(x) (x-_start+BOOTSEC_LOCATION) - - #ifdef STAGE1_5 --# define STAGE_ADDR 0x2000 -+# define STAGE_ADDR 0x2200 - #else --# define STAGE_ADDR 0x8000 -+# define STAGE_ADDR 0x8200 - #endif /* STAGE1_5 */ - - /* Print message string */ -@@ -71,12 +71,14 @@ - . = _start + 8 /* Pad to file offset 8 */ - - /* This table gets filled in by mkisofs using the -- -boot-info-table option */ --bi_pvd: .long 0xDEADBEEF /* LBA of primary volume descript */ --bi_file: .long 0xDEADBEEF /* LBA of boot file */ --bi_length: .long 0xDEADBEEF /* Length of boot file */ --bi_csum: .long 0xDEADBEEF /* Checksum of boot file */ --bi_reserved: .space (10*4) /* Reserved */ -+ -boot-info-table option If not, the values in this -+ table are default values that we can use to get us -+ what we need, at least under a certain set of assumptions. */ -+bi_pvd: .long 16 /* LBA of primary volume descript */ -+bi_file: .long 0 /* LBA of boot file */ -+bi_length: .long 0xDEADBEEF /* Length of boot file */ -+bi_csum: .long 0xDEADBEEF /* Checksum of boot file */ -+bi_reserved: .space (10*4) /* Reserved */ - - real_start: - xor %ax, %ax -@@ -92,10 +94,28 @@ - /* save drive reference first thing! */ - mov %dl, ABS(BootDrive) - -- /* print a notification message on the screen */ -- MSG(notification_string) -+ /* check if machine support IBM/MS int 13h extensions */ -+ mov $0x41, %ah -+ mov $0x55AA, %bx -+ int $0x13 -+ jnc load_image -+ -+ /* bios doesn't support int 13h extensions, print error messages */ -+ MSG(int13_error_string1) -+ MSG(notification_done) -+ MSG(int13_error_string2) -+ MSG(notification_done) -+ MSG(int13_error_string3) -+ MSG(notification_done) -+ /* even when bios says that it doesn't support int 13h -+ extensions, do not stop here and try to load image anyway, -+ because some bioses says that there isn't support for -+ extended functions but have the needed extended read function -+ (int 13h, function AH=42h) */ - - load_image: -+ /* print a notification message on the screen */ -+ MSG(notification_string) - /* Set up boot file sector, size, load address */ - mov ABS(bi_length), %eax - add $(ISO_SECTOR_SIZE-1), %eax -@@ -105,6 +125,8 @@ - mov %bx, %es - xor %bx, %bx - mov ABS(bi_file), %eax -+ inc %eax /* do not reload the first sector (this code) */ -+ dec %bp /* this way we have more room for code in stage1 */ - call getlinsec - mov %ds, %ax - mov %ax, %es -@@ -115,7 +137,7 @@ - mov $ABS(firstlist - BOOTSEC_LISTSIZE), %si - mov (%si), %ebp - mov ABS(BootDrive), %dl /* this makes sure %dl is our "boot" drive */ -- ljmp $0, $(STAGE_ADDR+SECTOR_SIZE) /* jump to main() in asm.S */ -+ ljmp $0, $(STAGE_ADDR) /* jump to main() in asm.S */ - - /* go here when you need to stop the machine hard after an error condition */ - stop: jmp stop -@@ -171,11 +193,11 @@ - */ - xint13: - movb $6, ABS(RetryCount) -- pushal - .try: -+ pushal - int $0x13 - jc 1f -- add $(8*4), %sp /* Clean up stack */ -+ popal /* Clean up stack */ - ret - 1: - mov %ah, %dl /* Save error code */ -@@ -276,6 +298,10 @@ - - read_error_string: .string "Read error 0x" - -+int13_error_string1: .string "Support for IBM/MS INT 13h extensions not found" -+int13_error_string2: .string "GRUB cannot be loaded if int 13h/function AH=42h isn't present" -+int13_error_string3: .string "Trying to load stage 2 anyway..." -+ - /* - * EBIOS disk address packet - */ -@@ -306,7 +332,8 @@ - .word 0 - .word 0 - -- . = _start + SECTOR_SIZE - BOOTSEC_LISTSIZE -+ /* size of the code we can place between main body and fixed top location */ -+ . = _start + 1536 - BOOTSEC_LISTSIZE - - /* fill the first data listing with the default */ - blocklist_default_start:/* this is the sector start parameter, in logical -@@ -321,6 +348,12 @@ - #endif - blocklist_default_seg: /* this is the segment of the starting address - to load the data into */ -- .word (STAGE_ADDR + SECTOR_SIZE) >> 4 -+ .word (STAGE_ADDR) >> 4 - - firstlist: /* this label has to be after the list data!!! */ -+ -+ /* this is a workaround to allow more code to be added in stage1, -+ it allows more code to be added for this stage, but for this -+ we can't reload the first sector. So we have to align the code -+ to ISO_SECTOR_SIZE. */ -+ . = _start + ISO_SECTOR_SIZE -diff -Naur grub-0.97.orig/util/grub-install.in grub-0.97/util/grub-install.in ---- grub-0.97.orig/util/grub-install.in 2004-07-24 11:57:31.000000000 -0700 -+++ grub-0.97/util/grub-install.in 2006-05-28 20:30:31.484088268 -0700 -@@ -336,6 +336,10 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync -+ - $grub_shell --batch $no_floppy --device-map=$device_map <$log_file - quit - EOF -@@ -450,6 +454,10 @@ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - -+# Before all invocations of the grub shell, call sync to make sure -+# the raw device is in sync with any bufferring in filesystems. -+sync -+ - # Now perform the installation. - $grub_shell --batch $no_floppy --device-map=$device_map <$log_file - root $root_drive diff --git a/src/patches/grub-0.97-dmraid-partition-names.patch b/src/patches/grub-0.97-dmraid-partition-names.patch deleted file mode 100644 index 9390b29ace..0000000000 --- a/src/patches/grub-0.97-dmraid-partition-names.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- grub-0.97/lib/device.c.dmraid-partition-names 2006-02-13 18:53:59.000000000 -0500 -+++ grub-0.97/lib/device.c 2006-02-13 18:56:04.000000000 -0500 -@@ -1106,6 +1106,7 @@ - /* Compaq smart and others */ - (strncmp(dev, "/dev/ida/", 9) == 0 || - strncmp(dev, "/dev/ataraid/", 13) == 0 || -+ strncmp(dev, "/dev/mapper/", 12) == 0 || - strncmp(dev, "/dev/cciss/", 11) == 0 || - strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "", - ((partition >> 16) & 0xFF) + 1); diff --git a/src/patches/grub-0.97-dmraid-recheck-bad.patch b/src/patches/grub-0.97-dmraid-recheck-bad.patch deleted file mode 100644 index 49b33ae250..0000000000 --- a/src/patches/grub-0.97-dmraid-recheck-bad.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- grub-0.97/util/grub-install.in.dmraid-recheck-bad 2006-01-13 17:04:26.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2006-01-13 17:05:00.000000000 -0500 -@@ -415,6 +415,14 @@ - grubdir=${bootdir}/grub - device_map=${grubdir}/device.map - -+if [ "$recheck" == "yes" ]; then -+ if grep 'mapper' ${device_map} >/dev/null; then -+ echo 'grub-install does not support reprobing of device.map when' 1>&2 -+ echo 'using a device-mapper based boot device.' 1>&2 -+ exit 1 -+ fi -+fi -+ - # if they just want the images copied, copy the images and then exit - if test $justcopy = yes; then - copy_images diff --git a/src/patches/grub-0.97-dmraid.patch b/src/patches/grub-0.97-dmraid.patch deleted file mode 100644 index 5aad8c4814..0000000000 --- a/src/patches/grub-0.97-dmraid.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- grub-0.97/util/grub-install.in.dmraid 2006-01-13 16:40:24.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2006-01-13 16:40:37.000000000 -0500 -@@ -101,17 +101,24 @@ - # Break the device name into the disk part and the partition part. - case "$host_os" in - linux*) -- tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \ -+ tmp_disk=`echo "$1" | grep -v '/mapper/control$' | -+ grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq | -+ sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \ - -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \ - -e 's%\(fd[0-9]*\)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ -- -e 's%\(c[0-7]d[0-9]*\).*$%\1%'` -- tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \ -+ -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \ -+ -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'` -+ tmp_part=`echo "$1" | grep -v '/mapper/control$' | -+ grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq | -+ sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \ - -e 's%.*d[0-9]*p%%' \ - -e 's%.*/fd[0-9]*$%%' \ - -e 's%.*/floppy/[0-9]*$%%' \ - -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \ -- -e 's%.*c[0-7]d[0-9]*p%%'` -+ -e 's%.*c[0-7]d[0-9]*p%%' \ -+ -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' | -+ grep -v '.*/mapper/.*'` - ;; - gnu*) - tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'` -@@ -253,6 +260,43 @@ - return 0 - } - -+# Usage: stat_device file -+# Find major:minor of a device node. -+stat_device() { -+ majmin=`stat -c "%t:%T" "$1" 2>/dev/null` -+ if test -z "$majmin"; then -+ echo "Could not find device for $1" 2>&1 -+ exit 1 -+ fi -+ -+ echo "$majmin" -+} -+ -+# Usage: find_mapper_device file -+# Find a file in /dev/mapper with the same major:minor as the specified node. -+find_mapper_device() { -+ if [ -b "$1" ]; then -+ dev="$1" -+ else -+ mntpnt=`echo "$1" | sed 's,/,\\\\/,g'` -+ dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab` -+ fi -+ if test -z "$dev"; then -+ echo "Could not find device for $1" 2>&1 -+ exit 1 -+ fi -+ -+ majmin=`stat_device $dev` -+ for x in /dev/mapper/* ; do -+ devmajmin=`stat_device "$x"` -+ if [ "$majmin" == "$devmajmin" ]; then -+ echo "$x" -+ return 0 -+ fi -+ done -+ return 1 -+} -+ - # Usage: find_device file - # Find block device on which the file resides. - find_device () { -@@ -265,9 +309,14 @@ - exit 1 - fi - -- tmp_fname=`resolve_symlink $tmp_fname` -+ ret_fname=`resolve_symlink $tmp_fname` -+ tmp_fname=`find_mapper_device $ret_fname` -+ if test -n "$tmp_fname"; then -+ ret_fname="$tmp_fname" -+ fi - -- echo "$tmp_fname" -+ echo "$ret_fname" -+ return 0 - } - - copy_images() { diff --git a/src/patches/grub-0.97-install.in.patch b/src/patches/grub-0.97-install.in.patch deleted file mode 100644 index a9f2aefdc4..0000000000 --- a/src/patches/grub-0.97-install.in.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- grub-0.97/util/grub-install.in.install 2005-12-12 18:15:45.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2005-12-12 18:18:11.000000000 -0500 -@@ -324,6 +324,15 @@ - test -d "$bootdir" || mkdir "$bootdir" || exit 1 - test -d "$grubdir" || mkdir "$grubdir" || exit 1 - -+# Copy the GRUB images to the GRUB directory. -+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ rm -f $file || exit 1 -+done -+for file in \ -+ ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -+ cp -f $file ${grubdir} || exit 1 -+done -+ - # If --recheck is specified, remove the device map, if present. - if test $recheck = yes; then - rm -f $device_map -@@ -406,15 +415,6 @@ - exit 1 - fi - --# Copy the GRUB images to the GRUB directory. --for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- rm -f $file || exit 1 --done --for file in \ -- ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do -- cp -f $file ${grubdir} || exit 1 --done -- - # Make a default file. - ${grub_set_default} --root-directory=${rootdir} default - diff --git a/src/patches/grub-0.97-mactel-kbd.patch b/src/patches/grub-0.97-mactel-kbd.patch deleted file mode 100644 index f1de19fe90..0000000000 --- a/src/patches/grub-0.97-mactel-kbd.patch +++ /dev/null @@ -1,100 +0,0 @@ ---- grub-0.97/stage2/asm.S.mactel-kbd 2006-06-12 17:00:10.000000000 -0400 -+++ grub-0.97/stage2/asm.S 2006-06-12 17:03:38.000000000 -0400 -@@ -1651,7 +1651,30 @@ - jnz 3f - ret - --3: /* use keyboard controller */ -+3: /* -+ * try to switch gateA20 using PORT92, the "Fast A20 and Init" -+ * register -+ */ -+ mov $0x92, %dx -+ inb %dx, %al -+ /* skip the port92 code if it's unimplemented (read returns 0xff) */ -+ cmpb $0xff, %al -+ jz 6f -+ -+ /* set or clear bit1, the ALT_A20_GATE bit */ -+ movb 4(%esp), %ah -+ testb %ah, %ah -+ jz 4f -+ orb $2, %al -+ jmp 5f -+4: and $0xfd, %al -+ -+ /* clear the INIT_NOW bit; don't accidently reset the machine */ -+5: and $0xfe, %al -+ outb %al, %dx -+ -+ -+6: /* use keyboard controller */ - pushl %eax - - call gloop1 -@@ -1661,9 +1684,12 @@ - - gloopint1: - inb $K_STATUS -+ cmpb $0xff, %al -+ jz gloopint1_done - andb $K_IBUF_FUL, %al - jnz gloopint1 - -+gloopint1_done: - movb $KB_OUTPUT_MASK, %al - cmpb $0, 0x8(%esp) - jz gdoit -@@ -1684,6 +1710,8 @@ - - gloop1: - inb $K_STATUS -+ cmpb $0xff, %al -+ jz gloop2ret - andb $K_IBUF_FUL, %al - jnz gloop1 - -@@ -1994,8 +2022,25 @@ - call EXT_C(prot_to_real) - .code16 - -+.again: -+ mov $0x11, %ah /* poll kbd */ - int $0x16 - -+ jz .again -+#if 0 -+/* XXX handle serial here? -- pj */ -+ jnz .kbd -+#endif -+.kbd: -+ mov $0x10, %ah -+ int $0x16 -+ cmp $0xe0, %al -+ jnz .not_ext -+ xor %al, %al -+.not_ext: -+ and %al, %al -+ jz .func_key -+.func_key: - movw %ax, %dx /* real_to_prot uses %eax */ - call translate_keycode - call remap_ascii_char -@@ -2003,7 +2048,7 @@ - DATA32 call EXT_C(real_to_prot) - .code32 - -- movw %dx, %ax -+ mov %dx, %ax - - pop %ebp - ret -@@ -2029,7 +2074,7 @@ - call EXT_C(prot_to_real) /* enter real mode */ - .code16 - -- movb $0x1, %ah -+ movb $0x11, %ah - int $0x16 - - DATA32 jz notpending diff --git a/src/patches/grub-0.97-mdadm-path.patch b/src/patches/grub-0.97-mdadm-path.patch deleted file mode 100644 index fff301c279..0000000000 --- a/src/patches/grub-0.97-mdadm-path.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- grub-0.97/util/grub-install.in.mdadm-path 2005-12-12 18:42:23.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2005-12-12 18:44:15.000000000 -0500 -@@ -30,5 +30,6 @@ - pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} - - grub_shell=${sbindir}/grub -+mdadm=${sbindir}/mdadm - log_file=/tmp/grub-install.log.$$ - img_file=/tmp/grub-install.img.$$ -@@ -217,7 +218,7 @@ - is_raid1_device () { - case "$host_os" in - linux*) -- level=`mdadm --query --detail $1 2>/dev/null | \ -+ level=`$mdadm --query --detail $1 2>/dev/null | \ - awk '/Raid Level :/ {print $4}'` - if [ "$level" = "raid1" ]; then - return 0 -@@ -236,7 +237,7 @@ - linux*) - if is_raid1_device $source_device ; then - list="" -- for device in `mdadm --query --detail "${source_device}" | \ -+ for device in `$mdadm --query --detail "${source_device}" | \ - awk '/\/dev\/[^(md)]/ {print $7}'` ; do - list="$list $device" - done diff --git a/src/patches/grub-0.97-mpath.patch b/src/patches/grub-0.97-mpath.patch deleted file mode 100644 index 4b7edf3ac2..0000000000 --- a/src/patches/grub-0.97-mpath.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- grub-0.97/util/grub-install.in.mpath 2006-08-02 17:21:53.000000000 -0400 -+++ grub-0.97/util/grub-install.in 2006-08-02 17:23:23.000000000 -0400 -@@ -107,6 +107,7 @@ - -e 's%\(fd[0-9]*\)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ - -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \ -+ -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \ - -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'` - tmp_part=`echo "$1" | grep -v '/mapper/control$' | - grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq | -@@ -116,6 +117,7 @@ - -e 's%.*/floppy/[0-9]*$%%' \ - -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \ - -e 's%.*c[0-7]d[0-9]*p%%' \ -+ -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \ - -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' | - grep -v '.*/mapper/.*'` - ;; diff --git a/src/patches/grub-0.97-nx-multiinstall.patch b/src/patches/grub-0.97-nx-multiinstall.patch deleted file mode 100644 index f0e4ec0f74..0000000000 --- a/src/patches/grub-0.97-nx-multiinstall.patch +++ /dev/null @@ -1,60 +0,0 @@ -2006-03-09 Alexandre Oliva - - * lib/builtins.c (install_blocklist_helper): Move static - last_lenght... - (install_func_context): ... here. - (install_func): Reset it. - -Index: grub-0.97/stage2/builtins.c -=================================================================== ---- grub-0.97.orig/stage2/builtins.c 2006-03-09 10:26:41.000000000 -0300 -+++ grub-0.97/stage2/builtins.c 2006-03-09 11:36:18.000000000 -0300 -@@ -1926,11 +1926,13 @@ static struct { - int saved_sector; - int installaddr; - int installlist; -+ int last_length; - char *stage2_first_buffer; - } install_func_context = { - .saved_sector = 0, - .installaddr = 0, - .installlist = 0, -+ .last_length = SECTOR_SIZE, - .stage2_first_buffer = NULL, - }; - -@@ -1960,19 +1962,19 @@ install_blocklist_helper (int sector, in - int *installlist = &install_func_context.installlist; - char **stage2_first_buffer = &install_func_context.stage2_first_buffer; - /* Was the last sector full? */ -- static int last_length = SECTOR_SIZE; -+ int *last_length = &install_func_context.last_length; - - if (debug) - printf("[%d]", sector); - -- if (offset != 0 || last_length != SECTOR_SIZE) -+ if (offset != 0 || *last_length != SECTOR_SIZE) - { - /* We found a non-sector-aligned data block. */ - errnum = ERR_UNALIGNED; - return; - } - -- last_length = length; -+ *last_length = length; - - if (*((unsigned long *) (*installlist - 4)) - + *((unsigned short *) *installlist) != sector -@@ -2027,7 +2029,11 @@ install_func (char *arg, int flags) - int is_open = 0; - /* If LBA is forced? */ - int is_force_lba = 0; -+ int *last_length = &install_func_context.last_length; - -+ /* Reset state. */ -+ *last_length = SECTOR_SIZE; -+ - *stage2_first_buffer = old_sect + SECTOR_SIZE; - #ifdef GRUB_UTIL - /* If the Stage 2 is in a partition mounted by an OS, this will store diff --git a/src/patches/grub-0.97-nxstack.patch b/src/patches/grub-0.97-nxstack.patch deleted file mode 100644 index 92742cd571..0000000000 --- a/src/patches/grub-0.97-nxstack.patch +++ /dev/null @@ -1,615 +0,0 @@ ---- grub-0.97/stage2/shared.h.nxstack 2005-12-12 18:31:41.000000000 -0500 -+++ grub-0.97/stage2/shared.h 2005-12-12 18:31:42.000000000 -0500 -@@ -36,8 +36,8 @@ - - /* Maybe redirect memory requests through grub_scratch_mem. */ - #ifdef GRUB_UTIL --extern char *grub_scratch_mem; --# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem) -+extern void *grub_scratch_mem; -+# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem) - # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4) - #else - # define RAW_ADDR(x) (x) ---- grub-0.97/stage2/builtins.c.nxstack 2005-12-12 18:31:41.000000000 -0500 -+++ grub-0.97/stage2/builtins.c 2005-12-12 18:41:47.000000000 -0500 -@@ -131,62 +131,97 @@ - } - - -+/* blocklist_read_helper nee disk_read_blocklist_func was a nested -+ * function, to which pointers were taken and exposed globally. Even -+ * in the GNU-C nested functions extension, they have local linkage, -+ * and aren't guaranteed to be accessable *at all* outside of their -+ * containing scope. -+ * -+ * Above and beyond all of that, the variables within blocklist_func_context -+ * are originally local variables, with local (not even static) linkage, -+ * from within blocklist_func. These were each referenced by -+ * disk_read_blocklist_func, which is only called from other functions -+ * through a globally scoped pointer. -+ * -+ * The documentation in GCC actually uses the words "all hell will break -+ * loose" to describe this scenario. -+ * -+ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn -+ * about it (possibly because of the scoping madness?) -+ */ -+ -+static struct { -+ int start_sector; -+ int num_sectors; -+ int num_entries; -+ int last_length; -+} blocklist_func_context = { -+ .start_sector = 0, -+ .num_sectors = 0, -+ .num_entries = 0, -+ .last_length = 0 -+}; -+ -+/* Collect contiguous blocks into one entry as many as possible, -+ and print the blocklist notation on the screen. */ -+static void -+blocklist_read_helper (int sector, int offset, int length) -+{ -+ int *start_sector = &blocklist_func_context.start_sector; -+ int *num_sectors = &blocklist_func_context.num_sectors; -+ int *num_entries = &blocklist_func_context.num_entries; -+ int *last_length = &blocklist_func_context.last_length; -+ -+ if (*num_sectors > 0) -+ { -+ if (*start_sector + *num_sectors == sector -+ && offset == 0 && *last_length == SECTOR_SIZE) -+ { -+ *num_sectors++; -+ *last_length = length; -+ return; -+ } -+ else -+ { -+ if (*last_length == SECTOR_SIZE) -+ grub_printf ("%s%d+%d", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors); -+ else if (*num_sectors > 1) -+ grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors-1, -+ *start_sector + *num_sectors-1 - part_start, -+ *last_length); -+ else -+ grub_printf ("%s%d[0-%d]", *num_entries ? "," : "", -+ *start_sector - part_start, *last_length); -+ *num_entries++; -+ *num_sectors = 0; -+ } -+ } -+ -+ if (offset > 0) -+ { -+ grub_printf("%s%d[%d-%d]", *num_entries ? "," : "", -+ sector-part_start, offset, offset+length); -+ *num_entries++; -+ } -+ else -+ { -+ *start_sector = sector; -+ *num_sectors = 1; -+ *last_length = length; -+ } -+} -+ - /* blocklist */ - static int - blocklist_func (char *arg, int flags) - { - char *dummy = (char *) RAW_ADDR (0x100000); -- int start_sector; -- int num_sectors = 0; -- int num_entries = 0; -- int last_length = 0; - -- auto void disk_read_blocklist_func (int sector, int offset, int length); -- -- /* Collect contiguous blocks into one entry as many as possible, -- and print the blocklist notation on the screen. */ -- auto void disk_read_blocklist_func (int sector, int offset, int length) -- { -- if (num_sectors > 0) -- { -- if (start_sector + num_sectors == sector -- && offset == 0 && last_length == SECTOR_SIZE) -- { -- num_sectors++; -- last_length = length; -- return; -- } -- else -- { -- if (last_length == SECTOR_SIZE) -- grub_printf ("%s%d+%d", num_entries ? "," : "", -- start_sector - part_start, num_sectors); -- else if (num_sectors > 1) -- grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", -- start_sector - part_start, num_sectors-1, -- start_sector + num_sectors-1 - part_start, -- last_length); -- else -- grub_printf ("%s%d[0-%d]", num_entries ? "," : "", -- start_sector - part_start, last_length); -- num_entries++; -- num_sectors = 0; -- } -- } -- -- if (offset > 0) -- { -- grub_printf("%s%d[%d-%d]", num_entries ? "," : "", -- sector-part_start, offset, offset+length); -- num_entries++; -- } -- else -- { -- start_sector = sector; -- num_sectors = 1; -- last_length = length; -- } -- } -+ int *start_sector = &blocklist_func_context.start_sector; -+ int *num_sectors = &blocklist_func_context.num_sectors; -+ int *num_entries = &blocklist_func_context.num_entries; - - /* Open the file. */ - if (! grub_open (arg)) -@@ -206,15 +241,15 @@ - grub_printf (")"); - - /* Read in the whole file to DUMMY. */ -- disk_read_hook = disk_read_blocklist_func; -+ disk_read_hook = blocklist_read_helper; - if (! grub_read (dummy, -1)) - goto fail; - - /* The last entry may not be printed yet. Don't check if it is a - * full sector, since it doesn't matter if we read too much. */ -- if (num_sectors > 0) -- grub_printf ("%s%d+%d", num_entries ? "," : "", -- start_sector - part_start, num_sectors); -+ if (*num_sectors > 0) -+ grub_printf ("%s%d+%d", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors); - - grub_printf ("\n"); - -@@ -1889,6 +1924,77 @@ - - - /* install */ -+static struct { -+ int saved_sector; -+ int installaddr; -+ int installlist; -+ char *stage2_first_buffer; -+} install_func_context = { -+ .saved_sector = 0, -+ .installaddr = 0, -+ .installlist = 0, -+ .stage2_first_buffer = NULL, -+}; -+ -+/* Save the first sector of Stage2 in STAGE2_SECT. */ -+/* Formerly disk_read_savesect_func with local scope inside install_func */ -+static void -+install_savesect_helper(int sector, int offset, int length) -+{ -+ if (debug) -+ printf ("[%d]", sector); -+ -+ /* ReiserFS has files which sometimes contain data not aligned -+ on sector boundaries. Returning an error is better than -+ silently failing. */ -+ if (offset != 0 || length != SECTOR_SIZE) -+ errnum = ERR_UNALIGNED; -+ -+ install_func_context.saved_sector = sector; -+} -+ -+/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */ -+/* Formerly disk_read_blocklist_func with local scope inside install_func */ -+static void -+install_blocklist_helper (int sector, int offset, int length) -+{ -+ int *installaddr = &install_func_context.installaddr; -+ int *installlist = &install_func_context.installlist; -+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; -+ /* Was the last sector full? */ -+ static int last_length = SECTOR_SIZE; -+ -+ if (debug) -+ printf("[%d]", sector); -+ -+ if (offset != 0 || last_length != SECTOR_SIZE) -+ { -+ /* We found a non-sector-aligned data block. */ -+ errnum = ERR_UNALIGNED; -+ return; -+ } -+ -+ last_length = length; -+ -+ if (*((unsigned long *) (*installlist - 4)) -+ + *((unsigned short *) *installlist) != sector -+ || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4) -+ { -+ *installlist -= 8; -+ -+ if (*((unsigned long *) (*installlist - 8))) -+ errnum = ERR_WONT_FIT; -+ else -+ { -+ *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4); -+ *((unsigned long *) (*installlist - 4)) = sector; -+ } -+ } -+ -+ *((unsigned short *) *installlist) += 1; -+ *installaddr += 512; -+} -+ - static int - install_func (char *arg, int flags) - { -@@ -1896,8 +2002,12 @@ - char *stage1_buffer = (char *) RAW_ADDR (0x100000); - char *stage2_buffer = stage1_buffer + SECTOR_SIZE; - char *old_sect = stage2_buffer + SECTOR_SIZE; -- char *stage2_first_buffer = old_sect + SECTOR_SIZE; -- char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; -+ /* stage2_first_buffer used to be defined as: -+ * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */ -+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; -+ /* and stage2_second_buffer was: -+ * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */ -+ char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE; - /* XXX: Probably SECTOR_SIZE is reasonable. */ - char *config_filename = stage2_second_buffer + SECTOR_SIZE; - char *dummy = config_filename + SECTOR_SIZE; -@@ -1906,10 +2016,11 @@ - int src_drive, src_partition, src_part_start; - int i; - struct geometry dest_geom, src_geom; -- int saved_sector; -+ int *saved_sector = &install_func_context.saved_sector; - int stage2_first_sector, stage2_second_sector; - char *ptr; -- int installaddr, installlist; -+ int *installaddr = &install_func_context.installaddr; -+ int *installlist = &install_func_context.installlist; - /* Point to the location of the name of a configuration file in Stage 2. */ - char *config_file_location; - /* If FILE is a Stage 1.5? */ -@@ -1918,68 +2029,14 @@ - int is_open = 0; - /* If LBA is forced? */ - int is_force_lba = 0; -- /* Was the last sector full? */ -- int last_length = SECTOR_SIZE; - -+ *stage2_first_buffer = old_sect + SECTOR_SIZE; - #ifdef GRUB_UTIL - /* If the Stage 2 is in a partition mounted by an OS, this will store - the filename under the OS. */ - char *stage2_os_file = 0; - #endif /* GRUB_UTIL */ - -- auto void disk_read_savesect_func (int sector, int offset, int length); -- auto void disk_read_blocklist_func (int sector, int offset, int length); -- -- /* Save the first sector of Stage2 in STAGE2_SECT. */ -- auto void disk_read_savesect_func (int sector, int offset, int length) -- { -- if (debug) -- printf ("[%d]", sector); -- -- /* ReiserFS has files which sometimes contain data not aligned -- on sector boundaries. Returning an error is better than -- silently failing. */ -- if (offset != 0 || length != SECTOR_SIZE) -- errnum = ERR_UNALIGNED; -- -- saved_sector = sector; -- } -- -- /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and -- INSTALLSECT. */ -- auto void disk_read_blocklist_func (int sector, int offset, int length) -- { -- if (debug) -- printf("[%d]", sector); -- -- if (offset != 0 || last_length != SECTOR_SIZE) -- { -- /* We found a non-sector-aligned data block. */ -- errnum = ERR_UNALIGNED; -- return; -- } -- -- last_length = length; -- -- if (*((unsigned long *) (installlist - 4)) -- + *((unsigned short *) installlist) != sector -- || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) -- { -- installlist -= 8; -- -- if (*((unsigned long *) (installlist - 8))) -- errnum = ERR_WONT_FIT; -- else -- { -- *((unsigned short *) (installlist + 2)) = (installaddr >> 4); -- *((unsigned long *) (installlist - 4)) = sector; -- } -- } -- -- *((unsigned short *) installlist) += 1; -- installaddr += 512; -- } -- - /* First, check the GNU-style long option. */ - while (1) - { -@@ -2011,10 +2068,10 @@ - addr = skip_to (0, file); - - /* Get the installation address. */ -- if (! safe_parse_maxint (&addr, &installaddr)) -+ if (! safe_parse_maxint (&addr, installaddr)) - { - /* ADDR is not specified. */ -- installaddr = 0; -+ *installaddr = 0; - ptr = addr; - errnum = 0; - } -@@ -2110,17 +2167,17 @@ - = 0x9090; - - /* Read the first sector of Stage 2. */ -- disk_read_hook = disk_read_savesect_func; -- if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) -+ disk_read_hook = install_savesect_helper; -+ if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -- stage2_first_sector = saved_sector; -+ stage2_first_sector = *saved_sector; - - /* Read the second sector of Stage 2. */ - if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -- stage2_second_sector = saved_sector; -+ stage2_second_sector = *saved_sector; - - /* Check for the version of Stage 2. */ - if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) -@@ -2136,27 +2193,27 @@ - - /* If INSTALLADDR is not specified explicitly in the command-line, - determine it by the Stage 2 id. */ -- if (! installaddr) -+ if (! *installaddr) - { - if (! is_stage1_5) - /* Stage 2. */ -- installaddr = 0x8000; -+ *installaddr = 0x8000; - else - /* Stage 1.5. */ -- installaddr = 0x2000; -+ *installaddr = 0x2000; - } - - *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) - = stage2_first_sector; - *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) -- = installaddr; -+ = *installaddr; - *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) -- = installaddr >> 4; -+ = *installaddr >> 4; - -- i = (int) stage2_first_buffer + SECTOR_SIZE - 4; -+ i = (int) *stage2_first_buffer + SECTOR_SIZE - 4; - while (*((unsigned long *) i)) - { -- if (i < (int) stage2_first_buffer -+ if (i < (int) *stage2_first_buffer - || (*((int *) (i - 4)) & 0x80000000) - || *((unsigned short *) i) >= 0xA00 - || *((short *) (i + 2)) == 0) -@@ -2170,13 +2227,13 @@ - i -= 8; - } - -- installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; -- installaddr += SECTOR_SIZE; -+ *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4; -+ *installaddr += SECTOR_SIZE; - - /* Read the whole of Stage2 except for the first sector. */ - grub_seek (SECTOR_SIZE); - -- disk_read_hook = disk_read_blocklist_func; -+ disk_read_hook = install_blocklist_helper; - if (! grub_read (dummy, -1)) - goto fail; - -@@ -2259,7 +2316,7 @@ - /* Skip the first sector. */ - grub_seek (SECTOR_SIZE); - -- disk_read_hook = disk_read_savesect_func; -+ disk_read_hook = install_savesect_helper; - if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -@@ -2329,7 +2386,7 @@ - else - #endif /* GRUB_UTIL */ - { -- if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) -+ if (! devwrite (*saved_sector - part_start, 1, stage2_buffer)) - goto fail; - } - } -@@ -2351,7 +2408,7 @@ - goto fail; - } - -- if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) - { - fclose (fp); - errnum = ERR_WRITE; -@@ -2378,7 +2435,7 @@ - goto fail; - - if (! devwrite (stage2_first_sector - src_part_start, 1, -- stage2_first_buffer)) -+ *stage2_first_buffer)) - goto fail; - - if (! devwrite (stage2_second_sector - src_part_start, 1, ---- grub-0.97/grub/asmstub.c.nxstack 2005-12-12 18:31:41.000000000 -0500 -+++ grub-0.97/grub/asmstub.c 2005-12-12 18:31:42.000000000 -0500 -@@ -42,6 +42,7 @@ - #include - #include - #include -+#include - - #ifdef __linux__ - # include /* ioctl */ -@@ -82,7 +83,7 @@ - struct apm_info apm_bios_info; - - /* Emulation requirements. */ --char *grub_scratch_mem = 0; -+void *grub_scratch_mem = 0; - - struct geometry *disks = 0; - -@@ -106,14 +107,62 @@ - static unsigned int serial_speed; - #endif /* SIMULATE_SLOWNESS_OF_SERIAL */ - -+/* This allocates page-aligned storage of the specified size, which must be -+ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE) -+ */ -+#ifdef __linux__ -+static void * -+grub_mmap_alloc(size_t len) -+{ -+ int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE; -+ -+#ifdef MAP_32BIT -+ mmap_flags |= MAP_32BIT; -+#endif -+ /* Mark the simulated stack executable, as GCC uses stack trampolines -+ * to implement nested functions. */ -+ return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0); -+} -+#else /* !defined(__linux__) */ -+static void * -+grub_mmap_alloc(size_t len) -+{ -+ int fd = 0, offset = 0, ret = 0; -+ void *pa = MAP_FAILED; -+ char template[] = "/tmp/grub_mmap_alloc_XXXXXX"; -+ errno_t e; -+ -+ fd = mkstemp(template); -+ if (fd < 0) -+ return pa; -+ -+ unlink(template); -+ -+ ret = ftruncate(fd, len); -+ if (ret < 0) -+ return pa; -+ -+ /* Mark the simulated stack executable, as GCC uses stack trampolines -+ * to implement nested functions. */ -+ pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, -+ MAP_PRIVATE|MAP_EXECUTABLE, fd, offset); -+ -+ e = errno; -+ close(fd); -+ errno = e; -+ return pa; -+} -+#endif /* defined(__linux__) */ -+ - /* The main entry point into this mess. */ - int - grub_stage2 (void) - { - /* These need to be static, because they survive our stack transitions. */ - static int status = 0; -- static char *realstack; -- char *scratch, *simstack; -+ static void *realstack; -+ void *simstack_alloc_base, *simstack; -+ size_t simstack_size, page_size; - int i; - - auto void doit (void); -@@ -145,9 +194,35 @@ - } - - assert (grub_scratch_mem == 0); -- scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); -- assert (scratch); -- grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); -+ -+ /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and -+ * make sure the memory is aligned to a multiple of the system's -+ * page size */ -+ page_size = sysconf (_SC_PAGESIZE); -+ simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15); -+ if (simstack_size % page_size) -+ { -+ /* If we're not on a page_size boundary, round up to the next one */ -+ simstack_size &= ~(page_size-1); -+ simstack_size += page_size; -+ } -+ -+ /* Add one for a PROT_NONE boundary page at each end. */ -+ simstack_size += 2 * page_size; -+ -+ simstack_alloc_base = grub_mmap_alloc(simstack_size); -+ assert (simstack_alloc_base != MAP_FAILED); -+ -+ /* mark pages above and below our simstack area as innaccessable. -+ * If the implementation we're using doesn't support that, then the -+ * new protection modes are undefined. It's safe to just ignore -+ * them, though. It'd be nice if we knew that we'd get a SEGV for -+ * touching the area, but that's all. it'd be nice to have. */ -+ mprotect (simstack_alloc_base, page_size, PROT_NONE); -+ mprotect ((void *)((unsigned long)simstack_alloc_base + -+ simstack_size - page_size), page_size, PROT_NONE); -+ -+ grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size); - - /* FIXME: simulate the memory holes using mprot, if available. */ - -@@ -220,7 +295,7 @@ - device_map = 0; - free (disks); - disks = 0; -- free (scratch); -+ munmap(simstack_alloc_base, simstack_size); - grub_scratch_mem = 0; - - if (serial_device) diff --git a/src/patches/grub-0.97-once.patch b/src/patches/grub-0.97-once.patch deleted file mode 100644 index 6fb9a8ddc5..0000000000 --- a/src/patches/grub-0.97-once.patch +++ /dev/null @@ -1,513 +0,0 @@ ---- grub-0.97/stage2/builtins.c.bootonce 2005-12-12 18:23:12.000000000 -0500 -+++ grub-0.97/stage2/builtins.c 2005-12-12 18:29:20.000000000 -0500 -@@ -3217,146 +3217,175 @@ - }; - - --/* savedefault */ -+ -+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) -+/* Write specified default entry number into stage2 file. */ - static int --savedefault_func (char *arg, int flags) -+savedefault_helper(int new_default) - { --#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) -- unsigned long tmp_drive = saved_drive; -- unsigned long tmp_partition = saved_partition; -- char *default_file = (char *) DEFAULT_FILE_BUF; -- char buf[10]; -- char sect[SECTOR_SIZE]; -- int entryno; -- int sector_count = 0; -- int saved_sectors[2]; -- int saved_offsets[2]; -- int saved_lengths[2]; -- -- /* Save sector information about at most two sectors. */ -- auto void disk_read_savesect_func (int sector, int offset, int length); -- void disk_read_savesect_func (int sector, int offset, int length) -- { -- if (sector_count < 2) -- { -- saved_sectors[sector_count] = sector; -- saved_offsets[sector_count] = offset; -- saved_lengths[sector_count] = length; -- } -- sector_count++; -- } -- -- /* This command is only useful when you boot an entry from the menu -- interface. */ -- if (! (flags & BUILTIN_SCRIPT)) -+ char buffer[512]; -+ int *entryno_ptr; -+ -+ /* Get the geometry of the boot drive (i.e. the disk which contains -+ this stage2). */ -+ if (get_diskinfo (boot_drive, &buf_geom)) - { -- errnum = ERR_UNRECOGNIZED; -+ errnum = ERR_NO_DISK; - return 1; - } - -- /* Determine a saved entry number. */ -- if (*arg) -+ /* Load the second sector of this stage2. */ -+ if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer)) - { -- if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0) -- { -- int i; -- int index = 0; -- -- for (i = 0; i < MAX_FALLBACK_ENTRIES; i++) -- { -- if (fallback_entries[i] < 0) -- break; -- if (fallback_entries[i] == current_entryno) -- { -- index = i + 1; -- break; -- } -- } -- -- if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0) -- { -- /* This is the last. */ -- errnum = ERR_BAD_ARGUMENT; -- return 1; -- } -+ return 1; -+ } - -- entryno = fallback_entries[index]; -- } -- else if (! safe_parse_maxint (&arg, &entryno)) -- return 1; -+ /* Sanity check. */ -+ if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2 -+ || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION) -+ { -+ errnum = ERR_BAD_VERSION; -+ return 1; - } -- else -- entryno = current_entryno; -+ -+ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO); - -- /* Open the default file. */ -- saved_drive = boot_drive; -- saved_partition = install_partition; -- if (grub_open (default_file)) -+ /* Check if the saved entry number differs from current entry number. */ -+ if (*entryno_ptr != new_default) - { -- int len; -+ /* Overwrite the saved entry number. */ -+ *entryno_ptr = new_default; - -- disk_read_hook = disk_read_savesect_func; -- len = grub_read (buf, sizeof (buf)); -- disk_read_hook = 0; -- grub_close (); -+ /* Save the image in the disk. */ -+ if (! rawwrite (boot_drive, install_second_sector, buffer)) -+ return 1; - -- if (len != sizeof (buf)) -- { -- /* This is too small. Do not modify the file manually, please! */ -- errnum = ERR_READ; -- goto fail; -- } -+ /* Clear the cache. */ -+ buf_track = -1; -+ } - -- if (sector_count > 2) -- { -- /* Is this possible?! Too fragmented! */ -- errnum = ERR_FSYS_CORRUPT; -- goto fail; -- } -- -- /* Set up a string to be written. */ -- grub_memset (buf, '\n', sizeof (buf)); -- grub_sprintf (buf, "%d", entryno); -- -- if (saved_lengths[0] < sizeof (buf)) -- { -- /* The file is anchored to another file and the first few bytes -- are spanned in two sectors. Uggh... */ -- if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]); -- if (! rawwrite (current_drive, saved_sectors[0], sect)) -- goto fail; -+ return 0; -+} -+#endif - -- if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[1], -- buf + saved_lengths[0], -- sizeof (buf) - saved_lengths[0]); -- if (! rawwrite (current_drive, saved_sectors[1], sect)) -- goto fail; -- } -+#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL) -+/* -+ * Full implementation of new `savedefault' for GRUB shell. -+ * XXX This needs fixing for stage2 files which aren't accessible -+ * through a mounted filesystem. -+ */ -+static int -+savedefault_shell(char *arg, int flags) -+{ -+ char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */ -+ FILE *fp; -+ char buffer[512]; -+ int *entryno_ptr; -+ int new_default = 0; -+ int old_default = 0; -+ -+ while (1) -+ { -+ if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0) -+ { -+ stage2_os_file = arg + sizeof ("--stage2=") - 1; -+ arg = skip_to (0, arg); -+ nul_terminate (stage2_os_file); -+ } -+ else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0) -+ { -+ char *p = arg + sizeof ("--default=") - 1; -+ if (! safe_parse_maxint (&p, &new_default)) -+ return 1; -+ arg = skip_to (0, arg); -+ } -+ else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0) -+ { -+ new_default <<= 8; -+ new_default |= STAGE2_ONCEONLY_ENTRY; -+ arg = skip_to (0, arg); -+ } - else -- { -- /* This is a simple case. It fits into a single sector. */ -- if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[0], buf, sizeof (buf)); -- if (! rawwrite (current_drive, saved_sectors[0], sect)) -- goto fail; -- } -+ break; -+ } - -- /* Clear the cache. */ -- buf_track = -1; -+ if (! (fp = fopen(stage2_os_file, "r+"))) -+ { -+ errnum = ERR_FILE_NOT_FOUND; -+ return 1; -+ } -+ -+ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) -+ { -+ fclose (fp); -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ { -+ fclose (fp); -+ errnum = ERR_READ; -+ return 1; - } - -- fail: -- saved_drive = tmp_drive; -- saved_partition = tmp_partition; -- return errnum; -+ /* Sanity check. */ -+ if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2 -+ || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION) -+ { -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO); -+ if (new_default & STAGE2_ONCEONLY_ENTRY) -+ { -+ old_default=*entryno_ptr; -+ *entryno_ptr = new_default + (old_default & 0xFF); -+ } -+ else -+ { -+ *entryno_ptr = new_default; -+ } -+ -+ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) -+ { -+ fclose (fp); -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ { -+ fclose (fp); -+ errnum = ERR_WRITE; -+ return 1; -+ } -+ -+ (void)fflush (fp); -+ fclose (fp); -+ return 0; -+} -+#endif -+ -+/* savedefault */ -+static int -+savedefault_func (char *arg, int flags) -+{ -+#if !defined(SUPPORT_DISKLESS) -+#if !defined(GRUB_UTIL) -+ /* This command is only useful when you boot an entry from the menu -+ interface. */ -+ if (! (flags & BUILTIN_SCRIPT)) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ return 1; -+ } -+ -+ return savedefault_helper(current_entryno); -+#else /* defined(GRUB_UTIL) */ -+ return savedefault_shell(arg, flags); -+#endif - #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */ - errnum = ERR_UNRECOGNIZED; - return 1; -@@ -3368,10 +3397,14 @@ - "savedefault", - savedefault_func, - BUILTIN_CMDLINE, -- "savedefault [NUM | `fallback']", -- "Save the current entry as the default boot entry if no argument is" -- " specified. If a number is specified, this number is saved. If" -- " `fallback' is used, next fallback entry is saved." -+#ifdef GRUB_UTIL -+ "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]", -+ "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'" -+ " is specified, the default is reset after the next reboot." -+#else -+ "savedefault", -+ "Save the current entry as the default boot entry." -+#endif - }; - - -@@ -4598,6 +4631,15 @@ - static int - timeout_func (char *arg, int flags) - { -+ /* One-shot default shenanigans -- don't piss around with the menu! */ -+ if (grub_timeout != -1) -+ return 0; -+ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0) -+ { -+ grub_timeout = 0; -+ return 0; -+ } -+ - if (! safe_parse_maxint (&arg, &grub_timeout)) - return 1; - ---- grub-0.97/stage2/shared.h.bootonce 2005-12-12 18:23:13.000000000 -0500 -+++ grub-0.97/stage2/shared.h 2005-12-12 18:23:13.000000000 -0500 -@@ -200,6 +200,8 @@ - #define STAGE2_FORCE_LBA 0x11 - #define STAGE2_VER_STR_OFFS 0x12 - -+#define STAGE2_ONCEONLY_ENTRY 0x10000 -+ - /* Stage 2 identifiers */ - #define STAGE2_ID_STAGE2 0 - #define STAGE2_ID_FFS_STAGE1_5 1 ---- grub-0.97/stage2/builtins.c.bootonce 2006-03-13 16:55:11.000000000 -0500 -+++ grub-0.97/stage2/builtins.c 2006-03-13 16:56:01.000000000 -0500 -@@ -761,11 +761,25 @@ - }; - - -+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) -+static int savedefault_helper(int); -+#endif - /* default */ - static int - default_func (char *arg, int flags) - { - #ifndef SUPPORT_DISKLESS -+#ifndef GRUB_UTIL -+ /* Has a forced once-only default been specified? */ -+ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0) -+ { -+ int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY; -+ grub_timeout = 0; -+ default_entry = old_defaults >> 8; -+ savedefault_helper(old_defaults & 0xff); -+ return 0; -+ } -+#endif - if (grub_strcmp (arg, "saved") == 0) - { - default_entry = saved_entryno; ---- grub-0.97/stage2/stage2.c.bootonce 2006-03-13 17:27:40.000000000 -0500 -+++ grub-0.97/stage2/stage2.c 2006-03-13 17:29:11.000000000 -0500 -@@ -960,38 +960,8 @@ - if (use_config_file) - #endif /* GRUB_UTIL */ - { -- char *default_file = (char *) DEFAULT_FILE_BUF; - int i; -- -- /* Get a saved default entry if possible. */ -- saved_entryno = 0; -- *default_file = 0; -- grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN); -- for (i = grub_strlen(default_file); i >= 0; i--) -- if (default_file[i] == '/') -- { -- i++; -- break; -- } -- default_file[i] = 0; -- grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i); -- if (grub_open (default_file)) -- { -- char buf[10]; /* This is good enough. */ -- char *p = buf; -- int len; -- -- len = grub_read (buf, sizeof (buf)); -- if (len > 0) -- { -- buf[sizeof (buf) - 1] = 0; -- safe_parse_maxint (&p, &saved_entryno); -- } - -- grub_close (); -- } -- errnum = ERR_NONE; -- - do - { - /* STATE 0: Before any title command. ---- grub-0.97/util/grub-install.in.bootonce 2006-03-13 17:39:35.000000000 -0500 -+++ grub-0.97/util/grub-install.in 2006-03-13 17:39:50.000000000 -0500 -@@ -30,7 +30,6 @@ - pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} - - grub_shell=${sbindir}/grub --grub_set_default=${sbindir}/grub-set-default - log_file=/tmp/grub-install.log.$$ - img_file=/tmp/grub-install.img.$$ - rootdir= -@@ -432,9 +431,6 @@ - exit 1 - fi - --# Make a default file. --${grub_set_default} --root-directory=${rootdir} default -- - # Make sure that GRUB reads the same images as the host OS. - test -n "$mkimg" && img_file=`$mkimg` - test -n "$mklog" && log_file=`$mklog` ---- grub-0.97/configure.bootonce 2006-03-13 17:49:05.000000000 -0500 -+++ grub-0.97/configure 2006-03-13 17:49:16.000000000 -0500 -@@ -6135,7 +6135,7 @@ - - - -- ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo util/grub-set-default" -+ ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo" - - cat >confcache <<\_ACEOF - # This file is a shell script that caches the results of configure -@@ -6754,7 +6754,6 @@ - "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;; - "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;; - "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;; -- "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 ---- grub-0.97/configure.ac.bootonce 2006-03-13 17:47:24.000000000 -0500 -+++ grub-0.97/configure.ac 2006-03-13 17:47:37.000000000 -0500 -@@ -666,5 +666,5 @@ - docs/Makefile lib/Makefile util/Makefile \ - grub/Makefile netboot/Makefile util/grub-image \ - util/grub-install util/grub-md5-crypt \ -- util/grub-terminfo util/grub-set-default]) -+ util/grub-terminfo]) - AC_OUTPUT ---- grub-0.97/util/Makefile.am.bootonce 2006-03-13 17:48:39.000000000 -0500 -+++ grub-0.97/util/Makefile.am 2006-03-13 17:48:45.000000000 -0500 -@@ -1,6 +1,5 @@ - bin_PROGRAMS = mbchk --sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \ -- grub-set-default -+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo - noinst_SCRIPTS = grub-image mkbimage - - EXTRA_DIST = mkbimage ---- grub-0.97/util/Makefile.in.bootonce 2006-03-13 17:47:56.000000000 -0500 -+++ grub-0.97/util/Makefile.in 2006-03-13 17:48:34.000000000 -0500 -@@ -43,8 +43,7 @@ - subdir = util - DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/grub-image.in $(srcdir)/grub-install.in \ -- $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \ -- $(srcdir)/grub-terminfo.in -+ $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-terminfo.in - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -@@ -52,8 +51,7 @@ - $(ACLOCAL_M4) - mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs - CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \ -- grub-terminfo grub-set-default -+CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt grub-terminfo - am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" - binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) - PROGRAMS = $(bin_PROGRAMS) -@@ -183,8 +181,7 @@ - sharedstatedir = @sharedstatedir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ --sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \ -- grub-set-default -+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo - - noinst_SCRIPTS = grub-image mkbimage - EXTRA_DIST = mkbimage -@@ -234,8 +231,6 @@ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ --grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" diff --git a/src/patches/grub-0.97-prototypes.patch b/src/patches/grub-0.97-prototypes.patch deleted file mode 100644 index 21d65d5883..0000000000 --- a/src/patches/grub-0.97-prototypes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- grub-0.97/acinclude.m4.prototypes 2005-12-12 19:07:24.000000000 -0500 -+++ grub-0.97/acinclude.m4 2005-12-12 19:07:56.000000000 -0500 -@@ -44,6 +44,8 @@ - [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses]) - AC_CACHE_VAL(grub_cv_prog_objcopy_absolute, - [cat > conftest.c <<\EOF -+void cmain(void); -+ - void - cmain (void) - { diff --git a/src/patches/grub-0.97-stderr.patch b/src/patches/grub-0.97-stderr.patch deleted file mode 100644 index 71d20ada5b..0000000000 --- a/src/patches/grub-0.97-stderr.patch +++ /dev/null @@ -1,102 +0,0 @@ ---- grub-0.97/util/grub-install.in.stderr 2006-07-07 10:56:37.000000000 -0400 -+++ grub-0.97/util/grub-install.in 2006-07-07 11:01:35.000000000 -0400 -@@ -207,7 +207,7 @@ - while test -L $tmp_fname; do - tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'` - if test -z "$tmp_new_fname"; then -- echo "Unrecognized ls output" 2>&1 -+ echo "Unrecognized ls output" 1>&2 - exit 1 - fi - -@@ -264,7 +264,7 @@ - stat_device() { - majmin=`stat -c "%t:%T" "$1" 2>/dev/null` - if test -z "$majmin"; then -- echo "Could not find device for $1" 2>&1 -+ echo "Could not find device for $1" 1>&2 - exit 1 - fi - -@@ -281,7 +281,7 @@ - dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab` - fi - if test -z "$dev"; then -- echo "Could not find device for $1" 2>&1 -+ echo "Could not find device for $1" 1>&2 - exit 1 - fi - -@@ -304,11 +304,11 @@ - tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'` - - if test -z "$tmp_fname"; then -- echo "Could not find device for $1" 2>&1 -+ echo "Could not find device for $1" 1>&2 - exit 1 - fi - -- ret_fname=`resolve_symlink $tmp_fname` -+ ret_fname=`resolve_symlink $tmp_fname` || exit 1 - tmp_fname=`find_mapper_device $ret_fname` - if test -n "$tmp_fname"; then - ret_fname="$tmp_fname" -@@ -325,7 +325,7 @@ - done - for file in \ - ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -- cp -f $file ${grubdir} || exit 1 -+ cp -f $file ${grubdir} 1>&2 || exit 1 - done - } - -@@ -520,9 +520,9 @@ - # Check for INSTALL_DEVICE. - case "$install_device" in - /dev/*) -- install_device=`resolve_symlink "$install_device"` -+ install_device=`resolve_symlink "$install_device"` || exit 1 - for install_drive in `find_real_devs $install_device` ; do -- install_drive=`convert $install_drive` -+ install_drive=`convert $install_drive` || exit 1 - if is_raid1_device $install_device; then - install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'` - fi -@@ -550,8 +550,8 @@ - unset install_device - - # Get the root drive. --root_device=`find_device ${rootdir}` --bootdir_device=`find_device ${bootdir}` -+root_device=`find_device ${rootdir}` || exit 1 -+bootdir_device=`find_device ${bootdir}` || exit 1 - - # Check if the boot directory is in the same device as the root directory. - if test "x$root_device" != "x$bootdir_device"; then -@@ -561,7 +561,7 @@ - fi - - # Check if the root directory exists in the same device as the grub directory. --grubdir_device=`find_device ${grubdir}` -+grubdir_device=`find_device ${grubdir}` || exit 1 - - if test "x$grubdir_device" != "x$root_device"; then - # For now, cannot deal with this situation. -@@ -582,7 +582,7 @@ - fi - - # Convert the root deviceto a GRUB drive. --root_drive=`convert "$root_device"` -+root_drive=`convert "$root_device"` || exit 1 - if [ "x$root_drive" = x ]; then - exit 1 - fi -@@ -618,7 +618,7 @@ - - for install_drive in $install_drives; do - # Convert the root deviceto a GRUB drive. -- root_drive=`convert "$root_device"` -+ root_drive=`convert "$root_device"` || exit 1 - if [ "x$root_drive" = x ]; then - exit 1 - fi diff --git a/src/patches/grub-0.97_grub-install_virtio.patch b/src/patches/grub-0.97_grub-install_virtio.patch deleted file mode 100644 index 86afba9939..0000000000 --- a/src/patches/grub-0.97_grub-install_virtio.patch +++ /dev/null @@ -1,52 +0,0 @@ ---- grub-0.97/util/grub-install.in 2010-06-24 08:47:23.000000000 +0200 -+++ grub-0.97/util/grub-install.in 2010-06-24 09:20:42.000000000 +0200 -@@ -102,7 +102,7 @@ - linux*) - # formats that need to be handled (disk name -> partition name): - # floppies: /dev/fd0 -- # normal sd/hd devices: /dev/hda -> /dev/hda3 -+ # normal sd/hd/vd devices: /dev/hda -> /dev/hda3 - # md: /dev/md0 -> /dev/md0p0 - # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc - # -> /dev/ide/host0/bus0/target0/lun0/part1 -@@ -134,7 +134,7 @@ - # more? - tmp_disk=`echo "$1" | grep -v '/mapper/control$' | - grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq | -- sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \ -+ sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \ - -e 's%\(/c[0-9]\+d[0-9]\+\).*$%\1%' \ - -e 's%\(fd[0-9]*\)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ -@@ -142,7 +142,7 @@ - -e 's%\(/mapper/[[:alnum:]]\+\(_[[:alnum:]]\+\)\+\)\p[[:digit:]]\+$%\1%'` - tmp_part=`echo "$1" | grep -v '/mapper/control$' | - grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq | -- sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \ -+ sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \ - -e 's%.*/c[0-9]\+d[0-9]\+p\([[:digit:]]\+\)%\1%' \ - -e 's%.*/c[0-9]\+d[0-9]\+$%%' \ - -e 's%.*/fd[0-9]\+$%%' \ -@@ -509,6 +509,10 @@ - if test -f "$device_map"; then - : - else -+ -+ tmp_disk=`echo "$install_device" | grep "/dev/vd"` -+ if test "x$tmp_disk" = x; then -+ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - -@@ -525,6 +529,11 @@ - fi - - rm -f $log_file -+ -+ else -+ echo "Create fake device.map for virtio device $1" 1>&2 -+ echo "(hd0) $install_device" > $device_map -+ fi - fi - - # Make sure that there is no duplicated entry. diff --git a/src/patches/grub-gentoo-14.patch b/src/patches/grub-gentoo-14.patch new file mode 100644 index 0000000000..d2bb95921c --- /dev/null +++ b/src/patches/grub-gentoo-14.patch @@ -0,0 +1,16087 @@ +diff -Nur grub-0.97/acinclude.m4 grub-0.97-patched/acinclude.m4 +--- grub-0.97/acinclude.m4 2004-04-27 22:48:06.000000000 +0200 ++++ grub-0.97-patched/acinclude.m4 2012-11-11 17:07:12.710729053 +0100 +@@ -57,7 +57,7 @@ + fi + grub_cv_prog_objcopy_absolute=yes + for link_addr in 2000 8000 7C00; do +- if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then : ++ if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} ${LDFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then : + else + AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr]) + fi +diff -Nur grub-0.97/ChangeLog grub-0.97-patched/ChangeLog +--- grub-0.97/ChangeLog 2005-05-08 04:47:02.000000000 +0200 ++++ grub-0.97-patched/ChangeLog 2012-11-11 17:07:12.708728989 +0100 +@@ -1,3 +1,127 @@ ++2008-05-20 Robert Millan ++ ++ * netboot/cs89x0.c: Fix license violation. ++ * netboot/cs89x0.h: Likewise. ++ ++2008-04-10 Pavel Roskin ++ ++ * configure.ac: Always use "_cv_" in cache variables for ++ compatibility with Autoconf 2.62. ++ ++2008-03-28 Robert Millan ++ ++ Surpass 1 TiB disk addressing limit. Note: there are no plans to handle ++ the 2 TiB disk limit in GRUB Legacy, since that would need considerable ++ rework. If you have >2TiB disks, use GRUB 2 instead. ++ ++ * grub/asmstub.c (biosdisk): Add unsigned qualifier to `sector'. ++ * stage2/bios.c (biosdisk): Likewise. ++ * stage2/disk_io.c (rawread, devread, rawwrite, devwrite): Likewise. ++ * stage2/shared.h (rawread, devread, rawwrite, devwrite): Likewise. ++ * lib/device.c (get_drive_geometry): Replace BLKGETSIZE with ++ BLKGETSIZE64. ++ ++2007-10-29 Pavel Roskin ++ ++ * configure.ac: Test if '--build-id=none' is supported by the ++ linker and add it to LDFLAGS if possible. Build ID causes ++ objcopy to generate huge binary files. ++ * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when ++ linking, so that build ID doesn't break the test. ++ * stage1/Makefile.am: Preserve LDFLAGS, use stage1_exec_LDFLAGS. ++ ++2007-02-22 Pavel Roskin ++ ++ * stage2/iso9660.h: Remove unnecessary packed attributes. ++ ++2007-02-22 Robert Millan ++ ++ * util/mkbimage: Update my email address, and remove my name from ++ some places where unnecessary credit is given. ++ ++2006-09-10 Pavel Roskin ++ ++ * netboot/natsemi.c: Fix compile error with gcc 4.1.1. Cast ++ cannot make a variable volatile - it should be declared as such. ++ * netboot/sis900.c: Likewise. ++ ++2006-09-08 Pavel Roskin ++ ++ * netboot/etherboot.h: Remove incorrect extern declarations of ++ the variables later declared static. Move BOOTP_DATA_ADDR ... ++ * netboot/main.c: ... here. Eliminate end_of_rfc1533 - it's ++ write-only. ++ ++2006-06-24 Yoshinori K. Okuji ++ ++ * docs/grub.texi: Changed the license term to the GNU Free ++ Documentation License 1.2. ++ ++ * docs/multiboot.texi: Reformatted to show the license term ++ and the version number explicitly. ++ ++ * docs/fdl.texi: New file. ++ ++ * docs/Makefile.am (grub_TEXINFOS): Added fdl.texi. ++ ++2006-06-24 Robert Millan ++ ++ * lib/device.c (write_to_partition): /dev/ataraid/ and /dev/rd/ ++ partitions have a "p" prefix. Add it. ++ ++2006-06-24 Robert Millan ++ ++ * lib/device.c (get_i2o_disk_name): New function. ++ (init_device_map) [__linux__]: Add support for I2O devices. ++ ++2006-05-02 Pavel Roskin ++ ++ * stage2/stage2.c (run_menu): Fix "savedefault" to save only top ++ level menu positions. Remember current position when calling a ++ submenu. Don't recalculate it when booting from a submenu. ++ ++ * grub/main.c (main): Make sure the boot drive number doesn't ++ exceed 255. ++ ++2006-05-02 Vesa Jaaskelainen ++ ++ * stage2/shared.h (vbe_mode): Back ported aligment fix from GRUB 2 ++ to GRUB Legacy. Problem reported by Gerardo Richarte. ++ ++2006-04-23 Robert Millan ++ ++ * grub/asmstub.c (get_diskinfo): Optimize sysctl routine. ++ ++2006-04-20 Robert Millan ++ ++ Fixes for kernel of FreeBSD: ++ * grub/asmstub.c (get_diskinfo): Toggle "kern.geom.debugflags" sysctl ++ before opening a device for writing. ++ * util/grub-install.in: Devices don't have this "r" prefix anymore. ++ ++2006-04-16 Yoshinori K. Okuji ++ ++ * docs/multiboot.texi: Correct the offset of address ++ fields. Reported by Jeroen Dekkers. ++ ++2006-03-21 Yoshinori K. Okuji ++ ++ * stage2/builtins.c (setup_func): Specify the size of DEVICE to ++ grub_strncat instead of a strange number 256. Reported by Vitaly ++ Fertman . ++ ++2005-09-29 Yoshinori K. Okuji ++ ++ * docs/multiboot.texi: Fix a bug in the byte order of ++ boot_device. I hope this won't affect any OS image. ++ Increased the version number to 0.6.94. ++ ++2005-09-28 Yoshinori K. Okuji ++ ++ * stage2/boot.c (load_image): Even if an OS image is an ELF ++ object, use the a.out kludge if MULTIBOOT_AOUT_KLUDGE is ++ specified. ++ + 2005-05-08 Yoshinori K. Okuji + + * configure.ac (AC_INIT): Upgraded to 0.97. +diff -Nur grub-0.97/configure.ac grub-0.97-patched/configure.ac +--- grub-0.97/configure.ac 2005-05-08 04:36:03.000000000 +0200 ++++ grub-0.97-patched/configure.ac 2012-11-11 17:07:12.752730394 +0100 +@@ -21,8 +21,12 @@ + AC_CANONICAL_HOST + + case "$host_cpu" in +-i[[3456]]86) host_cpu=i386 ;; +-x86_64) host_cpu=x86_64 ;; ++i[[3456]]86) ++ STAGE_MARCH="-march=$host_cpu" ++ host_cpu=i386 ;; ++x86_64) ++ STAGE_MARCH="-march=i686" ++ host_cpu=x86_64 ;; + *) AC_MSG_ERROR([unsupported CPU type]) ;; + esac + +@@ -56,12 +60,7 @@ + + AC_CHECK_TOOL(CC, gcc) + AC_PROG_CC +-# We need this for older versions of Autoconf. +-_AM_DEPENDENCIES(CC) +- +-dnl Because recent automake complains about AS, set it here. +-CCAS="$CC" +-AC_SUBST(CCAS) ++AM_PROG_AS + + AC_ARG_WITH(binutils, + [ --with-binutils=DIR search the directory DIR to find binutils]) +@@ -86,13 +85,13 @@ + fi + STAGE1_CFLAGS="-O2" + GRUB_CFLAGS="-O2" +- AC_CACHE_CHECK([whether optimization for size works], size_flag, [ ++ AC_CACHE_CHECK([whether optimization for size works], grub_cv_cc_Os, [ + saved_CFLAGS=$CFLAGS + CFLAGS="-Os -g" +- AC_TRY_COMPILE(, , size_flag=yes, size_flag=no) ++ AC_TRY_COMPILE(, , grub_cv_cc_Os=yes, grub_cv_cc_Os=no) + CFLAGS=$saved_CFLAGS + ]) +- if test "x$size_flag" = xyes; then ++ if test "x$grub_cv_cc_Os" = xyes; then + STAGE2_CFLAGS="-Os" + else + STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" +@@ -100,21 +99,38 @@ + # OpenBSD has a GCC extension for protecting applications from + # stack smashing attacks, but GRUB doesn't want this feature. + AC_CACHE_CHECK([whether gcc has -fno-stack-protector], +- no_stack_protector_flag, [ ++ grub_cv_cc_no_stack_protector, [ + saved_CFLAGS=$CFLAGS + CFLAGS="-fno-stack-protector" + AC_TRY_COMPILE(, + , +- no_stack_protector_flag=yes, +- no_stack_protector_flag=no) ++ grub_cv_cc_no_stack_protector=yes, ++ grub_cv_cc_no_stack_protector=no) + CFLAGS=$saved_CFLAGS + ]) +- if test "x$no_stack_protector_flag" = xyes; then ++ if test "x$grub_cv_cc_no_stack_protector" = xyes; then + STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector" + fi ++ # Position Independent Executables, but GRUB doesn't want this feature. ++ AC_CACHE_CHECK([whether gcc has -fPIE on as default], grub_cv_cc_fpie, [ ++ AC_TRY_COMPILE(,[ ++ #if ! defined (__PIC__) || ! defined (__PIE__) ++ #error ++ #endif ++ ], ++ grub_cv_cc_fpie=yes, ++ grub_cv_cc_fpie=no) ++ ]) ++ if test "x$grub_cv_cc_fpie" = xyes; then ++ STAGE1_CFLAGS="$STAGE1_CFLAGS -nopie" ++ STAGE2_CFLAGS="$STAGE2_CFLAGS -nopie" ++ fi + fi + fi + ++STAGE1_CFLAGS="$STAGE1_CFLAGS -fno-strict-aliasing $STAGE_MARCH" ++STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-strict-aliasing $STAGE_MARCH" ++GRUB_CFLAGS="$GRUB_CFLAGS -fno-strict-aliasing" + AC_SUBST(STAGE1_CFLAGS) + AC_SUBST(STAGE2_CFLAGS) + AC_SUBST(GRUB_CFLAGS) +@@ -123,33 +139,44 @@ + CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow" + CPPFLAGS="$CPPFLAGS -Wpointer-arith" + +-AC_CACHE_CHECK([whether -Wundef works], undef_flag, [ ++AC_CACHE_CHECK([whether -Wundef works], grub_cv_cc_Wundef, [ + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-Wundef" +- AC_TRY_COMPILE(, , undef_flag=yes, undef_flag=no) ++ AC_TRY_COMPILE(, , grub_cv_cc_Wundef=yes, grub_cv_cc_Wundef=no) + CPPFLAGS="$saved_CPPFLAGS" + ]) + + # The options `-falign-*' are supported by gcc 3.0 or later. + # Probably it is sufficient to only check for -falign-loops. +-AC_CACHE_CHECK([whether -falign-loops works], [falign_loop_flag], [ ++AC_CACHE_CHECK([whether -falign-loops works], [grub_cv_cc_falign_loop], [ + saved_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-falign-loops=1" +- AC_TRY_COMPILE(, , [falign_loop_flag=yes], [falign_loop_flag=no]) ++ AC_TRY_COMPILE(, , [grub_cv_cc_falign_loop=yes], [grub_cv_cc_falign_loop=no]) + CPPFLAGS="$saved_CPPFLAGS" + ]) + + # Force no alignment to save space. +-if test "x$falign_loop_flag" = xyes; then ++if test "x$grub_cv_cc_falign_loop" = xyes; then + CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1" + else + CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1" + fi + +-if test "x$undef_flag" = xyes; then ++if test "x$grub_cv_cc_Wundef" = xyes; then + CPPFLAGS="$CPPFLAGS -Wundef" + fi + ++# Check if build ID can be disabled in the linker ++AC_MSG_CHECKING([whether linker accepts `--build-id=none']) ++save_LDFLAGS="$LDFLAGS" ++LDFLAGS="$LDFLAGS -Wl,--build-id=none" ++AC_TRY_LINK(, , build_id_flag=yes, build_id_flag=no) ++AC_MSG_RESULT([$build_id_flag]) ++LDFLAGS="$save_LDFLAGS" ++if test "x$build_id_flag" = xyes; then ++ LDFLAGS="$LDFLAGS -Wl,--build-id=none" ++fi ++ + if test "x$with_binutils" != x; then + dnl AC_PATH_TOOL(OBJCOPY, objcopy, , "$with_binutils:$PATH") + AC_PATH_PROG(OBJCOPY, objcopy, , "$with_binutils:$PATH") +@@ -595,6 +622,11 @@ + [ --enable-diskless enable diskless support]) + AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes) + ++dnl Graphical splashscreen support ++AC_ARG_ENABLE(graphics, ++ [ --disable-graphics disable graphics terminal support]) ++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno) ++ + dnl Hercules terminal + AC_ARG_ENABLE(hercules, + [ --disable-hercules disable hercules terminal support]) +diff -Nur grub-0.97/docs/fdl.texi grub-0.97-patched/docs/fdl.texi +--- grub-0.97/docs/fdl.texi 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/docs/fdl.texi 2012-11-11 17:07:12.712729117 +0100 +@@ -0,0 +1,452 @@ ++ ++@node GNU Free Documentation License ++@appendixsec GNU Free Documentation License ++ ++@cindex FDL, GNU Free Documentation License ++@center Version 1.2, November 2002 ++ ++@display ++Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. ++51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ ++Everyone is permitted to copy and distribute verbatim copies ++of this license document, but changing it is not allowed. ++@end display ++ ++@enumerate 0 ++@item ++PREAMBLE ++ ++The purpose of this License is to make a manual, textbook, or other ++functional and useful document @dfn{free} in the sense of freedom: to ++assure everyone the effective freedom to copy and redistribute it, ++with or without modifying it, either commercially or noncommercially. ++Secondarily, this License preserves for the author and publisher a way ++to get credit for their work, while not being considered responsible ++for modifications made by others. ++ ++This License is a kind of ``copyleft'', which means that derivative ++works of the document must themselves be free in the same sense. It ++complements the GNU General Public License, which is a copyleft ++license designed for free software. ++ ++We have designed this License in order to use it for manuals for free ++software, because free software needs free documentation: a free ++program should come with manuals providing the same freedoms that the ++software does. But this License is not limited to software manuals; ++it can be used for any textual work, regardless of subject matter or ++whether it is published as a printed book. We recommend this License ++principally for works whose purpose is instruction or reference. ++ ++@item ++APPLICABILITY AND DEFINITIONS ++ ++This License applies to any manual or other work, in any medium, that ++contains a notice placed by the copyright holder saying it can be ++distributed under the terms of this License. Such a notice grants a ++world-wide, royalty-free license, unlimited in duration, to use that ++work under the conditions stated herein. The ``Document'', below, ++refers to any such manual or work. Any member of the public is a ++licensee, and is addressed as ``you''. You accept the license if you ++copy, modify or distribute the work in a way requiring permission ++under copyright law. ++ ++A ``Modified Version'' of the Document means any work containing the ++Document or a portion of it, either copied verbatim, or with ++modifications and/or translated into another language. ++ ++A ``Secondary Section'' is a named appendix or a front-matter section ++of the Document that deals exclusively with the relationship of the ++publishers or authors of the Document to the Document's overall ++subject (or to related matters) and contains nothing that could fall ++directly within that overall subject. (Thus, if the Document is in ++part a textbook of mathematics, a Secondary Section may not explain ++any mathematics.) The relationship could be a matter of historical ++connection with the subject or with related matters, or of legal, ++commercial, philosophical, ethical or political position regarding ++them. ++ ++The ``Invariant Sections'' are certain Secondary Sections whose titles ++are designated, as being those of Invariant Sections, in the notice ++that says that the Document is released under this License. If a ++section does not fit the above definition of Secondary then it is not ++allowed to be designated as Invariant. The Document may contain zero ++Invariant Sections. If the Document does not identify any Invariant ++Sections then there are none. ++ ++The ``Cover Texts'' are certain short passages of text that are listed, ++as Front-Cover Texts or Back-Cover Texts, in the notice that says that ++the Document is released under this License. A Front-Cover Text may ++be at most 5 words, and a Back-Cover Text may be at most 25 words. ++ ++A ``Transparent'' copy of the Document means a machine-readable copy, ++represented in a format whose specification is available to the ++general public, that is suitable for revising the document ++straightforwardly with generic text editors or (for images composed of ++pixels) generic paint programs or (for drawings) some widely available ++drawing editor, and that is suitable for input to text formatters or ++for automatic translation to a variety of formats suitable for input ++to text formatters. A copy made in an otherwise Transparent file ++format whose markup, or absence of markup, has been arranged to thwart ++or discourage subsequent modification by readers is not Transparent. ++An image format is not Transparent if used for any substantial amount ++of text. A copy that is not ``Transparent'' is called ``Opaque''. ++ ++Examples of suitable formats for Transparent copies include plain ++@sc{ascii} without markup, Texinfo input format, La@TeX{} input ++format, @acronym{SGML} or @acronym{XML} using a publicly available ++@acronym{DTD}, and standard-conforming simple @acronym{HTML}, ++PostScript or @acronym{PDF} designed for human modification. Examples ++of transparent image formats include @acronym{PNG}, @acronym{XCF} and ++@acronym{JPG}. Opaque formats include proprietary formats that can be ++read and edited only by proprietary word processors, @acronym{SGML} or ++@acronym{XML} for which the @acronym{DTD} and/or processing tools are ++not generally available, and the machine-generated @acronym{HTML}, ++PostScript or @acronym{PDF} produced by some word processors for ++output purposes only. ++ ++The ``Title Page'' means, for a printed book, the title page itself, ++plus such following pages as are needed to hold, legibly, the material ++this License requires to appear in the title page. For works in ++formats which do not have any title page as such, ``Title Page'' means ++the text near the most prominent appearance of the work's title, ++preceding the beginning of the body of the text. ++ ++A section ``Entitled XYZ'' means a named subunit of the Document whose ++title either is precisely XYZ or contains XYZ in parentheses following ++text that translates XYZ in another language. (Here XYZ stands for a ++specific section name mentioned below, such as ``Acknowledgements'', ++``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' ++of such a section when you modify the Document means that it remains a ++section ``Entitled XYZ'' according to this definition. ++ ++The Document may include Warranty Disclaimers next to the notice which ++states that this License applies to the Document. These Warranty ++Disclaimers are considered to be included by reference in this ++License, but only as regards disclaiming warranties: any other ++implication that these Warranty Disclaimers may have is void and has ++no effect on the meaning of this License. ++ ++@item ++VERBATIM COPYING ++ ++You may copy and distribute the Document in any medium, either ++commercially or noncommercially, provided that this License, the ++copyright notices, and the license notice saying this License applies ++to the Document are reproduced in all copies, and that you add no other ++conditions whatsoever to those of this License. You may not use ++technical measures to obstruct or control the reading or further ++copying of the copies you make or distribute. However, you may accept ++compensation in exchange for copies. If you distribute a large enough ++number of copies you must also follow the conditions in section 3. ++ ++You may also lend copies, under the same conditions stated above, and ++you may publicly display copies. ++ ++@item ++COPYING IN QUANTITY ++ ++If you publish printed copies (or copies in media that commonly have ++printed covers) of the Document, numbering more than 100, and the ++Document's license notice requires Cover Texts, you must enclose the ++copies in covers that carry, clearly and legibly, all these Cover ++Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on ++the back cover. Both covers must also clearly and legibly identify ++you as the publisher of these copies. The front cover must present ++the full title with all words of the title equally prominent and ++visible. You may add other material on the covers in addition. ++Copying with changes limited to the covers, as long as they preserve ++the title of the Document and satisfy these conditions, can be treated ++as verbatim copying in other respects. ++ ++If the required texts for either cover are too voluminous to fit ++legibly, you should put the first ones listed (as many as fit ++reasonably) on the actual cover, and continue the rest onto adjacent ++pages. ++ ++If you publish or distribute Opaque copies of the Document numbering ++more than 100, you must either include a machine-readable Transparent ++copy along with each Opaque copy, or state in or with each Opaque copy ++a computer-network location from which the general network-using ++public has access to download using public-standard network protocols ++a complete Transparent copy of the Document, free of added material. ++If you use the latter option, you must take reasonably prudent steps, ++when you begin distribution of Opaque copies in quantity, to ensure ++that this Transparent copy will remain thus accessible at the stated ++location until at least one year after the last time you distribute an ++Opaque copy (directly or through your agents or retailers) of that ++edition to the public. ++ ++It is requested, but not required, that you contact the authors of the ++Document well before redistributing any large number of copies, to give ++them a chance to provide you with an updated version of the Document. ++ ++@item ++MODIFICATIONS ++ ++You may copy and distribute a Modified Version of the Document under ++the conditions of sections 2 and 3 above, provided that you release ++the Modified Version under precisely this License, with the Modified ++Version filling the role of the Document, thus licensing distribution ++and modification of the Modified Version to whoever possesses a copy ++of it. In addition, you must do these things in the Modified Version: ++ ++@enumerate A ++@item ++Use in the Title Page (and on the covers, if any) a title distinct ++from that of the Document, and from those of previous versions ++(which should, if there were any, be listed in the History section ++of the Document). You may use the same title as a previous version ++if the original publisher of that version gives permission. ++ ++@item ++List on the Title Page, as authors, one or more persons or entities ++responsible for authorship of the modifications in the Modified ++Version, together with at least five of the principal authors of the ++Document (all of its principal authors, if it has fewer than five), ++unless they release you from this requirement. ++ ++@item ++State on the Title page the name of the publisher of the ++Modified Version, as the publisher. ++ ++@item ++Preserve all the copyright notices of the Document. ++ ++@item ++Add an appropriate copyright notice for your modifications ++adjacent to the other copyright notices. ++ ++@item ++Include, immediately after the copyright notices, a license notice ++giving the public permission to use the Modified Version under the ++terms of this License, in the form shown in the Addendum below. ++ ++@item ++Preserve in that license notice the full lists of Invariant Sections ++and required Cover Texts given in the Document's license notice. ++ ++@item ++Include an unaltered copy of this License. ++ ++@item ++Preserve the section Entitled ``History'', Preserve its Title, and add ++to it an item stating at least the title, year, new authors, and ++publisher of the Modified Version as given on the Title Page. If ++there is no section Entitled ``History'' in the Document, create one ++stating the title, year, authors, and publisher of the Document as ++given on its Title Page, then add an item describing the Modified ++Version as stated in the previous sentence. ++ ++@item ++Preserve the network location, if any, given in the Document for ++public access to a Transparent copy of the Document, and likewise ++the network locations given in the Document for previous versions ++it was based on. These may be placed in the ``History'' section. ++You may omit a network location for a work that was published at ++least four years before the Document itself, or if the original ++publisher of the version it refers to gives permission. ++ ++@item ++For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve ++the Title of the section, and preserve in the section all the ++substance and tone of each of the contributor acknowledgements and/or ++dedications given therein. ++ ++@item ++Preserve all the Invariant Sections of the Document, ++unaltered in their text and in their titles. Section numbers ++or the equivalent are not considered part of the section titles. ++ ++@item ++Delete any section Entitled ``Endorsements''. Such a section ++may not be included in the Modified Version. ++ ++@item ++Do not retitle any existing section to be Entitled ``Endorsements'' or ++to conflict in title with any Invariant Section. ++ ++@item ++Preserve any Warranty Disclaimers. ++@end enumerate ++ ++If the Modified Version includes new front-matter sections or ++appendices that qualify as Secondary Sections and contain no material ++copied from the Document, you may at your option designate some or all ++of these sections as invariant. To do this, add their titles to the ++list of Invariant Sections in the Modified Version's license notice. ++These titles must be distinct from any other section titles. ++ ++You may add a section Entitled ``Endorsements'', provided it contains ++nothing but endorsements of your Modified Version by various ++parties---for example, statements of peer review or that the text has ++been approved by an organization as the authoritative definition of a ++standard. ++ ++You may add a passage of up to five words as a Front-Cover Text, and a ++passage of up to 25 words as a Back-Cover Text, to the end of the list ++of Cover Texts in the Modified Version. Only one passage of ++Front-Cover Text and one of Back-Cover Text may be added by (or ++through arrangements made by) any one entity. If the Document already ++includes a cover text for the same cover, previously added by you or ++by arrangement made by the same entity you are acting on behalf of, ++you may not add another; but you may replace the old one, on explicit ++permission from the previous publisher that added the old one. ++ ++The author(s) and publisher(s) of the Document do not by this License ++give permission to use their names for publicity for or to assert or ++imply endorsement of any Modified Version. ++ ++@item ++COMBINING DOCUMENTS ++ ++You may combine the Document with other documents released under this ++License, under the terms defined in section 4 above for modified ++versions, provided that you include in the combination all of the ++Invariant Sections of all of the original documents, unmodified, and ++list them all as Invariant Sections of your combined work in its ++license notice, and that you preserve all their Warranty Disclaimers. ++ ++The combined work need only contain one copy of this License, and ++multiple identical Invariant Sections may be replaced with a single ++copy. If there are multiple Invariant Sections with the same name but ++different contents, make the title of each such section unique by ++adding at the end of it, in parentheses, the name of the original ++author or publisher of that section if known, or else a unique number. ++Make the same adjustment to the section titles in the list of ++Invariant Sections in the license notice of the combined work. ++ ++In the combination, you must combine any sections Entitled ``History'' ++in the various original documents, forming one section Entitled ++``History''; likewise combine any sections Entitled ``Acknowledgements'', ++and any sections Entitled ``Dedications''. You must delete all ++sections Entitled ``Endorsements.'' ++ ++@item ++COLLECTIONS OF DOCUMENTS ++ ++You may make a collection consisting of the Document and other documents ++released under this License, and replace the individual copies of this ++License in the various documents with a single copy that is included in ++the collection, provided that you follow the rules of this License for ++verbatim copying of each of the documents in all other respects. ++ ++You may extract a single document from such a collection, and distribute ++it individually under this License, provided you insert a copy of this ++License into the extracted document, and follow this License in all ++other respects regarding verbatim copying of that document. ++ ++@item ++AGGREGATION WITH INDEPENDENT WORKS ++ ++A compilation of the Document or its derivatives with other separate ++and independent documents or works, in or on a volume of a storage or ++distribution medium, is called an ``aggregate'' if the copyright ++resulting from the compilation is not used to limit the legal rights ++of the compilation's users beyond what the individual works permit. ++When the Document is included in an aggregate, this License does not ++apply to the other works in the aggregate which are not themselves ++derivative works of the Document. ++ ++If the Cover Text requirement of section 3 is applicable to these ++copies of the Document, then if the Document is less than one half of ++the entire aggregate, the Document's Cover Texts may be placed on ++covers that bracket the Document within the aggregate, or the ++electronic equivalent of covers if the Document is in electronic form. ++Otherwise they must appear on printed covers that bracket the whole ++aggregate. ++ ++@item ++TRANSLATION ++ ++Translation is considered a kind of modification, so you may ++distribute translations of the Document under the terms of section 4. ++Replacing Invariant Sections with translations requires special ++permission from their copyright holders, but you may include ++translations of some or all Invariant Sections in addition to the ++original versions of these Invariant Sections. You may include a ++translation of this License, and all the license notices in the ++Document, and any Warranty Disclaimers, provided that you also include ++the original English version of this License and the original versions ++of those notices and disclaimers. In case of a disagreement between ++the translation and the original version of this License or a notice ++or disclaimer, the original version will prevail. ++ ++If a section in the Document is Entitled ``Acknowledgements'', ++``Dedications'', or ``History'', the requirement (section 4) to Preserve ++its Title (section 1) will typically require changing the actual ++title. ++ ++@item ++TERMINATION ++ ++You may not copy, modify, sublicense, or distribute the Document except ++as expressly provided for under this License. Any other attempt to ++copy, modify, sublicense or distribute the Document is void, and will ++automatically terminate your rights under this License. However, ++parties who have received copies, or rights, from you under this ++License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++@item ++FUTURE REVISIONS OF THIS LICENSE ++ ++The Free Software Foundation may publish new, revised versions ++of the GNU Free Documentation License from time to time. Such new ++versions will be similar in spirit to the present version, but may ++differ in detail to address new problems or concerns. See ++@uref{http://www.gnu.org/copyleft/}. ++ ++Each version of the License is given a distinguishing version number. ++If the Document specifies that a particular numbered version of this ++License ``or any later version'' applies to it, you have the option of ++following the terms and conditions either of that specified version or ++of any later version that has been published (not as a draft) by the ++Free Software Foundation. If the Document does not specify a version ++number of this License, you may choose any version ever published (not ++as a draft) by the Free Software Foundation. ++@end enumerate ++ ++@page ++@appendixsubsec ADDENDUM: How to use this License for your documents ++ ++To use this License in a document you have written, include a copy of ++the License in the document and put the following copyright and ++license notices just after the title page: ++ ++@smallexample ++@group ++ Copyright (C) @var{year} @var{your name}. ++ Permission is granted to copy, distribute and/or modify this document ++ under the terms of the GNU Free Documentation License, Version 1.2 ++ or any later version published by the Free Software Foundation; ++ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover ++ Texts. A copy of the license is included in the section entitled ``GNU ++ Free Documentation License''. ++@end group ++@end smallexample ++ ++If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, ++replace the ``with...Texts.'' line with this: ++ ++@smallexample ++@group ++ with the Invariant Sections being @var{list their titles}, with ++ the Front-Cover Texts being @var{list}, and with the Back-Cover Texts ++ being @var{list}. ++@end group ++@end smallexample ++ ++If you have Invariant Sections without Cover Texts, or some other ++combination of the three, merge those two alternatives to suit the ++situation. ++ ++If your document contains nontrivial examples of program code, we ++recommend releasing these examples in parallel under your choice of ++free software license, such as the GNU General Public License, ++to permit their use in free software. ++ ++@c Local Variables: ++@c ispell-local-pdict: "ispell-dict" ++@c End: ++ +diff -Nur grub-0.97/docs/grub.8 grub-0.97-patched/docs/grub.8 +--- grub-0.97/docs/grub.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub.8 2012-11-11 17:07:12.715729211 +0100 +@@ -1,5 +1,5 @@ + .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB "8" "May 2005" "grub (GNU GRUB 0.97)" FSF ++.TH GRUB "8" "June 2006" "grub (GNU GRUB 0.97)" FSF + .SH NAME + grub \- the grub shell + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub.8.additions grub-0.97-patched/docs/grub.8.additions +--- grub-0.97/docs/grub.8.additions 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/docs/grub.8.additions 2012-11-11 17:07:12.702728798 +0100 +@@ -0,0 +1,3 @@ ++[SEE ALSO] ++.BR update-grub (8), ++.BR grub-install (8). +diff -Nur grub-0.97/docs/grub-install.8 grub-0.97-patched/docs/grub-install.8 +--- grub-0.97/docs/grub-install.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub-install.8 2012-11-11 17:07:12.713729149 +0100 +@@ -1,5 +1,5 @@ + .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB-INSTALL "8" "May 2005" "grub-install (GNU GRUB 0.97)" FSF ++.TH GRUB-INSTALL "8" "June 2006" "grub-install (GNU GRUB 0.97)" FSF + .SH NAME + grub-install \- install GRUB on your drive + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub-install.8.additions grub-0.97-patched/docs/grub-install.8.additions +--- grub-0.97/docs/grub-install.8.additions 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/docs/grub-install.8.additions 2012-11-11 17:07:12.703728829 +0100 +@@ -0,0 +1,3 @@ ++[SEE ALSO] ++.BR grub (8), ++.BR update-grub (8). +diff -Nur grub-0.97/docs/grub-md5-crypt.8 grub-0.97-patched/docs/grub-md5-crypt.8 +--- grub-0.97/docs/grub-md5-crypt.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub-md5-crypt.8 2012-11-11 17:07:12.713729149 +0100 +@@ -1,5 +1,5 @@ + .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB-MD5-CRYPT "8" "May 2005" "grub-md5-crypt (GNU GRUB )" FSF ++.TH GRUB-MD5-CRYPT "8" "June 2006" "grub-md5-crypt (GNU GRUB )" FSF + .SH NAME + grub-md5-crypt \- Encrypt a password in MD5 format + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub-terminfo.8 grub-0.97-patched/docs/grub-terminfo.8 +--- grub-0.97/docs/grub-terminfo.8 2005-05-08 04:48:56.000000000 +0200 ++++ grub-0.97-patched/docs/grub-terminfo.8 2012-11-11 17:07:12.714729180 +0100 +@@ -1,5 +1,5 @@ + .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. +-.TH GRUB-TERMINFO "8" "May 2005" "grub-terminfo (GNU GRUB 0.97)" FSF ++.TH GRUB-TERMINFO "8" "June 2006" "grub-terminfo (GNU GRUB 0.97)" FSF + .SH NAME + grub-terminfo \- Generate a terminfo command from a terminfo name + .SH SYNOPSIS +diff -Nur grub-0.97/docs/grub.texi grub-0.97-patched/docs/grub.texi +--- grub-0.97/docs/grub.texi 2005-05-08 04:59:59.000000000 +0200 ++++ grub-0.97-patched/docs/grub.texi 2012-11-11 17:07:12.717729276 +0100 +@@ -2,22 +2,41 @@ + @c -*-texinfo-*- + @c %**start of header + @setfilename grub.info +-@settitle GRUB Manual +-@c %**end of header +- + @include version.texi +- ++@settitle GNU GRUB Manual @value{VERSION} + @c Unify all our little indices for now. + @syncodeindex fn cp + @syncodeindex vr cp + @syncodeindex ky cp + @syncodeindex pg cp + @syncodeindex tp cp ++@c %**end of header + + @footnotestyle separate + @paragraphindent 3 + @finalout + ++@copying ++This manual is for GNU GRUB (version @value{VERSION}, ++@value{UPDATED}). ++ ++Copyright @copyright{} 1999,2000,2001,2002,2004,2006 Free Software Foundation, Inc. ++ ++@quotation ++Permission is granted to copy, distribute and/or modify this document ++under the terms of the GNU Free Documentation License, Version 1.2 or ++any later version published by the Free Software Foundation; with no ++Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,'' ++and with the Back-Cover Texts as in (a) below. A copy of the ++license is included in the section entitled ``GNU Free Documentation ++License.'' ++ ++(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify ++this GNU Manual, like GNU software. Copies published by the Free ++Software Foundation raise funds for GNU development.'' ++@end quotation ++@end copying ++ + @dircategory Kernel + @direntry + * GRUB: (grub). The GRand Unified Bootloader +@@ -34,53 +53,16 @@ + + @setchapternewpage odd + +-@ifinfo +-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc. +- +-Permission is granted to make and distribute verbatim copies of +-this manual provided the copyright notice and this permission notice +-are preserved on all copies. +- +-@ignore +-Permission is granted to process this file through TeX and print the +-results, provided the printed document carries a copying permission +-notice identical to this one except for the removal of this paragraph +-(this paragraph not being relevant to the printed manual). +- +-@end ignore +- +-Permission is granted to copy and distribute modified versions of this +-manual under the conditions for verbatim copying, provided also that +-the entire resulting derived work is distributed under the terms of a +-permission notice identical to this one. +- +-Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions. +-@end ifinfo +- + @titlepage + @sp 10 +-@title the GRUB manual ++@title the GNU GRUB manual + @subtitle The GRand Unified Bootloader, version @value{VERSION}, @value{UPDATED}. + @author Gordon Matzigkeit + @author Yoshinori K. Okuji + @c The following two commands start the copyright page. + @page + @vskip 0pt plus 1filll +-Copyright @copyright{} 1999,2000,2001,2002,2004 Free Software Foundation, Inc. +- +-Permission is granted to make and distribute verbatim copies of +-this manual provided the copyright notice and this permission notice +-are preserved on all copies. +-Permission is granted to copy and distribute modified versions of this +-manual under the conditions for verbatim copying, provided that the entire +-resulting derived work is distributed under the terms of a permission +-notice identical to this one. +- +-Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions, +-except that this permission notice may be stated in a translation approved +-by Free Software Foundation. ++@insertcopying + @end titlepage + + @c Output the table of contents at the beginning. +@@ -91,12 +73,14 @@ + + @ifnottex + @node Top +-@top GRUB manual ++@top GNU GRUB manual + + This is the documentation of GNU GRUB, the GRand Unified Bootloader, + a flexible and powerful boot loader program for @sc{pc}s. + + This edition documents version @value{VERSION}. ++ ++@insertcopying + @end ifnottex + + @menu +@@ -124,6 +108,7 @@ + * Reporting bugs:: Where you should send a bug report + * Future:: Some future plans on GRUB + * Internals:: Hacking GRUB ++* Copying This Manual:: Copying This Manual + * Index:: + @end menu + +@@ -3965,6 +3950,16 @@ + @include internals.texi + + ++@node Copying This Manual ++@appendix Copying This Manual ++ ++@menu ++* GNU Free Documentation License:: License for copying this manual. ++@end menu ++ ++@include fdl.texi ++ ++ + @node Index + @unnumbered Index + +diff -Nur grub-0.97/docs/help2man grub-0.97-patched/docs/help2man +--- grub-0.97/docs/help2man 2003-07-09 13:45:36.000000000 +0200 ++++ grub-0.97-patched/docs/help2man 2012-11-11 17:07:12.701728766 +0100 +@@ -455,7 +455,9 @@ + $include{$sect} .= < + +-@dircategory Kernel +-@direntry +-* Multiboot Specification: (multiboot). Multiboot Specification. +-@end direntry ++Copyright @copyright{} 1995,96 Erich Stefan Boleyn + +-@ifinfo +-Copyright @copyright{} 1995, 96 Bryan Ford +-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn +-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ++Copyright @copyright{} 1999,2000,2001,2002,2005,2006 Free Software Foundation, Inc. + ++@quotation + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. +@@ -36,7 +32,6 @@ + results, provided the printed document carries a copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). +- + @end ignore + + Permission is granted to copy and distribute modified versions of this +@@ -45,31 +40,23 @@ + permission notice identical to this one. + + Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions. +-@end ifinfo ++into another language, under the above conditions for modified ++versions. ++@end quotation ++@end copying ++ ++@dircategory Kernel ++@direntry ++* Multiboot Specification: (multiboot). Multiboot Specification. ++@end direntry + + @titlepage + @sp 10 +-@title The Multiboot Specification ++@title The Multiboot Specification version @value{VERSION} + @author Yoshinori K. Okuji, Bryan Ford, Erich Stefan Boleyn, Kunihiro Ishiguro + @page +- + @vskip 0pt plus 1filll +-Copyright @copyright{} 1995, 96 Bryan Ford +-Copyright @copyright{} 1995, 96 Erich Stefan Boleyn +-Copyright @copyright{} 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +- +-Permission is granted to make and distribute verbatim copies of +-this manual provided the copyright notice and this permission notice +-are preserved on all copies. +- +-Permission is granted to copy and distribute modified versions of this +-manual under the conditions for verbatim copying, provided also that +-the entire resulting derived work is distributed under the terms of a +-permission notice identical to this one. +- +-Permission is granted to copy and distribute translations of this manual +-into another language, under the above conditions for modified versions. ++@insertcopying + @end titlepage + + @finalout +@@ -80,7 +67,9 @@ + @top Multiboot Specification + + This file documents Multiboot Specification, the proposal for the boot +-sequence standard. This edition documents version 0.6.93. ++sequence standard. This edition documents version @value{VERSION}. ++ ++@insertcopying + @end ifnottex + + @menu +@@ -426,7 +415,7 @@ + kernel. + + If bit 16 in the @samp{flags} word is set, then the fields at offsets +-8-24 in the Multiboot header are valid, and the boot loader should use ++12-28 in the Multiboot header are valid, and the boot loader should use + them instead of the fields in the actual executable header to calculate + where to load the OS image. This information does not need to be + provided if the kernel image is in @sc{elf} format, but it @emph{must} +@@ -677,7 +666,7 @@ + @example + @group + +-------+-------+-------+-------+ +-| drive | part1 | part2 | part3 | ++| part3 | part2 | part1 | drive | + +-------+-------+-------+-------+ + @end group + @end example +@@ -1197,6 +1186,17 @@ + @item + The maintainer changes to the GNU GRUB maintainer team + @email{bug-grub@@gnu.org}, from Bryan Ford and Erich Stefan Boleyn. ++ ++@item ++The byte order of the @samp{boot_device} in Multiboot information is ++reversed. This was a mistake. ++ ++@item ++The offset of the address fields were wrong. ++ ++@item ++The format is adapted to a newer Texinfo, and the version number is ++specified more explicitly in the title. + @end itemize + + @item 0.6 +diff -Nur grub-0.97/grub/asmstub.c grub-0.97-patched/grub/asmstub.c +--- grub-0.97/grub/asmstub.c 2005-02-16 21:45:14.000000000 +0100 ++++ grub-0.97-patched/grub/asmstub.c 2012-11-11 17:07:12.719729342 +0100 +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + + #ifdef __linux__ + # include /* ioctl */ +@@ -55,6 +56,10 @@ + # endif /* ! BLKFLSBUF */ + #endif /* __linux__ */ + ++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__) ++# include ++#endif ++ + /* We want to prevent any circularararity in our stubs, as well as + libc name clashes. */ + #define WITHOUT_LIBC_STUBS 1 +@@ -79,7 +84,7 @@ + struct apm_info apm_bios_info; + + /* Emulation requirements. */ +-char *grub_scratch_mem = 0; ++void *grub_scratch_mem = 0; + + struct geometry *disks = 0; + +@@ -103,14 +108,62 @@ + static unsigned int serial_speed; + #endif /* SIMULATE_SLOWNESS_OF_SERIAL */ + ++/* This allocates page-aligned storage of the specified size, which must be ++ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE) ++ */ ++#ifdef __linux__ ++static void * ++grub_mmap_alloc(size_t len) ++{ ++ int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE; ++ ++#ifdef MAP_32BIT ++ mmap_flags |= MAP_32BIT; ++#endif ++ /* Mark the simulated stack executable, as GCC uses stack trampolines ++ * to implement nested functions. */ ++ return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0); ++} ++#else /* !defined(__linux__) */ ++static void * ++grub_mmap_alloc(size_t len) ++{ ++ int fd = 0, offset = 0, ret = 0; ++ void *pa = MAP_FAILED; ++ char template[] = "/tmp/grub_mmap_alloc_XXXXXX"; ++ int e; ++ ++ fd = mkstemp(template); ++ if (fd < 0) ++ return pa; ++ ++ unlink(template); ++ ++ ret = ftruncate(fd, len); ++ if (ret < 0) ++ return pa; ++ ++ /* Mark the simulated stack executable, as GCC uses stack trampolines ++ * to implement nested functions. */ ++ pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, ++ MAP_PRIVATE, fd, offset); ++ ++ e = errno; ++ close(fd); ++ errno = e; ++ return pa; ++} ++#endif /* defined(__linux__) */ ++ + /* The main entry point into this mess. */ + int + grub_stage2 (void) + { + /* These need to be static, because they survive our stack transitions. */ + static int status = 0; +- static char *realstack; +- char *scratch, *simstack; ++ static void *realstack; ++ void *simstack_alloc_base, *simstack; ++ size_t simstack_size, page_size; + int i; + + auto void doit (void); +@@ -142,9 +195,35 @@ + } + + assert (grub_scratch_mem == 0); +- scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); +- assert (scratch); +- grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); ++ ++ /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and ++ * make sure the memory is aligned to a multiple of the system's ++ * page size */ ++ page_size = sysconf (_SC_PAGESIZE); ++ simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15); ++ if (simstack_size % page_size) ++ { ++ /* If we're not on a page_size boundary, round up to the next one */ ++ simstack_size &= ~(page_size-1); ++ simstack_size += page_size; ++ } ++ ++ /* Add one for a PROT_NONE boundary page at each end. */ ++ simstack_size += 2 * page_size; ++ ++ simstack_alloc_base = grub_mmap_alloc(simstack_size); ++ assert (simstack_alloc_base != MAP_FAILED); ++ ++ /* mark pages above and below our simstack area as innaccessable. ++ * If the implementation we're using doesn't support that, then the ++ * new protection modes are undefined. It's safe to just ignore ++ * them, though. It'd be nice if we knew that we'd get a SEGV for ++ * touching the area, but that's all. it'd be nice to have. */ ++ mprotect (simstack_alloc_base, page_size, PROT_NONE); ++ mprotect ((void *)((unsigned long)simstack_alloc_base + ++ simstack_size - page_size), page_size, PROT_NONE); ++ ++ grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size); + + /* FIXME: simulate the memory holes using mprot, if available. */ + +@@ -217,7 +296,7 @@ + device_map = 0; + free (disks); + disks = 0; +- free (scratch); ++ munmap(simstack_alloc_base, simstack_size); + grub_scratch_mem = 0; + + if (serial_device) +@@ -777,7 +856,39 @@ + + /* Open read/write, or read-only if that failed. */ + if (! read_only) +- disks[drive].flags = open (devname, O_RDWR); ++ { ++/* By default, kernel of FreeBSD does not allow overwriting MBR */ ++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__) ++#define GEOM_SYSCTL "kern.geom.debugflags" ++ int old_flags, flags; ++ size_t sizeof_int = sizeof (int); ++ ++ if (sysctlbyname (GEOM_SYSCTL, &old_flags, &sizeof_int, NULL, 0) != 0) ++ grub_printf ("failed to get " GEOM_SYSCTL "sysctl: %s\n", strerror (errno)); ++ ++ if ((old_flags & 0x10) == 0) ++ { ++ /* "allow foot shooting", see geom(4) */ ++ flags = old_flags | 0x10; ++ ++ if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &flags, sizeof (int)) != 0) ++ { ++ flags = old_flags; ++ grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", strerror (errno)); ++ } ++ } ++ else ++ flags = old_flags; ++#endif ++ disks[drive].flags = open (devname, O_RDWR); ++#if defined(__FreeBSD_kernel__) || defined(__FreeBSD__) ++ if (flags != old_flags) ++ { ++ if (sysctlbyname (GEOM_SYSCTL, NULL, NULL, &old_flags, sizeof (int)) != 0) ++ grub_printf ("failed to set " GEOM_SYSCTL "sysctl: %s\n", strerror (errno)); ++ } ++#endif ++ } + + if (disks[drive].flags == -1) + { +@@ -926,7 +1037,7 @@ + + int + biosdisk (int subfunc, int drive, struct geometry *geometry, +- int sector, int nsec, int segment) ++ unsigned int sector, int nsec, int segment) + { + char *buf; + int fd = geometry->flags; +diff -Nur grub-0.97/grub/asmstub.c.orig grub-0.97-patched/grub/asmstub.c.orig +--- grub-0.97/grub/asmstub.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/grub/asmstub.c.orig 2005-02-16 21:45:14.000000000 +0100 +@@ -0,0 +1,1275 @@ ++/* asmstub.c - a version of shared_src/asm.S that works under Unix */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2004 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++/* Try to use glibc's transparant LFS support. */ ++#define _LARGEFILE_SOURCE 1 ++/* lseek becomes synonymous with lseek64. */ ++#define _FILE_OFFSET_BITS 64 ++ ++/* Simulator entry point. */ ++int grub_stage2 (void); ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef __linux__ ++# include /* ioctl */ ++# if !defined(__GLIBC__) || \ ++ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) ++/* Maybe libc doesn't have large file support. */ ++# include /* _llseek */ ++# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */ ++# ifndef BLKFLSBUF ++# define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */ ++# endif /* ! BLKFLSBUF */ ++#endif /* __linux__ */ ++ ++/* We want to prevent any circularararity in our stubs, as well as ++ libc name clashes. */ ++#define WITHOUT_LIBC_STUBS 1 ++#include ++#include ++#include ++#include ++ ++/* Simulated memory sizes. */ ++#define EXTENDED_MEMSIZE (3 * 1024 * 1024) /* 3MB */ ++#define CONVENTIONAL_MEMSIZE (640 * 1024) /* 640kB */ ++ ++unsigned long install_partition = 0x20000; ++unsigned long boot_drive = 0; ++int saved_entryno = 0; ++char version_string[] = VERSION; ++char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */ ++unsigned long linux_text_len = 0; ++char *linux_data_tmp_addr = 0; ++char *linux_data_real_addr = 0; ++unsigned short io_map[IO_MAP_SIZE]; ++struct apm_info apm_bios_info; ++ ++/* Emulation requirements. */ ++char *grub_scratch_mem = 0; ++ ++struct geometry *disks = 0; ++ ++/* The map between BIOS drives and UNIX device file names. */ ++char **device_map = 0; ++ ++/* The jump buffer for exiting correctly. */ ++static jmp_buf env_for_exit; ++ ++/* The current color for console. */ ++int console_current_color = A_NORMAL; ++ ++/* The file descriptor for a serial device. */ ++static int serial_fd = -1; ++ ++/* The file name of a serial device. */ ++static char *serial_device = 0; ++ ++#ifdef SIMULATE_SLOWNESS_OF_SERIAL ++/* The speed of a serial device. */ ++static unsigned int serial_speed; ++#endif /* SIMULATE_SLOWNESS_OF_SERIAL */ ++ ++/* The main entry point into this mess. */ ++int ++grub_stage2 (void) ++{ ++ /* These need to be static, because they survive our stack transitions. */ ++ static int status = 0; ++ static char *realstack; ++ char *scratch, *simstack; ++ int i; ++ ++ auto void doit (void); ++ ++ /* We need a nested function so that we get a clean stack frame, ++ regardless of how the code is optimized. */ ++ void doit (void) ++ { ++ /* Make sure our stack lives in the simulated memory area. */ ++ asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n" ++ : "=&r" (realstack) : "r" (simstack)); ++ ++ /* Do a setjmp here for the stop command. */ ++ if (! setjmp (env_for_exit)) ++ { ++ /* Actually enter the generic stage2 code. */ ++ status = 0; ++ init_bios_info (); ++ } ++ else ++ { ++ /* If ERRNUM is non-zero, then set STATUS to non-zero. */ ++ if (errnum) ++ status = 1; ++ } ++ ++ /* Replace our stack before we use any local variables. */ ++ asm volatile ("movl %0, %%esp\n" : : "r" (realstack)); ++ } ++ ++ assert (grub_scratch_mem == 0); ++ scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); ++ assert (scratch); ++ grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); ++ ++ /* FIXME: simulate the memory holes using mprot, if available. */ ++ ++ assert (disks == 0); ++ disks = malloc (NUM_DISKS * sizeof (*disks)); ++ assert (disks); ++ /* Initialize DISKS. */ ++ for (i = 0; i < NUM_DISKS; i++) ++ disks[i].flags = -1; ++ ++ if (! init_device_map (&device_map, device_map_file, floppy_disks)) ++ return 1; ++ ++ /* Check some invariants. */ ++ assert ((SCRATCHSEG << 4) == SCRATCHADDR); ++ assert ((BUFFERSEG << 4) == BUFFERADDR); ++ assert (BUFFERADDR + BUFFERLEN == SCRATCHADDR); ++ assert (FSYS_BUF % 16 == 0); ++ assert (FSYS_BUF + FSYS_BUFLEN == BUFFERADDR); ++ ++#ifdef HAVE_LIBCURSES ++ /* Get into char-at-a-time mode. */ ++ if (use_curses) ++ { ++ initscr (); ++ cbreak (); ++ noecho (); ++ nonl (); ++ scrollok (stdscr, TRUE); ++ keypad (stdscr, TRUE); ++ wtimeout (stdscr, 100); ++ signal (SIGWINCH, SIG_IGN); ++ } ++#endif ++ ++ /* Make sure that actual writing is done. */ ++ sync (); ++ ++ /* Set our stack, and go for it. */ ++ simstack = (char *) PROTSTACKINIT; ++ doit (); ++ ++ /* I don't know if this is necessary really. */ ++ sync (); ++ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ endwin (); ++#endif ++ ++ /* Close off the file descriptors we used. */ ++ for (i = 0; i < NUM_DISKS; i ++) ++ if (disks[i].flags != -1) ++ { ++#ifdef __linux__ ++ /* In Linux, invalidate the buffer cache. In other OSes, reboot ++ is one of the solutions... */ ++ ioctl (disks[i].flags, BLKFLSBUF, 0); ++#else ++# warning "In your operating system, the buffer cache will not be flushed." ++#endif ++ close (disks[i].flags); ++ } ++ ++ if (serial_fd >= 0) ++ close (serial_fd); ++ ++ /* Release memory. */ ++ restore_device_map (device_map); ++ device_map = 0; ++ free (disks); ++ disks = 0; ++ free (scratch); ++ grub_scratch_mem = 0; ++ ++ if (serial_device) ++ free (serial_device); ++ serial_device = 0; ++ ++ /* Ahh... at last we're ready to return to caller. */ ++ return status; ++} ++ ++/* Assign DRIVE to a device name DEVICE. */ ++void ++assign_device_name (int drive, const char *device) ++{ ++ /* If DRIVE is already assigned, free it. */ ++ if (device_map[drive]) ++ free (device_map[drive]); ++ ++ /* If the old one is already opened, close it. */ ++ if (disks[drive].flags != -1) ++ { ++ close (disks[drive].flags); ++ disks[drive].flags = -1; ++ } ++ ++ /* Assign DRIVE to DEVICE. */ ++ if (! device) ++ device_map[drive] = 0; ++ else ++ device_map[drive] = strdup (device); ++} ++ ++void ++stop (void) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ endwin (); ++#endif ++ ++ /* Jump to doit. */ ++ longjmp (env_for_exit, 1); ++} ++ ++void ++grub_reboot (void) ++{ ++ stop (); ++} ++ ++void ++grub_halt (int no_apm) ++{ ++ stop (); ++} ++ ++/* calls for direct boot-loader chaining */ ++void ++chain_stage1 (unsigned long segment, unsigned long offset, ++ unsigned long part_table_addr) ++{ ++ stop (); ++} ++ ++ ++void ++chain_stage2 (unsigned long segment, unsigned long offset, int second_sector) ++{ ++ stop (); ++} ++ ++ ++/* do some funky stuff, then boot linux */ ++void ++linux_boot (void) ++{ ++ stop (); ++} ++ ++ ++/* For bzImage kernels. */ ++void ++big_linux_boot (void) ++{ ++ stop (); ++} ++ ++ ++/* booting a multiboot executable */ ++void ++multi_boot (int start, int mb_info) ++{ ++ stop (); ++} ++ ++/* sets it to linear or wired A20 operation */ ++void ++gateA20 (int linear) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Set up the int15 handler. */ ++void ++set_int15_handler (void) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Restore the original int15 handler. */ ++void ++unset_int15_handler (void) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* The key map. */ ++unsigned short bios_key_map[KEY_MAP_SIZE + 1]; ++unsigned short ascii_key_map[KEY_MAP_SIZE + 1]; ++ ++/* Copy MAP to the drive map and set up the int13 handler. */ ++void ++set_int13_handler (unsigned short *map) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++int ++get_code_end (void) ++{ ++ /* Just return a little area for simulation. */ ++ return BOOTSEC_LOCATION + (60 * 1024); ++} ++ ++ ++/* memory probe routines */ ++int ++get_memsize (int type) ++{ ++ if (! type) ++ return CONVENTIONAL_MEMSIZE >> 10; ++ else ++ return EXTENDED_MEMSIZE >> 10; ++} ++ ++ ++/* get_eisamemsize() : return packed EISA memory map, lower 16 bits is ++ * memory between 1M and 16M in 1K parts, upper 16 bits is ++ * memory above 16M in 64K parts. If error, return -1. ++ */ ++int ++get_eisamemsize (void) ++{ ++ return (EXTENDED_MEMSIZE >> 10); ++} ++ ++ ++#define MMAR_DESC_TYPE_AVAILABLE 1 /* available to OS */ ++#define MMAR_DESC_TYPE_RESERVED 2 /* not available */ ++#define MMAR_DESC_TYPE_ACPI_RECLAIM 3 /* usable by OS after reading ACPI */ ++#define MMAR_DESC_TYPE_ACPI_NVS 4 /* required to save between NVS sessions */ ++ ++#define MMAR_DESC_LENGTH 20 ++ ++/* Fetch the next entry in the memory map and return the continuation ++ value. DESC is a pointer to the descriptor buffer, and CONT is the ++ previous continuation value (0 to get the first entry in the ++ map). */ ++int ++get_mmap_entry (struct mmar_desc *desc, int cont) ++{ ++ /* Record the memory map statically. */ ++ static struct mmar_desc desc_table[] = ++ { ++ /* The conventional memory. */ ++ { ++ MMAR_DESC_LENGTH, ++ 0, ++ CONVENTIONAL_MEMSIZE, ++ MMAR_DESC_TYPE_AVAILABLE ++ }, ++ /* BIOS RAM and ROM (such as video memory). */ ++ { ++ MMAR_DESC_LENGTH, ++ CONVENTIONAL_MEMSIZE, ++ 0x100000 - CONVENTIONAL_MEMSIZE, ++ MMAR_DESC_TYPE_RESERVED ++ }, ++ /* The extended memory. */ ++ { ++ MMAR_DESC_LENGTH, ++ 0x100000, ++ EXTENDED_MEMSIZE, ++ MMAR_DESC_TYPE_AVAILABLE ++ } ++ }; ++ ++ int num = sizeof (desc_table) / sizeof (*desc_table); ++ ++ if (cont < 0 || cont >= num) ++ { ++ /* Should not happen. */ ++ desc->desc_len = 0; ++ } ++ else ++ { ++ /* Copy the entry. */ ++ *desc = desc_table[cont++]; ++ ++ /* If the next entry exists, return the index. */ ++ if (cont < num) ++ return cont; ++ } ++ ++ return 0; ++} ++ ++/* Track the int13 handler. */ ++void ++track_int13 (int drive) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Get the ROM configuration table. */ ++unsigned long ++get_rom_config_table (void) ++{ ++ return 0; ++} ++ ++/* Get APM BIOS information. */ ++void ++get_apm_info (void) ++{ ++ /* Nothing to do in the simulator. */ ++} ++ ++/* Get VBE controller information. */ ++int ++get_vbe_controller_info (struct vbe_controller *controller) ++{ ++ /* Always fails. */ ++ return 0; ++} ++ ++/* Get VBE mode information. */ ++int ++get_vbe_mode_info (int mode_number, struct vbe_mode *mode) ++{ ++ /* Always fails. */ ++ return 0; ++} ++ ++/* Set VBE mode. */ ++int ++set_vbe_mode (int mode_number) ++{ ++ /* Always fails. */ ++ return 0; ++} ++ ++/* low-level timing info */ ++int ++getrtsecs (void) ++{ ++ /* FIXME: exact value is not important, so just return time_t for now. */ ++ return time (0); ++} ++ ++int ++currticks (void) ++{ ++ struct timeval tv; ++ long csecs; ++ int ticks_per_csec, ticks_per_usec; ++ ++ /* Note: 18.2 ticks/sec. */ ++ ++ /* Get current time. */ ++ gettimeofday (&tv, 0); ++ ++ /* Compute centiseconds. */ ++ csecs = tv.tv_sec / 10; ++ ++ /* Ticks per centisecond. */ ++ ticks_per_csec = csecs * 182; ++ ++ /* Ticks per microsecond. */ ++ ticks_per_usec = (((tv.tv_sec - csecs * 10) * 1000000 + tv.tv_usec) ++ * 182 / 10000000); ++ ++ /* Sum them. */ ++ return ticks_per_csec + ticks_per_usec; ++} ++ ++/* displays an ASCII character. IBM displays will translate some ++ characters to special graphical ones */ ++void ++console_putchar (int c) ++{ ++ /* Curses doesn't have VGA fonts. */ ++ switch (c) ++ { ++ case DISP_UL: ++ c = ACS_ULCORNER; ++ break; ++ case DISP_UR: ++ c = ACS_URCORNER; ++ break; ++ case DISP_LL: ++ c = ACS_LLCORNER; ++ break; ++ case DISP_LR: ++ c = ACS_LRCORNER; ++ break; ++ case DISP_HORIZ: ++ c = ACS_HLINE; ++ break; ++ case DISP_VERT: ++ c = ACS_VLINE; ++ break; ++ case DISP_LEFT: ++ c = ACS_LARROW; ++ break; ++ case DISP_RIGHT: ++ c = ACS_RARROW; ++ break; ++ case DISP_UP: ++ c = ACS_UARROW; ++ break; ++ case DISP_DOWN: ++ c = ACS_DARROW; ++ break; ++ default: ++ break; ++ } ++ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ { ++ /* In ncurses, a newline is treated badly, so we emulate it in our ++ own way. */ ++ if (c == '\n') ++ { ++ int x, y; ++ ++ getyx (stdscr, y, x); ++ if (y + 1 == LINES) ++ scroll (stdscr); ++ else ++ move (y + 1, x); ++ } ++ else if (isprint (c)) ++ { ++ int x, y; ++ ++ getyx (stdscr, y, x); ++ if (x + 1 == COLS) ++ { ++ console_putchar ('\r'); ++ console_putchar ('\n'); ++ } ++ addch (c | console_current_color); ++ } ++ else ++ { ++ addch (c); ++ } ++ ++#ifdef REFRESH_IMMEDIATELY ++ refresh (); ++#endif ++ } ++ else ++#endif ++ { ++ /* CR is not used in Unix. */ ++ if (c != '\r') ++ putchar (c); ++ } ++} ++ ++/* The store for ungetch simulation. This is necessary, because ++ ncurses-1.9.9g is still used in the world and its ungetch is ++ completely broken. */ ++#ifdef HAVE_LIBCURSES ++static int save_char = ERR; ++#endif ++ ++static int ++console_translate_key (int c) ++{ ++ switch (c) ++ { ++ case KEY_LEFT: ++ return 2; ++ case KEY_RIGHT: ++ return 6; ++ case KEY_UP: ++ return 16; ++ case KEY_DOWN: ++ return 14; ++ case KEY_DC: ++ return 4; ++ case KEY_BACKSPACE: ++ return 8; ++ case KEY_HOME: ++ return 1; ++ case KEY_END: ++ return 5; ++ case KEY_PPAGE: ++ return 7; ++ case KEY_NPAGE: ++ return 3; ++ default: ++ break; ++ } ++ ++ return c; ++} ++ ++/* like 'getkey', but doesn't wait, returns -1 if nothing available */ ++int ++console_checkkey (void) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ { ++ int c; ++ ++ /* Check for SAVE_CHAR. This should not be true, because this ++ means checkkey is called twice continuously. */ ++ if (save_char != ERR) ++ return save_char; ++ ++ c = getch (); ++ /* If C is not ERR, then put it back in the input queue. */ ++ if (c != ERR) ++ save_char = c; ++ return console_translate_key (c); ++ } ++#endif ++ ++ /* Just pretend they hit the space bar, then read the real key when ++ they call getkey. */ ++ return ' '; ++} ++ ++/* returns packed BIOS/ASCII code */ ++int ++console_getkey (void) ++{ ++ int c; ++ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ { ++ /* If checkkey has already got a character, then return it. */ ++ if (save_char != ERR) ++ { ++ c = save_char; ++ save_char = ERR; ++ return console_translate_key (c); ++ } ++ ++ wtimeout (stdscr, -1); ++ c = getch (); ++ wtimeout (stdscr, 100); ++ } ++ else ++#endif ++ c = getchar (); ++ ++ /* Quit if we get EOF. */ ++ if (c == -1) ++ stop (); ++ ++ return console_translate_key (c); ++} ++ ++/* returns packed values, LSB+1 is x, LSB is y */ ++int ++console_getxy (void) ++{ ++ int y, x; ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ getyx (stdscr, y, x); ++ else ++#endif ++ y = x = 0; ++ return (x << 8) | (y & 0xff); ++} ++ ++void ++console_gotoxy (int x, int y) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ move (y, x); ++#endif ++} ++ ++/* low-level character I/O */ ++void ++console_cls (void) ++{ ++#ifdef HAVE_LIBCURSES ++ if (use_curses) ++ clear (); ++#endif ++} ++ ++void ++console_setcolorstate (color_state state) ++{ ++ console_current_color = ++ (state == COLOR_STATE_HIGHLIGHT) ? A_REVERSE : A_NORMAL; ++} ++ ++void ++console_setcolor (int normal_color, int highlight_color) ++{ ++ /* Nothing to do. */ ++} ++ ++int ++console_setcursor (int on) ++{ ++ return 1; ++} ++ ++/* Low-level disk I/O. Our stubbed version just returns a file ++ descriptor, not the actual geometry. */ ++int ++get_diskinfo (int drive, struct geometry *geometry) ++{ ++ /* FIXME: this function is truly horrid. We try opening the device, ++ then severely abuse the GEOMETRY->flags field to pass a file ++ descriptor to biosdisk. Thank God nobody's looking at this comment, ++ or my reputation would be ruined. --Gord */ ++ ++ /* See if we have a cached device. */ ++ if (disks[drive].flags == -1) ++ { ++ /* The unpartitioned device name: /dev/XdX */ ++ char *devname = device_map[drive]; ++ char buf[512]; ++ ++ if (! devname) ++ return -1; ++ ++ if (verbose) ++ grub_printf ("Attempt to open drive 0x%x (%s)\n", ++ drive, devname); ++ ++ /* Open read/write, or read-only if that failed. */ ++ if (! read_only) ++ disks[drive].flags = open (devname, O_RDWR); ++ ++ if (disks[drive].flags == -1) ++ { ++ if (read_only || errno == EACCES || errno == EROFS || errno == EPERM) ++ { ++ disks[drive].flags = open (devname, O_RDONLY); ++ if (disks[drive].flags == -1) ++ { ++ assign_device_name (drive, 0); ++ return -1; ++ } ++ } ++ else ++ { ++ assign_device_name (drive, 0); ++ return -1; ++ } ++ } ++ ++ /* Attempt to read the first sector. */ ++ if (read (disks[drive].flags, buf, 512) != 512) ++ { ++ close (disks[drive].flags); ++ disks[drive].flags = -1; ++ assign_device_name (drive, 0); ++ return -1; ++ } ++ ++ if (disks[drive].flags != -1) ++ get_drive_geometry (&disks[drive], device_map, drive); ++ } ++ ++ if (disks[drive].flags == -1) ++ return -1; ++ ++#ifdef __linux__ ++ /* In Linux, invalidate the buffer cache, so that left overs ++ from other program in the cache are flushed and seen by us */ ++ ioctl (disks[drive].flags, BLKFLSBUF, 0); ++#endif ++ ++ *geometry = disks[drive]; ++ return 0; ++} ++ ++/* Read LEN bytes from FD in BUF. Return less than or equal to zero if an ++ error occurs, otherwise return LEN. */ ++static int ++nread (int fd, char *buf, size_t len) ++{ ++ int size = len; ++ ++ while (len) ++ { ++ int ret = read (fd, buf, len); ++ ++ if (ret <= 0) ++ { ++ if (errno == EINTR) ++ continue; ++ else ++ return ret; ++ } ++ ++ len -= ret; ++ buf += ret; ++ } ++ ++ return size; ++} ++ ++/* Write LEN bytes from BUF to FD. Return less than or equal to zero if an ++ error occurs, otherwise return LEN. */ ++static int ++nwrite (int fd, char *buf, size_t len) ++{ ++ int size = len; ++ ++ while (len) ++ { ++ int ret = write (fd, buf, len); ++ ++ if (ret <= 0) ++ { ++ if (errno == EINTR) ++ continue; ++ else ++ return ret; ++ } ++ ++ len -= ret; ++ buf += ret; ++ } ++ ++ return size; ++} ++ ++/* Dump BUF in the format of hexadecimal numbers. */ ++static void ++hex_dump (void *buf, size_t size) ++{ ++ /* FIXME: How to determine which length is readable? */ ++#define MAX_COLUMN 70 ++ ++ /* use unsigned char for numerical computations */ ++ unsigned char *ptr = buf; ++ /* count the width of the line */ ++ int column = 0; ++ /* how many bytes written */ ++ int count = 0; ++ ++ while (size > 0) ++ { ++ /* high 4 bits */ ++ int hi = *ptr >> 4; ++ /* low 4 bits */ ++ int low = *ptr & 0xf; ++ ++ /* grub_printf does not handle prefix number, such as %2x, so ++ format the number by hand... */ ++ grub_printf ("%x%x", hi, low); ++ column += 2; ++ count++; ++ ptr++; ++ size--; ++ ++ /* Insert space or newline with the interval 4 bytes. */ ++ if (size != 0 && (count % 4) == 0) ++ { ++ if (column < MAX_COLUMN) ++ { ++ grub_printf (" "); ++ column++; ++ } ++ else ++ { ++ grub_printf ("\n"); ++ column = 0; ++ } ++ } ++ } ++ ++ /* Add a newline at the end for readability. */ ++ grub_printf ("\n"); ++} ++ ++int ++biosdisk (int subfunc, int drive, struct geometry *geometry, ++ int sector, int nsec, int segment) ++{ ++ char *buf; ++ int fd = geometry->flags; ++ ++ /* Get the file pointer from the geometry, and make sure it matches. */ ++ if (fd == -1 || fd != disks[drive].flags) ++ return BIOSDISK_ERROR_GEOMETRY; ++ ++ /* Seek to the specified location. */ ++#if defined(__linux__) && (!defined(__GLIBC__) || \ ++ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) ++ /* Maybe libc doesn't have large file support. */ ++ { ++ loff_t offset, result; ++ static int _llseek (uint filedes, ulong hi, ulong lo, ++ loff_t *res, uint wh); ++ _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, ++ loff_t *, res, uint, wh); ++ ++ offset = (loff_t) sector * (loff_t) SECTOR_SIZE; ++ if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) ++ return -1; ++ } ++#else ++ { ++ off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; ++ ++ if (lseek (fd, offset, SEEK_SET) != offset) ++ return -1; ++ } ++#endif ++ ++ buf = (char *) (segment << 4); ++ ++ switch (subfunc) ++ { ++ case BIOSDISK_READ: ++#ifdef __linux__ ++ if (sector == 0 && nsec > 1) ++ { ++ /* Work around a bug in linux's ez remapping. Linux remaps all ++ sectors that are read together with the MBR in one read. It ++ should only remap the MBR, so we split the read in two ++ parts. -jochen */ ++ if (nread (fd, buf, SECTOR_SIZE) != SECTOR_SIZE) ++ return -1; ++ buf += SECTOR_SIZE; ++ nsec--; ++ } ++#endif ++ if (nread (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE) ++ return -1; ++ break; ++ ++ case BIOSDISK_WRITE: ++ if (verbose) ++ { ++ grub_printf ("Write %d sectors starting from %d sector" ++ " to drive 0x%x (%s)\n", ++ nsec, sector, drive, device_map[drive]); ++ hex_dump (buf, nsec * SECTOR_SIZE); ++ } ++ if (! read_only) ++ if (nwrite (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE) ++ return -1; ++ break; ++ ++ default: ++ grub_printf ("unknown subfunc %d\n", subfunc); ++ break; ++ } ++ ++ return 0; ++} ++ ++ ++void ++stop_floppy (void) ++{ ++ /* NOTUSED */ ++} ++ ++/* Fetch a key from a serial device. */ ++int ++serial_hw_fetch (void) ++{ ++ fd_set fds; ++ struct timeval to; ++ char c; ++ ++ /* Wait only for the serial device. */ ++ FD_ZERO (&fds); ++ FD_SET (serial_fd, &fds); ++ ++ to.tv_sec = 0; ++ to.tv_usec = 0; ++ ++ if (select (serial_fd + 1, &fds, 0, 0, &to) > 0) ++ { ++ if (nread (serial_fd, &c, 1) != 1) ++ stop (); ++ ++ return c; ++ } ++ ++ return -1; ++} ++ ++/* Put a character to a serial device. */ ++void ++serial_hw_put (int c) ++{ ++ char ch = (char) c; ++ ++ if (nwrite (serial_fd, &ch, 1) != 1) ++ stop (); ++} ++ ++void ++serial_hw_delay (void) ++{ ++#ifdef SIMULATE_SLOWNESS_OF_SERIAL ++ struct timeval otv, tv; ++ ++ gettimeofday (&otv, 0); ++ ++ while (1) ++ { ++ long delta; ++ ++ gettimeofday (&tv, 0); ++ delta = tv.tv_usec - otv.tv_usec; ++ if (delta < 0) ++ delta += 1000000; ++ ++ if (delta >= 1000000 / (serial_speed >> 3)) ++ break; ++ } ++#endif /* SIMULATE_SLOWNESS_OF_SERIAL */ ++} ++ ++static speed_t ++get_termios_speed (int speed) ++{ ++ switch (speed) ++ { ++ case 2400: return B2400; ++ case 4800: return B4800; ++ case 9600: return B9600; ++ case 19200: return B19200; ++ case 38400: return B38400; ++#ifdef B57600 ++ case 57600: return B57600; ++#endif ++#ifdef B115200 ++ case 115200: return B115200; ++#endif ++ } ++ ++ return B0; ++} ++ ++/* Get the port number of the unit UNIT. In the grub shell, this doesn't ++ make sense. */ ++unsigned short ++serial_hw_get_port (int unit) ++{ ++ return 0; ++} ++ ++/* Initialize a serial device. In the grub shell, PORT is unused. */ ++int ++serial_hw_init (unsigned short port, unsigned int speed, ++ int word_len, int parity, int stop_bit_len) ++{ ++ struct termios termios; ++ speed_t termios_speed; ++ int i; ++ ++ /* Check if the file name is specified. */ ++ if (! serial_device) ++ return 0; ++ ++ /* If a serial device is already opened, close it first. */ ++ if (serial_fd >= 0) ++ close (serial_fd); ++ ++ /* Open the device file. */ ++ serial_fd = open (serial_device, ++ O_RDWR | O_NOCTTY ++#if defined(O_SYNC) ++ /* O_SYNC is used in Linux (and some others?). */ ++ | O_SYNC ++#elif defined(O_FSYNC) ++ /* O_FSYNC is used in FreeBSD. */ ++ | O_FSYNC ++#endif ++ ); ++ if (serial_fd < 0) ++ return 0; ++ ++ /* Get the termios parameters. */ ++ if (tcgetattr (serial_fd, &termios)) ++ goto fail; ++ ++ /* Raw mode. */ ++ cfmakeraw (&termios); ++ ++ /* Set the speed. */ ++ termios_speed = get_termios_speed (speed); ++ if (termios_speed == B0) ++ goto fail; ++ ++ cfsetispeed (&termios, termios_speed); ++ cfsetospeed (&termios, termios_speed); ++ ++ /* Set the word length. */ ++ termios.c_cflag &= ~CSIZE; ++ switch (word_len) ++ { ++ case UART_5BITS_WORD: ++ termios.c_cflag |= CS5; ++ break; ++ case UART_6BITS_WORD: ++ termios.c_cflag |= CS6; ++ break; ++ case UART_7BITS_WORD: ++ termios.c_cflag |= CS7; ++ break; ++ case UART_8BITS_WORD: ++ termios.c_cflag |= CS8; ++ break; ++ default: ++ goto fail; ++ } ++ ++ /* Set the parity. */ ++ switch (parity) ++ { ++ case UART_NO_PARITY: ++ termios.c_cflag &= ~PARENB; ++ break; ++ case UART_ODD_PARITY: ++ termios.c_cflag |= PARENB; ++ termios.c_cflag |= PARODD; ++ break; ++ case UART_EVEN_PARITY: ++ termios.c_cflag |= PARENB; ++ termios.c_cflag &= ~PARODD; ++ break; ++ default: ++ goto fail; ++ } ++ ++ /* Set the length of stop bit. */ ++ switch (stop_bit_len) ++ { ++ case UART_1_STOP_BIT: ++ termios.c_cflag &= ~CSTOPB; ++ break; ++ case UART_2_STOP_BITS: ++ termios.c_cflag |= CSTOPB; ++ break; ++ default: ++ goto fail; ++ } ++ ++ /* Set the parameters. */ ++ if (tcsetattr (serial_fd, TCSANOW, &termios)) ++ goto fail; ++ ++#ifdef SIMULATE_SLOWNESS_OF_SERIAL ++ serial_speed = speed; ++#endif /* SIMUATE_SLOWNESS_OF_SERIAL */ ++ ++ /* Get rid of the flag TERM_NEED_INIT from the serial terminal. */ ++ for (i = 0; term_table[i].name; i++) ++ { ++ if (strcmp (term_table[i].name, "serial") == 0) ++ { ++ term_table[i].flags &= ~(TERM_NEED_INIT); ++ break; ++ } ++ } ++ ++ return 1; ++ ++ fail: ++ close (serial_fd); ++ serial_fd = -1; ++ return 0; ++} ++ ++/* Set the file name of a serial device (or a pty device). This is a ++ function specific to the grub shell. */ ++void ++serial_set_device (const char *device) ++{ ++ if (serial_device) ++ free (serial_device); ++ ++ serial_device = strdup (device); ++} ++ ++/* There is no difference between console and hercules in the grub shell. */ ++void ++hercules_putchar (int c) ++{ ++ console_putchar (c); ++} ++ ++int ++hercules_getxy (void) ++{ ++ return console_getxy (); ++} ++ ++void ++hercules_gotoxy (int x, int y) ++{ ++ console_gotoxy (x, y); ++} ++ ++void ++hercules_cls (void) ++{ ++ console_cls (); ++} ++ ++void ++hercules_setcolorstate (color_state state) ++{ ++ console_setcolorstate (state); ++} ++ ++void ++hercules_setcolor (int normal_color, int highlight_color) ++{ ++ console_setcolor (normal_color, highlight_color); ++} ++ ++int ++hercules_setcursor (int on) ++{ ++ return 1; ++} +diff -Nur grub-0.97/grub/main.c grub-0.97-patched/grub/main.c +--- grub-0.97/grub/main.c 2003-07-09 13:45:36.000000000 +0200 ++++ grub-0.97-patched/grub/main.c 2012-11-11 17:07:12.720729374 +0100 +@@ -32,6 +32,7 @@ + #define WITHOUT_LIBC_STUBS 1 + #include + #include ++#include + + char *program_name = 0; + int use_config_file = 1; +@@ -140,10 +141,7 @@ + program_name = argv[0]; + default_boot_drive = boot_drive; + default_install_partition = install_partition; +- if (config_file) +- default_config_file = config_file; +- else +- default_config_file = "NONE"; ++ default_config_file = config_file; + + /* Parse command-line options. */ + do +@@ -192,6 +190,12 @@ + perror ("strtoul"); + exit (1); + } ++ if (boot_drive >= NUM_DISKS) ++ { ++ fprintf (stderr, "boot_drive should be from 0 to %d\n", ++ NUM_DISKS - 1); ++ exit (1); ++ } + break; + + case OPT_NO_CONFIG_FILE: +diff -Nur grub-0.97/grub/main.c.orig grub-0.97-patched/grub/main.c.orig +--- grub-0.97/grub/main.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/grub/main.c.orig 2003-07-09 13:45:36.000000000 +0200 +@@ -0,0 +1,265 @@ ++/* main.c - experimental GRUB stage2 that runs under Unix */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++/* Simulator entry point. */ ++int grub_stage2 (void); ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define WITHOUT_LIBC_STUBS 1 ++#include ++#include ++ ++char *program_name = 0; ++int use_config_file = 1; ++int use_preset_menu = 0; ++#ifdef HAVE_LIBCURSES ++int use_curses = 1; ++#else ++int use_curses = 0; ++#endif ++int verbose = 0; ++int read_only = 0; ++int floppy_disks = 1; ++char *device_map_file = 0; ++static int default_boot_drive; ++static int default_install_partition; ++static char *default_config_file; ++ ++#define OPT_HELP -2 ++#define OPT_VERSION -3 ++#define OPT_HOLD -4 ++#define OPT_CONFIG_FILE -5 ++#define OPT_INSTALL_PARTITION -6 ++#define OPT_BOOT_DRIVE -7 ++#define OPT_NO_CONFIG_FILE -8 ++#define OPT_NO_CURSES -9 ++#define OPT_BATCH -10 ++#define OPT_VERBOSE -11 ++#define OPT_READ_ONLY -12 ++#define OPT_PROBE_SECOND_FLOPPY -13 ++#define OPT_NO_FLOPPY -14 ++#define OPT_DEVICE_MAP -15 ++#define OPT_PRESET_MENU -16 ++#define OPT_NO_PAGER -17 ++#define OPTSTRING "" ++ ++static struct option longopts[] = ++{ ++ {"batch", no_argument, 0, OPT_BATCH}, ++ {"boot-drive", required_argument, 0, OPT_BOOT_DRIVE}, ++ {"config-file", required_argument, 0, OPT_CONFIG_FILE}, ++ {"device-map", required_argument, 0, OPT_DEVICE_MAP}, ++ {"help", no_argument, 0, OPT_HELP}, ++ {"hold", optional_argument, 0, OPT_HOLD}, ++ {"install-partition", required_argument, 0, OPT_INSTALL_PARTITION}, ++ {"no-config-file", no_argument, 0, OPT_NO_CONFIG_FILE}, ++ {"no-curses", no_argument, 0, OPT_NO_CURSES}, ++ {"no-floppy", no_argument, 0, OPT_NO_FLOPPY}, ++ {"no-pager", no_argument, 0, OPT_NO_PAGER}, ++ {"preset-menu", no_argument, 0, OPT_PRESET_MENU}, ++ {"probe-second-floppy", no_argument, 0, OPT_PROBE_SECOND_FLOPPY}, ++ {"read-only", no_argument, 0, OPT_READ_ONLY}, ++ {"verbose", no_argument, 0, OPT_VERBOSE}, ++ {"version", no_argument, 0, OPT_VERSION}, ++ {0}, ++}; ++ ++ ++static void ++usage (int status) ++{ ++ if (status) ++ fprintf (stderr, "Try ``grub --help'' for more information.\n"); ++ else ++ printf ("\ ++Usage: grub [OPTION]...\n\ ++\n\ ++Enter the GRand Unified Bootloader command shell.\n\ ++\n\ ++ --batch turn on batch mode for non-interactive use\n\ ++ --boot-drive=DRIVE specify stage2 boot_drive [default=0x%x]\n\ ++ --config-file=FILE specify stage2 config_file [default=%s]\n\ ++ --device-map=FILE use the device map file FILE\n\ ++ --help display this message and exit\n\ ++ --hold wait until a debugger will attach\n\ ++ --install-partition=PAR specify stage2 install_partition [default=0x%x]\n\ ++ --no-config-file do not use the config file\n\ ++ --no-curses do not use curses\n\ ++ --no-floppy do not probe any floppy drive\n\ ++ --no-pager do not use internal pager\n\ ++ --preset-menu use the preset menu\n\ ++ --probe-second-floppy probe the second floppy drive\n\ ++ --read-only do not write anything to devices\n\ ++ --verbose print verbose messages\n\ ++ --version print version information and exit\n\ ++\n\ ++Report bugs to .\n\ ++", ++ default_boot_drive, default_config_file, ++ default_install_partition); ++ ++ exit (status); ++} ++ ++ ++int ++main (int argc, char **argv) ++{ ++ int c; ++ int hold = 0; ++ ++ /* First of all, call sync so that all in-core data is scheduled to be ++ actually written to disks. This is very important because GRUB does ++ not use ordinary stdio interface but raw devices. */ ++ sync (); ++ ++ program_name = argv[0]; ++ default_boot_drive = boot_drive; ++ default_install_partition = install_partition; ++ if (config_file) ++ default_config_file = config_file; ++ else ++ default_config_file = "NONE"; ++ ++ /* Parse command-line options. */ ++ do ++ { ++ c = getopt_long (argc, argv, OPTSTRING, longopts, 0); ++ switch (c) ++ { ++ case EOF: ++ /* Fall through the bottom of the loop. */ ++ break; ++ ++ case OPT_HELP: ++ usage (0); ++ break; ++ ++ case OPT_VERSION: ++ printf ("grub (GNU GRUB " VERSION ")\n"); ++ exit (0); ++ break; ++ ++ case OPT_HOLD: ++ if (! optarg) ++ hold = -1; ++ else ++ hold = atoi (optarg); ++ break; ++ ++ case OPT_CONFIG_FILE: ++ strncpy (config_file, optarg, 127); /* FIXME: arbitrary */ ++ config_file[127] = '\0'; ++ break; ++ ++ case OPT_INSTALL_PARTITION: ++ install_partition = strtoul (optarg, 0, 0); ++ if (install_partition == ULONG_MAX) ++ { ++ perror ("strtoul"); ++ exit (1); ++ } ++ break; ++ ++ case OPT_BOOT_DRIVE: ++ boot_drive = strtoul (optarg, 0, 0); ++ if (boot_drive == ULONG_MAX) ++ { ++ perror ("strtoul"); ++ exit (1); ++ } ++ break; ++ ++ case OPT_NO_CONFIG_FILE: ++ use_config_file = 0; ++ break; ++ ++ case OPT_NO_CURSES: ++ use_curses = 0; ++ break; ++ ++ case OPT_NO_PAGER: ++ use_pager = 0; ++ break; ++ ++ case OPT_BATCH: ++ /* This is the same as "--no-config-file --no-curses --no-pager". */ ++ use_config_file = 0; ++ use_curses = 0; ++ use_pager = 0; ++ break; ++ ++ case OPT_READ_ONLY: ++ read_only = 1; ++ break; ++ ++ case OPT_VERBOSE: ++ verbose = 1; ++ break; ++ ++ case OPT_NO_FLOPPY: ++ floppy_disks = 0; ++ break; ++ ++ case OPT_PROBE_SECOND_FLOPPY: ++ floppy_disks = 2; ++ break; ++ ++ case OPT_DEVICE_MAP: ++ device_map_file = strdup (optarg); ++ break; ++ ++ case OPT_PRESET_MENU: ++ use_preset_menu = 1; ++ break; ++ ++ default: ++ usage (1); ++ } ++ } ++ while (c != EOF); ++ ++ /* Wait until the HOLD variable is cleared by an attached debugger. */ ++ if (hold && verbose) ++ printf ("Run \"gdb %s %d\", and set HOLD to zero.\n", ++ program_name, (int) getpid ()); ++ while (hold) ++ { ++ if (hold > 0) ++ hold--; ++ ++ sleep (1); ++ } ++ ++ /* If we don't have curses (!HAVE_LIBCURSES or --no-curses or ++ --batch) put terminal to dumb for better handling of line i/o */ ++ if (! use_curses) ++ current_term->flags = TERM_NO_EDIT | TERM_DUMB; ++ ++ /* Transfer control to the stage2 simulator. */ ++ exit (grub_stage2 ()); ++} +diff -Nur grub-0.97/lib/device.c grub-0.97-patched/lib/device.c +--- grub-0.97/lib/device.c 2005-03-28 01:14:25.000000000 +0200 ++++ grub-0.97-patched/lib/device.c 2012-11-11 17:07:12.748730268 +0100 +@@ -69,9 +69,9 @@ + # ifndef CDROM_GET_CAPABILITY + # define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ + # endif /* ! CDROM_GET_CAPABILITY */ +-# ifndef BLKGETSIZE +-# define BLKGETSIZE _IO(0x12,96) /* return device size */ +-# endif /* ! BLKGETSIZE */ ++# ifndef BLKGETSIZE64 ++# define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size */ ++# endif /* ! BLKGETSIZE64 */ + #endif /* __linux__ */ + + /* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with +@@ -131,6 +131,152 @@ + #include + #include + ++#if defined(__linux__) ++/* The 2.6 kernel has removed all of the geometry handling for IDE drives ++ * that did fixups for LBA, etc. This means that the geometry we get ++ * with the ioctl has a good chance of being wrong. So, we get to ++ * also know about partition tables and try to read what the geometry ++ * is there. *grumble* Very closely based on code from cfdisk ++ */ ++static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) { ++ struct hd_geometry hdg; ++ ++ if (ioctl (fd, HDIO_GETGEO, &hdg)) ++ return; ++ ++ *cyl = hdg.cylinders; ++ *heads = hdg.heads; ++ *sectors = hdg.sectors; ++} ++ ++struct partition { ++ unsigned char boot_ind; /* 0x80 - active */ ++ unsigned char head; /* starting head */ ++ unsigned char sector; /* starting sector */ ++ unsigned char cyl; /* starting cylinder */ ++ unsigned char sys_ind; /* What partition type */ ++ unsigned char end_head; /* end head */ ++ unsigned char end_sector; /* end sector */ ++ unsigned char end_cyl; /* end cylinder */ ++ unsigned char start4[4]; /* starting sector counting from 0 */ ++ unsigned char size4[4]; /* nr of sectors in partition */ ++}; ++ ++#define ALIGNMENT 2 ++typedef union { ++ struct { ++ unsigned char align[ALIGNMENT]; ++ unsigned char b[SECTOR_SIZE]; ++ } c; ++ struct { ++ unsigned char align[ALIGNMENT]; ++ unsigned char buffer[0x1BE]; ++ struct partition part[4]; ++ unsigned char magicflag[2]; ++ } p; ++} partition_table; ++ ++#define PART_TABLE_FLAG0 0x55 ++#define PART_TABLE_FLAG1 0xAA ++ ++static void ++get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, ++ int *sectors) { ++ struct partition *p; ++ int i,h,s,hh,ss; ++ int first = 1; ++ int bad = 0; ++ ++ if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 || ++ bufp->p.magicflag[1] != PART_TABLE_FLAG1) { ++ /* Matthew Wilcox: slightly friendlier version of ++ fatal(_("Bad signature on partition table"), 3); ++ */ ++ fprintf(stderr, "Unknown partition table signature\n"); ++ return; ++ } ++ ++ hh = ss = 0; ++ for (i=0; i<4; i++) { ++ p = &(bufp->p.part[i]); ++ if (p->sys_ind != 0) { ++ h = p->end_head + 1; ++ s = (p->end_sector & 077); ++ if (first) { ++ hh = h; ++ ss = s; ++ first = 0; ++ } else if (hh != h || ss != s) ++ bad = 1; ++ } ++ } ++ ++ if (!first && !bad) { ++ *heads = hh; ++ *sectors = ss; ++ } ++} ++ ++static long long my_lseek (unsigned int fd, long long offset, ++ unsigned int origin) ++{ ++#if defined(__linux__) && (!defined(__GLIBC__) || \ ++ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) ++ /* Maybe libc doesn't have large file support. */ ++ loff_t offset, result; ++ static int _llseek (uint filedes, ulong hi, ulong lo, ++ loff_t *res, uint wh); ++ _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, ++ loff_t *, res, uint, wh); ++ ++ if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0) ++ return (long long) -1; ++ return result; ++#else ++ return lseek(fd, offset, SEEK_SET); ++#endif ++} ++ ++static void get_linux_geometry (int fd, struct geometry *geom) { ++ long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0; ++ long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0; ++ partition_table bufp; ++ char *buff, *buf_unaligned; ++ ++ buf_unaligned = malloc(sizeof(partition_table) + 4095); ++ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & ++ (~(4096-1))); ++ ++ get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors); ++ ++ if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) { ++ fprintf(stderr, "Unable to seek"); ++ } ++ ++ if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) { ++ memcpy(bufp.c.b, buff, SECTOR_SIZE); ++ get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors); ++ } else { ++ fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno)); ++ } ++ ++ if (pt_head && pt_sectors) { ++ int cyl_size; ++ ++ geom->heads = pt_head; ++ geom->sectors = pt_sectors; ++ cyl_size = pt_head * pt_sectors; ++ geom->cylinders = geom->total_sectors/cyl_size; ++ } else { ++ geom->heads = kern_head; ++ geom->sectors = kern_sectors; ++ geom->cylinders = kern_cyl; ++ } ++ ++ return; ++} ++#endif ++ + /* Get the geometry of a drive DRIVE. */ + void + get_drive_geometry (struct geometry *geom, char **map, int drive) +@@ -151,20 +297,16 @@ + #if defined(__linux__) + /* Linux */ + { +- struct hd_geometry hdg; +- unsigned long nr; ++ unsigned long long nr; + +- if (ioctl (fd, HDIO_GETGEO, &hdg)) +- goto fail; +- +- if (ioctl (fd, BLKGETSIZE, &nr)) ++ if (ioctl (fd, BLKGETSIZE64, &nr)) + goto fail; + + /* Got the geometry, so save it. */ +- geom->cylinders = hdg.cylinders; +- geom->heads = hdg.heads; +- geom->sectors = hdg.sectors; +- geom->total_sectors = nr; ++ get_linux_geometry(fd, geom); ++ if (!geom->heads && !geom->cylinders && !geom->sectors) ++ goto fail; ++ geom->total_sectors = nr / 512; + + goto success; + } +@@ -403,10 +545,28 @@ + } + + static void ++get_cciss_disk_name (char *name, int controller, int drive) ++{ ++ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); ++} ++ ++static void ++get_ida_disk_name (char *name, int controller, int drive) ++{ ++ sprintf (name, "/dev/ida/c%dd%d", controller, drive); ++} ++ ++static void + get_ataraid_disk_name (char *name, int unit) + { + sprintf (name, "/dev/ataraid/d%c", unit + '0'); + } ++ ++static void ++get_i2o_disk_name (char *name, char unit) ++{ ++ sprintf (name, "/dev/i2o/hd%c", unit); ++} + #endif + + /* Check if DEVICE can be read. If an error occurs, return zero, +@@ -801,6 +961,97 @@ + } + } + } ++ ++ /* This is for I2O - we have /dev/i2o/hd */ ++ { ++ int unit; ++ ++ for (unit = 'a'; unit < 'f'; unit++) ++ { ++ char name[24]; ++ ++ get_i2o_disk_name (name, unit); ++ if (check_device (name)) ++ { ++ (*map)[num_hd + 0x80] = strdup (name); ++ assert ((*map)[num_hd + 0x80]); ++ ++ /* If the device map file is opened, write the map. */ ++ if (fp) ++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++ ++ num_hd++; ++ } ++ } ++ } ++ ++ /* This is for CCISS, its like the DAC960 - we have ++ /dev/cciss/dp ++ ++ It currently supports up to 3 controllers, 10 logical volumes ++ and 10 partitions ++ ++ Code gratuitously copied from DAC960 above. ++ Horms 23rd July 2004 ++ */ ++ { ++ int controller, drive; ++ ++ for (controller = 0; controller < 2; controller++) ++ { ++ for (drive = 0; drive < 9; drive++) ++ { ++ char name[24]; ++ ++ get_cciss_disk_name (name, controller, drive); ++ if (check_device (name)) ++ { ++ (*map)[num_hd + 0x80] = strdup (name); ++ assert ((*map)[num_hd + 0x80]); ++ ++ /* If the device map file is opened, write the map. */ ++ if (fp) ++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++ ++ num_hd++; ++ } ++ } ++ } ++ } ++ ++ /* This is for Compaq Smart Array, its like the DAC960 - we have ++ /dev/ida/dp ++ ++ It currently supports up to 3 controllers, 10 logical volumes ++ and 15 partitions ++ ++ Code gratuitously copied from DAC960 above. ++ Piotr Roszatycki ++ */ ++ { ++ int controller, drive; ++ ++ for (controller = 0; controller < 2; controller++) ++ { ++ for (drive = 0; drive < 9; drive++) ++ { ++ char name[24]; ++ ++ get_ida_disk_name (name, controller, drive); ++ if (check_device (name)) ++ { ++ (*map)[num_hd + 0x80] = strdup (name); ++ assert ((*map)[num_hd + 0x80]); ++ ++ /* If the device map file is opened, write the map. */ ++ if (fp) ++ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); ++ ++ num_hd++; ++ } ++ } ++ } ++ } + #endif /* __linux__ */ + + /* OK, close the device map file if opened. */ +@@ -844,6 +1095,7 @@ + { + char dev[PATH_MAX]; /* XXX */ + int fd; ++ off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; + + if ((partition & 0x00FF00) != 0x00FF00) + { +@@ -861,6 +1113,14 @@ + if (strcmp (dev + strlen(dev) - 5, "/disc") == 0) + strcpy (dev + strlen(dev) - 5, "/part"); + } ++ else ++ { ++ if ((strncmp (dev, "/dev/ataraid/", 13) == 0) || ++ (strncmp (dev, "/dev/ida/", 9) == 0) || ++ (strncmp (dev, "/dev/cciss/", 11) == 0) || ++ (strncmp (dev, "/dev/rd/", 8) == 0)) ++ strcpy (dev + strlen(dev), "p"); ++ } + sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); + + /* Open the partition. */ +@@ -870,35 +1130,13 @@ + errnum = ERR_NO_PART; + return 0; + } +- +-#if defined(__linux__) && (!defined(__GLIBC__) || \ +- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) +- /* Maybe libc doesn't have large file support. */ +- { +- loff_t offset, result; +- static int _llseek (uint filedes, ulong hi, ulong lo, +- loff_t *res, uint wh); +- _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, +- loff_t *, res, uint, wh); + +- offset = (loff_t) sector * (loff_t) SECTOR_SIZE; +- if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) +- { +- errnum = ERR_DEV_VALUES; +- return 0; +- } +- } +-#else +- { +- off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; + +- if (lseek (fd, offset, SEEK_SET) != offset) +- { +- errnum = ERR_DEV_VALUES; +- return 0; +- } +- } +-#endif ++ if (my_lseek(fd, offset, SEEK_SET) != offset) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 0; ++ } + + if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE)) + { +diff -Nur grub-0.97/netboot/cs89x0.c grub-0.97-patched/netboot/cs89x0.c +--- grub-0.97/netboot/cs89x0.c 2003-07-09 13:45:37.000000000 +0200 ++++ grub-0.97-patched/netboot/cs89x0.c 2012-11-11 17:07:12.722729437 +0100 +@@ -1,3 +1,21 @@ ++/** ++ Per an email message from Russ Nelson on ++ 18 March 2008 this file is now licensed under GPL Version 2. ++ ++ From: Russ Nelson ++ Date: Tue, 18 Mar 2008 12:42:00 -0400 ++ Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot ++ -- quote from email ++ As copyright holder, if I say it doesn't conflict with the GPL, ++ then it doesn't conflict with the GPL. ++ ++ However, there's no point in causing people's brains to overheat, ++ so yes, I grant permission for the code to be relicensed under the ++ GPLv2. Please make sure that this change in licensing makes its ++ way upstream. -russ ++ -- quote from email ++**/ ++ + /* cs89x0.c: A Crystal Semiconductor CS89[02]0 driver for etherboot. */ + /* + Permission is granted to distribute the enclosed cs89x0.[ch] driver +diff -Nur grub-0.97/netboot/cs89x0.h grub-0.97-patched/netboot/cs89x0.h +--- grub-0.97/netboot/cs89x0.h 2003-07-09 13:45:37.000000000 +0200 ++++ grub-0.97-patched/netboot/cs89x0.h 2012-11-11 17:07:12.723729469 +0100 +@@ -1,3 +1,21 @@ ++/** ++ Per an email message from Russ Nelson on ++ 18 March 2008 this file is now licensed under GPL Version 2. ++ ++ From: Russ Nelson ++ Date: Tue, 18 Mar 2008 12:42:00 -0400 ++ Subject: Re: [Etherboot-developers] cs89x0 driver in etherboot ++ -- quote from email ++ As copyright holder, if I say it doesn't conflict with the GPL, ++ then it doesn't conflict with the GPL. ++ ++ However, there's no point in causing people's brains to overheat, ++ so yes, I grant permission for the code to be relicensed under the ++ GPLv2. Please make sure that this change in licensing makes its ++ way upstream. -russ ++ -- quote from email ++**/ ++ + /* Copyright, 1988-1992, Russell Nelson, Crynwr Software + + This program is free software; you can redistribute it and/or modify +diff -Nur grub-0.97/netboot/etherboot.h grub-0.97-patched/netboot/etherboot.h +--- grub-0.97/netboot/etherboot.h 2003-07-09 13:45:37.000000000 +0200 ++++ grub-0.97-patched/netboot/etherboot.h 2012-11-11 17:07:12.723729469 +0100 +@@ -531,9 +531,6 @@ + extern int network_ready; + extern struct rom_info rom; + extern struct arptable_t arptable[MAX_ARP]; +-extern struct bootpd_t bootp_data; +-#define BOOTP_DATA_ADDR (&bootp_data) +-extern unsigned char *end_of_rfc1533; + + /* config.c */ + extern struct nic nic; +diff -Nur grub-0.97/netboot/main.c grub-0.97-patched/netboot/main.c +--- grub-0.97/netboot/main.c 2004-05-21 00:19:33.000000000 +0200 ++++ grub-0.97-patched/netboot/main.c 2012-11-11 17:07:12.724729500 +0100 +@@ -56,7 +56,8 @@ + static unsigned long netmask; + static struct bootpd_t bootp_data; + static unsigned long xid; +-static unsigned char *end_of_rfc1533 = NULL; ++ ++#define BOOTP_DATA_ADDR (&bootp_data) + + #ifndef NO_DHCP_SUPPORT + #endif /* NO_DHCP_SUPPORT */ +@@ -83,7 +84,9 @@ + RFC2132_MAX_SIZE,2, /* request as much as we can */ + ETH_MAX_MTU / 256, ETH_MAX_MTU % 256, + RFC2132_PARAM_LIST, 4, RFC1533_NETMASK, RFC1533_GATEWAY, +- RFC1533_HOSTNAME, RFC1533_EXTENSIONPATH ++ RFC1533_HOSTNAME, RFC1533_EXTENSIONPATH, ++ /* Vendor class identifier */ ++ RFC2132_VENDOR_CLASS_ID, 10, 'G', 'R', 'U', 'B', 'C', 'l', 'i', 'e', 'n', 't', + }; + + static const unsigned char dhcprequest[] = +@@ -103,6 +106,8 @@ + /* Etherboot vendortags */ + RFC1533_VENDOR_MAGIC, + RFC1533_VENDOR_CONFIGFILE, ++ /* Vendor class identifier */ ++ RFC2132_VENDOR_CLASS_ID, 10, 'G', 'R', 'U', 'B', 'C', 'l', 'i', 'e', 'n', 't', + }; + + #endif /* ! NO_DHCP_SUPPORT */ +@@ -701,7 +706,7 @@ + "adcw %%ax,%0\n\t" /* add carry of previous iteration */ + "loop 1b\n\t" + "adcw $0,%0" /* add carry of last iteration */ +- : "=b" (*sum), "=S"(start), "=c"(len) ++ : "=r" (*sum), "=S"(start), "=c"(len) + : "0"(*sum), "1"(start), "2"(len) + : "ax", "cc" + ); +@@ -967,7 +972,6 @@ + + if (block == 0) + { +- end_of_rfc1533 = NULL; + vendorext_isvalid = 0; + + if (grub_memcmp (p, rfc1533_cookie, 4)) +@@ -1021,7 +1025,7 @@ + } + else if (c == RFC1533_END) + { +- end_of_rfc1533 = endp = p; ++ endp = p; + continue; + } + else if (c == RFC1533_NETMASK) +diff -Nur grub-0.97/netboot/natsemi.c grub-0.97-patched/netboot/natsemi.c +--- grub-0.97/netboot/natsemi.c 2003-07-09 13:45:38.000000000 +0200 ++++ grub-0.97-patched/netboot/natsemi.c 2012-11-11 17:07:12.724729500 +0100 +@@ -608,7 +608,7 @@ + const char *p) /* Packet */ + { + u32 status, to, nstype; +- u32 tx_status; ++ volatile u32 tx_status; + + /* Stop the transmitter */ + outl(TxOff, ioaddr + ChipCmd); +@@ -647,7 +647,7 @@ + + to = currticks() + TX_TIMEOUT; + +- while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to)) ++ while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to)) + /* wait */ ; + + if (currticks() >= to) { +diff -Nur grub-0.97/netboot/pci.c grub-0.97-patched/netboot/pci.c +--- grub-0.97/netboot/pci.c 2003-07-09 13:45:38.000000000 +0200 ++++ grub-0.97-patched/netboot/pci.c 2012-11-11 17:07:07.227553894 +0100 +@@ -105,13 +105,16 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK +- "lcall (%%edi)" ++ "lcall (%%edi)\n\t" + #else +- "lcall *(%%edi)" ++ "lcall *(%%edi)\n\t" + #endif ++ "movl %%ebx, %1\n\t" /* capture what was in %ebx */ ++ "popl %%ebx\n\t" /* restore %ebx */ + : "=a" (return_code), +- "=b" (address), ++ "=r" (address), + "=c" (length), + "=d" (entry) + : "0" (service), +@@ -141,18 +144,21 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=c" (*value), + "=a" (ret) + : "1" (PCIBIOS_READ_CONFIG_BYTE), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -168,18 +174,21 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=c" (*value), + "=a" (ret) + : "1" (PCIBIOS_READ_CONFIG_WORD), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -195,18 +204,21 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=c" (*value), + "=a" (ret) + : "1" (PCIBIOS_READ_CONFIG_DWORD), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -222,18 +234,21 @@ + + save_flags(flags); cli(); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=a" (ret) + : "0" (PCIBIOS_WRITE_CONFIG_BYTE), + "c" (value), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -249,18 +264,21 @@ + + save_flags(flags); cli(); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=a" (ret) + : "0" (PCIBIOS_WRITE_CONFIG_WORD), + "c" (value), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -276,18 +294,21 @@ + + save_flags(flags); cli(); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ ++ "movl %3, %%ebx\n\t" /* put the value into ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%esi)\n\t" + #else + "lcall *(%%esi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "popl %%ebx\n\t" /* restore %ebx */ ++ "xor %%ah, %%ah\n\t" + "1:" + : "=a" (ret) + : "0" (PCIBIOS_WRITE_CONFIG_DWORD), + "c" (value), +- "b" (bx), ++ "r" (bx), + "D" ((long) where), + "S" (&pci_indirect)); + restore_flags(flags); +@@ -308,20 +329,22 @@ + + save_flags(flags); + __asm__( ++ "pushl %%ebx\n\t" /* save %ebx */ + #ifdef ABSOLUTE_WITHOUT_ASTERISK + "lcall (%%edi)\n\t" + #else + "lcall *(%%edi)\n\t" + #endif + "jc 1f\n\t" +- "xor %%ah, %%ah\n" ++ "xor %%ah, %%ah\n\t" + "1:\tshl $8, %%eax\n\t" +- "movw %%bx, %%ax" ++ "movw %%bx, %%ax\n\t" ++ "popl %%ebx\n\t" /* restore %ebx */ + : "=d" (signature), + "=a" (pack) + : "1" (PCIBIOS_PCI_BIOS_PRESENT), + "D" (&pci_indirect) +- : "bx", "cx"); ++ : "cx"); + restore_flags(flags); + + present_status = (pack >> 16) & 0xff; +diff -Nur grub-0.97/netboot/sis900.c grub-0.97-patched/netboot/sis900.c +--- grub-0.97/netboot/sis900.c 2003-07-09 13:45:38.000000000 +0200 ++++ grub-0.97-patched/netboot/sis900.c 2012-11-11 17:07:12.725729531 +0100 +@@ -901,7 +901,7 @@ + const char *p) /* Packet */ + { + u32 status, to, nstype; +- u32 tx_status; ++ volatile u32 tx_status; + + /* Stop the transmitter */ + outl(TxDIS, ioaddr + cr); +@@ -940,7 +940,7 @@ + + to = currticks() + TX_TIMEOUT; + +- while ((((volatile u32) tx_status=txd.cmdsts) & OWN) && (currticks() < to)) ++ while (((tx_status=txd.cmdsts) & OWN) && (currticks() < to)) + /* wait */ ; + + if (currticks() >= to) { +diff -Nur grub-0.97/stage1/Makefile.am grub-0.97-patched/stage1/Makefile.am +--- grub-0.97/stage1/Makefile.am 2004-07-16 13:44:56.000000000 +0200 ++++ grub-0.97-patched/stage1/Makefile.am 2012-11-11 17:07:12.747730236 +0100 +@@ -1,11 +1,11 @@ +-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) +-nodist_pkglib_DATA = stage1 ++stagedir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) ++nodist_stage_DATA = stage1 + +-CLEANFILES = $(nodist_pkglib_DATA) ++CLEANFILES = $(nodist_stage_DATA) + + # We can't use builtins or standard includes. + AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc +-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 ++stage1_exec_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 + + noinst_PROGRAMS = stage1.exec + stage1_exec_SOURCES = stage1.S stage1.h +diff -Nur grub-0.97/stage2/asm.S grub-0.97-patched/stage2/asm.S +--- grub-0.97/stage2/asm.S 2004-06-19 18:55:22.000000000 +0200 ++++ grub-0.97-patched/stage2/asm.S 2012-11-11 17:07:03.850446017 +0100 +@@ -1651,7 +1651,29 @@ + jnz 3f + ret + +-3: /* use keyboard controller */ ++3: /* ++ * try to switch gateA20 using PORT92, the "Fast A20 and Init" ++ * register ++ */ ++ mov $0x92, %dx ++ inb %dx, %al ++ /* skip the port92 code if it's unimplemented (read returns 0xff) */ ++ cmpb $0xff, %al ++ jz 6f ++ ++ /* set or clear bit1, the ALT_A20_GATE bit */ ++ movb 4(%esp), %ah ++ testb %ah, %ah ++ jz 4f ++ orb $2, %al ++ jmp 5f ++4: and $0xfd, %al ++ ++ /* clear the INIT_NOW bit don't accidently reset the machine */ ++5: and $0xfe, %al ++ outb %al, %dx ++ ++6: /* use keyboard controller */ + pushl %eax + + call gloop1 +@@ -1661,9 +1683,12 @@ + + gloopint1: + inb $K_STATUS ++ cmpb $0xff, %al ++ jz gloopint1_done + andb $K_IBUF_FUL, %al + jnz gloopint1 + ++gloopint1_done: + movb $KB_OUTPUT_MASK, %al + cmpb $0, 0x8(%esp) + jz gdoit +@@ -1684,6 +1709,8 @@ + + gloop1: + inb $K_STATUS ++ cmpb $0xff, %al ++ jz gloop2ret + andb $K_IBUF_FUL, %al + jnz gloop1 + +@@ -1991,6 +2018,11 @@ + ENTRY(console_getkey) + push %ebp + ++wait_for_key: ++ call EXT_C(console_checkkey) ++ incl %eax ++ jz wait_for_key ++ + call EXT_C(prot_to_real) + .code16 + +@@ -2216,6 +2248,156 @@ + pop %ebx + pop %ebp + ret ++ ++/* graphics mode functions */ ++#ifdef SUPPORT_GRAPHICS ++VARIABLE(cursorX) ++.word 0 ++VARIABLE(cursorY) ++.word 0 ++VARIABLE(cursorCount) ++.word 0 ++VARIABLE(cursorBuf) ++.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ++ ++ ++/* ++ * int set_videomode(mode) ++ * BIOS call "INT 10H Function 0h" to set video mode ++ * Call with %ah = 0x0 ++ * %al = video mode ++ * Returns old videomode. ++ */ ++ENTRY(set_videomode) ++ push %ebp ++ push %ebx ++ push %ecx ++ ++ movb 0x10(%esp), %cl ++ ++ call EXT_C(prot_to_real) ++ .code16 ++ ++ xorw %bx, %bx ++ movb $0xf, %ah ++ int $0x10 /* Get Current Video mode */ ++ movb %al, %ch ++ xorb %ah, %ah ++ movb %cl, %al ++ int $0x10 /* Set Video mode */ ++ ++ DATA32 call EXT_C(real_to_prot) ++ .code32 ++ ++ xorb %ah, %ah ++ movb %ch, %al ++ ++ pop %ecx ++ pop %ebx ++ pop %ebp ++ ret ++ ++ ++/* ++ * unsigned char * graphics_get_font() ++ * BIOS call "INT 10H Function 11h" to set font ++ * Call with %ah = 0x11 ++ */ ++ENTRY(graphics_get_font) ++ push %ebp ++ push %ebx ++ push %ecx ++ push %edx ++ ++ call EXT_C(prot_to_real) ++ .code16 ++ ++ movw $0x1130, %ax ++ movb $6, %bh /* font 8x16 */ ++ int $0x10 ++ movw %bp, %dx ++ movw %es, %cx ++ ++ DATA32 call EXT_C(real_to_prot) ++ .code32 ++ ++ xorl %eax, %eax ++ movw %cx, %ax ++ shll $4, %eax ++ movw %dx, %ax ++ ++ pop %edx ++ pop %ecx ++ pop %ebx ++ pop %ebp ++ ret ++ ++ ++ ++/* ++ * graphics_set_palette(index, red, green, blue) ++ * BIOS call "INT 10H Function 10h" to set individual dac register ++ * Call with %ah = 0x10 ++ * %bx = register number ++ * %ch = new value for green (0-63) ++ * %cl = new value for blue (0-63) ++ * %dh = new value for red (0-63) ++ */ ++ ++ENTRY(graphics_set_palette) ++ push %ebp ++ push %eax ++ push %ebx ++ push %ecx ++ push %edx ++ ++ movw $0x3c8, %bx /* address write mode register */ ++ ++ /* wait vertical retrace */ ++ ++ movw $0x3da, %dx ++l1b: inb %dx, %al /* wait vertical active display */ ++ test $8, %al ++ jnz l1b ++ ++l2b: inb %dx, %al /* wait vertical retrace */ ++ test $8, %al ++ jnz l2b ++ ++ mov %bx, %dx ++ movb 0x18(%esp), %al /* index */ ++ outb %al, %dx ++ inc %dx ++ ++ movb 0x1c(%esp), %al /* red */ ++ outb %al, %dx ++ ++ movb 0x20(%esp), %al /* green */ ++ outb %al, %dx ++ ++ movb 0x24(%esp), %al /* blue */ ++ outb %al, %dx ++ ++ movw 0x18(%esp), %bx ++ ++ call EXT_C(prot_to_real) ++ .code16 ++ ++ movb %bl, %bh ++ movw $0x1000, %ax ++ int $0x10 ++ ++ DATA32 call EXT_C(real_to_prot) ++ .code32 ++ ++ pop %edx ++ pop %ecx ++ pop %ebx ++ pop %eax ++ pop %ebp ++ ret ++ ++#endif /* SUPPORT_GRAPHICS */ + + /* + * getrtsecs() +diff -Nur grub-0.97/stage2/bios.c grub-0.97-patched/stage2/bios.c +--- grub-0.97/stage2/bios.c 2004-03-27 17:34:04.000000000 +0100 ++++ grub-0.97-patched/stage2/bios.c 2012-11-11 17:07:12.751730363 +0100 +@@ -47,7 +47,7 @@ + return the error number. Otherwise, return 0. */ + int + biosdisk (int read, int drive, struct geometry *geometry, +- int sector, int nsec, int segment) ++ unsigned int sector, int nsec, int segment) + { + int err; + +@@ -60,7 +60,18 @@ + unsigned short blocks; + unsigned long buffer; + unsigned long long block; +- } __attribute__ ((packed)) dap; ++ ++ /* This structure is passed in the stack. A buggy BIOS could write ++ * garbage data to the tail of the struct and hang the machine. So ++ * we need this protection. - Tinybit ++ */ ++ unsigned char dummy[16]; ++ } __attribute__ ((packed)) *dap; ++ ++ /* Even the above protection is not enough to avoid stupid actions by ++ * buggy BIOSes. So we do it in the 0040:0000 segment. - Tinybit ++ */ ++ dap = (struct disk_address_packet *)0x580; + + /* XXX: Don't check the geometry by default, because some buggy + BIOSes don't return the number of total sectors correctly, +@@ -72,15 +83,15 @@ + + /* FIXME: sizeof (DAP) must be 0x10. Should assert that the compiler + can't add any padding. */ +- dap.length = sizeof (dap); +- dap.block = sector; +- dap.blocks = nsec; +- dap.reserved = 0; ++ dap->length = 0x10; ++ dap->block = sector; ++ dap->blocks = nsec; ++ dap->reserved = 0; + /* This is undocumented part. The address is formated in + SEGMENT:ADDRESS. */ +- dap.buffer = segment << 16; ++ dap->buffer = segment << 16; + +- err = biosdisk_int13_extensions ((read + 0x42) << 8, drive, &dap); ++ err = biosdisk_int13_extensions ((read + 0x42) << 8, drive, dap); + + /* #undef NO_INT13_FALLBACK */ + #ifndef NO_INT13_FALLBACK +diff -Nur grub-0.97/stage2/boot.c grub-0.97-patched/stage2/boot.c +--- grub-0.97/stage2/boot.c 2004-03-30 13:44:08.000000000 +0200 ++++ grub-0.97-patched/stage2/boot.c 2012-11-11 17:07:12.727729596 +0100 +@@ -1,7 +1,7 @@ + /* boot.c - load and bootstrap a kernel */ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. ++ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005 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 +@@ -96,7 +96,7 @@ + lh = (struct linux_kernel_header *) buffer; + + /* ELF loading supported if multiboot, FreeBSD and NetBSD. */ +- if ((type == KERNEL_TYPE_MULTIBOOT ++ if (((type == KERNEL_TYPE_MULTIBOOT && ! (flags & MULTIBOOT_AOUT_KLUDGE)) + || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD + || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 + || suggested_type == KERNEL_TYPE_NETBSD) +@@ -241,7 +241,7 @@ + } + + if (lh->version >= 0x0202) +- lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET; ++ lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_0202_PRM_OFFSET; + else + { + lh->cl_magic = LINUX_CL_MAGIC; +@@ -407,6 +407,15 @@ + while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src) + *(dest++) = *(src++); + ++ { ++ char *src = skip_to (0, arg); ++ char *dest = linux_data_tmp_addr + LINUX_CL_0202_PRM_OFFSET; ++ ++ while (dest < linux_data_tmp_addr + LINUX_CL_0202_PRM_END_OFFSET && *src) ++ *(dest++) = *(src++); ++ *dest = 0; ++ } ++ + /* Old Linux kernels have problems determining the amount of + the available memory. To work around this problem, we add + the "mem" option to the kernel command line. This has its +@@ -824,8 +833,11 @@ + moveto = (mbi.mem_upper + 0x400) << 10; + + moveto = (moveto - len) & 0xfffff000; +- max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 +- ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); ++ max_addr = LINUX_INITRD_MAX_ADDRESS; ++ if (lh->header == LINUX_MAGIC_SIGNATURE && ++ lh->version >= 0x0203 && ++ lh->initrd_addr_max < max_addr) ++ max_addr = lh->initrd_addr_max; + if (moveto + len >= max_addr) + moveto = (max_addr - len) & 0xfffff000; + +diff -Nur grub-0.97/stage2/boot.c.orig grub-0.97-patched/stage2/boot.c.orig +--- grub-0.97/stage2/boot.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/boot.c.orig 2004-03-30 13:44:08.000000000 +0200 +@@ -0,0 +1,1020 @@ ++/* boot.c - load and bootstrap a kernel */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2003,2004 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++ ++#include "shared.h" ++ ++#include "freebsd.h" ++#include "imgact_aout.h" ++#include "i386-elf.h" ++ ++static int cur_addr; ++entry_func entry_addr; ++static struct mod_list mll[99]; ++static int linux_mem_size; ++ ++/* ++ * The next two functions, 'load_image' and 'load_module', are the building ++ * blocks of the multiboot loader component. They handle essentially all ++ * of the gory details of loading in a bootable image and the modules. ++ */ ++ ++kernel_t ++load_image (char *kernel, char *arg, kernel_t suggested_type, ++ unsigned long load_flags) ++{ ++ int len, i, exec_type = 0, align_4k = 1; ++ entry_func real_entry_addr = 0; ++ kernel_t type = KERNEL_TYPE_NONE; ++ unsigned long flags = 0, text_len = 0, data_len = 0, bss_len = 0; ++ char *str = 0, *str2 = 0; ++ struct linux_kernel_header *lh; ++ union ++ { ++ struct multiboot_header *mb; ++ struct exec *aout; ++ Elf32_Ehdr *elf; ++ } ++ pu; ++ /* presuming that MULTIBOOT_SEARCH is large enough to encompass an ++ executable header */ ++ unsigned char buffer[MULTIBOOT_SEARCH]; ++ ++ /* sets the header pointer to point to the beginning of the ++ buffer by default */ ++ pu.aout = (struct exec *) buffer; ++ ++ if (!grub_open (kernel)) ++ return KERNEL_TYPE_NONE; ++ ++ if (!(len = grub_read (buffer, MULTIBOOT_SEARCH)) || len < 32) ++ { ++ grub_close (); ++ ++ if (!errnum) ++ errnum = ERR_EXEC_FORMAT; ++ ++ return KERNEL_TYPE_NONE; ++ } ++ ++ for (i = 0; i < len; i++) ++ { ++ if (MULTIBOOT_FOUND ((int) (buffer + i), len - i)) ++ { ++ flags = ((struct multiboot_header *) (buffer + i))->flags; ++ if (flags & MULTIBOOT_UNSUPPORTED) ++ { ++ grub_close (); ++ errnum = ERR_BOOT_FEATURES; ++ return KERNEL_TYPE_NONE; ++ } ++ type = KERNEL_TYPE_MULTIBOOT; ++ str2 = "Multiboot"; ++ break; ++ } ++ } ++ ++ /* Use BUFFER as a linux kernel header, if the image is Linux zImage ++ or bzImage. */ ++ lh = (struct linux_kernel_header *) buffer; ++ ++ /* ELF loading supported if multiboot, FreeBSD and NetBSD. */ ++ if ((type == KERNEL_TYPE_MULTIBOOT ++ || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD ++ || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0 ++ || suggested_type == KERNEL_TYPE_NETBSD) ++ && len > sizeof (Elf32_Ehdr) ++ && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer)))) ++ { ++ if (type == KERNEL_TYPE_MULTIBOOT) ++ entry_addr = (entry_func) pu.elf->e_entry; ++ else ++ entry_addr = (entry_func) (pu.elf->e_entry & 0xFFFFFF); ++ ++ if (entry_addr < (entry_func) 0x100000) ++ errnum = ERR_BELOW_1MB; ++ ++ /* don't want to deal with ELF program header at some random ++ place in the file -- this generally won't happen */ ++ if (pu.elf->e_phoff == 0 || pu.elf->e_phnum == 0 ++ || ((pu.elf->e_phoff + (pu.elf->e_phentsize * pu.elf->e_phnum)) ++ >= len)) ++ errnum = ERR_EXEC_FORMAT; ++ str = "elf"; ++ ++ if (type == KERNEL_TYPE_NONE) ++ { ++ /* At the moment, there is no way to identify a NetBSD ELF ++ kernel, so rely on the suggested type by the user. */ ++ if (suggested_type == KERNEL_TYPE_NETBSD) ++ { ++ str2 = "NetBSD"; ++ type = suggested_type; ++ } ++ else ++ { ++ str2 = "FreeBSD"; ++ type = KERNEL_TYPE_FREEBSD; ++ } ++ } ++ } ++ else if (flags & MULTIBOOT_AOUT_KLUDGE) ++ { ++ pu.mb = (struct multiboot_header *) (buffer + i); ++ entry_addr = (entry_func) pu.mb->entry_addr; ++ cur_addr = pu.mb->load_addr; ++ /* first offset into file */ ++ grub_seek (i - (pu.mb->header_addr - cur_addr)); ++ ++ /* If the load end address is zero, load the whole contents. */ ++ if (! pu.mb->load_end_addr) ++ pu.mb->load_end_addr = cur_addr + filemax; ++ ++ text_len = pu.mb->load_end_addr - cur_addr; ++ data_len = 0; ++ ++ /* If the bss end address is zero, assume that there is no bss area. */ ++ if (! pu.mb->bss_end_addr) ++ pu.mb->bss_end_addr = pu.mb->load_end_addr; ++ ++ bss_len = pu.mb->bss_end_addr - pu.mb->load_end_addr; ++ ++ if (pu.mb->header_addr < pu.mb->load_addr ++ || pu.mb->load_end_addr <= pu.mb->load_addr ++ || pu.mb->bss_end_addr < pu.mb->load_end_addr ++ || (pu.mb->header_addr - pu.mb->load_addr) > i) ++ errnum = ERR_EXEC_FORMAT; ++ ++ if (cur_addr < 0x100000) ++ errnum = ERR_BELOW_1MB; ++ ++ pu.aout = (struct exec *) buffer; ++ exec_type = 2; ++ str = "kludge"; ++ } ++ else if (len > sizeof (struct exec) && !N_BADMAG ((*(pu.aout)))) ++ { ++ entry_addr = (entry_func) pu.aout->a_entry; ++ ++ if (type == KERNEL_TYPE_NONE) ++ { ++ /* ++ * If it doesn't have a Multiboot header, then presume ++ * it is either a FreeBSD or NetBSD executable. If so, ++ * then use a magic number of normal ordering, ZMAGIC to ++ * determine if it is FreeBSD. ++ * ++ * This is all because freebsd and netbsd seem to require ++ * masking out some address bits... differently for each ++ * one... plus of course we need to know which booting ++ * method to use. ++ */ ++ entry_addr = (entry_func) ((int) entry_addr & 0xFFFFFF); ++ ++ if (buffer[0] == 0xb && buffer[1] == 1) ++ { ++ type = KERNEL_TYPE_FREEBSD; ++ cur_addr = (int) entry_addr; ++ str2 = "FreeBSD"; ++ } ++ else ++ { ++ type = KERNEL_TYPE_NETBSD; ++ cur_addr = (int) entry_addr & 0xF00000; ++ if (N_GETMAGIC ((*(pu.aout))) != NMAGIC) ++ align_4k = 0; ++ str2 = "NetBSD"; ++ } ++ } ++ ++ /* first offset into file */ ++ grub_seek (N_TXTOFF (*(pu.aout))); ++ text_len = pu.aout->a_text; ++ data_len = pu.aout->a_data; ++ bss_len = pu.aout->a_bss; ++ ++ if (cur_addr < 0x100000) ++ errnum = ERR_BELOW_1MB; ++ ++ exec_type = 1; ++ str = "a.out"; ++ } ++ else if (lh->boot_flag == BOOTSEC_SIGNATURE ++ && lh->setup_sects <= LINUX_MAX_SETUP_SECTS) ++ { ++ int big_linux = 0; ++ int setup_sects = lh->setup_sects; ++ ++ if (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0200) ++ { ++ big_linux = (lh->loadflags & LINUX_FLAG_BIG_KERNEL); ++ lh->type_of_loader = LINUX_BOOT_LOADER_TYPE; ++ ++ /* Put the real mode part at as a high location as possible. */ ++ linux_data_real_addr ++ = (char *) ((mbi.mem_lower << 10) - LINUX_SETUP_MOVE_SIZE); ++ /* But it must not exceed the traditional area. */ ++ if (linux_data_real_addr > (char *) LINUX_OLD_REAL_MODE_ADDR) ++ linux_data_real_addr = (char *) LINUX_OLD_REAL_MODE_ADDR; ++ ++ if (lh->version >= 0x0201) ++ { ++ lh->heap_end_ptr = LINUX_HEAP_END_OFFSET; ++ lh->loadflags |= LINUX_FLAG_CAN_USE_HEAP; ++ } ++ ++ if (lh->version >= 0x0202) ++ lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET; ++ else ++ { ++ lh->cl_magic = LINUX_CL_MAGIC; ++ lh->cl_offset = LINUX_CL_OFFSET; ++ lh->setup_move_size = LINUX_SETUP_MOVE_SIZE; ++ } ++ } ++ else ++ { ++ /* Your kernel is quite old... */ ++ lh->cl_magic = LINUX_CL_MAGIC; ++ lh->cl_offset = LINUX_CL_OFFSET; ++ ++ setup_sects = LINUX_DEFAULT_SETUP_SECTS; ++ ++ linux_data_real_addr = (char *) LINUX_OLD_REAL_MODE_ADDR; ++ } ++ ++ /* If SETUP_SECTS is not set, set it to the default (4). */ ++ if (! setup_sects) ++ setup_sects = LINUX_DEFAULT_SETUP_SECTS; ++ ++ data_len = setup_sects << 9; ++ text_len = filemax - data_len - SECTOR_SIZE; ++ ++ linux_data_tmp_addr = (char *) LINUX_BZIMAGE_ADDR + text_len; ++ ++ if (! big_linux ++ && text_len > linux_data_real_addr - (char *) LINUX_ZIMAGE_ADDR) ++ { ++ grub_printf (" linux 'zImage' kernel too big, try 'make bzImage'\n"); ++ errnum = ERR_WONT_FIT; ++ } ++ else if (linux_data_real_addr + LINUX_SETUP_MOVE_SIZE ++ > RAW_ADDR ((char *) (mbi.mem_lower << 10))) ++ errnum = ERR_WONT_FIT; ++ else ++ { ++ grub_printf (" [Linux-%s, setup=0x%x, size=0x%x]\n", ++ (big_linux ? "bzImage" : "zImage"), data_len, text_len); ++ ++ /* Video mode selection support. What a mess! */ ++ /* NOTE: Even the word "mess" is not still enough to ++ represent how wrong and bad the Linux video support is, ++ but I don't want to hear complaints from Linux fanatics ++ any more. -okuji */ ++ { ++ char *vga; ++ ++ /* Find the substring "vga=". */ ++ vga = grub_strstr (arg, "vga="); ++ if (vga) ++ { ++ char *value = vga + 4; ++ int vid_mode; ++ ++ /* Handle special strings. */ ++ if (substring ("normal", value) < 1) ++ vid_mode = LINUX_VID_MODE_NORMAL; ++ else if (substring ("ext", value) < 1) ++ vid_mode = LINUX_VID_MODE_EXTENDED; ++ else if (substring ("ask", value) < 1) ++ vid_mode = LINUX_VID_MODE_ASK; ++ else if (safe_parse_maxint (&value, &vid_mode)) ++ ; ++ else ++ { ++ /* ERRNUM is already set inside the function ++ safe_parse_maxint. */ ++ grub_close (); ++ return KERNEL_TYPE_NONE; ++ } ++ ++ lh->vid_mode = vid_mode; ++ } ++ } ++ ++ /* Check the mem= option to limit memory used for initrd. */ ++ { ++ char *mem; ++ ++ mem = grub_strstr (arg, "mem="); ++ if (mem) ++ { ++ char *value = mem + 4; ++ ++ safe_parse_maxint (&value, &linux_mem_size); ++ switch (errnum) ++ { ++ case ERR_NUMBER_OVERFLOW: ++ /* If an overflow occurs, use the maximum address for ++ initrd instead. This is good, because MAXINT is ++ greater than LINUX_INITRD_MAX_ADDRESS. */ ++ linux_mem_size = LINUX_INITRD_MAX_ADDRESS; ++ errnum = ERR_NONE; ++ break; ++ ++ case ERR_NONE: ++ { ++ int shift = 0; ++ ++ switch (grub_tolower (*value)) ++ { ++ case 'g': ++ shift += 10; ++ case 'm': ++ shift += 10; ++ case 'k': ++ shift += 10; ++ default: ++ break; ++ } ++ ++ /* Check an overflow. */ ++ if (linux_mem_size > (MAXINT >> shift)) ++ linux_mem_size = LINUX_INITRD_MAX_ADDRESS; ++ else ++ linux_mem_size <<= shift; ++ } ++ break; ++ ++ default: ++ linux_mem_size = 0; ++ errnum = ERR_NONE; ++ break; ++ } ++ } ++ else ++ linux_mem_size = 0; ++ } ++ ++ /* It is possible that DATA_LEN + SECTOR_SIZE is greater than ++ MULTIBOOT_SEARCH, so the data may have been read partially. */ ++ if (data_len + SECTOR_SIZE <= MULTIBOOT_SEARCH) ++ grub_memmove (linux_data_tmp_addr, buffer, ++ data_len + SECTOR_SIZE); ++ else ++ { ++ grub_memmove (linux_data_tmp_addr, buffer, MULTIBOOT_SEARCH); ++ grub_read (linux_data_tmp_addr + MULTIBOOT_SEARCH, ++ data_len + SECTOR_SIZE - MULTIBOOT_SEARCH); ++ } ++ ++ if (lh->header != LINUX_MAGIC_SIGNATURE || ++ lh->version < 0x0200) ++ /* Clear the heap space. */ ++ grub_memset (linux_data_tmp_addr + ((setup_sects + 1) << 9), ++ 0, ++ (64 - setup_sects - 1) << 9); ++ ++ /* Copy command-line plus memory hack to staging area. ++ NOTE: Linux has a bug that it doesn't handle multiple spaces ++ between two options and a space after a "mem=" option isn't ++ removed correctly so the arguments to init could be like ++ {"init", "", "", NULL}. This affects some not-very-clever ++ shells. Thus, the code below does a trick to avoid the bug. ++ That is, copy "mem=XXX" to the end of the command-line, and ++ avoid to copy spaces unnecessarily. Hell. */ ++ { ++ char *src = skip_to (0, arg); ++ char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET; ++ ++ while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src) ++ *(dest++) = *(src++); ++ ++ /* Old Linux kernels have problems determining the amount of ++ the available memory. To work around this problem, we add ++ the "mem" option to the kernel command line. This has its ++ own drawbacks because newer kernels can determine the ++ memory map more accurately. Boot protocol 2.03, which ++ appeared in Linux 2.4.18, provides a pointer to the kernel ++ version string, so we could check it. But since kernel ++ 2.4.18 and newer are known to detect memory reliably, boot ++ protocol 2.03 already implies that the kernel is new ++ enough. The "mem" option is added if neither of the ++ following conditions is met: ++ 1) The "mem" option is already present. ++ 2) The "kernel" command is used with "--no-mem-option". ++ 3) GNU GRUB is configured not to pass the "mem" option. ++ 4) The kernel supports boot protocol 2.03 or newer. */ ++ if (! grub_strstr (arg, "mem=") ++ && ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION) ++ && lh->version < 0x0203 /* kernel version < 2.4.18 */ ++ && dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET) ++ { ++ *dest++ = ' '; ++ *dest++ = 'm'; ++ *dest++ = 'e'; ++ *dest++ = 'm'; ++ *dest++ = '='; ++ ++ dest = convert_to_ascii (dest, 'u', (extended_memory + 0x400)); ++ *dest++ = 'K'; ++ } ++ ++ *dest = 0; ++ } ++ ++ /* offset into file */ ++ grub_seek (data_len + SECTOR_SIZE); ++ ++ cur_addr = (int) linux_data_tmp_addr + LINUX_SETUP_MOVE_SIZE; ++ grub_read ((char *) LINUX_BZIMAGE_ADDR, text_len); ++ ++ if (errnum == ERR_NONE) ++ { ++ grub_close (); ++ ++ /* Sanity check. */ ++ if (suggested_type != KERNEL_TYPE_NONE ++ && ((big_linux && suggested_type != KERNEL_TYPE_BIG_LINUX) ++ || (! big_linux && suggested_type != KERNEL_TYPE_LINUX))) ++ { ++ errnum = ERR_EXEC_FORMAT; ++ return KERNEL_TYPE_NONE; ++ } ++ ++ /* Ugly hack. */ ++ linux_text_len = text_len; ++ ++ return big_linux ? KERNEL_TYPE_BIG_LINUX : KERNEL_TYPE_LINUX; ++ } ++ } ++ } ++ else /* no recognizable format */ ++ errnum = ERR_EXEC_FORMAT; ++ ++ /* return if error */ ++ if (errnum) ++ { ++ grub_close (); ++ return KERNEL_TYPE_NONE; ++ } ++ ++ /* fill the multiboot info structure */ ++ mbi.cmdline = (int) arg; ++ mbi.mods_count = 0; ++ mbi.mods_addr = 0; ++ mbi.boot_device = (current_drive << 24) | current_partition; ++ mbi.flags &= ~(MB_INFO_MODS | MB_INFO_AOUT_SYMS | MB_INFO_ELF_SHDR); ++ mbi.syms.a.tabsize = 0; ++ mbi.syms.a.strsize = 0; ++ mbi.syms.a.addr = 0; ++ mbi.syms.a.pad = 0; ++ ++ printf (" [%s-%s", str2, str); ++ ++ str = ""; ++ ++ if (exec_type) /* can be loaded like a.out */ ++ { ++ if (flags & MULTIBOOT_AOUT_KLUDGE) ++ str = "-and-data"; ++ ++ printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len); ++ ++ /* read text, then read data */ ++ if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len) ++ { ++ cur_addr += text_len; ++ ++ if (!(flags & MULTIBOOT_AOUT_KLUDGE)) ++ { ++ /* we have to align to a 4K boundary */ ++ if (align_4k) ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ else ++ printf (", C"); ++ ++ printf (", data=0x%x", data_len); ++ ++ if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len) ++ != data_len) ++ && !errnum) ++ errnum = ERR_EXEC_FORMAT; ++ cur_addr += data_len; ++ } ++ ++ if (!errnum) ++ { ++ memset ((char *) RAW_ADDR (cur_addr), 0, bss_len); ++ cur_addr += bss_len; ++ ++ printf (", bss=0x%x", bss_len); ++ } ++ } ++ else if (!errnum) ++ errnum = ERR_EXEC_FORMAT; ++ ++ if (!errnum && pu.aout->a_syms ++ && pu.aout->a_syms < (filemax - filepos)) ++ { ++ int symtab_err, orig_addr = cur_addr; ++ ++ /* we should align to a 4K boundary here for good measure */ ++ if (align_4k) ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ ++ mbi.syms.a.addr = cur_addr; ++ ++ *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms; ++ cur_addr += sizeof (int); ++ ++ printf (", symtab=0x%x", pu.aout->a_syms); ++ ++ if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms) ++ == pu.aout->a_syms) ++ { ++ cur_addr += pu.aout->a_syms; ++ mbi.syms.a.tabsize = pu.aout->a_syms; ++ ++ if (grub_read ((char *) &i, sizeof (int)) == sizeof (int)) ++ { ++ *((int *) RAW_ADDR (cur_addr)) = i; ++ cur_addr += sizeof (int); ++ ++ mbi.syms.a.strsize = i; ++ ++ i -= sizeof (int); ++ ++ printf (", strtab=0x%x", i); ++ ++ symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i) ++ != i); ++ cur_addr += i; ++ } ++ else ++ symtab_err = 1; ++ } ++ else ++ symtab_err = 1; ++ ++ if (symtab_err) ++ { ++ printf ("(bad)"); ++ cur_addr = orig_addr; ++ mbi.syms.a.tabsize = 0; ++ mbi.syms.a.strsize = 0; ++ mbi.syms.a.addr = 0; ++ } ++ else ++ mbi.flags |= MB_INFO_AOUT_SYMS; ++ } ++ } ++ else ++ /* ELF executable */ ++ { ++ unsigned loaded = 0, memaddr, memsiz, filesiz; ++ Elf32_Phdr *phdr; ++ ++ /* reset this to zero for now */ ++ cur_addr = 0; ++ ++ /* scan for program segments */ ++ for (i = 0; i < pu.elf->e_phnum; i++) ++ { ++ phdr = (Elf32_Phdr *) ++ (pu.elf->e_phoff + ((int) buffer) ++ + (pu.elf->e_phentsize * i)); ++ if (phdr->p_type == PT_LOAD) ++ { ++ /* offset into file */ ++ grub_seek (phdr->p_offset); ++ filesiz = phdr->p_filesz; ++ ++ if (type == KERNEL_TYPE_FREEBSD || type == KERNEL_TYPE_NETBSD) ++ memaddr = RAW_ADDR (phdr->p_paddr & 0xFFFFFF); ++ else ++ memaddr = RAW_ADDR (phdr->p_paddr); ++ ++ memsiz = phdr->p_memsz; ++ if (memaddr < RAW_ADDR (0x100000)) ++ errnum = ERR_BELOW_1MB; ++ ++ /* If the memory range contains the entry address, get the ++ physical address here. */ ++ if (type == KERNEL_TYPE_MULTIBOOT ++ && (unsigned) entry_addr >= phdr->p_vaddr ++ && (unsigned) entry_addr < phdr->p_vaddr + memsiz) ++ real_entry_addr = (entry_func) ((unsigned) entry_addr ++ + memaddr - phdr->p_vaddr); ++ ++ /* make sure we only load what we're supposed to! */ ++ if (filesiz > memsiz) ++ filesiz = memsiz; ++ /* mark memory as used */ ++ if (cur_addr < memaddr + memsiz) ++ cur_addr = memaddr + memsiz; ++ printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz, ++ memsiz - filesiz); ++ /* increment number of segments */ ++ loaded++; ++ ++ /* load the segment */ ++ if (memcheck (memaddr, memsiz) ++ && grub_read ((char *) memaddr, filesiz) == filesiz) ++ { ++ if (memsiz > filesiz) ++ memset ((char *) (memaddr + filesiz), 0, memsiz - filesiz); ++ } ++ else ++ break; ++ } ++ } ++ ++ if (! errnum) ++ { ++ if (! loaded) ++ errnum = ERR_EXEC_FORMAT; ++ else ++ { ++ /* Load ELF symbols. */ ++ Elf32_Shdr *shdr = NULL; ++ int tab_size, sec_size; ++ int symtab_err = 0; ++ ++ mbi.syms.e.num = pu.elf->e_shnum; ++ mbi.syms.e.size = pu.elf->e_shentsize; ++ mbi.syms.e.shndx = pu.elf->e_shstrndx; ++ ++ /* We should align to a 4K boundary here for good measure. */ ++ if (align_4k) ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ ++ tab_size = pu.elf->e_shentsize * pu.elf->e_shnum; ++ ++ grub_seek (pu.elf->e_shoff); ++ if (grub_read ((char *) RAW_ADDR (cur_addr), tab_size) ++ == tab_size) ++ { ++ mbi.syms.e.addr = cur_addr; ++ shdr = (Elf32_Shdr *) mbi.syms.e.addr; ++ cur_addr += tab_size; ++ ++ printf (", shtab=0x%x", cur_addr); ++ ++ for (i = 0; i < mbi.syms.e.num; i++) ++ { ++ /* This section is a loaded section, ++ so we don't care. */ ++ if (shdr[i].sh_addr != 0) ++ continue; ++ ++ /* This section is empty, so we don't care. */ ++ if (shdr[i].sh_size == 0) ++ continue; ++ ++ /* Align the section to a sh_addralign bits boundary. */ ++ cur_addr = ((cur_addr + shdr[i].sh_addralign) & ++ - (int) shdr[i].sh_addralign); ++ ++ grub_seek (shdr[i].sh_offset); ++ ++ sec_size = shdr[i].sh_size; ++ ++ if (! (memcheck (cur_addr, sec_size) ++ && (grub_read ((char *) RAW_ADDR (cur_addr), ++ sec_size) ++ == sec_size))) ++ { ++ symtab_err = 1; ++ break; ++ } ++ ++ shdr[i].sh_addr = cur_addr; ++ cur_addr += sec_size; ++ } ++ } ++ else ++ symtab_err = 1; ++ ++ if (mbi.syms.e.addr < RAW_ADDR(0x10000)) ++ symtab_err = 1; ++ ++ if (symtab_err) ++ { ++ printf ("(bad)"); ++ mbi.syms.e.num = 0; ++ mbi.syms.e.size = 0; ++ mbi.syms.e.addr = 0; ++ mbi.syms.e.shndx = 0; ++ cur_addr = 0; ++ } ++ else ++ mbi.flags |= MB_INFO_ELF_SHDR; ++ } ++ } ++ } ++ ++ if (! errnum) ++ { ++ grub_printf (", entry=0x%x]\n", (unsigned) entry_addr); ++ ++ /* If the entry address is physically different from that of the ELF ++ header, correct it here. */ ++ if (real_entry_addr) ++ entry_addr = real_entry_addr; ++ } ++ else ++ { ++ putchar ('\n'); ++ type = KERNEL_TYPE_NONE; ++ } ++ ++ grub_close (); ++ ++ /* Sanity check. */ ++ if (suggested_type != KERNEL_TYPE_NONE && suggested_type != type) ++ { ++ errnum = ERR_EXEC_FORMAT; ++ return KERNEL_TYPE_NONE; ++ } ++ ++ return type; ++} ++ ++int ++load_module (char *module, char *arg) ++{ ++ int len; ++ ++ /* if we are supposed to load on 4K boundaries */ ++ cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; ++ ++ if (!grub_open (module)) ++ return 0; ++ ++ len = grub_read ((char *) cur_addr, -1); ++ if (! len) ++ { ++ grub_close (); ++ return 0; ++ } ++ ++ printf (" [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len); ++ ++ /* these two simply need to be set if any modules are loaded at all */ ++ mbi.flags |= MB_INFO_MODS; ++ mbi.mods_addr = (int) mll; ++ ++ mll[mbi.mods_count].cmdline = (int) arg; ++ mll[mbi.mods_count].mod_start = cur_addr; ++ cur_addr += len; ++ mll[mbi.mods_count].mod_end = cur_addr; ++ mll[mbi.mods_count].pad = 0; ++ ++ /* increment number of modules included */ ++ mbi.mods_count++; ++ ++ grub_close (); ++ return 1; ++} ++ ++int ++load_initrd (char *initrd) ++{ ++ int len; ++ unsigned long moveto; ++ unsigned long max_addr; ++ struct linux_kernel_header *lh ++ = (struct linux_kernel_header *) (cur_addr - LINUX_SETUP_MOVE_SIZE); ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 1; ++#endif ++ ++ if (! grub_open (initrd)) ++ goto fail; ++ ++ len = grub_read ((char *) cur_addr, -1); ++ if (! len) ++ { ++ grub_close (); ++ goto fail; ++ } ++ ++ if (linux_mem_size) ++ moveto = linux_mem_size; ++ else ++ moveto = (mbi.mem_upper + 0x400) << 10; ++ ++ moveto = (moveto - len) & 0xfffff000; ++ max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 ++ ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); ++ if (moveto + len >= max_addr) ++ moveto = (max_addr - len) & 0xfffff000; ++ ++ /* XXX: Linux 2.3.xx has a bug in the memory range check, so avoid ++ the last page. ++ XXX: Linux 2.2.xx has a bug in the memory range check, which is ++ worse than that of Linux 2.3.xx, so avoid the last 64kb. *sigh* */ ++ moveto -= 0x10000; ++ memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len); ++ ++ printf (" [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len); ++ ++ /* FIXME: Should check if the kernel supports INITRD. */ ++ lh->ramdisk_image = RAW_ADDR (moveto); ++ lh->ramdisk_size = len; ++ ++ grub_close (); ++ ++ fail: ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 0; ++#endif ++ ++ return ! errnum; ++} ++ ++ ++#ifdef GRUB_UTIL ++/* Dummy function to fake the *BSD boot. */ ++static void ++bsd_boot_entry (int flags, int bootdev, int sym_start, int sym_end, ++ int mem_upper, int mem_lower) ++{ ++ stop (); ++} ++#endif ++ ++ ++/* ++ * All "*_boot" commands depend on the images being loaded into memory ++ * correctly, the variables in this file being set up correctly, and ++ * the root partition being set in the 'saved_drive' and 'saved_partition' ++ * variables. ++ */ ++ ++ ++void ++bsd_boot (kernel_t type, int bootdev, char *arg) ++{ ++ char *str; ++ int clval = 0, i; ++ struct bootinfo bi; ++ ++#ifdef GRUB_UTIL ++ entry_addr = (entry_func) bsd_boot_entry; ++#else ++ stop_floppy (); ++#endif ++ ++ while (*(++arg) && *arg != ' '); ++ str = arg; ++ while (*str) ++ { ++ if (*str == '-') ++ { ++ while (*str && *str != ' ') ++ { ++ if (*str == 'C') ++ clval |= RB_CDROM; ++ if (*str == 'a') ++ clval |= RB_ASKNAME; ++ if (*str == 'b') ++ clval |= RB_HALT; ++ if (*str == 'c') ++ clval |= RB_CONFIG; ++ if (*str == 'd') ++ clval |= RB_KDB; ++ if (*str == 'D') ++ clval |= RB_MULTIPLE; ++ if (*str == 'g') ++ clval |= RB_GDB; ++ if (*str == 'h') ++ clval |= RB_SERIAL; ++ if (*str == 'm') ++ clval |= RB_MUTE; ++ if (*str == 'r') ++ clval |= RB_DFLTROOT; ++ if (*str == 's') ++ clval |= RB_SINGLE; ++ if (*str == 'v') ++ clval |= RB_VERBOSE; ++ str++; ++ } ++ continue; ++ } ++ str++; ++ } ++ ++ if (type == KERNEL_TYPE_FREEBSD) ++ { ++ clval |= RB_BOOTINFO; ++ ++ bi.bi_version = BOOTINFO_VERSION; ++ ++ *arg = 0; ++ while ((--arg) > (char *) MB_CMDLINE_BUF && *arg != '/'); ++ if (*arg == '/') ++ bi.bi_kernelname = arg + 1; ++ else ++ bi.bi_kernelname = 0; ++ ++ bi.bi_nfs_diskless = 0; ++ bi.bi_n_bios_used = 0; /* this field is apparently unused */ ++ ++ for (i = 0; i < N_BIOS_GEOM; i++) ++ { ++ struct geometry geom; ++ ++ /* XXX Should check the return value. */ ++ get_diskinfo (i + 0x80, &geom); ++ /* FIXME: If HEADS or SECTORS is greater than 255, then this will ++ break the geometry information. That is a drawback of BSD ++ but not of GRUB. */ ++ bi.bi_bios_geom[i] = (((geom.cylinders - 1) << 16) ++ + (((geom.heads - 1) & 0xff) << 8) ++ + (geom.sectors & 0xff)); ++ } ++ ++ bi.bi_size = sizeof (struct bootinfo); ++ bi.bi_memsizes_valid = 1; ++ bi.bi_bios_dev = saved_drive; ++ bi.bi_basemem = mbi.mem_lower; ++ bi.bi_extmem = extended_memory; ++ ++ if (mbi.flags & MB_INFO_AOUT_SYMS) ++ { ++ bi.bi_symtab = mbi.syms.a.addr; ++ bi.bi_esymtab = mbi.syms.a.addr + 4 ++ + mbi.syms.a.tabsize + mbi.syms.a.strsize; ++ } ++#if 0 ++ else if (mbi.flags & MB_INFO_ELF_SHDR) ++ { ++ /* FIXME: Should check if a symbol table exists and, if exists, ++ pass the table to BI. */ ++ } ++#endif ++ else ++ { ++ bi.bi_symtab = 0; ++ bi.bi_esymtab = 0; ++ } ++ ++ /* call entry point */ ++ (*entry_addr) (clval, bootdev, 0, 0, 0, ((int) (&bi))); ++ } ++ else ++ { ++ /* ++ * We now pass the various bootstrap parameters to the loaded ++ * image via the argument list. ++ * ++ * This is the official list: ++ * ++ * arg0 = 8 (magic) ++ * arg1 = boot flags ++ * arg2 = boot device ++ * arg3 = start of symbol table (0 if not loaded) ++ * arg4 = end of symbol table (0 if not loaded) ++ * arg5 = transfer address from image ++ * arg6 = transfer address for next image pointer ++ * arg7 = conventional memory size (640) ++ * arg8 = extended memory size (8196) ++ * ++ * ...in actuality, we just pass the parameters used by the kernel. ++ */ ++ ++ /* call entry point */ ++ unsigned long end_mark; ++ ++ if (mbi.flags & MB_INFO_AOUT_SYMS) ++ end_mark = (mbi.syms.a.addr + 4 ++ + mbi.syms.a.tabsize + mbi.syms.a.strsize); ++ else ++ /* FIXME: it should be mbi.syms.e.size. */ ++ end_mark = 0; ++ ++ (*entry_addr) (clval, bootdev, 0, end_mark, ++ extended_memory, mbi.mem_lower); ++ } ++} +diff -Nur grub-0.97/stage2/builtins.c grub-0.97-patched/stage2/builtins.c +--- grub-0.97/stage2/builtins.c 2005-02-15 22:58:23.000000000 +0100 ++++ grub-0.97-patched/stage2/builtins.c 2012-11-11 17:07:12.729729661 +0100 +@@ -131,63 +131,98 @@ + } + + ++/* blocklist_read_helper nee disk_read_blocklist_func was a nested ++ * function, to which pointers were taken and exposed globally. Even ++ * in the GNU-C nested functions extension, they have local linkage, ++ * and aren't guaranteed to be accessable *at all* outside of their ++ * containing scope. ++ * ++ * Above and beyond all of that, the variables within blocklist_func_context ++ * are originally local variables, with local (not even static) linkage, ++ * from within blocklist_func. These were each referenced by ++ * disk_read_blocklist_func, which is only called from other functions ++ * through a globally scoped pointer. ++ * ++ * The documentation in GCC actually uses the words "all hell will break ++ * loose" to describe this scenario. ++ * ++ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn ++ * about it (possibly because of the scoping madness?) ++ */ ++ ++static struct { ++ int start_sector; ++ int num_sectors; ++ int num_entries; ++ int last_length; ++} blocklist_func_context = { ++ .start_sector = 0, ++ .num_sectors = 0, ++ .num_entries = 0, ++ .last_length = 0 ++}; ++ ++/* Collect contiguous blocks into one entry as many as possible, ++ and print the blocklist notation on the screen. */ ++static void ++blocklist_read_helper (int sector, int offset, int length) ++{ ++ int *start_sector = &blocklist_func_context.start_sector; ++ int *num_sectors = &blocklist_func_context.num_sectors; ++ int *num_entries = &blocklist_func_context.num_entries; ++ int *last_length = &blocklist_func_context.last_length; ++ ++ if (*num_sectors > 0) ++ { ++ if (*start_sector + *num_sectors == sector ++ && offset == 0 && *last_length == SECTOR_SIZE) ++ { ++ *num_sectors++; ++ *last_length = length; ++ return; ++ } ++ else ++ { ++ if (*last_length == SECTOR_SIZE) ++ grub_printf ("%s%d+%d", *num_entries ? "," : "", ++ *start_sector - part_start, *num_sectors); ++ else if (*num_sectors > 1) ++ grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "", ++ *start_sector - part_start, *num_sectors-1, ++ *start_sector + *num_sectors-1 - part_start, ++ *last_length); ++ else ++ grub_printf ("%s%d[0-%d]", *num_entries ? "," : "", ++ *start_sector - part_start, *last_length); ++ *num_entries++; ++ *num_sectors = 0; ++ } ++ } ++ ++ if (offset > 0) ++ { ++ grub_printf("%s%d[%d-%d]", *num_entries ? "," : "", ++ sector-part_start, offset, offset+length); ++ *num_entries++; ++ } ++ else ++ { ++ *start_sector = sector; ++ *num_sectors = 1; ++ *last_length = length; ++ } ++} ++ + /* blocklist */ + static int + blocklist_func (char *arg, int flags) + { + char *dummy = (char *) RAW_ADDR (0x100000); +- int start_sector; +- int num_sectors = 0; +- int num_entries = 0; +- int last_length = 0; + +- auto void disk_read_blocklist_func (int sector, int offset, int length); ++ int *start_sector = &blocklist_func_context.start_sector; ++ int *num_sectors = &blocklist_func_context.num_sectors; ++ int *num_entries = &blocklist_func_context.num_entries; + +- /* Collect contiguous blocks into one entry as many as possible, +- and print the blocklist notation on the screen. */ +- auto void disk_read_blocklist_func (int sector, int offset, int length) +- { +- if (num_sectors > 0) +- { +- if (start_sector + num_sectors == sector +- && offset == 0 && last_length == SECTOR_SIZE) +- { +- num_sectors++; +- last_length = length; +- return; +- } +- else +- { +- if (last_length == SECTOR_SIZE) +- grub_printf ("%s%d+%d", num_entries ? "," : "", +- start_sector - part_start, num_sectors); +- else if (num_sectors > 1) +- grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", +- start_sector - part_start, num_sectors-1, +- start_sector + num_sectors-1 - part_start, +- last_length); +- else +- grub_printf ("%s%d[0-%d]", num_entries ? "," : "", +- start_sector - part_start, last_length); +- num_entries++; +- num_sectors = 0; +- } +- } +- +- if (offset > 0) +- { +- grub_printf("%s%d[%d-%d]", num_entries ? "," : "", +- sector-part_start, offset, offset+length); +- num_entries++; +- } +- else +- { +- start_sector = sector; +- num_sectors = 1; +- last_length = length; +- } +- } +- + /* Open the file. */ + if (! grub_open (arg)) + return 1; +@@ -206,15 +241,15 @@ + grub_printf (")"); + + /* Read in the whole file to DUMMY. */ +- disk_read_hook = disk_read_blocklist_func; ++ disk_read_hook = blocklist_read_helper; + if (! grub_read (dummy, -1)) + goto fail; + + /* The last entry may not be printed yet. Don't check if it is a + * full sector, since it doesn't matter if we read too much. */ +- if (num_sectors > 0) +- grub_printf ("%s%d+%d", num_entries ? "," : "", +- start_sector - part_start, num_sectors); ++ if (*num_sectors > 0) ++ grub_printf ("%s%d+%d", *num_entries ? "," : "", ++ *start_sector - part_start, *num_sectors); + + grub_printf ("\n"); + +@@ -852,6 +887,138 @@ + }; + #endif /* SUPPORT_NETBOOT */ + ++static int terminal_func (char *arg, int flags); ++ ++#ifdef SUPPORT_GRAPHICS ++ ++static int splashimage_func(char *arg, int flags) { ++ char splashimage[64]; ++ int i; ++ ++ /* filename can only be 64 characters due to our buffer size */ ++ if (strlen(arg) > 63) ++ return 1; ++ if (flags == BUILTIN_CMDLINE) { ++ if (!grub_open(arg)) ++ return 1; ++ grub_close(); ++ } ++ ++ strcpy(splashimage, arg); ++ ++ /* get rid of TERM_NEED_INIT from the graphics terminal. */ ++ for (i = 0; term_table[i].name; i++) { ++ if (grub_strcmp (term_table[i].name, "graphics") == 0) { ++ term_table[i].flags &= ~TERM_NEED_INIT; ++ break; ++ } ++ } ++ ++ graphics_set_splash(splashimage); ++ ++ if (flags == BUILTIN_CMDLINE && graphics_inited) { ++ graphics_end(); ++ graphics_init(); ++ graphics_cls(); ++ } ++ ++ /* FIXME: should we be explicitly switching the terminal as a ++ * side effect here? */ ++ terminal_func("graphics", flags); ++ ++ return 0; ++} ++ ++static struct builtin builtin_splashimage = ++{ ++ "splashimage", ++ splashimage_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "splashimage FILE", ++ "Load FILE as the background image when in graphics mode." ++}; ++ ++ ++/* foreground */ ++static int ++foreground_func(char *arg, int flags) ++{ ++ if (grub_strlen(arg) == 6) { ++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; ++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; ++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; ++ ++ foreground = (r << 16) | (g << 8) | b; ++ if (graphics_inited) ++ graphics_set_palette(15, r, g, b); ++ ++ return (0); ++ } ++ ++ return (1); ++} ++ ++static struct builtin builtin_foreground = ++{ ++ "foreground", ++ foreground_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "foreground RRGGBB", ++ "Sets the foreground color when in graphics mode." ++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." ++}; ++ ++ ++/* background */ ++static int ++background_func(char *arg, int flags) ++{ ++ if (grub_strlen(arg) == 6) { ++ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; ++ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; ++ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; ++ ++ background = (r << 16) | (g << 8) | b; ++ if (graphics_inited) ++ graphics_set_palette(0, r, g, b); ++ return (0); ++ } ++ ++ return (1); ++} ++ ++static struct builtin builtin_background = ++{ ++ "background", ++ background_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "background RRGGBB", ++ "Sets the background color when in graphics mode." ++ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." ++}; ++ ++#endif /* SUPPORT_GRAPHICS */ ++ ++ ++/* clear */ ++static int ++clear_func() ++{ ++ if (current_term->cls) ++ current_term->cls(); ++ ++ return 0; ++} ++ ++static struct builtin builtin_clear = ++{ ++ "clear", ++ clear_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "clear", ++ "Clear the screen" ++}; ++ + + /* displayapm */ + static int +@@ -1233,14 +1400,15 @@ + for (drive = 0x80; drive < 0x88; drive++) + { + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int type, entry; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int type, entry, gpt_count, gpt_size; + char buf[SECTOR_SIZE]; + + current_drive = drive; + while (next_partition (drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, buf)) ++ &ext_offset, &gpt_offset, ++ &gpt_count, &gpt_size, buf)) + { + if (type != PC_SLICE_TYPE_NONE + && ! IS_PC_SLICE_TYPE_BSD (type) +@@ -1740,6 +1908,77 @@ + + + /* install */ ++static struct { ++ int saved_sector; ++ int installaddr; ++ int installlist; ++ char *stage2_first_buffer; ++} install_func_context = { ++ .saved_sector = 0, ++ .installaddr = 0, ++ .installlist = 0, ++ .stage2_first_buffer = NULL, ++}; ++ ++/* Save the first sector of Stage2 in STAGE2_SECT. */ ++/* Formerly disk_read_savesect_func with local scope inside install_func */ ++static void ++install_savesect_helper(int sector, int offset, int length) ++{ ++ if (debug) ++ printf ("[%d]", sector); ++ ++ /* ReiserFS has files which sometimes contain data not aligned ++ on sector boundaries. Returning an error is better than ++ silently failing. */ ++ if (offset != 0 || length != SECTOR_SIZE) ++ errnum = ERR_UNALIGNED; ++ ++ install_func_context.saved_sector = sector; ++} ++ ++/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */ ++/* Formerly disk_read_blocklist_func with local scope inside install_func */ ++static void ++install_blocklist_helper (int sector, int offset, int length) ++{ ++ int *installaddr = &install_func_context.installaddr; ++ int *installlist = &install_func_context.installlist; ++ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; ++ /* Was the last sector full? */ ++ static int last_length = SECTOR_SIZE; ++ ++ if (debug) ++ printf("[%d]", sector); ++ ++ if (offset != 0 || last_length != SECTOR_SIZE) ++ { ++ /* We found a non-sector-aligned data block. */ ++ errnum = ERR_UNALIGNED; ++ return; ++ } ++ ++ last_length = length; ++ ++ if (*((unsigned long *) (*installlist - 4)) ++ + *((unsigned short *) *installlist) != sector ++ || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4) ++ { ++ *installlist -= 8; ++ ++ if (*((unsigned long *) (*installlist - 8))) ++ errnum = ERR_WONT_FIT; ++ else ++ { ++ *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4); ++ *((unsigned long *) (*installlist - 4)) = sector; ++ } ++ } ++ ++ *((unsigned short *) *installlist) += 1; ++ *installaddr += 512; ++} ++ + static int + install_func (char *arg, int flags) + { +@@ -1747,8 +1986,12 @@ + char *stage1_buffer = (char *) RAW_ADDR (0x100000); + char *stage2_buffer = stage1_buffer + SECTOR_SIZE; + char *old_sect = stage2_buffer + SECTOR_SIZE; +- char *stage2_first_buffer = old_sect + SECTOR_SIZE; +- char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; ++ /* stage2_first_buffer used to be defined as: ++ * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */ ++ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; ++ /* and stage2_second_buffer was: ++ * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */ ++ char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE; + /* XXX: Probably SECTOR_SIZE is reasonable. */ + char *config_filename = stage2_second_buffer + SECTOR_SIZE; + char *dummy = config_filename + SECTOR_SIZE; +@@ -1757,10 +2000,11 @@ + int src_drive, src_partition, src_part_start; + int i; + struct geometry dest_geom, src_geom; +- int saved_sector; ++ int *saved_sector = &install_func_context.saved_sector; + int stage2_first_sector, stage2_second_sector; + char *ptr; +- int installaddr, installlist; ++ int *installaddr = &install_func_context.installaddr; ++ int *installlist = &install_func_context.installlist; + /* Point to the location of the name of a configuration file in Stage 2. */ + char *config_file_location; + /* If FILE is a Stage 1.5? */ +@@ -1769,67 +2013,13 @@ + int is_open = 0; + /* If LBA is forced? */ + int is_force_lba = 0; +- /* Was the last sector full? */ +- int last_length = SECTOR_SIZE; +- ++ ++ *stage2_first_buffer = old_sect + SECTOR_SIZE; + #ifdef GRUB_UTIL + /* If the Stage 2 is in a partition mounted by an OS, this will store + the filename under the OS. */ + char *stage2_os_file = 0; + #endif /* GRUB_UTIL */ +- +- auto void disk_read_savesect_func (int sector, int offset, int length); +- auto void disk_read_blocklist_func (int sector, int offset, int length); +- +- /* Save the first sector of Stage2 in STAGE2_SECT. */ +- auto void disk_read_savesect_func (int sector, int offset, int length) +- { +- if (debug) +- printf ("[%d]", sector); +- +- /* ReiserFS has files which sometimes contain data not aligned +- on sector boundaries. Returning an error is better than +- silently failing. */ +- if (offset != 0 || length != SECTOR_SIZE) +- errnum = ERR_UNALIGNED; +- +- saved_sector = sector; +- } +- +- /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and +- INSTALLSECT. */ +- auto void disk_read_blocklist_func (int sector, int offset, int length) +- { +- if (debug) +- printf("[%d]", sector); +- +- if (offset != 0 || last_length != SECTOR_SIZE) +- { +- /* We found a non-sector-aligned data block. */ +- errnum = ERR_UNALIGNED; +- return; +- } +- +- last_length = length; +- +- if (*((unsigned long *) (installlist - 4)) +- + *((unsigned short *) installlist) != sector +- || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) +- { +- installlist -= 8; +- +- if (*((unsigned long *) (installlist - 8))) +- errnum = ERR_WONT_FIT; +- else +- { +- *((unsigned short *) (installlist + 2)) = (installaddr >> 4); +- *((unsigned long *) (installlist - 4)) = sector; +- } +- } +- +- *((unsigned short *) installlist) += 1; +- installaddr += 512; +- } + + /* First, check the GNU-style long option. */ + while (1) +@@ -1862,10 +2052,10 @@ + addr = skip_to (0, file); + + /* Get the installation address. */ +- if (! safe_parse_maxint (&addr, &installaddr)) ++ if (! safe_parse_maxint (&addr, installaddr)) + { + /* ADDR is not specified. */ +- installaddr = 0; ++ *installaddr = 0; + ptr = addr; + errnum = 0; + } +@@ -1961,17 +2151,17 @@ + = 0x9090; + + /* Read the first sector of Stage 2. */ +- disk_read_hook = disk_read_savesect_func; +- if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ disk_read_hook = install_savesect_helper; ++ if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) + goto fail; + +- stage2_first_sector = saved_sector; ++ stage2_first_sector = *saved_sector; + + /* Read the second sector of Stage 2. */ + if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) + goto fail; + +- stage2_second_sector = saved_sector; ++ stage2_second_sector = *saved_sector; + + /* Check for the version of Stage 2. */ + if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) +@@ -1987,27 +2177,27 @@ + + /* If INSTALLADDR is not specified explicitly in the command-line, + determine it by the Stage 2 id. */ +- if (! installaddr) ++ if (! *installaddr) + { + if (! is_stage1_5) + /* Stage 2. */ +- installaddr = 0x8000; ++ *installaddr = 0x8000; + else + /* Stage 1.5. */ +- installaddr = 0x2000; ++ *installaddr = 0x2000; + } + + *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) + = stage2_first_sector; + *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) +- = installaddr; ++ = *installaddr; + *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) +- = installaddr >> 4; ++ = *installaddr >> 4; + +- i = (int) stage2_first_buffer + SECTOR_SIZE - 4; ++ i = (int) *stage2_first_buffer + SECTOR_SIZE - 4; + while (*((unsigned long *) i)) + { +- if (i < (int) stage2_first_buffer ++ if (i < (int) *stage2_first_buffer + || (*((int *) (i - 4)) & 0x80000000) + || *((unsigned short *) i) >= 0xA00 + || *((short *) (i + 2)) == 0) +@@ -2021,13 +2211,13 @@ + i -= 8; + } + +- installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; +- installaddr += SECTOR_SIZE; ++ *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4; ++ *installaddr += SECTOR_SIZE; + + /* Read the whole of Stage2 except for the first sector. */ + grub_seek (SECTOR_SIZE); + +- disk_read_hook = disk_read_blocklist_func; ++ disk_read_hook = install_blocklist_helper; + if (! grub_read (dummy, -1)) + goto fail; + +@@ -2110,7 +2300,7 @@ + /* Skip the first sector. */ + grub_seek (SECTOR_SIZE); + +- disk_read_hook = disk_read_savesect_func; ++ disk_read_hook = install_savesect_helper; + if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) + goto fail; + +@@ -2180,7 +2370,7 @@ + else + #endif /* GRUB_UTIL */ + { +- if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) ++ if (! devwrite (*saved_sector - part_start, 1, stage2_buffer)) + goto fail; + } + } +@@ -2202,7 +2392,7 @@ + goto fail; + } + +- if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) ++ if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) + { + fclose (fp); + errnum = ERR_WRITE; +@@ -2229,7 +2419,7 @@ + goto fail; + + if (! devwrite (stage2_first_sector - src_part_start, 1, +- stage2_first_buffer)) ++ *stage2_first_buffer)) + goto fail; + + if (! devwrite (stage2_second_sector - src_part_start, 1, +@@ -2815,8 +3005,8 @@ + { + int new_type; + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int entry, type; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int entry, type, gpt_count, gpt_size; + char mbr[512]; + + /* Get the drive and the partition. */ +@@ -2853,8 +3043,15 @@ + /* Look for the partition. */ + while (next_partition (current_drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, mbr)) ++ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) + { ++ /* The partition may not be a GPT partition. */ ++ if (gpt_offset != 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ + if (part == current_partition) + { + /* Found. */ +@@ -3830,15 +4027,15 @@ + { + char tmp[16]; + grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF); +- grub_strncat (device, tmp, 256); ++ grub_strncat (device, tmp, sizeof (device)); + } + if ((partition & 0x00FF00) != 0x00FF00) + { + char tmp[16]; + grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF)); +- grub_strncat (device, tmp, 256); ++ grub_strncat (device, tmp, sizeof (device)); + } +- grub_strncat (device, ")", 256); ++ grub_strncat (device, ")", sizeof (device)); + } + + int embed_stage1_5 (char *stage1_5, int drive, int partition) +@@ -4085,7 +4282,7 @@ + }; + + +-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) + /* terminal */ + static int + terminal_func (char *arg, int flags) +@@ -4244,17 +4441,21 @@ + end: + current_term = term_table + default_term; + current_term->flags = term_flags; +- ++ + if (lines) + max_lines = lines; + else +- /* 24 would be a good default value. */ +- max_lines = 24; +- ++ max_lines = current_term->max_lines; ++ + /* If the interface is currently the command-line, + restart it to repaint the screen. */ +- if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) ++ if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){ ++ if (prev_term->shutdown) ++ prev_term->shutdown(); ++ if (current_term->startup) ++ current_term->startup(); + grub_longjmp (restart_cmdline_env, 0); ++ } + + return 0; + } +@@ -4264,7 +4465,7 @@ + "terminal", + terminal_func, + BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, +- "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", ++ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]", + "Select a terminal. When multiple terminals are specified, wait until" + " you push any key to continue. If both console and serial are specified," + " the terminal to which you input a key first will be selected. If no" +@@ -4276,7 +4477,7 @@ + " seconds. The option --lines specifies the maximum number of lines." + " The option --silent is used to suppress messages." + }; +-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ + + + #ifdef SUPPORT_SERIAL +@@ -4795,6 +4996,9 @@ + /* The table of builtin commands. Sorted in dictionary order. */ + struct builtin *builtin_table[] = + { ++#ifdef SUPPORT_GRAPHICS ++ &builtin_background, ++#endif + &builtin_blocklist, + &builtin_boot, + #ifdef SUPPORT_NETBOOT +@@ -4802,6 +5006,7 @@ + #endif /* SUPPORT_NETBOOT */ + &builtin_cat, + &builtin_chainloader, ++ &builtin_clear, + &builtin_cmp, + &builtin_color, + &builtin_configfile, +@@ -4821,6 +5026,9 @@ + &builtin_embed, + &builtin_fallback, + &builtin_find, ++#ifdef SUPPORT_GRAPHICS ++ &builtin_foreground, ++#endif + &builtin_fstest, + &builtin_geometry, + &builtin_halt, +@@ -4864,9 +5072,12 @@ + #endif /* SUPPORT_SERIAL */ + &builtin_setkey, + &builtin_setup, +-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++#ifdef SUPPORT_GRAPHICS ++ &builtin_splashimage, ++#endif /* SUPPORT_GRAPHICS */ ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) + &builtin_terminal, +-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ + #ifdef SUPPORT_SERIAL + &builtin_terminfo, + #endif /* SUPPORT_SERIAL */ +diff -Nur grub-0.97/stage2/builtins.c.orig grub-0.97-patched/stage2/builtins.c.orig +--- grub-0.97/stage2/builtins.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/builtins.c.orig 2005-02-15 22:58:23.000000000 +0100 +@@ -0,0 +1,4884 @@ ++/* builtins.c - the GRUB builtin commands */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2003,2004 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++/* Include stdio.h before shared.h, because we can't define ++ WITHOUT_LIBC_STUBS here. */ ++#ifdef GRUB_UTIL ++# include ++#endif ++ ++#include ++#include ++#include ++ ++#ifdef SUPPORT_NETBOOT ++# define GRUB 1 ++# include ++#endif ++ ++#ifdef SUPPORT_SERIAL ++# include ++# include ++#endif ++ ++#ifdef GRUB_UTIL ++# include ++#else /* ! GRUB_UTIL */ ++# include ++# include ++#endif /* ! GRUB_UTIL */ ++ ++#ifdef USE_MD5_PASSWORDS ++# include ++#endif ++ ++/* The type of kernel loaded. */ ++kernel_t kernel_type; ++/* The boot device. */ ++static int bootdev; ++/* True when the debug mode is turned on, and false ++ when it is turned off. */ ++int debug = 0; ++/* The default entry. */ ++int default_entry = 0; ++/* The fallback entry. */ ++int fallback_entryno; ++int fallback_entries[MAX_FALLBACK_ENTRIES]; ++/* The number of current entry. */ ++int current_entryno; ++/* The address for Multiboot command-line buffer. */ ++static char *mb_cmdline; ++/* The password. */ ++char *password; ++/* The password type. */ ++password_t password_type; ++/* The flag for indicating that the user is authoritative. */ ++int auth = 0; ++/* The timeout. */ ++int grub_timeout = -1; ++/* Whether to show the menu or not. */ ++int show_menu = 1; ++/* The BIOS drive map. */ ++static unsigned short bios_drive_map[DRIVE_MAP_SIZE + 1]; ++ ++/* Prototypes for allowing straightfoward calling of builtins functions ++ inside other functions. */ ++static int configfile_func (char *arg, int flags); ++ ++/* Initialize the data for builtins. */ ++void ++init_builtins (void) ++{ ++ kernel_type = KERNEL_TYPE_NONE; ++ /* BSD and chainloading evil hacks! */ ++ bootdev = set_bootdev (0); ++ mb_cmdline = (char *) MB_CMDLINE_BUF; ++} ++ ++/* Initialize the data for the configuration file. */ ++void ++init_config (void) ++{ ++ default_entry = 0; ++ password = 0; ++ fallback_entryno = -1; ++ fallback_entries[0] = -1; ++ grub_timeout = -1; ++} ++ ++/* Check a password for correctness. Returns 0 if password was ++ correct, and a value != 0 for error, similarly to strcmp. */ ++int ++check_password (char *entered, char* expected, password_t type) ++{ ++ switch (type) ++ { ++ case PASSWORD_PLAIN: ++ return strcmp (entered, expected); ++ ++#ifdef USE_MD5_PASSWORDS ++ case PASSWORD_MD5: ++ return check_md5_password (entered, expected); ++#endif ++ default: ++ /* unsupported password type: be secure */ ++ return 1; ++ } ++} ++ ++/* Print which sector is read when loading a file. */ ++static void ++disk_read_print_func (int sector, int offset, int length) ++{ ++ grub_printf ("[%d,%d,%d]", sector, offset, length); ++} ++ ++ ++/* blocklist */ ++static int ++blocklist_func (char *arg, int flags) ++{ ++ char *dummy = (char *) RAW_ADDR (0x100000); ++ int start_sector; ++ int num_sectors = 0; ++ int num_entries = 0; ++ int last_length = 0; ++ ++ auto void disk_read_blocklist_func (int sector, int offset, int length); ++ ++ /* Collect contiguous blocks into one entry as many as possible, ++ and print the blocklist notation on the screen. */ ++ auto void disk_read_blocklist_func (int sector, int offset, int length) ++ { ++ if (num_sectors > 0) ++ { ++ if (start_sector + num_sectors == sector ++ && offset == 0 && last_length == SECTOR_SIZE) ++ { ++ num_sectors++; ++ last_length = length; ++ return; ++ } ++ else ++ { ++ if (last_length == SECTOR_SIZE) ++ grub_printf ("%s%d+%d", num_entries ? "," : "", ++ start_sector - part_start, num_sectors); ++ else if (num_sectors > 1) ++ grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", ++ start_sector - part_start, num_sectors-1, ++ start_sector + num_sectors-1 - part_start, ++ last_length); ++ else ++ grub_printf ("%s%d[0-%d]", num_entries ? "," : "", ++ start_sector - part_start, last_length); ++ num_entries++; ++ num_sectors = 0; ++ } ++ } ++ ++ if (offset > 0) ++ { ++ grub_printf("%s%d[%d-%d]", num_entries ? "," : "", ++ sector-part_start, offset, offset+length); ++ num_entries++; ++ } ++ else ++ { ++ start_sector = sector; ++ num_sectors = 1; ++ last_length = length; ++ } ++ } ++ ++ /* Open the file. */ ++ if (! grub_open (arg)) ++ return 1; ++ ++ /* Print the device name. */ ++ grub_printf ("(%cd%d", ++ (current_drive & 0x80) ? 'h' : 'f', ++ current_drive & ~0x80); ++ ++ if ((current_partition & 0xFF0000) != 0xFF0000) ++ grub_printf (",%d", (current_partition >> 16) & 0xFF); ++ ++ if ((current_partition & 0x00FF00) != 0x00FF00) ++ grub_printf (",%c", 'a' + ((current_partition >> 8) & 0xFF)); ++ ++ grub_printf (")"); ++ ++ /* Read in the whole file to DUMMY. */ ++ disk_read_hook = disk_read_blocklist_func; ++ if (! grub_read (dummy, -1)) ++ goto fail; ++ ++ /* The last entry may not be printed yet. Don't check if it is a ++ * full sector, since it doesn't matter if we read too much. */ ++ if (num_sectors > 0) ++ grub_printf ("%s%d+%d", num_entries ? "," : "", ++ start_sector - part_start, num_sectors); ++ ++ grub_printf ("\n"); ++ ++ fail: ++ disk_read_hook = 0; ++ grub_close (); ++ return errnum; ++} ++ ++static struct builtin builtin_blocklist = ++{ ++ "blocklist", ++ blocklist_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "blocklist FILE", ++ "Print the blocklist notation of the file FILE." ++}; ++ ++/* boot */ ++static int ++boot_func (char *arg, int flags) ++{ ++ /* Clear the int15 handler if we can boot the kernel successfully. ++ This assumes that the boot code never fails only if KERNEL_TYPE is ++ not KERNEL_TYPE_NONE. Is this assumption is bad? */ ++ if (kernel_type != KERNEL_TYPE_NONE) ++ unset_int15_handler (); ++ ++#ifdef SUPPORT_NETBOOT ++ /* Shut down the networking. */ ++ cleanup_net (); ++#endif ++ ++ switch (kernel_type) ++ { ++ case KERNEL_TYPE_FREEBSD: ++ case KERNEL_TYPE_NETBSD: ++ /* *BSD */ ++ bsd_boot (kernel_type, bootdev, (char *) mbi.cmdline); ++ break; ++ ++ case KERNEL_TYPE_LINUX: ++ /* Linux */ ++ linux_boot (); ++ break; ++ ++ case KERNEL_TYPE_BIG_LINUX: ++ /* Big Linux */ ++ big_linux_boot (); ++ break; ++ ++ case KERNEL_TYPE_CHAINLOADER: ++ /* Chainloader */ ++ ++ /* Check if we should set the int13 handler. */ ++ if (bios_drive_map[0] != 0) ++ { ++ int i; ++ ++ /* Search for SAVED_DRIVE. */ ++ for (i = 0; i < DRIVE_MAP_SIZE; i++) ++ { ++ if (! bios_drive_map[i]) ++ break; ++ else if ((bios_drive_map[i] & 0xFF) == saved_drive) ++ { ++ /* Exchage SAVED_DRIVE with the mapped drive. */ ++ saved_drive = (bios_drive_map[i] >> 8) & 0xFF; ++ break; ++ } ++ } ++ ++ /* Set the handler. This is somewhat dangerous. */ ++ set_int13_handler (bios_drive_map); ++ } ++ ++ gateA20 (0); ++ boot_drive = saved_drive; ++ chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr); ++ break; ++ ++ case KERNEL_TYPE_MULTIBOOT: ++ /* Multiboot */ ++ multi_boot ((int) entry_addr, (int) &mbi); ++ break; ++ ++ default: ++ errnum = ERR_BOOT_COMMAND; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_boot = ++{ ++ "boot", ++ boot_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "boot", ++ "Boot the OS/chain-loader which has been loaded." ++}; ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* bootp */ ++static int ++bootp_func (char *arg, int flags) ++{ ++ int with_configfile = 0; ++ ++ if (grub_memcmp (arg, "--with-configfile", sizeof ("--with-configfile") - 1) ++ == 0) ++ { ++ with_configfile = 1; ++ arg = skip_to (0, arg); ++ } ++ ++ if (! bootp ()) ++ { ++ if (errnum == ERR_NONE) ++ errnum = ERR_DEV_VALUES; ++ ++ return 1; ++ } ++ ++ /* Notify the configuration. */ ++ print_network_configuration (); ++ ++ /* XXX: this can cause an endless loop, but there is no easy way to ++ detect such a loop unfortunately. */ ++ if (with_configfile) ++ configfile_func (config_file, flags); ++ ++ return 0; ++} ++ ++static struct builtin builtin_bootp = ++{ ++ "bootp", ++ bootp_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "bootp [--with-configfile]", ++ "Initialize a network device via BOOTP. If the option `--with-configfile'" ++ " is given, try to load a configuration file specified by the 150 vendor" ++ " tag." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* cat */ ++static int ++cat_func (char *arg, int flags) ++{ ++ char c; ++ ++ if (! grub_open (arg)) ++ return 1; ++ ++ while (grub_read (&c, 1)) ++ { ++ /* Because running "cat" with a binary file can confuse the terminal, ++ print only some characters as they are. */ ++ if (grub_isspace (c) || (c >= ' ' && c <= '~')) ++ grub_putchar (c); ++ else ++ grub_putchar ('?'); ++ } ++ ++ grub_close (); ++ return 0; ++} ++ ++static struct builtin builtin_cat = ++{ ++ "cat", ++ cat_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "cat FILE", ++ "Print the contents of the file FILE." ++}; ++ ++ ++/* chainloader */ ++static int ++chainloader_func (char *arg, int flags) ++{ ++ int force = 0; ++ char *file = arg; ++ ++ /* If the option `--force' is specified? */ ++ if (substring ("--force", arg) <= 0) ++ { ++ force = 1; ++ file = skip_to (0, arg); ++ } ++ ++ /* Open the file. */ ++ if (! grub_open (file)) ++ { ++ kernel_type = KERNEL_TYPE_NONE; ++ return 1; ++ } ++ ++ /* Read the first block. */ ++ if (grub_read ((char *) BOOTSEC_LOCATION, SECTOR_SIZE) != SECTOR_SIZE) ++ { ++ grub_close (); ++ kernel_type = KERNEL_TYPE_NONE; ++ ++ /* This below happens, if a file whose size is less than 512 bytes ++ is loaded. */ ++ if (errnum == ERR_NONE) ++ errnum = ERR_EXEC_FORMAT; ++ ++ return 1; ++ } ++ ++ /* If not loading it forcibly, check for the signature. */ ++ if (! force ++ && (*((unsigned short *) (BOOTSEC_LOCATION + BOOTSEC_SIG_OFFSET)) ++ != BOOTSEC_SIGNATURE)) ++ { ++ grub_close (); ++ errnum = ERR_EXEC_FORMAT; ++ kernel_type = KERNEL_TYPE_NONE; ++ return 1; ++ } ++ ++ grub_close (); ++ kernel_type = KERNEL_TYPE_CHAINLOADER; ++ ++ /* XXX: Windows evil hack. For now, only the first five letters are ++ checked. */ ++ if (IS_PC_SLICE_TYPE_FAT (current_slice) ++ && ! grub_memcmp ((char *) BOOTSEC_LOCATION + BOOTSEC_BPB_SYSTEM_ID, ++ "MSWIN", 5)) ++ *((unsigned long *) (BOOTSEC_LOCATION + BOOTSEC_BPB_HIDDEN_SECTORS)) ++ = part_start; ++ ++ errnum = ERR_NONE; ++ ++ return 0; ++} ++ ++static struct builtin builtin_chainloader = ++{ ++ "chainloader", ++ chainloader_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "chainloader [--force] FILE", ++ "Load the chain-loader FILE. If --force is specified, then load it" ++ " forcibly, whether the boot loader signature is present or not." ++}; ++ ++ ++/* This function could be used to debug new filesystem code. Put a file ++ in the new filesystem and the same file in a well-tested filesystem. ++ Then, run "cmp" with the files. If no output is obtained, probably ++ the code is good, otherwise investigate what's wrong... */ ++/* cmp FILE1 FILE2 */ ++static int ++cmp_func (char *arg, int flags) ++{ ++ /* The filenames. */ ++ char *file1, *file2; ++ /* The addresses. */ ++ char *addr1, *addr2; ++ int i; ++ /* The size of the file. */ ++ int size; ++ ++ /* Get the filenames from ARG. */ ++ file1 = arg; ++ file2 = skip_to (0, arg); ++ if (! *file1 || ! *file2) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Terminate the filenames for convenience. */ ++ nul_terminate (file1); ++ nul_terminate (file2); ++ ++ /* Read the whole data from FILE1. */ ++ addr1 = (char *) RAW_ADDR (0x100000); ++ if (! grub_open (file1)) ++ return 1; ++ ++ /* Get the size. */ ++ size = filemax; ++ if (grub_read (addr1, -1) != size) ++ { ++ grub_close (); ++ return 1; ++ } ++ ++ grub_close (); ++ ++ /* Read the whole data from FILE2. */ ++ addr2 = addr1 + size; ++ if (! grub_open (file2)) ++ return 1; ++ ++ /* Check if the size of FILE2 is equal to the one of FILE2. */ ++ if (size != filemax) ++ { ++ grub_printf ("Differ in size: 0x%x [%s], 0x%x [%s]\n", ++ size, file1, filemax, file2); ++ grub_close (); ++ return 0; ++ } ++ ++ if (! grub_read (addr2, -1)) ++ { ++ grub_close (); ++ return 1; ++ } ++ ++ grub_close (); ++ ++ /* Now compare ADDR1 with ADDR2. */ ++ for (i = 0; i < size; i++) ++ { ++ if (addr1[i] != addr2[i]) ++ grub_printf ("Differ at the offset %d: 0x%x [%s], 0x%x [%s]\n", ++ i, (unsigned) addr1[i], file1, ++ (unsigned) addr2[i], file2); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_cmp = ++{ ++ "cmp", ++ cmp_func, ++ BUILTIN_CMDLINE, ++ "cmp FILE1 FILE2", ++ "Compare the file FILE1 with the FILE2 and inform the different values" ++ " if any." ++}; ++ ++ ++/* color */ ++/* Set new colors used for the menu interface. Support two methods to ++ specify a color name: a direct integer representation and a symbolic ++ color name. An example of the latter is "blink-light-gray/blue". */ ++static int ++color_func (char *arg, int flags) ++{ ++ char *normal; ++ char *highlight; ++ int new_normal_color; ++ int new_highlight_color; ++ static char *color_list[16] = ++ { ++ "black", ++ "blue", ++ "green", ++ "cyan", ++ "red", ++ "magenta", ++ "brown", ++ "light-gray", ++ "dark-gray", ++ "light-blue", ++ "light-green", ++ "light-cyan", ++ "light-red", ++ "light-magenta", ++ "yellow", ++ "white" ++ }; ++ ++ auto int color_number (char *str); ++ ++ /* Convert the color name STR into the magical number. */ ++ auto int color_number (char *str) ++ { ++ char *ptr; ++ int i; ++ int color = 0; ++ ++ /* Find the separator. */ ++ for (ptr = str; *ptr && *ptr != '/'; ptr++) ++ ; ++ ++ /* If not found, return -1. */ ++ if (! *ptr) ++ return -1; ++ ++ /* Terminate the string STR. */ ++ *ptr++ = 0; ++ ++ /* If STR contains the prefix "blink-", then set the `blink' bit ++ in COLOR. */ ++ if (substring ("blink-", str) <= 0) ++ { ++ color = 0x80; ++ str += 6; ++ } ++ ++ /* Search for the color name. */ ++ for (i = 0; i < 16; i++) ++ if (grub_strcmp (color_list[i], str) == 0) ++ { ++ color |= i; ++ break; ++ } ++ ++ if (i == 16) ++ return -1; ++ ++ str = ptr; ++ nul_terminate (str); ++ ++ /* Search for the color name. */ ++ for (i = 0; i < 8; i++) ++ if (grub_strcmp (color_list[i], str) == 0) ++ { ++ color |= i << 4; ++ break; ++ } ++ ++ if (i == 8) ++ return -1; ++ ++ return color; ++ } ++ ++ normal = arg; ++ highlight = skip_to (0, arg); ++ ++ new_normal_color = color_number (normal); ++ if (new_normal_color < 0 && ! safe_parse_maxint (&normal, &new_normal_color)) ++ return 1; ++ ++ /* The second argument is optional, so set highlight_color ++ to inverted NORMAL_COLOR. */ ++ if (! *highlight) ++ new_highlight_color = ((new_normal_color >> 4) ++ | ((new_normal_color & 0xf) << 4)); ++ else ++ { ++ new_highlight_color = color_number (highlight); ++ if (new_highlight_color < 0 ++ && ! safe_parse_maxint (&highlight, &new_highlight_color)) ++ return 1; ++ } ++ ++ if (current_term->setcolor) ++ current_term->setcolor (new_normal_color, new_highlight_color); ++ ++ return 0; ++} ++ ++static struct builtin builtin_color = ++{ ++ "color", ++ color_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "color NORMAL [HIGHLIGHT]", ++ "Change the menu colors. The color NORMAL is used for most" ++ " lines in the menu, and the color HIGHLIGHT is used to highlight the" ++ " line where the cursor points. If you omit HIGHLIGHT, then the" ++ " inverted color of NORMAL is used for the highlighted line." ++ " The format of a color is \"FG/BG\". FG and BG are symbolic color names." ++ " A symbolic color name must be one of these: black, blue, green," ++ " cyan, red, magenta, brown, light-gray, dark-gray, light-blue," ++ " light-green, light-cyan, light-red, light-magenta, yellow and white." ++ " But only the first eight names can be used for BG. You can prefix" ++ " \"blink-\" to FG if you want a blinking foreground color." ++}; ++ ++ ++/* configfile */ ++static int ++configfile_func (char *arg, int flags) ++{ ++ char *new_config = config_file; ++ ++ /* Check if the file ARG is present. */ ++ if (! grub_open (arg)) ++ return 1; ++ ++ grub_close (); ++ ++ /* Copy ARG to CONFIG_FILE. */ ++ while ((*new_config++ = *arg++) != 0) ++ ; ++ ++#ifdef GRUB_UTIL ++ /* Force to load the configuration file. */ ++ use_config_file = 1; ++#endif ++ ++ /* Make sure that the user will not be authoritative. */ ++ auth = 0; ++ ++ /* Restart cmain. */ ++ grub_longjmp (restart_env, 0); ++ ++ /* Never reach here. */ ++ return 0; ++} ++ ++static struct builtin builtin_configfile = ++{ ++ "configfile", ++ configfile_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "configfile FILE", ++ "Load FILE as the configuration file." ++}; ++ ++ ++/* debug */ ++static int ++debug_func (char *arg, int flags) ++{ ++ if (debug) ++ { ++ debug = 0; ++ grub_printf (" Debug mode is turned off\n"); ++ } ++ else ++ { ++ debug = 1; ++ grub_printf (" Debug mode is turned on\n"); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_debug = ++{ ++ "debug", ++ debug_func, ++ BUILTIN_CMDLINE, ++ "debug", ++ "Turn on/off the debug mode." ++}; ++ ++ ++/* default */ ++static int ++default_func (char *arg, int flags) ++{ ++#ifndef SUPPORT_DISKLESS ++ if (grub_strcmp (arg, "saved") == 0) ++ { ++ default_entry = saved_entryno; ++ return 0; ++ } ++#endif /* SUPPORT_DISKLESS */ ++ ++ if (! safe_parse_maxint (&arg, &default_entry)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_default = ++{ ++ "default", ++ default_func, ++ BUILTIN_MENU, ++#if 0 ++ "default [NUM | `saved']", ++ "Set the default entry to entry number NUM (if not specified, it is" ++ " 0, the first entry) or the entry number saved by savedefault." ++#endif ++}; ++ ++ ++#ifdef GRUB_UTIL ++/* device */ ++static int ++device_func (char *arg, int flags) ++{ ++ char *drive = arg; ++ char *device; ++ ++ /* Get the drive number from DRIVE. */ ++ if (! set_device (drive)) ++ return 1; ++ ++ /* Get the device argument. */ ++ device = skip_to (0, drive); ++ ++ /* Terminate DEVICE. */ ++ nul_terminate (device); ++ ++ if (! *device || ! check_device (device)) ++ { ++ errnum = ERR_FILE_NOT_FOUND; ++ return 1; ++ } ++ ++ assign_device_name (current_drive, device); ++ ++ return 0; ++} ++ ++static struct builtin builtin_device = ++{ ++ "device", ++ device_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "device DRIVE DEVICE", ++ "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command" ++ " can be used only in the grub shell." ++}; ++#endif /* GRUB_UTIL */ ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* dhcp */ ++static int ++dhcp_func (char *arg, int flags) ++{ ++ /* For now, this is an alias for bootp. */ ++ return bootp_func (arg, flags); ++} ++ ++static struct builtin builtin_dhcp = ++{ ++ "dhcp", ++ dhcp_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "dhcp", ++ "Initialize a network device via DHCP." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* displayapm */ ++static int ++displayapm_func (char *arg, int flags) ++{ ++ if (mbi.flags & MB_INFO_APM_TABLE) ++ { ++ grub_printf ("APM BIOS information:\n" ++ " Version: 0x%x\n" ++ " 32-bit CS: 0x%x\n" ++ " Offset: 0x%x\n" ++ " 16-bit CS: 0x%x\n" ++ " 16-bit DS: 0x%x\n" ++ " 32-bit CS length: 0x%x\n" ++ " 16-bit CS length: 0x%x\n" ++ " 16-bit DS length: 0x%x\n", ++ (unsigned) apm_bios_info.version, ++ (unsigned) apm_bios_info.cseg, ++ apm_bios_info.offset, ++ (unsigned) apm_bios_info.cseg_16, ++ (unsigned) apm_bios_info.dseg_16, ++ (unsigned) apm_bios_info.cseg_len, ++ (unsigned) apm_bios_info.cseg_16_len, ++ (unsigned) apm_bios_info.dseg_16_len); ++ } ++ else ++ { ++ grub_printf ("No APM BIOS found or probe failed\n"); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_displayapm = ++{ ++ "displayapm", ++ displayapm_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "displayapm", ++ "Display APM BIOS information." ++}; ++ ++ ++/* displaymem */ ++static int ++displaymem_func (char *arg, int flags) ++{ ++ if (get_eisamemsize () != -1) ++ grub_printf (" EISA Memory BIOS Interface is present\n"); ++ if (get_mmap_entry ((void *) SCRATCHADDR, 0) != 0 ++ || *((int *) SCRATCHADDR) != 0) ++ grub_printf (" Address Map BIOS Interface is present\n"); ++ ++ grub_printf (" Lower memory: %uK, " ++ "Upper memory (to first chipset hole): %uK\n", ++ mbi.mem_lower, mbi.mem_upper); ++ ++ if (mbi.flags & MB_INFO_MEM_MAP) ++ { ++ struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr; ++ int end_addr = mbi.mmap_addr + mbi.mmap_length; ++ ++ grub_printf (" [Address Range Descriptor entries " ++ "immediately follow (values are 64-bit)]\n"); ++ while (end_addr > (int) map) ++ { ++ char *str; ++ ++ if (map->Type == MB_ARD_MEMORY) ++ str = "Usable RAM"; ++ else ++ str = "Reserved"; ++ grub_printf (" %s: Base Address: 0x%x X 4GB + 0x%x,\n" ++ " Length: 0x%x X 4GB + 0x%x bytes\n", ++ str, ++ (unsigned long) (map->BaseAddr >> 32), ++ (unsigned long) (map->BaseAddr & 0xFFFFFFFF), ++ (unsigned long) (map->Length >> 32), ++ (unsigned long) (map->Length & 0xFFFFFFFF)); ++ ++ map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size)); ++ } ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_displaymem = ++{ ++ "displaymem", ++ displaymem_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "displaymem", ++ "Display what GRUB thinks the system address space map of the" ++ " machine is, including all regions of physical RAM installed." ++}; ++ ++ ++/* dump FROM TO */ ++#ifdef GRUB_UTIL ++static int ++dump_func (char *arg, int flags) ++{ ++ char *from, *to; ++ FILE *fp; ++ char c; ++ ++ from = arg; ++ to = skip_to (0, arg); ++ if (! *from || ! *to) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ nul_terminate (from); ++ nul_terminate (to); ++ ++ if (! grub_open (from)) ++ return 1; ++ ++ fp = fopen (to, "w"); ++ if (! fp) ++ { ++ errnum = ERR_WRITE; ++ return 1; ++ } ++ ++ while (grub_read (&c, 1)) ++ if (fputc (c, fp) == EOF) ++ { ++ errnum = ERR_WRITE; ++ fclose (fp); ++ return 1; ++ } ++ ++ if (fclose (fp) == EOF) ++ { ++ errnum = ERR_WRITE; ++ return 1; ++ } ++ ++ grub_close (); ++ return 0; ++} ++ ++static struct builtin builtin_dump = ++ { ++ "dump", ++ dump_func, ++ BUILTIN_CMDLINE, ++ "dump FROM TO", ++ "Dump the contents of the file FROM to the file TO. FROM must be" ++ " a GRUB file and TO must be an OS file." ++ }; ++#endif /* GRUB_UTIL */ ++ ++ ++static char embed_info[32]; ++/* embed */ ++/* Embed a Stage 1.5 in the first cylinder after MBR or in the ++ bootloader block in a FFS. */ ++static int ++embed_func (char *arg, int flags) ++{ ++ char *stage1_5; ++ char *device; ++ char *stage1_5_buffer = (char *) RAW_ADDR (0x100000); ++ int len, size; ++ int sector; ++ ++ stage1_5 = arg; ++ device = skip_to (0, stage1_5); ++ ++ /* Open a Stage 1.5. */ ++ if (! grub_open (stage1_5)) ++ return 1; ++ ++ /* Read the whole of the Stage 1.5. */ ++ len = grub_read (stage1_5_buffer, -1); ++ grub_close (); ++ ++ if (errnum) ++ return 1; ++ ++ size = (len + SECTOR_SIZE - 1) / SECTOR_SIZE; ++ ++ /* Get the device where the Stage 1.5 will be embedded. */ ++ set_device (device); ++ if (errnum) ++ return 1; ++ ++ if (current_partition == 0xFFFFFF) ++ { ++ /* Embed it after the MBR. */ ++ ++ char mbr[SECTOR_SIZE]; ++ char ezbios_check[2*SECTOR_SIZE]; ++ int i; ++ ++ /* Open the partition. */ ++ if (! open_partition ()) ++ return 1; ++ ++ /* No floppy has MBR. */ ++ if (! (current_drive & 0x80)) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ /* Read the MBR of CURRENT_DRIVE. */ ++ if (! rawread (current_drive, PC_MBR_SECTOR, 0, SECTOR_SIZE, mbr)) ++ return 1; ++ ++ /* Sanity check. */ ++ if (! PC_MBR_CHECK_SIG (mbr)) ++ { ++ errnum = ERR_BAD_PART_TABLE; ++ return 1; ++ } ++ ++ /* Check if the disk can store the Stage 1.5. */ ++ for (i = 0; i < 4; i++) ++ if (PC_SLICE_TYPE (mbr, i) && PC_SLICE_START (mbr, i) - 1 < size) ++ { ++ errnum = ERR_NO_DISK_SPACE; ++ return 1; ++ } ++ ++ /* Check for EZ-BIOS signature. It should be in the third ++ * sector, but due to remapping it can appear in the second, so ++ * load and check both. ++ */ ++ if (! rawread (current_drive, 1, 0, 2 * SECTOR_SIZE, ezbios_check)) ++ return 1; ++ ++ if (! memcmp (ezbios_check + 3, "AERMH", 5) ++ || ! memcmp (ezbios_check + 512 + 3, "AERMH", 5)) ++ { ++ /* The space after the MBR is used by EZ-BIOS which we must ++ * not overwrite. ++ */ ++ errnum = ERR_NO_DISK_SPACE; ++ return 1; ++ } ++ ++ sector = 1; ++ } ++ else ++ { ++ /* Embed it in the bootloader block in the filesystem. */ ++ int start_sector; ++ ++ /* Open the partition. */ ++ if (! open_device ()) ++ return 1; ++ ++ /* Check if the current slice supports embedding. */ ++ if (fsys_table[fsys_type].embed_func == 0 ++ || ! fsys_table[fsys_type].embed_func (&start_sector, size)) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ sector = part_start + start_sector; ++ } ++ ++ /* Clear the cache. */ ++ buf_track = -1; ++ ++ /* Now perform the embedding. */ ++ if (! devwrite (sector - part_start, size, stage1_5_buffer)) ++ return 1; ++ ++ grub_printf (" %d sectors are embedded.\n", size); ++ grub_sprintf (embed_info, "%d+%d", sector - part_start, size); ++ return 0; ++} ++ ++static struct builtin builtin_embed = ++{ ++ "embed", ++ embed_func, ++ BUILTIN_CMDLINE, ++ "embed STAGE1_5 DEVICE", ++ "Embed the Stage 1.5 STAGE1_5 in the sectors after MBR if DEVICE" ++ " is a drive, or in the \"bootloader\" area if DEVICE is a FFS partition." ++ " Print the number of sectors which STAGE1_5 occupies if successful." ++}; ++ ++ ++/* fallback */ ++static int ++fallback_func (char *arg, int flags) ++{ ++ int i = 0; ++ ++ while (*arg) ++ { ++ int entry; ++ int j; ++ ++ if (! safe_parse_maxint (&arg, &entry)) ++ return 1; ++ ++ /* Remove duplications to prevent infinite looping. */ ++ for (j = 0; j < i; j++) ++ if (entry == fallback_entries[j]) ++ break; ++ if (j != i) ++ continue; ++ ++ fallback_entries[i++] = entry; ++ if (i == MAX_FALLBACK_ENTRIES) ++ break; ++ ++ arg = skip_to (0, arg); ++ } ++ ++ if (i < MAX_FALLBACK_ENTRIES) ++ fallback_entries[i] = -1; ++ ++ fallback_entryno = (i == 0) ? -1 : 0; ++ ++ return 0; ++} ++ ++static struct builtin builtin_fallback = ++{ ++ "fallback", ++ fallback_func, ++ BUILTIN_MENU, ++#if 0 ++ "fallback NUM...", ++ "Go into unattended boot mode: if the default boot entry has any" ++ " errors, instead of waiting for the user to do anything, it" ++ " immediately starts over using the NUM entry (same numbering as the" ++ " `default' command). This obviously won't help if the machine" ++ " was rebooted by a kernel that GRUB loaded." ++#endif ++}; ++ ++ ++/* find */ ++/* Search for the filename ARG in all of partitions. */ ++static int ++find_func (char *arg, int flags) ++{ ++ char *filename = arg; ++ unsigned long drive; ++ unsigned long tmp_drive = saved_drive; ++ unsigned long tmp_partition = saved_partition; ++ int got_file = 0; ++ ++ /* Floppies. */ ++ for (drive = 0; drive < 8; drive++) ++ { ++ current_drive = drive; ++ current_partition = 0xFFFFFF; ++ ++ if (open_device ()) ++ { ++ saved_drive = current_drive; ++ saved_partition = current_partition; ++ if (grub_open (filename)) ++ { ++ grub_close (); ++ grub_printf (" (fd%d)\n", drive); ++ got_file = 1; ++ } ++ } ++ ++ errnum = ERR_NONE; ++ } ++ ++ /* Hard disks. */ ++ for (drive = 0x80; drive < 0x88; drive++) ++ { ++ unsigned long part = 0xFFFFFF; ++ unsigned long start, len, offset, ext_offset; ++ int type, entry; ++ char buf[SECTOR_SIZE]; ++ ++ current_drive = drive; ++ while (next_partition (drive, 0xFFFFFF, &part, &type, ++ &start, &len, &offset, &entry, ++ &ext_offset, buf)) ++ { ++ if (type != PC_SLICE_TYPE_NONE ++ && ! IS_PC_SLICE_TYPE_BSD (type) ++ && ! IS_PC_SLICE_TYPE_EXTENDED (type)) ++ { ++ current_partition = part; ++ if (open_device ()) ++ { ++ saved_drive = current_drive; ++ saved_partition = current_partition; ++ if (grub_open (filename)) ++ { ++ int bsd_part = (part >> 8) & 0xFF; ++ int pc_slice = part >> 16; ++ ++ grub_close (); ++ ++ if (bsd_part == 0xFF) ++ grub_printf (" (hd%d,%d)\n", ++ drive - 0x80, pc_slice); ++ else ++ grub_printf (" (hd%d,%d,%c)\n", ++ drive - 0x80, pc_slice, bsd_part + 'a'); ++ ++ got_file = 1; ++ } ++ } ++ } ++ ++ /* We want to ignore any error here. */ ++ errnum = ERR_NONE; ++ } ++ ++ /* next_partition always sets ERRNUM in the last call, so clear ++ it. */ ++ errnum = ERR_NONE; ++ } ++ ++ saved_drive = tmp_drive; ++ saved_partition = tmp_partition; ++ ++ if (got_file) ++ { ++ errnum = ERR_NONE; ++ return 0; ++ } ++ ++ errnum = ERR_FILE_NOT_FOUND; ++ return 1; ++} ++ ++static struct builtin builtin_find = ++{ ++ "find", ++ find_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "find FILENAME", ++ "Search for the filename FILENAME in all of partitions and print the list of" ++ " the devices which contain the file." ++}; ++ ++ ++/* fstest */ ++static int ++fstest_func (char *arg, int flags) ++{ ++ if (disk_read_hook) ++ { ++ disk_read_hook = NULL; ++ printf (" Filesystem tracing is now off\n"); ++ } ++ else ++ { ++ disk_read_hook = disk_read_print_func; ++ printf (" Filesystem tracing is now on\n"); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_fstest = ++{ ++ "fstest", ++ fstest_func, ++ BUILTIN_CMDLINE, ++ "fstest", ++ "Toggle filesystem test mode." ++}; ++ ++ ++/* geometry */ ++static int ++geometry_func (char *arg, int flags) ++{ ++ struct geometry geom; ++ char *msg; ++ char *device = arg; ++#ifdef GRUB_UTIL ++ char *ptr; ++#endif ++ ++ /* Get the device number. */ ++ set_device (device); ++ if (errnum) ++ return 1; ++ ++ /* Check for the geometry. */ ++ if (get_diskinfo (current_drive, &geom)) ++ { ++ errnum = ERR_NO_DISK; ++ return 1; ++ } ++ ++ /* Attempt to read the first sector, because some BIOSes turns out not ++ to support LBA even though they set the bit 0 in the support ++ bitmap, only after reading something actually. */ ++ if (biosdisk (BIOSDISK_READ, current_drive, &geom, 0, 1, SCRATCHSEG)) ++ { ++ errnum = ERR_READ; ++ return 1; ++ } ++ ++#ifdef GRUB_UTIL ++ ptr = skip_to (0, device); ++ if (*ptr) ++ { ++ char *cylinder, *head, *sector, *total_sector; ++ int num_cylinder, num_head, num_sector, num_total_sector; ++ ++ cylinder = ptr; ++ head = skip_to (0, cylinder); ++ sector = skip_to (0, head); ++ total_sector = skip_to (0, sector); ++ if (! safe_parse_maxint (&cylinder, &num_cylinder) ++ || ! safe_parse_maxint (&head, &num_head) ++ || ! safe_parse_maxint (§or, &num_sector)) ++ return 1; ++ ++ disks[current_drive].cylinders = num_cylinder; ++ disks[current_drive].heads = num_head; ++ disks[current_drive].sectors = num_sector; ++ ++ if (safe_parse_maxint (&total_sector, &num_total_sector)) ++ disks[current_drive].total_sectors = num_total_sector; ++ else ++ disks[current_drive].total_sectors ++ = num_cylinder * num_head * num_sector; ++ errnum = 0; ++ ++ geom = disks[current_drive]; ++ buf_drive = -1; ++ } ++#endif /* GRUB_UTIL */ ++ ++#ifdef GRUB_UTIL ++ msg = device_map[current_drive]; ++#else ++ if (geom.flags & BIOSDISK_FLAG_LBA_EXTENSION) ++ msg = "LBA"; ++ else ++ msg = "CHS"; ++#endif ++ ++ grub_printf ("drive 0x%x: C/H/S = %d/%d/%d, " ++ "The number of sectors = %d, %s\n", ++ current_drive, ++ geom.cylinders, geom.heads, geom.sectors, ++ geom.total_sectors, msg); ++ real_open_partition (1); ++ ++ return 0; ++} ++ ++static struct builtin builtin_geometry = ++{ ++ "geometry", ++ geometry_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]]", ++ "Print the information for a drive DRIVE. In the grub shell, you can" ++ " set the geometry of the drive arbitrarily. The number of the cylinders," ++ " the one of the heads, the one of the sectors and the one of the total" ++ " sectors are set to CYLINDER, HEAD, SECTOR and TOTAL_SECTOR," ++ " respectively. If you omit TOTAL_SECTOR, then it will be calculated based" ++ " on the C/H/S values automatically." ++}; ++ ++ ++/* halt */ ++static int ++halt_func (char *arg, int flags) ++{ ++ int no_apm; ++ ++ no_apm = (grub_memcmp (arg, "--no-apm", 8) == 0); ++ grub_halt (no_apm); ++ ++ /* Never reach here. */ ++ return 1; ++} ++ ++static struct builtin builtin_halt = ++{ ++ "halt", ++ halt_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "halt [--no-apm]", ++ "Halt your system. If APM is avaiable on it, turn off the power using" ++ " the APM BIOS, unless you specify the option `--no-apm'." ++}; ++ ++ ++/* help */ ++#define MAX_SHORT_DOC_LEN 39 ++#define MAX_LONG_DOC_LEN 66 ++ ++static int ++help_func (char *arg, int flags) ++{ ++ int all = 0; ++ ++ if (grub_memcmp (arg, "--all", sizeof ("--all") - 1) == 0) ++ { ++ all = 1; ++ arg = skip_to (0, arg); ++ } ++ ++ if (! *arg) ++ { ++ /* Invoked with no argument. Print the list of the short docs. */ ++ struct builtin **builtin; ++ int left = 1; ++ ++ for (builtin = builtin_table; *builtin != 0; builtin++) ++ { ++ int len; ++ int i; ++ ++ /* If this cannot be used in the command-line interface, ++ skip this. */ ++ if (! ((*builtin)->flags & BUILTIN_CMDLINE)) ++ continue; ++ ++ /* If this doesn't need to be listed automatically and "--all" ++ is not specified, skip this. */ ++ if (! all && ! ((*builtin)->flags & BUILTIN_HELP_LIST)) ++ continue; ++ ++ len = grub_strlen ((*builtin)->short_doc); ++ /* If the length of SHORT_DOC is too long, truncate it. */ ++ if (len > MAX_SHORT_DOC_LEN - 1) ++ len = MAX_SHORT_DOC_LEN - 1; ++ ++ for (i = 0; i < len; i++) ++ grub_putchar ((*builtin)->short_doc[i]); ++ ++ for (; i < MAX_SHORT_DOC_LEN; i++) ++ grub_putchar (' '); ++ ++ if (! left) ++ grub_putchar ('\n'); ++ ++ left = ! left; ++ } ++ ++ /* If the last entry was at the left column, no newline was printed ++ at the end. */ ++ if (! left) ++ grub_putchar ('\n'); ++ } ++ else ++ { ++ /* Invoked with one or more patterns. */ ++ do ++ { ++ struct builtin **builtin; ++ char *next_arg; ++ ++ /* Get the next argument. */ ++ next_arg = skip_to (0, arg); ++ ++ /* Terminate ARG. */ ++ nul_terminate (arg); ++ ++ for (builtin = builtin_table; *builtin; builtin++) ++ { ++ /* Skip this if this is only for the configuration file. */ ++ if (! ((*builtin)->flags & BUILTIN_CMDLINE)) ++ continue; ++ ++ if (substring (arg, (*builtin)->name) < 1) ++ { ++ char *doc = (*builtin)->long_doc; ++ ++ /* At first, print the name and the short doc. */ ++ grub_printf ("%s: %s\n", ++ (*builtin)->name, (*builtin)->short_doc); ++ ++ /* Print the long doc. */ ++ while (*doc) ++ { ++ int len = grub_strlen (doc); ++ int i; ++ ++ /* If LEN is too long, fold DOC. */ ++ if (len > MAX_LONG_DOC_LEN) ++ { ++ /* Fold this line at the position of a space. */ ++ for (len = MAX_LONG_DOC_LEN; len > 0; len--) ++ if (doc[len - 1] == ' ') ++ break; ++ } ++ ++ grub_printf (" "); ++ for (i = 0; i < len; i++) ++ grub_putchar (*doc++); ++ grub_putchar ('\n'); ++ } ++ } ++ } ++ ++ arg = next_arg; ++ } ++ while (*arg); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_help = ++{ ++ "help", ++ help_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "help [--all] [PATTERN ...]", ++ "Display helpful information about builtin commands. Not all commands" ++ " aren't shown without the option `--all'." ++}; ++ ++ ++/* hiddenmenu */ ++static int ++hiddenmenu_func (char *arg, int flags) ++{ ++ show_menu = 0; ++ return 0; ++} ++ ++static struct builtin builtin_hiddenmenu = ++{ ++ "hiddenmenu", ++ hiddenmenu_func, ++ BUILTIN_MENU, ++#if 0 ++ "hiddenmenu", ++ "Hide the menu." ++#endif ++}; ++ ++ ++/* hide */ ++static int ++hide_func (char *arg, int flags) ++{ ++ if (! set_device (arg)) ++ return 1; ++ ++ if (! set_partition_hidden_flag (1)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_hide = ++{ ++ "hide", ++ hide_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "hide PARTITION", ++ "Hide PARTITION by setting the \"hidden\" bit in" ++ " its partition type code." ++}; ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* ifconfig */ ++static int ++ifconfig_func (char *arg, int flags) ++{ ++ char *svr = 0, *ip = 0, *gw = 0, *sm = 0; ++ ++ if (! eth_probe ()) ++ { ++ grub_printf ("No ethernet card found.\n"); ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ while (*arg) ++ { ++ if (! grub_memcmp ("--server=", arg, sizeof ("--server=") - 1)) ++ svr = arg + sizeof("--server=") - 1; ++ else if (! grub_memcmp ("--address=", arg, sizeof ("--address=") - 1)) ++ ip = arg + sizeof ("--address=") - 1; ++ else if (! grub_memcmp ("--gateway=", arg, sizeof ("--gateway=") - 1)) ++ gw = arg + sizeof ("--gateway=") - 1; ++ else if (! grub_memcmp ("--mask=", arg, sizeof("--mask=") - 1)) ++ sm = arg + sizeof ("--mask=") - 1; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ arg = skip_to (0, arg); ++ } ++ ++ if (! ifconfig (ip, sm, gw, svr)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ print_network_configuration (); ++ return 0; ++} ++ ++static struct builtin builtin_ifconfig = ++{ ++ "ifconfig", ++ ifconfig_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "ifconfig [--address=IP] [--gateway=IP] [--mask=MASK] [--server=IP]", ++ "Configure the IP address, the netmask, the gateway and the server" ++ " address or print current network configuration." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* impsprobe */ ++static int ++impsprobe_func (char *arg, int flags) ++{ ++#ifdef GRUB_UTIL ++ /* In the grub shell, we cannot probe IMPS. */ ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++#else /* ! GRUB_UTIL */ ++ if (!imps_probe ()) ++ printf (" No MPS information found or probe failed\n"); ++ ++ return 0; ++#endif /* ! GRUB_UTIL */ ++} ++ ++static struct builtin builtin_impsprobe = ++{ ++ "impsprobe", ++ impsprobe_func, ++ BUILTIN_CMDLINE, ++ "impsprobe", ++ "Probe the Intel Multiprocessor Specification 1.1 or 1.4" ++ " configuration table and boot the various CPUs which are found into" ++ " a tight loop." ++}; ++ ++ ++/* initrd */ ++static int ++initrd_func (char *arg, int flags) ++{ ++ switch (kernel_type) ++ { ++ case KERNEL_TYPE_LINUX: ++ case KERNEL_TYPE_BIG_LINUX: ++ if (! load_initrd (arg)) ++ return 1; ++ break; ++ ++ default: ++ errnum = ERR_NEED_LX_KERNEL; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_initrd = ++{ ++ "initrd", ++ initrd_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "initrd FILE [ARG ...]", ++ "Load an initial ramdisk FILE for a Linux format boot image and set the" ++ " appropriate parameters in the Linux setup area in memory." ++}; ++ ++ ++/* install */ ++static int ++install_func (char *arg, int flags) ++{ ++ char *stage1_file, *dest_dev, *file, *addr; ++ char *stage1_buffer = (char *) RAW_ADDR (0x100000); ++ char *stage2_buffer = stage1_buffer + SECTOR_SIZE; ++ char *old_sect = stage2_buffer + SECTOR_SIZE; ++ char *stage2_first_buffer = old_sect + SECTOR_SIZE; ++ char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; ++ /* XXX: Probably SECTOR_SIZE is reasonable. */ ++ char *config_filename = stage2_second_buffer + SECTOR_SIZE; ++ char *dummy = config_filename + SECTOR_SIZE; ++ int new_drive = GRUB_INVALID_DRIVE; ++ int dest_drive, dest_partition, dest_sector; ++ int src_drive, src_partition, src_part_start; ++ int i; ++ struct geometry dest_geom, src_geom; ++ int saved_sector; ++ int stage2_first_sector, stage2_second_sector; ++ char *ptr; ++ int installaddr, installlist; ++ /* Point to the location of the name of a configuration file in Stage 2. */ ++ char *config_file_location; ++ /* If FILE is a Stage 1.5? */ ++ int is_stage1_5 = 0; ++ /* Must call grub_close? */ ++ int is_open = 0; ++ /* If LBA is forced? */ ++ int is_force_lba = 0; ++ /* Was the last sector full? */ ++ int last_length = SECTOR_SIZE; ++ ++#ifdef GRUB_UTIL ++ /* If the Stage 2 is in a partition mounted by an OS, this will store ++ the filename under the OS. */ ++ char *stage2_os_file = 0; ++#endif /* GRUB_UTIL */ ++ ++ auto void disk_read_savesect_func (int sector, int offset, int length); ++ auto void disk_read_blocklist_func (int sector, int offset, int length); ++ ++ /* Save the first sector of Stage2 in STAGE2_SECT. */ ++ auto void disk_read_savesect_func (int sector, int offset, int length) ++ { ++ if (debug) ++ printf ("[%d]", sector); ++ ++ /* ReiserFS has files which sometimes contain data not aligned ++ on sector boundaries. Returning an error is better than ++ silently failing. */ ++ if (offset != 0 || length != SECTOR_SIZE) ++ errnum = ERR_UNALIGNED; ++ ++ saved_sector = sector; ++ } ++ ++ /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and ++ INSTALLSECT. */ ++ auto void disk_read_blocklist_func (int sector, int offset, int length) ++ { ++ if (debug) ++ printf("[%d]", sector); ++ ++ if (offset != 0 || last_length != SECTOR_SIZE) ++ { ++ /* We found a non-sector-aligned data block. */ ++ errnum = ERR_UNALIGNED; ++ return; ++ } ++ ++ last_length = length; ++ ++ if (*((unsigned long *) (installlist - 4)) ++ + *((unsigned short *) installlist) != sector ++ || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) ++ { ++ installlist -= 8; ++ ++ if (*((unsigned long *) (installlist - 8))) ++ errnum = ERR_WONT_FIT; ++ else ++ { ++ *((unsigned short *) (installlist + 2)) = (installaddr >> 4); ++ *((unsigned long *) (installlist - 4)) = sector; ++ } ++ } ++ ++ *((unsigned short *) installlist) += 1; ++ installaddr += 512; ++ } ++ ++ /* First, check the GNU-style long option. */ ++ while (1) ++ { ++ if (grub_memcmp ("--force-lba", arg, sizeof ("--force-lba") - 1) == 0) ++ { ++ is_force_lba = 1; ++ arg = skip_to (0, arg); ++ } ++#ifdef GRUB_UTIL ++ else if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0) ++ { ++ stage2_os_file = arg + sizeof ("--stage2=") - 1; ++ arg = skip_to (0, arg); ++ nul_terminate (stage2_os_file); ++ } ++#endif /* GRUB_UTIL */ ++ else ++ break; ++ } ++ ++ stage1_file = arg; ++ dest_dev = skip_to (0, stage1_file); ++ if (*dest_dev == 'd') ++ { ++ new_drive = 0; ++ dest_dev = skip_to (0, dest_dev); ++ } ++ file = skip_to (0, dest_dev); ++ addr = skip_to (0, file); ++ ++ /* Get the installation address. */ ++ if (! safe_parse_maxint (&addr, &installaddr)) ++ { ++ /* ADDR is not specified. */ ++ installaddr = 0; ++ ptr = addr; ++ errnum = 0; ++ } ++ else ++ ptr = skip_to (0, addr); ++ ++#ifndef NO_DECOMPRESSION ++ /* Do not decompress Stage 1 or Stage 2. */ ++ no_decompression = 1; ++#endif ++ ++ /* Read Stage 1. */ ++ is_open = grub_open (stage1_file); ++ if (! is_open ++ || ! grub_read (stage1_buffer, SECTOR_SIZE) == SECTOR_SIZE) ++ goto fail; ++ ++ /* Read the old sector from DEST_DEV. */ ++ if (! set_device (dest_dev) ++ || ! open_partition () ++ || ! devread (0, 0, SECTOR_SIZE, old_sect)) ++ goto fail; ++ ++ /* Store the information for the destination device. */ ++ dest_drive = current_drive; ++ dest_partition = current_partition; ++ dest_geom = buf_geom; ++ dest_sector = part_start; ++ ++ /* Copy the possible DOS BPB, 59 bytes at byte offset 3. */ ++ grub_memmove (stage1_buffer + BOOTSEC_BPB_OFFSET, ++ old_sect + BOOTSEC_BPB_OFFSET, ++ BOOTSEC_BPB_LENGTH); ++ ++ /* If for a hard disk, copy the possible MBR/extended part table. */ ++ if (dest_drive & 0x80) ++ grub_memmove (stage1_buffer + STAGE1_WINDOWS_NT_MAGIC, ++ old_sect + STAGE1_WINDOWS_NT_MAGIC, ++ STAGE1_PARTEND - STAGE1_WINDOWS_NT_MAGIC); ++ ++ /* Check for the version and the signature of Stage 1. */ ++ if (*((short *)(stage1_buffer + STAGE1_VER_MAJ_OFFS)) != COMPAT_VERSION ++ || (*((unsigned short *) (stage1_buffer + BOOTSEC_SIG_OFFSET)) ++ != BOOTSEC_SIGNATURE)) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ /* This below is not true any longer. But should we leave this alone? */ ++ ++ /* If DEST_DRIVE is a floppy, Stage 2 must have the iteration probe ++ routine. */ ++ if (! (dest_drive & 0x80) ++ && (*((unsigned char *) (stage1_buffer + BOOTSEC_PART_OFFSET)) == 0x80 ++ || stage1_buffer[BOOTSEC_PART_OFFSET] == 0)) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ grub_close (); ++ ++ /* Open Stage 2. */ ++ is_open = grub_open (file); ++ if (! is_open) ++ goto fail; ++ ++ src_drive = current_drive; ++ src_partition = current_partition; ++ src_part_start = part_start; ++ src_geom = buf_geom; ++ ++ if (! new_drive) ++ new_drive = src_drive; ++ else if (src_drive != dest_drive) ++ grub_printf ("Warning: the option `d' was not used, but the Stage 1 will" ++ " be installed on a\ndifferent drive than the drive where" ++ " the Stage 2 resides.\n"); ++ ++ /* Set the boot drive. */ ++ *((unsigned char *) (stage1_buffer + STAGE1_BOOT_DRIVE)) = new_drive; ++ ++ /* Set the "force LBA" flag. */ ++ *((unsigned char *) (stage1_buffer + STAGE1_FORCE_LBA)) = is_force_lba; ++ ++ /* If DEST_DRIVE is a hard disk, enable the workaround, which is ++ for buggy BIOSes which don't pass boot drive correctly. Instead, ++ they pass 0x00 or 0x01 even when booted from 0x80. */ ++ if (dest_drive & BIOS_FLAG_FIXED_DISK) ++ /* Replace the jmp (2 bytes) with double nop's. */ ++ *((unsigned short *) (stage1_buffer + STAGE1_BOOT_DRIVE_CHECK)) ++ = 0x9090; ++ ++ /* Read the first sector of Stage 2. */ ++ disk_read_hook = disk_read_savesect_func; ++ if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ goto fail; ++ ++ stage2_first_sector = saved_sector; ++ ++ /* Read the second sector of Stage 2. */ ++ if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ goto fail; ++ ++ stage2_second_sector = saved_sector; ++ ++ /* Check for the version of Stage 2. */ ++ if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) ++ != COMPAT_VERSION) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ /* Check for the Stage 2 id. */ ++ if (stage2_second_buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2) ++ is_stage1_5 = 1; ++ ++ /* If INSTALLADDR is not specified explicitly in the command-line, ++ determine it by the Stage 2 id. */ ++ if (! installaddr) ++ { ++ if (! is_stage1_5) ++ /* Stage 2. */ ++ installaddr = 0x8000; ++ else ++ /* Stage 1.5. */ ++ installaddr = 0x2000; ++ } ++ ++ *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) ++ = stage2_first_sector; ++ *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) ++ = installaddr; ++ *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) ++ = installaddr >> 4; ++ ++ i = (int) stage2_first_buffer + SECTOR_SIZE - 4; ++ while (*((unsigned long *) i)) ++ { ++ if (i < (int) stage2_first_buffer ++ || (*((int *) (i - 4)) & 0x80000000) ++ || *((unsigned short *) i) >= 0xA00 ++ || *((short *) (i + 2)) == 0) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ *((int *) i) = 0; ++ *((int *) (i - 4)) = 0; ++ i -= 8; ++ } ++ ++ installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; ++ installaddr += SECTOR_SIZE; ++ ++ /* Read the whole of Stage2 except for the first sector. */ ++ grub_seek (SECTOR_SIZE); ++ ++ disk_read_hook = disk_read_blocklist_func; ++ if (! grub_read (dummy, -1)) ++ goto fail; ++ ++ disk_read_hook = 0; ++ ++ /* Find a string for the configuration filename. */ ++ config_file_location = stage2_second_buffer + STAGE2_VER_STR_OFFS; ++ while (*(config_file_location++)) ++ ; ++ ++ /* Set the "force LBA" flag for Stage2. */ ++ *((unsigned char *) (stage2_second_buffer + STAGE2_FORCE_LBA)) ++ = is_force_lba; ++ ++ if (*ptr == 'p') ++ { ++ *((long *) (stage2_second_buffer + STAGE2_INSTALLPART)) ++ = src_partition; ++ if (is_stage1_5) ++ { ++ /* Reset the device information in FILE if it is a Stage 1.5. */ ++ unsigned long device = 0xFFFFFFFF; ++ ++ grub_memmove (config_file_location, (char *) &device, ++ sizeof (device)); ++ } ++ ++ ptr = skip_to (0, ptr); ++ } ++ ++ if (*ptr) ++ { ++ grub_strcpy (config_filename, ptr); ++ nul_terminate (config_filename); ++ ++ if (! is_stage1_5) ++ /* If it is a Stage 2, just copy PTR to CONFIG_FILE_LOCATION. */ ++ grub_strcpy (config_file_location, ptr); ++ else ++ { ++ char *real_config; ++ unsigned long device; ++ ++ /* Translate the external device syntax to the internal device ++ syntax. */ ++ if (! (real_config = set_device (ptr))) ++ { ++ /* The Stage 2 PTR does not contain the device name, so ++ use the root device instead. */ ++ errnum = ERR_NONE; ++ current_drive = saved_drive; ++ current_partition = saved_partition; ++ real_config = ptr; ++ } ++ ++ if (current_drive == src_drive) ++ { ++ /* If the drive where the Stage 2 resides is the same as ++ the one where the Stage 1.5 resides, do not embed the ++ drive number. */ ++ current_drive = GRUB_INVALID_DRIVE; ++ } ++ ++ device = (current_drive << 24) | current_partition; ++ grub_memmove (config_file_location, (char *) &device, ++ sizeof (device)); ++ grub_strcpy (config_file_location + sizeof (device), ++ real_config); ++ } ++ ++ /* If a Stage 1.5 is used, then we need to modify the Stage2. */ ++ if (is_stage1_5) ++ { ++ char *real_config_filename = skip_to (0, ptr); ++ ++ is_open = grub_open (config_filename); ++ if (! is_open) ++ goto fail; ++ ++ /* Skip the first sector. */ ++ grub_seek (SECTOR_SIZE); ++ ++ disk_read_hook = disk_read_savesect_func; ++ if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) ++ goto fail; ++ ++ disk_read_hook = 0; ++ grub_close (); ++ is_open = 0; ++ ++ /* Sanity check. */ ++ if (*(stage2_buffer + STAGE2_STAGE2_ID) != STAGE2_ID_STAGE2) ++ { ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ /* Set the "force LBA" flag for Stage2. */ ++ *(stage2_buffer + STAGE2_FORCE_LBA) = is_force_lba; ++ ++ /* If REAL_CONFIG_FILENAME is specified, copy it to the Stage2. */ ++ if (*real_config_filename) ++ { ++ /* Specified */ ++ char *location; ++ ++ /* Find a string for the configuration filename. */ ++ location = stage2_buffer + STAGE2_VER_STR_OFFS; ++ while (*(location++)) ++ ; ++ ++ /* Copy the name. */ ++ grub_strcpy (location, real_config_filename); ++ } ++ ++ /* Write it to the disk. */ ++ buf_track = -1; ++ ++#ifdef GRUB_UTIL ++ /* In the grub shell, access the Stage 2 via the OS filesystem ++ service, if possible. */ ++ if (stage2_os_file) ++ { ++ FILE *fp; ++ ++ fp = fopen (stage2_os_file, "r+"); ++ if (! fp) ++ { ++ errnum = ERR_FILE_NOT_FOUND; ++ goto fail; ++ } ++ ++ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) ++ { ++ fclose (fp); ++ errnum = ERR_BAD_VERSION; ++ goto fail; ++ } ++ ++ if (fwrite (stage2_buffer, 1, SECTOR_SIZE, fp) ++ != SECTOR_SIZE) ++ { ++ fclose (fp); ++ errnum = ERR_WRITE; ++ goto fail; ++ } ++ ++ fclose (fp); ++ } ++ else ++#endif /* GRUB_UTIL */ ++ { ++ if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) ++ goto fail; ++ } ++ } ++ } ++ ++ /* Clear the cache. */ ++ buf_track = -1; ++ ++ /* Write the modified sectors of Stage2 to the disk. */ ++#ifdef GRUB_UTIL ++ if (! is_stage1_5 && stage2_os_file) ++ { ++ FILE *fp; ++ ++ fp = fopen (stage2_os_file, "r+"); ++ if (! fp) ++ { ++ errnum = ERR_FILE_NOT_FOUND; ++ goto fail; ++ } ++ ++ if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) ++ { ++ fclose (fp); ++ errnum = ERR_WRITE; ++ goto fail; ++ } ++ ++ if (fwrite (stage2_second_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) ++ { ++ fclose (fp); ++ errnum = ERR_WRITE; ++ goto fail; ++ } ++ ++ fclose (fp); ++ } ++ else ++#endif /* GRUB_UTIL */ ++ { ++ /* The first. */ ++ current_drive = src_drive; ++ current_partition = src_partition; ++ ++ if (! open_partition ()) ++ goto fail; ++ ++ if (! devwrite (stage2_first_sector - src_part_start, 1, ++ stage2_first_buffer)) ++ goto fail; ++ ++ if (! devwrite (stage2_second_sector - src_part_start, 1, ++ stage2_second_buffer)) ++ goto fail; ++ } ++ ++ /* Write the modified sector of Stage 1 to the disk. */ ++ current_drive = dest_drive; ++ current_partition = dest_partition; ++ if (! open_partition ()) ++ goto fail; ++ ++ devwrite (0, 1, stage1_buffer); ++ ++ fail: ++ if (is_open) ++ grub_close (); ++ ++ disk_read_hook = 0; ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 0; ++#endif ++ ++ return errnum; ++} ++ ++static struct builtin builtin_install = ++{ ++ "install", ++ install_func, ++ BUILTIN_CMDLINE, ++ "install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]", ++ "Install STAGE1 on DEVICE, and install a blocklist for loading STAGE2" ++ " as a Stage 2. If the option `d' is present, the Stage 1 will always" ++ " look for the disk where STAGE2 was installed, rather than using" ++ " the booting drive. The Stage 2 will be loaded at address ADDR, which" ++ " will be determined automatically if you don't specify it. If" ++ " the option `p' or CONFIG_FILE is present, then the first block" ++ " of Stage 2 is patched with new values of the partition and name" ++ " of the configuration file used by the true Stage 2 (for a Stage 1.5," ++ " this is the name of the true Stage 2) at boot time. If STAGE2 is a Stage" ++ " 1.5 and REAL_CONFIG_FILE is present, then the Stage 2 CONFIG_FILE is" ++ " patched with the configuration filename REAL_CONFIG_FILE." ++ " If the option `--force-lba' is specified, disable some sanity checks" ++ " for LBA mode. If the option `--stage2' is specified, rewrite the Stage" ++ " 2 via your OS's filesystem instead of the raw device." ++}; ++ ++ ++/* ioprobe */ ++static int ++ioprobe_func (char *arg, int flags) ++{ ++#ifdef GRUB_UTIL ++ ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++ ++#else /* ! GRUB_UTIL */ ++ ++ unsigned short *port; ++ ++ /* Get the drive number. */ ++ set_device (arg); ++ if (errnum) ++ return 1; ++ ++ /* Clean out IO_MAP. */ ++ grub_memset ((char *) io_map, 0, IO_MAP_SIZE * sizeof (unsigned short)); ++ ++ /* Track the int13 handler. */ ++ track_int13 (current_drive); ++ ++ /* Print out the result. */ ++ for (port = io_map; *port != 0; port++) ++ grub_printf (" 0x%x", (unsigned int) *port); ++ ++ return 0; ++ ++#endif /* ! GRUB_UTIL */ ++} ++ ++static struct builtin builtin_ioprobe = ++{ ++ "ioprobe", ++ ioprobe_func, ++ BUILTIN_CMDLINE, ++ "ioprobe DRIVE", ++ "Probe I/O ports used for the drive DRIVE." ++}; ++ ++ ++/* kernel */ ++static int ++kernel_func (char *arg, int flags) ++{ ++ int len; ++ kernel_t suggested_type = KERNEL_TYPE_NONE; ++ unsigned long load_flags = 0; ++ ++#ifndef AUTO_LINUX_MEM_OPT ++ load_flags |= KERNEL_LOAD_NO_MEM_OPTION; ++#endif ++ ++ /* Deal with GNU-style long options. */ ++ while (1) ++ { ++ /* If the option `--type=TYPE' is specified, convert the string to ++ a kernel type. */ ++ if (grub_memcmp (arg, "--type=", 7) == 0) ++ { ++ arg += 7; ++ ++ if (grub_memcmp (arg, "netbsd", 6) == 0) ++ suggested_type = KERNEL_TYPE_NETBSD; ++ else if (grub_memcmp (arg, "freebsd", 7) == 0) ++ suggested_type = KERNEL_TYPE_FREEBSD; ++ else if (grub_memcmp (arg, "openbsd", 7) == 0) ++ /* XXX: For now, OpenBSD is identical to NetBSD, from GRUB's ++ point of view. */ ++ suggested_type = KERNEL_TYPE_NETBSD; ++ else if (grub_memcmp (arg, "linux", 5) == 0) ++ suggested_type = KERNEL_TYPE_LINUX; ++ else if (grub_memcmp (arg, "biglinux", 8) == 0) ++ suggested_type = KERNEL_TYPE_BIG_LINUX; ++ else if (grub_memcmp (arg, "multiboot", 9) == 0) ++ suggested_type = KERNEL_TYPE_MULTIBOOT; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ /* If the `--no-mem-option' is specified, don't pass a Linux's mem ++ option automatically. If the kernel is another type, this flag ++ has no effect. */ ++ else if (grub_memcmp (arg, "--no-mem-option", 15) == 0) ++ load_flags |= KERNEL_LOAD_NO_MEM_OPTION; ++ else ++ break; ++ ++ /* Try the next. */ ++ arg = skip_to (0, arg); ++ } ++ ++ len = grub_strlen (arg); ++ ++ /* Reset MB_CMDLINE. */ ++ mb_cmdline = (char *) MB_CMDLINE_BUF; ++ if (len + 1 > MB_CMDLINE_BUFLEN) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ /* Copy the command-line to MB_CMDLINE. */ ++ grub_memmove (mb_cmdline, arg, len + 1); ++ kernel_type = load_image (arg, mb_cmdline, suggested_type, load_flags); ++ if (kernel_type == KERNEL_TYPE_NONE) ++ return 1; ++ ++ mb_cmdline += len + 1; ++ return 0; ++} ++ ++static struct builtin builtin_kernel = ++{ ++ "kernel", ++ kernel_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...]", ++ "Attempt to load the primary boot image from FILE. The rest of the" ++ " line is passed verbatim as the \"kernel command line\". Any modules" ++ " must be reloaded after using this command. The option --type is used" ++ " to suggest what type of kernel to be loaded. TYPE must be either of" ++ " \"netbsd\", \"freebsd\", \"openbsd\", \"linux\", \"biglinux\" and" ++ " \"multiboot\". The option --no-mem-option tells GRUB not to pass a" ++ " Linux's mem option automatically." ++}; ++ ++ ++/* lock */ ++static int ++lock_func (char *arg, int flags) ++{ ++ if (! auth && password) ++ { ++ errnum = ERR_PRIVILEGED; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_lock = ++{ ++ "lock", ++ lock_func, ++ BUILTIN_CMDLINE, ++ "lock", ++ "Break a command execution unless the user is authenticated." ++}; ++ ++ ++/* makeactive */ ++static int ++makeactive_func (char *arg, int flags) ++{ ++ if (! make_saved_active ()) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_makeactive = ++{ ++ "makeactive", ++ makeactive_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "makeactive", ++ "Set the active partition on the root disk to GRUB's root device." ++ " This command is limited to _primary_ PC partitions on a hard disk." ++}; ++ ++ ++/* map */ ++/* Map FROM_DRIVE to TO_DRIVE. */ ++static int ++map_func (char *arg, int flags) ++{ ++ char *to_drive; ++ char *from_drive; ++ unsigned long to, from; ++ int i; ++ ++ to_drive = arg; ++ from_drive = skip_to (0, arg); ++ ++ /* Get the drive number for TO_DRIVE. */ ++ set_device (to_drive); ++ if (errnum) ++ return 1; ++ to = current_drive; ++ ++ /* Get the drive number for FROM_DRIVE. */ ++ set_device (from_drive); ++ if (errnum) ++ return 1; ++ from = current_drive; ++ ++ /* Search for an empty slot in BIOS_DRIVE_MAP. */ ++ for (i = 0; i < DRIVE_MAP_SIZE; i++) ++ { ++ /* Perhaps the user wants to override the map. */ ++ if ((bios_drive_map[i] & 0xff) == from) ++ break; ++ ++ if (! bios_drive_map[i]) ++ break; ++ } ++ ++ if (i == DRIVE_MAP_SIZE) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ if (to == from) ++ /* If TO is equal to FROM, delete the entry. */ ++ grub_memmove ((char *) &bios_drive_map[i], (char *) &bios_drive_map[i + 1], ++ sizeof (unsigned short) * (DRIVE_MAP_SIZE - i)); ++ else ++ bios_drive_map[i] = from | (to << 8); ++ ++ return 0; ++} ++ ++static struct builtin builtin_map = ++{ ++ "map", ++ map_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "map TO_DRIVE FROM_DRIVE", ++ "Map the drive FROM_DRIVE to the drive TO_DRIVE. This is necessary" ++ " when you chain-load some operating systems, such as DOS, if such an" ++ " OS resides at a non-first drive." ++}; ++ ++ ++#ifdef USE_MD5_PASSWORDS ++/* md5crypt */ ++static int ++md5crypt_func (char *arg, int flags) ++{ ++ char crypted[36]; ++ char key[32]; ++ unsigned int seed; ++ int i; ++ const char *const seedchars = ++ "./0123456789ABCDEFGHIJKLMNOPQRST" ++ "UVWXYZabcdefghijklmnopqrstuvwxyz"; ++ ++ /* First create a salt. */ ++ ++ /* The magical prefix. */ ++ grub_memset (crypted, 0, sizeof (crypted)); ++ grub_memmove (crypted, "$1$", 3); ++ ++ /* Create the length of a salt. */ ++ seed = currticks (); ++ ++ /* Generate a salt. */ ++ for (i = 0; i < 8 && seed; i++) ++ { ++ /* FIXME: This should be more random. */ ++ crypted[3 + i] = seedchars[seed & 0x3f]; ++ seed >>= 6; ++ } ++ ++ /* A salt must be terminated with `$', if it is less than 8 chars. */ ++ crypted[3 + i] = '$'; ++ ++#ifdef DEBUG_MD5CRYPT ++ grub_printf ("salt = %s\n", crypted); ++#endif ++ ++ /* Get a password. */ ++ grub_memset (key, 0, sizeof (key)); ++ get_cmdline ("Password: ", key, sizeof (key) - 1, '*', 0); ++ ++ /* Crypt the key. */ ++ make_md5_password (key, crypted); ++ ++ grub_printf ("Encrypted: %s\n", crypted); ++ return 0; ++} ++ ++static struct builtin builtin_md5crypt = ++{ ++ "md5crypt", ++ md5crypt_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "md5crypt", ++ "Generate a password in MD5 format." ++}; ++#endif /* USE_MD5_PASSWORDS */ ++ ++ ++/* module */ ++static int ++module_func (char *arg, int flags) ++{ ++ int len = grub_strlen (arg); ++ ++ switch (kernel_type) ++ { ++ case KERNEL_TYPE_MULTIBOOT: ++ if (mb_cmdline + len + 1 > (char *) MB_CMDLINE_BUF + MB_CMDLINE_BUFLEN) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ grub_memmove (mb_cmdline, arg, len + 1); ++ if (! load_module (arg, mb_cmdline)) ++ return 1; ++ mb_cmdline += len + 1; ++ break; ++ ++ case KERNEL_TYPE_LINUX: ++ case KERNEL_TYPE_BIG_LINUX: ++ if (! load_initrd (arg)) ++ return 1; ++ break; ++ ++ default: ++ errnum = ERR_NEED_MB_KERNEL; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_module = ++{ ++ "module", ++ module_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "module FILE [ARG ...]", ++ "Load a boot module FILE for a Multiboot format boot image (no" ++ " interpretation of the file contents is made, so users of this" ++ " command must know what the kernel in question expects). The" ++ " rest of the line is passed as the \"module command line\", like" ++ " the `kernel' command." ++}; ++ ++ ++/* modulenounzip */ ++static int ++modulenounzip_func (char *arg, int flags) ++{ ++ int ret; ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 1; ++#endif ++ ++ ret = module_func (arg, flags); ++ ++#ifndef NO_DECOMPRESSION ++ no_decompression = 0; ++#endif ++ ++ return ret; ++} ++ ++static struct builtin builtin_modulenounzip = ++{ ++ "modulenounzip", ++ modulenounzip_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "modulenounzip FILE [ARG ...]", ++ "The same as `module', except that automatic decompression is" ++ " disabled." ++}; ++ ++ ++/* pager [on|off] */ ++static int ++pager_func (char *arg, int flags) ++{ ++ /* If ARG is empty, toggle the flag. */ ++ if (! *arg) ++ use_pager = ! use_pager; ++ else if (grub_memcmp (arg, "on", 2) == 0) ++ use_pager = 1; ++ else if (grub_memcmp (arg, "off", 3) == 0) ++ use_pager = 0; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ grub_printf (" Internal pager is now %s\n", use_pager ? "on" : "off"); ++ return 0; ++} ++ ++static struct builtin builtin_pager = ++{ ++ "pager", ++ pager_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "pager [FLAG]", ++ "Toggle pager mode with no argument. If FLAG is given and its value" ++ " is `on', turn on the mode. If FLAG is `off', turn off the mode." ++}; ++ ++ ++/* partnew PART TYPE START LEN */ ++static int ++partnew_func (char *arg, int flags) ++{ ++ int new_type, new_start, new_len; ++ int start_cl, start_ch, start_dh; ++ int end_cl, end_ch, end_dh; ++ int entry; ++ char mbr[512]; ++ ++ /* Convert a LBA address to a CHS address in the INT 13 format. */ ++ auto void lba_to_chs (int lba, int *cl, int *ch, int *dh); ++ void lba_to_chs (int lba, int *cl, int *ch, int *dh) ++ { ++ int cylinder, head, sector; ++ ++ sector = lba % buf_geom.sectors + 1; ++ head = (lba / buf_geom.sectors) % buf_geom.heads; ++ cylinder = lba / (buf_geom.sectors * buf_geom.heads); ++ ++ if (cylinder >= buf_geom.cylinders) ++ cylinder = buf_geom.cylinders - 1; ++ ++ *cl = sector | ((cylinder & 0x300) >> 2); ++ *ch = cylinder & 0xFF; ++ *dh = head; ++ } ++ ++ /* Get the drive and the partition. */ ++ if (! set_device (arg)) ++ return 1; ++ ++ /* The drive must be a hard disk. */ ++ if (! (current_drive & 0x80)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* The partition must a primary partition. */ ++ if ((current_partition >> 16) > 3 ++ || (current_partition & 0xFFFF) != 0xFFFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ entry = current_partition >> 16; ++ ++ /* Get the new partition type. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_type)) ++ return 1; ++ ++ /* The partition type is unsigned char. */ ++ if (new_type > 0xFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Get the new partition start. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_start)) ++ return 1; ++ ++ /* Get the new partition length. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_len)) ++ return 1; ++ ++ /* Read the MBR. */ ++ if (! rawread (current_drive, 0, 0, SECTOR_SIZE, mbr)) ++ return 1; ++ ++ /* Check if the new partition will fit in the disk. */ ++ if (new_start + new_len > buf_geom.total_sectors) ++ { ++ errnum = ERR_GEOM; ++ return 1; ++ } ++ ++ /* Store the partition information in the MBR. */ ++ lba_to_chs (new_start, &start_cl, &start_ch, &start_dh); ++ lba_to_chs (new_start + new_len - 1, &end_cl, &end_ch, &end_dh); ++ ++ PC_SLICE_FLAG (mbr, entry) = 0; ++ PC_SLICE_HEAD (mbr, entry) = start_dh; ++ PC_SLICE_SEC (mbr, entry) = start_cl; ++ PC_SLICE_CYL (mbr, entry) = start_ch; ++ PC_SLICE_TYPE (mbr, entry) = new_type; ++ PC_SLICE_EHEAD (mbr, entry) = end_dh; ++ PC_SLICE_ESEC (mbr, entry) = end_cl; ++ PC_SLICE_ECYL (mbr, entry) = end_ch; ++ PC_SLICE_START (mbr, entry) = new_start; ++ PC_SLICE_LENGTH (mbr, entry) = new_len; ++ ++ /* Make sure that the MBR has a valid signature. */ ++ PC_MBR_SIG (mbr) = PC_MBR_SIGNATURE; ++ ++ /* Write back the MBR to the disk. */ ++ buf_track = -1; ++ if (! rawwrite (current_drive, 0, mbr)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_partnew = ++{ ++ "partnew", ++ partnew_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "partnew PART TYPE START LEN", ++ "Create a primary partition at the starting address START with the" ++ " length LEN, with the type TYPE. START and LEN are in sector units." ++}; ++ ++ ++/* parttype PART TYPE */ ++static int ++parttype_func (char *arg, int flags) ++{ ++ int new_type; ++ unsigned long part = 0xFFFFFF; ++ unsigned long start, len, offset, ext_offset; ++ int entry, type; ++ char mbr[512]; ++ ++ /* Get the drive and the partition. */ ++ if (! set_device (arg)) ++ return 1; ++ ++ /* The drive must be a hard disk. */ ++ if (! (current_drive & 0x80)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* The partition must be a PC slice. */ ++ if ((current_partition >> 16) == 0xFF ++ || (current_partition & 0xFFFF) != 0xFFFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Get the new partition type. */ ++ arg = skip_to (0, arg); ++ if (! safe_parse_maxint (&arg, &new_type)) ++ return 1; ++ ++ /* The partition type is unsigned char. */ ++ if (new_type > 0xFF) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ /* Look for the partition. */ ++ while (next_partition (current_drive, 0xFFFFFF, &part, &type, ++ &start, &len, &offset, &entry, ++ &ext_offset, mbr)) ++ { ++ if (part == current_partition) ++ { ++ /* Found. */ ++ ++ /* Set the type to NEW_TYPE. */ ++ PC_SLICE_TYPE (mbr, entry) = new_type; ++ ++ /* Write back the MBR to the disk. */ ++ buf_track = -1; ++ if (! rawwrite (current_drive, offset, mbr)) ++ return 1; ++ ++ /* Succeed. */ ++ return 0; ++ } ++ } ++ ++ /* The partition was not found. ERRNUM was set by next_partition. */ ++ return 1; ++} ++ ++static struct builtin builtin_parttype = ++{ ++ "parttype", ++ parttype_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "parttype PART TYPE", ++ "Change the type of the partition PART to TYPE." ++}; ++ ++ ++/* password */ ++static int ++password_func (char *arg, int flags) ++{ ++ int len; ++ password_t type = PASSWORD_PLAIN; ++ ++#ifdef USE_MD5_PASSWORDS ++ if (grub_memcmp (arg, "--md5", 5) == 0) ++ { ++ type = PASSWORD_MD5; ++ arg = skip_to (0, arg); ++ } ++#endif ++ if (grub_memcmp (arg, "--", 2) == 0) ++ { ++ type = PASSWORD_UNSUPPORTED; ++ arg = skip_to (0, arg); ++ } ++ ++ if ((flags & (BUILTIN_CMDLINE | BUILTIN_SCRIPT)) != 0) ++ { ++ /* Do password check! */ ++ char entered[32]; ++ ++ /* Wipe out any previously entered password */ ++ entered[0] = 0; ++ get_cmdline ("Password: ", entered, 31, '*', 0); ++ ++ nul_terminate (arg); ++ if (check_password (entered, arg, type) != 0) ++ { ++ errnum = ERR_PRIVILEGED; ++ return 1; ++ } ++ } ++ else ++ { ++ len = grub_strlen (arg); ++ ++ /* PASSWORD NUL NUL ... */ ++ if (len + 2 > PASSWORD_BUFLEN) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ /* Copy the password and clear the rest of the buffer. */ ++ password = (char *) PASSWORD_BUF; ++ grub_memmove (password, arg, len); ++ grub_memset (password + len, 0, PASSWORD_BUFLEN - len); ++ password_type = type; ++ } ++ return 0; ++} ++ ++static struct builtin builtin_password = ++{ ++ "password", ++ password_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_NO_ECHO, ++ "password [--md5] PASSWD [FILE]", ++ "If used in the first section of a menu file, disable all" ++ " interactive editing control (menu entry editor and" ++ " command line). If the password PASSWD is entered, it loads the" ++ " FILE as a new config file and restarts the GRUB Stage 2. If you" ++ " omit the argument FILE, then GRUB just unlocks privileged" ++ " instructions. You can also use it in the script section, in" ++ " which case it will ask for the password, before continueing." ++ " The option --md5 tells GRUB that PASSWD is encrypted with" ++ " md5crypt." ++}; ++ ++ ++/* pause */ ++static int ++pause_func (char *arg, int flags) ++{ ++ printf("%s\n", arg); ++ ++ /* If ESC is returned, then abort this entry. */ ++ if (ASCII_CHAR (getkey ()) == 27) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_pause = ++{ ++ "pause", ++ pause_func, ++ BUILTIN_CMDLINE | BUILTIN_NO_ECHO, ++ "pause [MESSAGE ...]", ++ "Print MESSAGE, then wait until a key is pressed." ++}; ++ ++ ++#ifdef GRUB_UTIL ++/* quit */ ++static int ++quit_func (char *arg, int flags) ++{ ++ stop (); ++ ++ /* Never reach here. */ ++ return 0; ++} ++ ++static struct builtin builtin_quit = ++{ ++ "quit", ++ quit_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "quit", ++ "Exit from the GRUB shell." ++}; ++#endif /* GRUB_UTIL */ ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* rarp */ ++static int ++rarp_func (char *arg, int flags) ++{ ++ if (! rarp ()) ++ { ++ if (errnum == ERR_NONE) ++ errnum = ERR_DEV_VALUES; ++ ++ return 1; ++ } ++ ++ /* Notify the configuration. */ ++ print_network_configuration (); ++ return 0; ++} ++ ++static struct builtin builtin_rarp = ++{ ++ "rarp", ++ rarp_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "rarp", ++ "Initialize a network device via RARP." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++static int ++read_func (char *arg, int flags) ++{ ++ int addr; ++ ++ if (! safe_parse_maxint (&arg, &addr)) ++ return 1; ++ ++ grub_printf ("Address 0x%x: Value 0x%x\n", ++ addr, *((unsigned *) RAW_ADDR (addr))); ++ return 0; ++} ++ ++static struct builtin builtin_read = ++{ ++ "read", ++ read_func, ++ BUILTIN_CMDLINE, ++ "read ADDR", ++ "Read a 32-bit value from memory at address ADDR and" ++ " display it in hex format." ++}; ++ ++ ++/* reboot */ ++static int ++reboot_func (char *arg, int flags) ++{ ++ grub_reboot (); ++ ++ /* Never reach here. */ ++ return 1; ++} ++ ++static struct builtin builtin_reboot = ++{ ++ "reboot", ++ reboot_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "reboot", ++ "Reboot your system." ++}; ++ ++ ++/* Print the root device information. */ ++static void ++print_root_device (void) ++{ ++ if (saved_drive == NETWORK_DRIVE) ++ { ++ /* Network drive. */ ++ grub_printf (" (nd):"); ++ } ++ else if (saved_drive & 0x80) ++ { ++ /* Hard disk drive. */ ++ grub_printf (" (hd%d", saved_drive - 0x80); ++ ++ if ((saved_partition & 0xFF0000) != 0xFF0000) ++ grub_printf (",%d", saved_partition >> 16); ++ ++ if ((saved_partition & 0x00FF00) != 0x00FF00) ++ grub_printf (",%c", ((saved_partition >> 8) & 0xFF) + 'a'); ++ ++ grub_printf ("):"); ++ } ++ else ++ { ++ /* Floppy disk drive. */ ++ grub_printf (" (fd%d):", saved_drive); ++ } ++ ++ /* Print the filesystem information. */ ++ current_partition = saved_partition; ++ current_drive = saved_drive; ++ print_fsys_type (); ++} ++ ++static int ++real_root_func (char *arg, int attempt_mount) ++{ ++ int hdbias = 0; ++ char *biasptr; ++ char *next; ++ ++ /* If ARG is empty, just print the current root device. */ ++ if (! *arg) ++ { ++ print_root_device (); ++ return 0; ++ } ++ ++ /* Call set_device to get the drive and the partition in ARG. */ ++ next = set_device (arg); ++ if (! next) ++ return 1; ++ ++ /* Ignore ERR_FSYS_MOUNT. */ ++ if (attempt_mount) ++ { ++ if (! open_device () && errnum != ERR_FSYS_MOUNT) ++ return 1; ++ } ++ else ++ { ++ /* This is necessary, because the location of a partition table ++ must be set appropriately. */ ++ if (open_partition ()) ++ { ++ set_bootdev (0); ++ if (errnum) ++ return 1; ++ } ++ } ++ ++ /* Clear ERRNUM. */ ++ errnum = 0; ++ saved_partition = current_partition; ++ saved_drive = current_drive; ++ ++ if (attempt_mount) ++ { ++ /* BSD and chainloading evil hacks !! */ ++ biasptr = skip_to (0, next); ++ safe_parse_maxint (&biasptr, &hdbias); ++ errnum = 0; ++ bootdev = set_bootdev (hdbias); ++ if (errnum) ++ return 1; ++ ++ /* Print the type of the filesystem. */ ++ print_fsys_type (); ++ } ++ ++ return 0; ++} ++ ++static int ++root_func (char *arg, int flags) ++{ ++ return real_root_func (arg, 1); ++} ++ ++static struct builtin builtin_root = ++{ ++ "root", ++ root_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "root [DEVICE [HDBIAS]]", ++ "Set the current \"root device\" to the device DEVICE, then" ++ " attempt to mount it to get the partition size (for passing the" ++ " partition descriptor in `ES:ESI', used by some chain-loaded" ++ " bootloaders), the BSD drive-type (for booting BSD kernels using" ++ " their native boot format), and correctly determine " ++ " the PC partition where a BSD sub-partition is located. The" ++ " optional HDBIAS parameter is a number to tell a BSD kernel" ++ " how many BIOS drive numbers are on controllers before the current" ++ " one. For example, if there is an IDE disk and a SCSI disk, and your" ++ " FreeBSD root partition is on the SCSI disk, then use a `1' for HDBIAS." ++}; ++ ++ ++/* rootnoverify */ ++static int ++rootnoverify_func (char *arg, int flags) ++{ ++ return real_root_func (arg, 0); ++} ++ ++static struct builtin builtin_rootnoverify = ++{ ++ "rootnoverify", ++ rootnoverify_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "rootnoverify [DEVICE [HDBIAS]]", ++ "Similar to `root', but don't attempt to mount the partition. This" ++ " is useful for when an OS is outside of the area of the disk that" ++ " GRUB can read, but setting the correct root device is still" ++ " desired. Note that the items mentioned in `root' which" ++ " derived from attempting the mount will NOT work correctly." ++}; ++ ++ ++/* savedefault */ ++static int ++savedefault_func (char *arg, int flags) ++{ ++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) ++ unsigned long tmp_drive = saved_drive; ++ unsigned long tmp_partition = saved_partition; ++ char *default_file = (char *) DEFAULT_FILE_BUF; ++ char buf[10]; ++ char sect[SECTOR_SIZE]; ++ int entryno; ++ int sector_count = 0; ++ int saved_sectors[2]; ++ int saved_offsets[2]; ++ int saved_lengths[2]; ++ ++ /* Save sector information about at most two sectors. */ ++ auto void disk_read_savesect_func (int sector, int offset, int length); ++ void disk_read_savesect_func (int sector, int offset, int length) ++ { ++ if (sector_count < 2) ++ { ++ saved_sectors[sector_count] = sector; ++ saved_offsets[sector_count] = offset; ++ saved_lengths[sector_count] = length; ++ } ++ sector_count++; ++ } ++ ++ /* This command is only useful when you boot an entry from the menu ++ interface. */ ++ if (! (flags & BUILTIN_SCRIPT)) ++ { ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++ } ++ ++ /* Determine a saved entry number. */ ++ if (*arg) ++ { ++ if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0) ++ { ++ int i; ++ int index = 0; ++ ++ for (i = 0; i < MAX_FALLBACK_ENTRIES; i++) ++ { ++ if (fallback_entries[i] < 0) ++ break; ++ if (fallback_entries[i] == current_entryno) ++ { ++ index = i + 1; ++ break; ++ } ++ } ++ ++ if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0) ++ { ++ /* This is the last. */ ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ entryno = fallback_entries[index]; ++ } ++ else if (! safe_parse_maxint (&arg, &entryno)) ++ return 1; ++ } ++ else ++ entryno = current_entryno; ++ ++ /* Open the default file. */ ++ saved_drive = boot_drive; ++ saved_partition = install_partition; ++ if (grub_open (default_file)) ++ { ++ int len; ++ ++ disk_read_hook = disk_read_savesect_func; ++ len = grub_read (buf, sizeof (buf)); ++ disk_read_hook = 0; ++ grub_close (); ++ ++ if (len != sizeof (buf)) ++ { ++ /* This is too small. Do not modify the file manually, please! */ ++ errnum = ERR_READ; ++ goto fail; ++ } ++ ++ if (sector_count > 2) ++ { ++ /* Is this possible?! Too fragmented! */ ++ errnum = ERR_FSYS_CORRUPT; ++ goto fail; ++ } ++ ++ /* Set up a string to be written. */ ++ grub_memset (buf, '\n', sizeof (buf)); ++ grub_sprintf (buf, "%d", entryno); ++ ++ if (saved_lengths[0] < sizeof (buf)) ++ { ++ /* The file is anchored to another file and the first few bytes ++ are spanned in two sectors. Uggh... */ ++ if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, ++ sect)) ++ goto fail; ++ grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]); ++ if (! rawwrite (current_drive, saved_sectors[0], sect)) ++ goto fail; ++ ++ if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE, ++ sect)) ++ goto fail; ++ grub_memmove (sect + saved_offsets[1], ++ buf + saved_lengths[0], ++ sizeof (buf) - saved_lengths[0]); ++ if (! rawwrite (current_drive, saved_sectors[1], sect)) ++ goto fail; ++ } ++ else ++ { ++ /* This is a simple case. It fits into a single sector. */ ++ if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, ++ sect)) ++ goto fail; ++ grub_memmove (sect + saved_offsets[0], buf, sizeof (buf)); ++ if (! rawwrite (current_drive, saved_sectors[0], sect)) ++ goto fail; ++ } ++ ++ /* Clear the cache. */ ++ buf_track = -1; ++ } ++ ++ fail: ++ saved_drive = tmp_drive; ++ saved_partition = tmp_partition; ++ return errnum; ++#else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */ ++ errnum = ERR_UNRECOGNIZED; ++ return 1; ++#endif /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */ ++} ++ ++static struct builtin builtin_savedefault = ++{ ++ "savedefault", ++ savedefault_func, ++ BUILTIN_CMDLINE, ++ "savedefault [NUM | `fallback']", ++ "Save the current entry as the default boot entry if no argument is" ++ " specified. If a number is specified, this number is saved. If" ++ " `fallback' is used, next fallback entry is saved." ++}; ++ ++ ++#ifdef SUPPORT_SERIAL ++/* serial */ ++static int ++serial_func (char *arg, int flags) ++{ ++ unsigned short port = serial_hw_get_port (0); ++ unsigned int speed = 9600; ++ int word_len = UART_8BITS_WORD; ++ int parity = UART_NO_PARITY; ++ int stop_bit_len = UART_1_STOP_BIT; ++ ++ /* Process GNU-style long options. ++ FIXME: We should implement a getopt-like function, to avoid ++ duplications. */ ++ while (1) ++ { ++ if (grub_memcmp (arg, "--unit=", sizeof ("--unit=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--unit=") - 1; ++ int unit; ++ ++ if (! safe_parse_maxint (&p, &unit)) ++ return 1; ++ ++ if (unit < 0 || unit > 3) ++ { ++ errnum = ERR_DEV_VALUES; ++ return 1; ++ } ++ ++ port = serial_hw_get_port (unit); ++ } ++ else if (grub_memcmp (arg, "--speed=", sizeof ("--speed=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--speed=") - 1; ++ int num; ++ ++ if (! safe_parse_maxint (&p, &num)) ++ return 1; ++ ++ speed = (unsigned int) num; ++ } ++ else if (grub_memcmp (arg, "--port=", sizeof ("--port=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--port=") - 1; ++ int num; ++ ++ if (! safe_parse_maxint (&p, &num)) ++ return 1; ++ ++ port = (unsigned short) num; ++ } ++ else if (grub_memcmp (arg, "--word=", sizeof ("--word=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--word=") - 1; ++ int len; ++ ++ if (! safe_parse_maxint (&p, &len)) ++ return 1; ++ ++ switch (len) ++ { ++ case 5: word_len = UART_5BITS_WORD; break; ++ case 6: word_len = UART_6BITS_WORD; break; ++ case 7: word_len = UART_7BITS_WORD; break; ++ case 8: word_len = UART_8BITS_WORD; break; ++ default: ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ else if (grub_memcmp (arg, "--stop=", sizeof ("--stop=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--stop=") - 1; ++ int len; ++ ++ if (! safe_parse_maxint (&p, &len)) ++ return 1; ++ ++ switch (len) ++ { ++ case 1: stop_bit_len = UART_1_STOP_BIT; break; ++ case 2: stop_bit_len = UART_2_STOP_BITS; break; ++ default: ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ else if (grub_memcmp (arg, "--parity=", sizeof ("--parity=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--parity=") - 1; ++ ++ if (grub_memcmp (p, "no", sizeof ("no") - 1) == 0) ++ parity = UART_NO_PARITY; ++ else if (grub_memcmp (p, "odd", sizeof ("odd") - 1) == 0) ++ parity = UART_ODD_PARITY; ++ else if (grub_memcmp (p, "even", sizeof ("even") - 1) == 0) ++ parity = UART_EVEN_PARITY; ++ else ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++# ifdef GRUB_UTIL ++ /* In the grub shell, don't use any port number but open a tty ++ device instead. */ ++ else if (grub_memcmp (arg, "--device=", sizeof ("--device=") - 1) == 0) ++ { ++ char *p = arg + sizeof ("--device=") - 1; ++ char dev[256]; /* XXX */ ++ char *q = dev; ++ ++ while (*p && ! grub_isspace (*p)) ++ *q++ = *p++; ++ ++ *q = 0; ++ serial_set_device (dev); ++ } ++# endif /* GRUB_UTIL */ ++ else ++ break; ++ ++ arg = skip_to (0, arg); ++ } ++ ++ /* Initialize the serial unit. */ ++ if (! serial_hw_init (port, speed, word_len, parity, stop_bit_len)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_serial = ++{ ++ "serial", ++ serial_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD] [--parity=PARITY] [--stop=STOP] [--device=DEV]", ++ "Initialize a serial device. UNIT is a digit that specifies which serial" ++ " device is used (e.g. 0 == COM1). If you need to specify the port number," ++ " set it by --port. SPEED is the DTE-DTE speed. WORD is the word length," ++ " PARITY is the type of parity, which is one of `no', `odd' and `even'." ++ " STOP is the length of stop bit(s). The option --device can be used only" ++ " in the grub shell, which specifies the file name of a tty device. The" ++ " default values are COM1, 9600, 8N1." ++}; ++#endif /* SUPPORT_SERIAL */ ++ ++ ++/* setkey */ ++struct keysym ++{ ++ char *unshifted_name; /* the name in unshifted state */ ++ char *shifted_name; /* the name in shifted state */ ++ unsigned char unshifted_ascii; /* the ascii code in unshifted state */ ++ unsigned char shifted_ascii; /* the ascii code in shifted state */ ++ unsigned char keycode; /* keyboard scancode */ ++}; ++ ++/* The table for key symbols. If the "shifted" member of an entry is ++ NULL, the entry does not have shifted state. */ ++static struct keysym keysym_table[] = ++{ ++ {"escape", 0, 0x1b, 0, 0x01}, ++ {"1", "exclam", '1', '!', 0x02}, ++ {"2", "at", '2', '@', 0x03}, ++ {"3", "numbersign", '3', '#', 0x04}, ++ {"4", "dollar", '4', '$', 0x05}, ++ {"5", "percent", '5', '%', 0x06}, ++ {"6", "caret", '6', '^', 0x07}, ++ {"7", "ampersand", '7', '&', 0x08}, ++ {"8", "asterisk", '8', '*', 0x09}, ++ {"9", "parenleft", '9', '(', 0x0a}, ++ {"0", "parenright", '0', ')', 0x0b}, ++ {"minus", "underscore", '-', '_', 0x0c}, ++ {"equal", "plus", '=', '+', 0x0d}, ++ {"backspace", 0, '\b', 0, 0x0e}, ++ {"tab", 0, '\t', 0, 0x0f}, ++ {"q", "Q", 'q', 'Q', 0x10}, ++ {"w", "W", 'w', 'W', 0x11}, ++ {"e", "E", 'e', 'E', 0x12}, ++ {"r", "R", 'r', 'R', 0x13}, ++ {"t", "T", 't', 'T', 0x14}, ++ {"y", "Y", 'y', 'Y', 0x15}, ++ {"u", "U", 'u', 'U', 0x16}, ++ {"i", "I", 'i', 'I', 0x17}, ++ {"o", "O", 'o', 'O', 0x18}, ++ {"p", "P", 'p', 'P', 0x19}, ++ {"bracketleft", "braceleft", '[', '{', 0x1a}, ++ {"bracketright", "braceright", ']', '}', 0x1b}, ++ {"enter", 0, '\n', 0, 0x1c}, ++ {"control", 0, 0, 0, 0x1d}, ++ {"a", "A", 'a', 'A', 0x1e}, ++ {"s", "S", 's', 'S', 0x1f}, ++ {"d", "D", 'd', 'D', 0x20}, ++ {"f", "F", 'f', 'F', 0x21}, ++ {"g", "G", 'g', 'G', 0x22}, ++ {"h", "H", 'h', 'H', 0x23}, ++ {"j", "J", 'j', 'J', 0x24}, ++ {"k", "K", 'k', 'K', 0x25}, ++ {"l", "L", 'l', 'L', 0x26}, ++ {"semicolon", "colon", ';', ':', 0x27}, ++ {"quote", "doublequote", '\'', '"', 0x28}, ++ {"backquote", "tilde", '`', '~', 0x29}, ++ {"shift", 0, 0, 0, 0x2a}, ++ {"backslash", "bar", '\\', '|', 0x2b}, ++ {"z", "Z", 'z', 'Z', 0x2c}, ++ {"x", "X", 'x', 'X', 0x2d}, ++ {"c", "C", 'c', 'C', 0x2e}, ++ {"v", "V", 'v', 'V', 0x2f}, ++ {"b", "B", 'b', 'B', 0x30}, ++ {"n", "N", 'n', 'N', 0x31}, ++ {"m", "M", 'm', 'M', 0x32}, ++ {"comma", "less", ',', '<', 0x33}, ++ {"period", "greater", '.', '>', 0x34}, ++ {"slash", "question", '/', '?', 0x35}, ++ {"alt", 0, 0, 0, 0x38}, ++ {"space", 0, ' ', 0, 0x39}, ++ {"capslock", 0, 0, 0, 0x3a}, ++ {"F1", 0, 0, 0, 0x3b}, ++ {"F2", 0, 0, 0, 0x3c}, ++ {"F3", 0, 0, 0, 0x3d}, ++ {"F4", 0, 0, 0, 0x3e}, ++ {"F5", 0, 0, 0, 0x3f}, ++ {"F6", 0, 0, 0, 0x40}, ++ {"F7", 0, 0, 0, 0x41}, ++ {"F8", 0, 0, 0, 0x42}, ++ {"F9", 0, 0, 0, 0x43}, ++ {"F10", 0, 0, 0, 0x44}, ++ /* Caution: do not add NumLock here! we cannot deal with it properly. */ ++ {"delete", 0, 0x7f, 0, 0x53} ++}; ++ ++static int ++setkey_func (char *arg, int flags) ++{ ++ char *to_key, *from_key; ++ int to_code, from_code; ++ int map_in_interrupt = 0; ++ ++ auto int find_key_code (char *key); ++ auto int find_ascii_code (char *key); ++ ++ auto int find_key_code (char *key) ++ { ++ int i; ++ ++ for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) ++ { ++ if (keysym_table[i].unshifted_name && ++ grub_strcmp (key, keysym_table[i].unshifted_name) == 0) ++ return keysym_table[i].keycode; ++ else if (keysym_table[i].shifted_name && ++ grub_strcmp (key, keysym_table[i].shifted_name) == 0) ++ return keysym_table[i].keycode; ++ } ++ ++ return 0; ++ } ++ ++ auto int find_ascii_code (char *key) ++ { ++ int i; ++ ++ for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) ++ { ++ if (keysym_table[i].unshifted_name && ++ grub_strcmp (key, keysym_table[i].unshifted_name) == 0) ++ return keysym_table[i].unshifted_ascii; ++ else if (keysym_table[i].shifted_name && ++ grub_strcmp (key, keysym_table[i].shifted_name) == 0) ++ return keysym_table[i].shifted_ascii; ++ } ++ ++ return 0; ++ } ++ ++ to_key = arg; ++ from_key = skip_to (0, to_key); ++ ++ if (! *to_key) ++ { ++ /* If the user specifies no argument, reset the key mappings. */ ++ grub_memset (bios_key_map, 0, KEY_MAP_SIZE * sizeof (unsigned short)); ++ grub_memset (ascii_key_map, 0, KEY_MAP_SIZE * sizeof (unsigned short)); ++ ++ return 0; ++ } ++ else if (! *from_key) ++ { ++ /* The user must specify two arguments or zero argument. */ ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ nul_terminate (to_key); ++ nul_terminate (from_key); ++ ++ to_code = find_ascii_code (to_key); ++ from_code = find_ascii_code (from_key); ++ if (! to_code || ! from_code) ++ { ++ map_in_interrupt = 1; ++ to_code = find_key_code (to_key); ++ from_code = find_key_code (from_key); ++ if (! to_code || ! from_code) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ ++ if (map_in_interrupt) ++ { ++ int i; ++ ++ /* Find an empty slot. */ ++ for (i = 0; i < KEY_MAP_SIZE; i++) ++ { ++ if ((bios_key_map[i] & 0xff) == from_code) ++ /* Perhaps the user wants to overwrite the map. */ ++ break; ++ ++ if (! bios_key_map[i]) ++ break; ++ } ++ ++ if (i == KEY_MAP_SIZE) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ if (to_code == from_code) ++ /* If TO is equal to FROM, delete the entry. */ ++ grub_memmove ((char *) &bios_key_map[i], ++ (char *) &bios_key_map[i + 1], ++ sizeof (unsigned short) * (KEY_MAP_SIZE - i)); ++ else ++ bios_key_map[i] = (to_code << 8) | from_code; ++ ++ /* Ugly but should work. */ ++ unset_int15_handler (); ++ set_int15_handler (); ++ } ++ else ++ { ++ int i; ++ ++ /* Find an empty slot. */ ++ for (i = 0; i < KEY_MAP_SIZE; i++) ++ { ++ if ((ascii_key_map[i] & 0xff) == from_code) ++ /* Perhaps the user wants to overwrite the map. */ ++ break; ++ ++ if (! ascii_key_map[i]) ++ break; ++ } ++ ++ if (i == KEY_MAP_SIZE) ++ { ++ errnum = ERR_WONT_FIT; ++ return 1; ++ } ++ ++ if (to_code == from_code) ++ /* If TO is equal to FROM, delete the entry. */ ++ grub_memmove ((char *) &ascii_key_map[i], ++ (char *) &ascii_key_map[i + 1], ++ sizeof (unsigned short) * (KEY_MAP_SIZE - i)); ++ else ++ ascii_key_map[i] = (to_code << 8) | from_code; ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_setkey = ++{ ++ "setkey", ++ setkey_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "setkey [TO_KEY FROM_KEY]", ++ "Change the keyboard map. The key FROM_KEY is mapped to the key TO_KEY." ++ " A key must be an alphabet, a digit, or one of these: escape, exclam," ++ " at, numbersign, dollar, percent, caret, ampersand, asterisk, parenleft," ++ " parenright, minus, underscore, equal, plus, backspace, tab, bracketleft," ++ " braceleft, bracketright, braceright, enter, control, semicolon, colon," ++ " quote, doublequote, backquote, tilde, shift, backslash, bar, comma," ++ " less, period, greater, slash, question, alt, space, capslock, FX (X" ++ " is a digit), and delete. If no argument is specified, reset key" ++ " mappings." ++}; ++ ++ ++/* setup */ ++static int ++setup_func (char *arg, int flags) ++{ ++ /* Point to the string of the installed drive/partition. */ ++ char *install_ptr; ++ /* Point to the string of the drive/parition where the GRUB images ++ reside. */ ++ char *image_ptr; ++ unsigned long installed_drive, installed_partition; ++ unsigned long image_drive, image_partition; ++ unsigned long tmp_drive, tmp_partition; ++ char stage1[64]; ++ char stage2[64]; ++ char config_filename[64]; ++ char real_config_filename[64]; ++ char cmd_arg[256]; ++ char device[16]; ++ char *buffer = (char *) RAW_ADDR (0x100000); ++ int is_force_lba = 0; ++ char *stage2_arg = 0; ++ char *prefix = 0; ++ ++ auto int check_file (char *file); ++ auto void sprint_device (int drive, int partition); ++ auto int embed_stage1_5 (char * stage1_5, int drive, int partition); ++ ++ /* Check if the file FILE exists like Autoconf. */ ++ int check_file (char *file) ++ { ++ int ret; ++ ++ grub_printf (" Checking if \"%s\" exists... ", file); ++ ret = grub_open (file); ++ if (ret) ++ { ++ grub_close (); ++ grub_printf ("yes\n"); ++ } ++ else ++ grub_printf ("no\n"); ++ ++ return ret; ++ } ++ ++ /* Construct a device name in DEVICE. */ ++ void sprint_device (int drive, int partition) ++ { ++ grub_sprintf (device, "(%cd%d", ++ (drive & 0x80) ? 'h' : 'f', ++ drive & ~0x80); ++ if ((partition & 0xFF0000) != 0xFF0000) ++ { ++ char tmp[16]; ++ grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF); ++ grub_strncat (device, tmp, 256); ++ } ++ if ((partition & 0x00FF00) != 0x00FF00) ++ { ++ char tmp[16]; ++ grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF)); ++ grub_strncat (device, tmp, 256); ++ } ++ grub_strncat (device, ")", 256); ++ } ++ ++ int embed_stage1_5 (char *stage1_5, int drive, int partition) ++ { ++ /* We install GRUB into the MBR, so try to embed the ++ Stage 1.5 in the sectors right after the MBR. */ ++ sprint_device (drive, partition); ++ grub_sprintf (cmd_arg, "%s %s", stage1_5, device); ++ ++ /* Notify what will be run. */ ++ grub_printf (" Running \"embed %s\"... ", cmd_arg); ++ ++ embed_func (cmd_arg, flags); ++ if (! errnum) ++ { ++ /* Construct the blocklist representation. */ ++ grub_sprintf (buffer, "%s%s", device, embed_info); ++ grub_printf ("succeeded\n"); ++ return 1; ++ } ++ else ++ { ++ grub_printf ("failed (this is not fatal)\n"); ++ return 0; ++ } ++ } ++ ++ struct stage1_5_map { ++ char *fsys; ++ char *name; ++ }; ++ struct stage1_5_map stage1_5_map[] = ++ { ++ {"ext2fs", "/e2fs_stage1_5"}, ++ {"fat", "/fat_stage1_5"}, ++ {"ufs2", "/ufs2_stage1_5"}, ++ {"ffs", "/ffs_stage1_5"}, ++ {"iso9660", "/iso9660_stage1_5"}, ++ {"jfs", "/jfs_stage1_5"}, ++ {"minix", "/minix_stage1_5"}, ++ {"reiserfs", "/reiserfs_stage1_5"}, ++ {"vstafs", "/vstafs_stage1_5"}, ++ {"xfs", "/xfs_stage1_5"} ++ }; ++ ++ tmp_drive = saved_drive; ++ tmp_partition = saved_partition; ++ ++ /* Check if the user specifies --force-lba. */ ++ while (1) ++ { ++ if (grub_memcmp ("--force-lba", arg, sizeof ("--force-lba") - 1) == 0) ++ { ++ is_force_lba = 1; ++ arg = skip_to (0, arg); ++ } ++ else if (grub_memcmp ("--prefix=", arg, sizeof ("--prefix=") - 1) == 0) ++ { ++ prefix = arg + sizeof ("--prefix=") - 1; ++ arg = skip_to (0, arg); ++ nul_terminate (prefix); ++ } ++#ifdef GRUB_UTIL ++ else if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0) ++ { ++ stage2_arg = arg; ++ arg = skip_to (0, arg); ++ nul_terminate (stage2_arg); ++ } ++#endif /* GRUB_UTIL */ ++ else ++ break; ++ } ++ ++ install_ptr = arg; ++ image_ptr = skip_to (0, install_ptr); ++ ++ /* Make sure that INSTALL_PTR is valid. */ ++ set_device (install_ptr); ++ if (errnum) ++ return 1; ++ ++ installed_drive = current_drive; ++ installed_partition = current_partition; ++ ++ /* Mount the drive pointed by IMAGE_PTR. */ ++ if (*image_ptr) ++ { ++ /* If the drive/partition where the images reside is specified, ++ get the drive and the partition. */ ++ set_device (image_ptr); ++ if (errnum) ++ return 1; ++ } ++ else ++ { ++ /* If omitted, use SAVED_PARTITION and SAVED_DRIVE. */ ++ current_drive = saved_drive; ++ current_partition = saved_partition; ++ } ++ ++ image_drive = saved_drive = current_drive; ++ image_partition = saved_partition = current_partition; ++ ++ /* Open it. */ ++ if (! open_device ()) ++ goto fail; ++ ++ /* Check if stage1 exists. If the user doesn't specify the option ++ `--prefix', attempt /boot/grub and /grub. */ ++ /* NOTE: It is dangerous to run this command without `--prefix' in the ++ grub shell, since that affects `--stage2'. */ ++ if (! prefix) ++ { ++ prefix = "/boot/grub"; ++ grub_sprintf (stage1, "%s%s", prefix, "/stage1"); ++ if (! check_file (stage1)) ++ { ++ errnum = ERR_NONE; ++ prefix = "/grub"; ++ grub_sprintf (stage1, "%s%s", prefix, "/stage1"); ++ if (! check_file (stage1)) ++ goto fail; ++ } ++ } ++ else ++ { ++ grub_sprintf (stage1, "%s%s", prefix, "/stage1"); ++ if (! check_file (stage1)) ++ goto fail; ++ } ++ ++ /* The prefix was determined. */ ++ grub_sprintf (stage2, "%s%s", prefix, "/stage2"); ++ grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst"); ++ *real_config_filename = 0; ++ ++ /* Check if stage2 exists. */ ++ if (! check_file (stage2)) ++ goto fail; ++ ++ { ++ char *fsys = fsys_table[fsys_type].name; ++ int i; ++ int size = sizeof (stage1_5_map) / sizeof (stage1_5_map[0]); ++ ++ /* Iterate finding the same filesystem name as FSYS. */ ++ for (i = 0; i < size; i++) ++ if (grub_strcmp (fsys, stage1_5_map[i].fsys) == 0) ++ { ++ /* OK, check if the Stage 1.5 exists. */ ++ char stage1_5[64]; ++ ++ grub_sprintf (stage1_5, "%s%s", prefix, stage1_5_map[i].name); ++ if (check_file (stage1_5)) ++ { ++ if (embed_stage1_5 (stage1_5, ++ installed_drive, installed_partition) ++ || embed_stage1_5 (stage1_5, ++ image_drive, image_partition)) ++ { ++ grub_strcpy (real_config_filename, config_filename); ++ sprint_device (image_drive, image_partition); ++ grub_sprintf (config_filename, "%s%s", device, stage2); ++ grub_strcpy (stage2, buffer); ++ } ++ } ++ errnum = 0; ++ break; ++ } ++ } ++ ++ /* Construct a string that is used by the command "install" as its ++ arguments. */ ++ sprint_device (installed_drive, installed_partition); ++ ++#if 1 ++ /* Don't embed a drive number unnecessarily. */ ++ grub_sprintf (cmd_arg, "%s%s%s%s %s%s %s p %s %s", ++ is_force_lba? "--force-lba " : "", ++ stage2_arg? stage2_arg : "", ++ stage2_arg? " " : "", ++ stage1, ++ (installed_drive != image_drive) ? "d " : "", ++ device, ++ stage2, ++ config_filename, ++ real_config_filename); ++#else /* NOT USED */ ++ /* This code was used, because we belived some BIOSes had a problem ++ that they didn't pass a booting drive correctly. It turned out, ++ however, stage1 could trash a booting drive when checking LBA support, ++ because some BIOSes modified the register %dx in INT 13H, AH=48H. ++ So it becamed unclear whether GRUB should use a pre-defined booting ++ drive or not. If the problem still exists, it would be necessary to ++ switch back to this code. */ ++ grub_sprintf (cmd_arg, "%s%s%s%s d %s %s p %s %s", ++ is_force_lba? "--force-lba " : "", ++ stage2_arg? stage2_arg : "", ++ stage2_arg? " " : "", ++ stage1, ++ device, ++ stage2, ++ config_filename, ++ real_config_filename); ++#endif /* NOT USED */ ++ ++ /* Notify what will be run. */ ++ grub_printf (" Running \"install %s\"... ", cmd_arg); ++ ++ /* Make sure that SAVED_DRIVE and SAVED_PARTITION are identical ++ with IMAGE_DRIVE and IMAGE_PARTITION, respectively. */ ++ saved_drive = image_drive; ++ saved_partition = image_partition; ++ ++ /* Run the command. */ ++ if (! install_func (cmd_arg, flags)) ++ grub_printf ("succeeded\nDone.\n"); ++ else ++ grub_printf ("failed\n"); ++ ++ fail: ++ saved_drive = tmp_drive; ++ saved_partition = tmp_partition; ++ return errnum; ++} ++ ++static struct builtin builtin_setup = ++{ ++ "setup", ++ setup_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]", ++ "Set up the installation of GRUB automatically. This command uses" ++ " the more flexible command \"install\" in the backend and installs" ++ " GRUB into the device INSTALL_DEVICE. If IMAGE_DEVICE is specified," ++ " then find the GRUB images in the device IMAGE_DEVICE, otherwise" ++ " use the current \"root device\", which can be set by the command" ++ " \"root\". If you know that your BIOS should support LBA but GRUB" ++ " doesn't work in LBA mode, specify the option `--force-lba'." ++ " If you install GRUB under the grub shell and you cannot unmount the" ++ " partition where GRUB images reside, specify the option `--stage2'" ++ " to tell GRUB the file name under your OS." ++}; ++ ++ ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++/* terminal */ ++static int ++terminal_func (char *arg, int flags) ++{ ++ /* The index of the default terminal in TERM_TABLE. */ ++ int default_term = -1; ++ struct term_entry *prev_term = current_term; ++ int to = -1; ++ int lines = 0; ++ int no_message = 0; ++ unsigned long term_flags = 0; ++ /* XXX: Assume less than 32 terminals. */ ++ unsigned long term_bitmap = 0; ++ ++ /* Get GNU-style long options. */ ++ while (1) ++ { ++ if (grub_memcmp (arg, "--dumb", sizeof ("--dumb") - 1) == 0) ++ term_flags |= TERM_DUMB; ++ else if (grub_memcmp (arg, "--no-echo", sizeof ("--no-echo") - 1) == 0) ++ /* ``--no-echo'' implies ``--no-edit''. */ ++ term_flags |= (TERM_NO_ECHO | TERM_NO_EDIT); ++ else if (grub_memcmp (arg, "--no-edit", sizeof ("--no-edit") - 1) == 0) ++ term_flags |= TERM_NO_EDIT; ++ else if (grub_memcmp (arg, "--timeout=", sizeof ("--timeout=") - 1) == 0) ++ { ++ char *val = arg + sizeof ("--timeout=") - 1; ++ ++ if (! safe_parse_maxint (&val, &to)) ++ return 1; ++ } ++ else if (grub_memcmp (arg, "--lines=", sizeof ("--lines=") - 1) == 0) ++ { ++ char *val = arg + sizeof ("--lines=") - 1; ++ ++ if (! safe_parse_maxint (&val, &lines)) ++ return 1; ++ ++ /* Probably less than four is meaningless.... */ ++ if (lines < 4) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ } ++ else if (grub_memcmp (arg, "--silent", sizeof ("--silent") - 1) == 0) ++ no_message = 1; ++ else ++ break; ++ ++ arg = skip_to (0, arg); ++ } ++ ++ /* If no argument is specified, show current setting. */ ++ if (! *arg) ++ { ++ grub_printf ("%s%s%s%s\n", ++ current_term->name, ++ current_term->flags & TERM_DUMB ? " (dumb)" : "", ++ current_term->flags & TERM_NO_EDIT ? " (no edit)" : "", ++ current_term->flags & TERM_NO_ECHO ? " (no echo)" : ""); ++ return 0; ++ } ++ ++ while (*arg) ++ { ++ int i; ++ char *next = skip_to (0, arg); ++ ++ nul_terminate (arg); ++ ++ for (i = 0; term_table[i].name; i++) ++ { ++ if (grub_strcmp (arg, term_table[i].name) == 0) ++ { ++ if (term_table[i].flags & TERM_NEED_INIT) ++ { ++ errnum = ERR_DEV_NEED_INIT; ++ return 1; ++ } ++ ++ if (default_term < 0) ++ default_term = i; ++ ++ term_bitmap |= (1 << i); ++ break; ++ } ++ } ++ ++ if (! term_table[i].name) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ arg = next; ++ } ++ ++ /* If multiple terminals are specified, wait until the user pushes any ++ key on one of the terminals. */ ++ if (term_bitmap & ~(1 << default_term)) ++ { ++ int time1, time2 = -1; ++ ++ /* XXX: Disable the pager. */ ++ count_lines = -1; ++ ++ /* Get current time. */ ++ while ((time1 = getrtsecs ()) == 0xFF) ++ ; ++ ++ /* Wait for a key input. */ ++ while (to) ++ { ++ int i; ++ ++ for (i = 0; term_table[i].name; i++) ++ { ++ if (term_bitmap & (1 << i)) ++ { ++ if (term_table[i].checkkey () >= 0) ++ { ++ (void) term_table[i].getkey (); ++ default_term = i; ++ ++ goto end; ++ } ++ } ++ } ++ ++ /* Prompt the user, once per sec. */ ++ if ((time1 = getrtsecs ()) != time2 && time1 != 0xFF) ++ { ++ if (! no_message) ++ { ++ /* Need to set CURRENT_TERM to each of selected ++ terminals. */ ++ for (i = 0; term_table[i].name; i++) ++ if (term_bitmap & (1 << i)) ++ { ++ current_term = term_table + i; ++ grub_printf ("\rPress any key to continue.\n"); ++ } ++ ++ /* Restore CURRENT_TERM. */ ++ current_term = prev_term; ++ } ++ ++ time2 = time1; ++ if (to > 0) ++ to--; ++ } ++ } ++ } ++ ++ end: ++ current_term = term_table + default_term; ++ current_term->flags = term_flags; ++ ++ if (lines) ++ max_lines = lines; ++ else ++ /* 24 would be a good default value. */ ++ max_lines = 24; ++ ++ /* If the interface is currently the command-line, ++ restart it to repaint the screen. */ ++ if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) ++ grub_longjmp (restart_cmdline_env, 0); ++ ++ return 0; ++} ++ ++static struct builtin builtin_terminal = ++{ ++ "terminal", ++ terminal_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", ++ "Select a terminal. When multiple terminals are specified, wait until" ++ " you push any key to continue. If both console and serial are specified," ++ " the terminal to which you input a key first will be selected. If no" ++ " argument is specified, print current setting. The option --dumb" ++ " specifies that your terminal is dumb, otherwise, vt100-compatibility" ++ " is assumed. If you specify --no-echo, input characters won't be echoed." ++ " If you specify --no-edit, the BASH-like editing feature will be disabled." ++ " If --timeout is present, this command will wait at most for SECS" ++ " seconds. The option --lines specifies the maximum number of lines." ++ " The option --silent is used to suppress messages." ++}; ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++ ++ ++#ifdef SUPPORT_SERIAL ++static int ++terminfo_func (char *arg, int flags) ++{ ++ struct terminfo term; ++ ++ if (*arg) ++ { ++ struct ++ { ++ const char *name; ++ char *var; ++ } ++ options[] = ++ { ++ {"--name=", term.name}, ++ {"--cursor-address=", term.cursor_address}, ++ {"--clear-screen=", term.clear_screen}, ++ {"--enter-standout-mode=", term.enter_standout_mode}, ++ {"--exit-standout-mode=", term.exit_standout_mode} ++ }; ++ ++ grub_memset (&term, 0, sizeof (term)); ++ ++ while (*arg) ++ { ++ int i; ++ char *next = skip_to (0, arg); ++ ++ nul_terminate (arg); ++ ++ for (i = 0; i < sizeof (options) / sizeof (options[0]); i++) ++ { ++ const char *name = options[i].name; ++ int len = grub_strlen (name); ++ ++ if (! grub_memcmp (arg, name, len)) ++ { ++ grub_strcpy (options[i].var, ti_unescape_string (arg + len)); ++ break; ++ } ++ } ++ ++ if (i == sizeof (options) / sizeof (options[0])) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return errnum; ++ } ++ ++ arg = next; ++ } ++ ++ if (term.name[0] == 0 || term.cursor_address[0] == 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return errnum; ++ } ++ ++ ti_set_term (&term); ++ } ++ else ++ { ++ /* No option specifies printing out current settings. */ ++ ti_get_term (&term); ++ ++ grub_printf ("name=%s\n", ++ ti_escape_string (term.name)); ++ grub_printf ("cursor_address=%s\n", ++ ti_escape_string (term.cursor_address)); ++ grub_printf ("clear_screen=%s\n", ++ ti_escape_string (term.clear_screen)); ++ grub_printf ("enter_standout_mode=%s\n", ++ ti_escape_string (term.enter_standout_mode)); ++ grub_printf ("exit_standout_mode=%s\n", ++ ti_escape_string (term.exit_standout_mode)); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_terminfo = ++{ ++ "terminfo", ++ terminfo_func, ++ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ]" ++ " [--enter-standout-mode=SEQ] [--exit-standout-mode=SEQ]]", ++ ++ "Define the capabilities of your terminal. Use this command to" ++ " define escape sequences, if it is not vt100-compatible." ++ " You may use \\e for ESC and ^X for a control character." ++ " If no option is specified, the current settings are printed." ++}; ++#endif /* SUPPORT_SERIAL */ ++ ++ ++/* testload */ ++static int ++testload_func (char *arg, int flags) ++{ ++ int i; ++ ++ kernel_type = KERNEL_TYPE_NONE; ++ ++ if (! grub_open (arg)) ++ return 1; ++ ++ disk_read_hook = disk_read_print_func; ++ ++ /* Perform filesystem test on the specified file. */ ++ /* Read whole file first. */ ++ grub_printf ("Whole file: "); ++ ++ grub_read ((char *) RAW_ADDR (0x100000), -1); ++ ++ /* Now compare two sections of the file read differently. */ ++ ++ for (i = 0; i < 0x10ac0; i++) ++ { ++ *((unsigned char *) RAW_ADDR (0x200000 + i)) = 0; ++ *((unsigned char *) RAW_ADDR (0x300000 + i)) = 1; ++ } ++ ++ /* First partial read. */ ++ grub_printf ("\nPartial read 1: "); ++ ++ grub_seek (0); ++ grub_read ((char *) RAW_ADDR (0x200000), 0x7); ++ grub_read ((char *) RAW_ADDR (0x200007), 0x100); ++ grub_read ((char *) RAW_ADDR (0x200107), 0x10); ++ grub_read ((char *) RAW_ADDR (0x200117), 0x999); ++ grub_read ((char *) RAW_ADDR (0x200ab0), 0x10); ++ grub_read ((char *) RAW_ADDR (0x200ac0), 0x10000); ++ ++ /* Second partial read. */ ++ grub_printf ("\nPartial read 2: "); ++ ++ grub_seek (0); ++ grub_read ((char *) RAW_ADDR (0x300000), 0x10000); ++ grub_read ((char *) RAW_ADDR (0x310000), 0x10); ++ grub_read ((char *) RAW_ADDR (0x310010), 0x7); ++ grub_read ((char *) RAW_ADDR (0x310017), 0x10); ++ grub_read ((char *) RAW_ADDR (0x310027), 0x999); ++ grub_read ((char *) RAW_ADDR (0x3109c0), 0x100); ++ ++ grub_printf ("\nHeader1 = 0x%x, next = 0x%x, next = 0x%x, next = 0x%x\n", ++ *((int *) RAW_ADDR (0x200000)), ++ *((int *) RAW_ADDR (0x200004)), ++ *((int *) RAW_ADDR (0x200008)), ++ *((int *) RAW_ADDR (0x20000c))); ++ ++ grub_printf ("Header2 = 0x%x, next = 0x%x, next = 0x%x, next = 0x%x\n", ++ *((int *) RAW_ADDR (0x300000)), ++ *((int *) RAW_ADDR (0x300004)), ++ *((int *) RAW_ADDR (0x300008)), ++ *((int *) RAW_ADDR (0x30000c))); ++ ++ for (i = 0; i < 0x10ac0; i++) ++ if (*((unsigned char *) RAW_ADDR (0x200000 + i)) ++ != *((unsigned char *) RAW_ADDR (0x300000 + i))) ++ break; ++ ++ grub_printf ("Max is 0x10ac0: i=0x%x, filepos=0x%x\n", i, filepos); ++ disk_read_hook = 0; ++ grub_close (); ++ return 0; ++} ++ ++static struct builtin builtin_testload = ++{ ++ "testload", ++ testload_func, ++ BUILTIN_CMDLINE, ++ "testload FILE", ++ "Read the entire contents of FILE in several different ways and" ++ " compares them, to test the filesystem code. The output is somewhat" ++ " cryptic, but if no errors are reported and the final `i=X," ++ " filepos=Y' reading has X and Y equal, then it is definitely" ++ " consistent, and very likely works correctly subject to a" ++ " consistent offset error. If this test succeeds, then a good next" ++ " step is to try loading a kernel." ++}; ++ ++ ++/* testvbe MODE */ ++static int ++testvbe_func (char *arg, int flags) ++{ ++ int mode_number; ++ struct vbe_controller controller; ++ struct vbe_mode mode; ++ ++ if (! *arg) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ if (! safe_parse_maxint (&arg, &mode_number)) ++ return 1; ++ ++ /* Preset `VBE2'. */ ++ grub_memmove (controller.signature, "VBE2", 4); ++ ++ /* Detect VBE BIOS. */ ++ if (get_vbe_controller_info (&controller) != 0x004F) ++ { ++ grub_printf (" VBE BIOS is not present.\n"); ++ return 0; ++ } ++ ++ if (controller.version < 0x0200) ++ { ++ grub_printf (" VBE version %d.%d is not supported.\n", ++ (int) (controller.version >> 8), ++ (int) (controller.version & 0xFF)); ++ return 0; ++ } ++ ++ if (get_vbe_mode_info (mode_number, &mode) != 0x004F ++ || (mode.mode_attributes & 0x0091) != 0x0091) ++ { ++ grub_printf (" Mode 0x%x is not supported.\n", mode_number); ++ return 0; ++ } ++ ++ /* Now trip to the graphics mode. */ ++ if (set_vbe_mode (mode_number | (1 << 14)) != 0x004F) ++ { ++ grub_printf (" Switching to Mode 0x%x failed.\n", mode_number); ++ return 0; ++ } ++ ++ /* Draw something on the screen... */ ++ { ++ unsigned char *base_buf = (unsigned char *) mode.phys_base; ++ int scanline = controller.version >= 0x0300 ++ ? mode.linear_bytes_per_scanline : mode.bytes_per_scanline; ++ /* FIXME: this assumes that any depth is a modulo of 8. */ ++ int bpp = mode.bits_per_pixel / 8; ++ int width = mode.x_resolution; ++ int height = mode.y_resolution; ++ int x, y; ++ unsigned color = 0; ++ ++ /* Iterate drawing on the screen, until the user hits any key. */ ++ while (checkkey () == -1) ++ { ++ for (y = 0; y < height; y++) ++ { ++ unsigned char *line_buf = base_buf + scanline * y; ++ ++ for (x = 0; x < width; x++) ++ { ++ unsigned char *buf = line_buf + bpp * x; ++ int i; ++ ++ for (i = 0; i < bpp; i++, buf++) ++ *buf = (color >> (i * 8)) & 0xff; ++ } ++ ++ color++; ++ } ++ } ++ ++ /* Discard the input. */ ++ getkey (); ++ } ++ ++ /* Back to the default text mode. */ ++ if (set_vbe_mode (0x03) != 0x004F) ++ { ++ /* Why?! */ ++ grub_reboot (); ++ } ++ ++ return 0; ++} ++ ++static struct builtin builtin_testvbe = ++{ ++ "testvbe", ++ testvbe_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "testvbe MODE", ++ "Test the VBE mode MODE. Hit any key to return." ++}; ++ ++ ++#ifdef SUPPORT_NETBOOT ++/* tftpserver */ ++static int ++tftpserver_func (char *arg, int flags) ++{ ++ if (! *arg || ! ifconfig (0, 0, 0, arg)) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ ++ print_network_configuration (); ++ return 0; ++} ++ ++static struct builtin builtin_tftpserver = ++{ ++ "tftpserver", ++ tftpserver_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "tftpserver IPADDR", ++ "Override the TFTP server address." ++}; ++#endif /* SUPPORT_NETBOOT */ ++ ++ ++/* timeout */ ++static int ++timeout_func (char *arg, int flags) ++{ ++ if (! safe_parse_maxint (&arg, &grub_timeout)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_timeout = ++{ ++ "timeout", ++ timeout_func, ++ BUILTIN_MENU, ++#if 0 ++ "timeout SEC", ++ "Set a timeout, in SEC seconds, before automatically booting the" ++ " default entry (normally the first entry defined)." ++#endif ++}; ++ ++ ++/* title */ ++static int ++title_func (char *arg, int flags) ++{ ++ /* This function is not actually used at least currently. */ ++ return 0; ++} ++ ++static struct builtin builtin_title = ++{ ++ "title", ++ title_func, ++ BUILTIN_TITLE, ++#if 0 ++ "title [NAME ...]", ++ "Start a new boot entry, and set its name to the contents of the" ++ " rest of the line, starting with the first non-space character." ++#endif ++}; ++ ++ ++/* unhide */ ++static int ++unhide_func (char *arg, int flags) ++{ ++ if (! set_device (arg)) ++ return 1; ++ ++ if (! set_partition_hidden_flag (0)) ++ return 1; ++ ++ return 0; ++} ++ ++static struct builtin builtin_unhide = ++{ ++ "unhide", ++ unhide_func, ++ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, ++ "unhide PARTITION", ++ "Unhide PARTITION by clearing the \"hidden\" bit in its" ++ " partition type code." ++}; ++ ++ ++/* uppermem */ ++static int ++uppermem_func (char *arg, int flags) ++{ ++ if (! safe_parse_maxint (&arg, (int *) &mbi.mem_upper)) ++ return 1; ++ ++ mbi.flags &= ~MB_INFO_MEM_MAP; ++ return 0; ++} ++ ++static struct builtin builtin_uppermem = ++{ ++ "uppermem", ++ uppermem_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "uppermem KBYTES", ++ "Force GRUB to assume that only KBYTES kilobytes of upper memory are" ++ " installed. Any system address range maps are discarded." ++}; ++ ++ ++/* vbeprobe */ ++static int ++vbeprobe_func (char *arg, int flags) ++{ ++ struct vbe_controller controller; ++ unsigned short *mode_list; ++ int mode_number = -1; ++ ++ auto unsigned long vbe_far_ptr_to_linear (unsigned long); ++ ++ unsigned long vbe_far_ptr_to_linear (unsigned long ptr) ++ { ++ unsigned short seg = (ptr >> 16); ++ unsigned short off = (ptr & 0xFFFF); ++ ++ return (seg << 4) + off; ++ } ++ ++ if (*arg) ++ { ++ if (! safe_parse_maxint (&arg, &mode_number)) ++ return 1; ++ } ++ ++ /* Set the signature to `VBE2', to obtain VBE 3.0 information. */ ++ grub_memmove (controller.signature, "VBE2", 4); ++ ++ if (get_vbe_controller_info (&controller) != 0x004F) ++ { ++ grub_printf (" VBE BIOS is not present.\n"); ++ return 0; ++ } ++ ++ /* Check the version. */ ++ if (controller.version < 0x0200) ++ { ++ grub_printf (" VBE version %d.%d is not supported.\n", ++ (int) (controller.version >> 8), ++ (int) (controller.version & 0xFF)); ++ return 0; ++ } ++ ++ /* Print some information. */ ++ grub_printf (" VBE version %d.%d\n", ++ (int) (controller.version >> 8), ++ (int) (controller.version & 0xFF)); ++ ++ /* Iterate probing modes. */ ++ for (mode_list ++ = (unsigned short *) vbe_far_ptr_to_linear (controller.video_mode); ++ *mode_list != 0xFFFF; ++ mode_list++) ++ { ++ struct vbe_mode mode; ++ ++ if (get_vbe_mode_info (*mode_list, &mode) != 0x004F) ++ continue; ++ ++ /* Skip this, if this is not supported or linear frame buffer ++ mode is not support. */ ++ if ((mode.mode_attributes & 0x0081) != 0x0081) ++ continue; ++ ++ if (mode_number == -1 || mode_number == *mode_list) ++ { ++ char *model; ++ switch (mode.memory_model) ++ { ++ case 0x00: model = "Text"; break; ++ case 0x01: model = "CGA graphics"; break; ++ case 0x02: model = "Hercules graphics"; break; ++ case 0x03: model = "Planar"; break; ++ case 0x04: model = "Packed pixel"; break; ++ case 0x05: model = "Non-chain 4, 256 color"; break; ++ case 0x06: model = "Direct Color"; break; ++ case 0x07: model = "YUV"; break; ++ default: model = "Unknown"; break; ++ } ++ ++ grub_printf (" 0x%x: %s, %ux%ux%u\n", ++ (unsigned) *mode_list, ++ model, ++ (unsigned) mode.x_resolution, ++ (unsigned) mode.y_resolution, ++ (unsigned) mode.bits_per_pixel); ++ ++ if (mode_number != -1) ++ break; ++ } ++ } ++ ++ if (mode_number != -1 && mode_number != *mode_list) ++ grub_printf (" Mode 0x%x is not found or supported.\n", mode_number); ++ ++ return 0; ++} ++ ++static struct builtin builtin_vbeprobe = ++{ ++ "vbeprobe", ++ vbeprobe_func, ++ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, ++ "vbeprobe [MODE]", ++ "Probe VBE information. If the mode number MODE is specified, show only" ++ " the information about only the mode." ++}; ++ ++ ++/* The table of builtin commands. Sorted in dictionary order. */ ++struct builtin *builtin_table[] = ++{ ++ &builtin_blocklist, ++ &builtin_boot, ++#ifdef SUPPORT_NETBOOT ++ &builtin_bootp, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_cat, ++ &builtin_chainloader, ++ &builtin_cmp, ++ &builtin_color, ++ &builtin_configfile, ++ &builtin_debug, ++ &builtin_default, ++#ifdef GRUB_UTIL ++ &builtin_device, ++#endif /* GRUB_UTIL */ ++#ifdef SUPPORT_NETBOOT ++ &builtin_dhcp, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_displayapm, ++ &builtin_displaymem, ++#ifdef GRUB_UTIL ++ &builtin_dump, ++#endif /* GRUB_UTIL */ ++ &builtin_embed, ++ &builtin_fallback, ++ &builtin_find, ++ &builtin_fstest, ++ &builtin_geometry, ++ &builtin_halt, ++ &builtin_help, ++ &builtin_hiddenmenu, ++ &builtin_hide, ++#ifdef SUPPORT_NETBOOT ++ &builtin_ifconfig, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_impsprobe, ++ &builtin_initrd, ++ &builtin_install, ++ &builtin_ioprobe, ++ &builtin_kernel, ++ &builtin_lock, ++ &builtin_makeactive, ++ &builtin_map, ++#ifdef USE_MD5_PASSWORDS ++ &builtin_md5crypt, ++#endif /* USE_MD5_PASSWORDS */ ++ &builtin_module, ++ &builtin_modulenounzip, ++ &builtin_pager, ++ &builtin_partnew, ++ &builtin_parttype, ++ &builtin_password, ++ &builtin_pause, ++#ifdef GRUB_UTIL ++ &builtin_quit, ++#endif /* GRUB_UTIL */ ++#ifdef SUPPORT_NETBOOT ++ &builtin_rarp, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_read, ++ &builtin_reboot, ++ &builtin_root, ++ &builtin_rootnoverify, ++ &builtin_savedefault, ++#ifdef SUPPORT_SERIAL ++ &builtin_serial, ++#endif /* SUPPORT_SERIAL */ ++ &builtin_setkey, ++ &builtin_setup, ++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) ++ &builtin_terminal, ++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ ++#ifdef SUPPORT_SERIAL ++ &builtin_terminfo, ++#endif /* SUPPORT_SERIAL */ ++ &builtin_testload, ++ &builtin_testvbe, ++#ifdef SUPPORT_NETBOOT ++ &builtin_tftpserver, ++#endif /* SUPPORT_NETBOOT */ ++ &builtin_timeout, ++ &builtin_title, ++ &builtin_unhide, ++ &builtin_uppermem, ++ &builtin_vbeprobe, ++ 0 ++}; +diff -Nur grub-0.97/stage2/char_io.c grub-0.97-patched/stage2/char_io.c +--- grub-0.97/stage2/char_io.c 2005-02-01 21:51:23.000000000 +0100 ++++ grub-0.97-patched/stage2/char_io.c 2012-11-11 17:06:52.556085241 +0100 +@@ -35,6 +35,7 @@ + { + "console", + 0, ++ 24, + console_putchar, + console_checkkey, + console_getkey, +@@ -43,13 +44,16 @@ + console_cls, + console_setcolorstate, + console_setcolor, +- console_setcursor ++ console_setcursor, ++ 0, ++ 0 + }, + #ifdef SUPPORT_SERIAL + { + "serial", + /* A serial device must be initialized. */ + TERM_NEED_INIT, ++ 24, + serial_putchar, + serial_checkkey, + serial_getkey, +@@ -58,6 +62,8 @@ + serial_cls, + serial_setcolorstate, + 0, ++ 0, ++ 0, + 0 + }, + #endif /* SUPPORT_SERIAL */ +@@ -65,6 +71,7 @@ + { + "hercules", + 0, ++ 24, + hercules_putchar, + console_checkkey, + console_getkey, +@@ -73,9 +80,28 @@ + hercules_cls, + hercules_setcolorstate, + hercules_setcolor, +- hercules_setcursor ++ hercules_setcursor, ++ 0, ++ 0 + }, + #endif /* SUPPORT_HERCULES */ ++#ifdef SUPPORT_GRAPHICS ++ { "graphics", ++ TERM_NEED_INIT, /* flags */ ++ 30, /* number of lines */ ++ graphics_putchar, /* putchar */ ++ console_checkkey, /* checkkey */ ++ console_getkey, /* getkey */ ++ graphics_getxy, /* getxy */ ++ graphics_gotoxy, /* gotoxy */ ++ graphics_cls, /* cls */ ++ graphics_setcolorstate, /* setcolorstate */ ++ graphics_setcolor, /* setcolor */ ++ graphics_setcursor, /* nocursor */ ++ graphics_init, /* initialize */ ++ graphics_end /* shutdown */ ++ }, ++#endif /* SUPPORT_GRAPHICS */ + /* This must be the last entry. */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + }; +@@ -1046,13 +1072,15 @@ + the following grub_printf call will print newlines. */ + count_lines = -1; + ++ grub_printf("\n"); + if (current_term->setcolorstate) + current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); + +- grub_printf ("\n[Hit return to continue]"); ++ grub_printf ("[Hit return to continue]"); + + if (current_term->setcolorstate) + current_term->setcolorstate (COLOR_STATE_NORMAL); ++ + + do + { +@@ -1090,7 +1118,7 @@ + cls (void) + { + /* If the terminal is dumb, there is no way to clean the terminal. */ +- if (current_term->flags & TERM_DUMB) ++ if (current_term->flags & TERM_DUMB) + grub_putchar ('\n'); + else + current_term->cls (); +@@ -1174,37 +1202,62 @@ + } + #endif /* ! STAGE1_5 */ + ++#ifdef GRUB_UTIL ++# ifdef __PIC__ ++# if defined(HAVE_START_SYMBOL) && defined(HAVE_END_SYMBOL) ++ extern char start[]; ++ extern char end[]; ++# elif defined(HAVE_USCORE_START_SYMBOL) && defined (HAVE_USCORE_END_SYMBOL) ++ extern char _start[]; ++ extern char _end[]; ++# endif ++# endif ++#endif + int +-memcheck (int addr, int len) ++memcheck (unsigned long addr, unsigned long len) + { + #ifdef GRUB_UTIL +- auto int start_addr (void); +- auto int end_addr (void); ++# ifdef __PIC__ ++# if defined(HAVE_START_SYMBOL) && defined(HAVE_END_SYMBOL) ++ if (start <= addr && end > addr + len) ++ return ! errnum; ++# elif defined(HAVE_USCORE_START_SYMBOL) && defined (HAVE_USCORE_END_SYMBOL) ++ if (_start <= addr && _end > addr + len) ++ return ! errnum; ++# endif ++# else /* __PIC__ */ ++ auto unsigned long start_addr (void); ++ auto unsigned long end_addr (void); + +- auto int start_addr (void) ++ auto unsigned long start_addr (void) + { +- int ret; +-# if defined(HAVE_START_SYMBOL) ++ unsigned long ret; ++# if defined(HAVE_START_SYMBOL) + asm volatile ("movl $start, %0" : "=a" (ret)); +-# elif defined(HAVE_USCORE_START_SYMBOL) ++# elif defined(HAVE_USCORE_START_SYMBOL) + asm volatile ("movl $_start, %0" : "=a" (ret)); +-# endif ++# else ++ erk! /* function would return undefined data in this case - barf */ ++# endif + return ret; + } + +- auto int end_addr (void) ++ auto unsigned long end_addr (void) + { +- int ret; +-# if defined(HAVE_END_SYMBOL) ++ unsigned long ret; ++# if defined(HAVE_END_SYMBOL) + asm volatile ("movl $end, %0" : "=a" (ret)); +-# elif defined(HAVE_USCORE_END_SYMBOL) ++# elif defined(HAVE_USCORE_END_SYMBOL) + asm volatile ("movl $_end, %0" : "=a" (ret)); +-# endif ++# else ++ erk! /* function would return undefined data in this case - barf */ ++# endif + return ret; + } + + if (start_addr () <= addr && end_addr () > addr + len) + return ! errnum; ++# endif /* __PIC__ */ + #endif /* GRUB_UTIL */ + + if ((addr < RAW_ADDR (0x1000)) +@@ -1217,10 +1270,20 @@ + return ! errnum; + } + ++void ++grub_memcpy(void *dest, const void *src, int len) ++{ ++ int i; ++ register char *d = (char*)dest, *s = (char*)src; ++ ++ for (i = 0; i < len; i++) ++ d[i] = s[i]; ++} ++ + void * + grub_memmove (void *to, const void *from, int len) + { +- if (memcheck ((int) to, len)) ++ if (memcheck ((unsigned long) to, len)) + { + /* This assembly code is stolen from + linux-2.2.2/include/asm-i386/string.h. This is not very fast +@@ -1258,7 +1321,7 @@ + { + char *p = start; + +- if (memcheck ((int) start, len)) ++ if (memcheck ((unsigned long) start, len)) + { + while (len -- > 0) + *p ++ = c; +diff -Nur grub-0.97/stage2/char_io.c.orig grub-0.97-patched/stage2/char_io.c.orig +--- grub-0.97/stage2/char_io.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/char_io.c.orig 2005-02-01 21:51:23.000000000 +0100 +@@ -0,0 +1,1283 @@ ++/* char_io.c - basic console input and output */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 1999,2000,2001,2002,2004 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include ++#include ++ ++#ifdef SUPPORT_HERCULES ++# include ++#endif ++ ++#ifdef SUPPORT_SERIAL ++# include ++#endif ++ ++#ifndef STAGE1_5 ++struct term_entry term_table[] = ++ { ++ { ++ "console", ++ 0, ++ console_putchar, ++ console_checkkey, ++ console_getkey, ++ console_getxy, ++ console_gotoxy, ++ console_cls, ++ console_setcolorstate, ++ console_setcolor, ++ console_setcursor ++ }, ++#ifdef SUPPORT_SERIAL ++ { ++ "serial", ++ /* A serial device must be initialized. */ ++ TERM_NEED_INIT, ++ serial_putchar, ++ serial_checkkey, ++ serial_getkey, ++ serial_getxy, ++ serial_gotoxy, ++ serial_cls, ++ serial_setcolorstate, ++ 0, ++ 0 ++ }, ++#endif /* SUPPORT_SERIAL */ ++#ifdef SUPPORT_HERCULES ++ { ++ "hercules", ++ 0, ++ hercules_putchar, ++ console_checkkey, ++ console_getkey, ++ hercules_getxy, ++ hercules_gotoxy, ++ hercules_cls, ++ hercules_setcolorstate, ++ hercules_setcolor, ++ hercules_setcursor ++ }, ++#endif /* SUPPORT_HERCULES */ ++ /* This must be the last entry. */ ++ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ++ }; ++ ++/* This must be console. */ ++struct term_entry *current_term = term_table; ++ ++int max_lines = 24; ++int count_lines = -1; ++int use_pager = 1; ++#endif ++ ++void ++print_error (void) ++{ ++ if (errnum > ERR_NONE && errnum < MAX_ERR_NUM) ++#ifndef STAGE1_5 ++ /* printf("\7\n %s\n", err_list[errnum]); */ ++ printf ("\nError %u: %s\n", errnum, err_list[errnum]); ++#else /* STAGE1_5 */ ++ printf ("Error %u\n", errnum); ++#endif /* STAGE1_5 */ ++} ++ ++char * ++convert_to_ascii (char *buf, int c,...) ++{ ++ unsigned long num = *((&c) + 1), mult = 10; ++ char *ptr = buf; ++ ++#ifndef STAGE1_5 ++ if (c == 'x' || c == 'X') ++ mult = 16; ++ ++ if ((num & 0x80000000uL) && c == 'd') ++ { ++ num = (~num) + 1; ++ *(ptr++) = '-'; ++ buf++; ++ } ++#endif ++ ++ do ++ { ++ int dig = num % mult; ++ *(ptr++) = ((dig > 9) ? dig + 'a' - 10 : '0' + dig); ++ } ++ while (num /= mult); ++ ++ /* reorder to correct direction!! */ ++ { ++ char *ptr1 = ptr - 1; ++ char *ptr2 = buf; ++ while (ptr1 > ptr2) ++ { ++ int tmp = *ptr1; ++ *ptr1 = *ptr2; ++ *ptr2 = tmp; ++ ptr1--; ++ ptr2++; ++ } ++ } ++ ++ return ptr; ++} ++ ++void ++grub_putstr (const char *str) ++{ ++ while (*str) ++ grub_putchar (*str++); ++} ++ ++void ++grub_printf (const char *format,...) ++{ ++ int *dataptr = (int *) &format; ++ char c, str[16]; ++ ++ dataptr++; ++ ++ while ((c = *(format++)) != 0) ++ { ++ if (c != '%') ++ grub_putchar (c); ++ else ++ switch (c = *(format++)) ++ { ++#ifndef STAGE1_5 ++ case 'd': ++ case 'x': ++ case 'X': ++#endif ++ case 'u': ++ *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0; ++ grub_putstr (str); ++ break; ++ ++#ifndef STAGE1_5 ++ case 'c': ++ grub_putchar ((*(dataptr++)) & 0xff); ++ break; ++ ++ case 's': ++ grub_putstr ((char *) *(dataptr++)); ++ break; ++#endif ++ } ++ } ++} ++ ++#ifndef STAGE1_5 ++int ++grub_sprintf (char *buffer, const char *format, ...) ++{ ++ /* XXX hohmuth ++ ugly hack -- should unify with printf() */ ++ int *dataptr = (int *) &format; ++ char c, *ptr, str[16]; ++ char *bp = buffer; ++ ++ dataptr++; ++ ++ while ((c = *format++) != 0) ++ { ++ if (c != '%') ++ *bp++ = c; /* putchar(c); */ ++ else ++ switch (c = *(format++)) ++ { ++ case 'd': case 'u': case 'x': ++ *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0; ++ ++ ptr = str; ++ ++ while (*ptr) ++ *bp++ = *(ptr++); /* putchar(*(ptr++)); */ ++ break; ++ ++ case 'c': *bp++ = (*(dataptr++))&0xff; ++ /* putchar((*(dataptr++))&0xff); */ ++ break; ++ ++ case 's': ++ ptr = (char *) (*(dataptr++)); ++ ++ while ((c = *ptr++) != 0) ++ *bp++ = c; /* putchar(c); */ ++ break; ++ } ++ } ++ ++ *bp = 0; ++ return bp - buffer; ++} ++ ++ ++void ++init_page (void) ++{ ++ cls (); ++ ++ grub_printf ("\n GNU GRUB version %s (%dK lower / %dK upper memory)\n\n", ++ version_string, mbi.mem_lower, mbi.mem_upper); ++} ++ ++/* The number of the history entries. */ ++static int num_history = 0; ++ ++/* Get the NOth history. If NO is less than zero or greater than or ++ equal to NUM_HISTORY, return NULL. Otherwise return a valid string. */ ++static char * ++get_history (int no) ++{ ++ if (no < 0 || no >= num_history) ++ return 0; ++ ++ return (char *) HISTORY_BUF + MAX_CMDLINE * no; ++} ++ ++/* Add CMDLINE to the history buffer. */ ++static void ++add_history (const char *cmdline, int no) ++{ ++ grub_memmove ((char *) HISTORY_BUF + MAX_CMDLINE * (no + 1), ++ (char *) HISTORY_BUF + MAX_CMDLINE * no, ++ MAX_CMDLINE * (num_history - no)); ++ grub_strcpy ((char *) HISTORY_BUF + MAX_CMDLINE * no, cmdline); ++ if (num_history < HISTORY_SIZE) ++ num_history++; ++} ++ ++static int ++real_get_cmdline (char *prompt, char *cmdline, int maxlen, ++ int echo_char, int readline) ++{ ++ /* This is a rather complicated function. So explain the concept. ++ ++ A command-line consists of ``section''s. A section is a part of the ++ line which may be displayed on the screen, but a section is never ++ displayed with another section simultaneously. ++ ++ Each section is basically 77 or less characters, but the exception ++ is the first section, which is 78 or less characters, because the ++ starting point is special. See below. ++ ++ The first section contains a prompt and a command-line (or the ++ first part of a command-line when it is too long to be fit in the ++ screen). So, in the first section, the number of command-line ++ characters displayed is 78 minus the length of the prompt (or ++ less). If the command-line has more characters, `>' is put at the ++ position 78 (zero-origin), to inform the user of the hidden ++ characters. ++ ++ Other sections always have `<' at the first position, since there ++ is absolutely a section before each section. If there is a section ++ after another section, this section consists of 77 characters and ++ `>' at the last position. The last section has 77 or less ++ characters and doesn't have `>'. ++ ++ Each section other than the last shares some characters with the ++ previous section. This region is called ``margin''. If the cursor ++ is put at the magin which is shared by the first section and the ++ second, the first section is displayed. Otherwise, a displayed ++ section is switched to another section, only if the cursor is put ++ outside that section. */ ++ ++ /* XXX: These should be defined in shared.h, but I leave these here, ++ until this code is freezed. */ ++#define CMDLINE_WIDTH 78 ++#define CMDLINE_MARGIN 10 ++ ++ int xpos, lpos, c, section; ++ /* The length of PROMPT. */ ++ int plen; ++ /* The length of the command-line. */ ++ int llen; ++ /* The index for the history. */ ++ int history = -1; ++ /* The working buffer for the command-line. */ ++ char *buf = (char *) CMDLINE_BUF; ++ /* The kill buffer. */ ++ char *kill_buf = (char *) KILL_BUF; ++ ++ /* Nested function definitions for code simplicity. */ ++ ++ /* The forward declarations of nested functions are prefixed ++ with `auto'. */ ++ auto void cl_refresh (int full, int len); ++ auto void cl_backward (int count); ++ auto void cl_forward (int count); ++ auto void cl_insert (const char *str); ++ auto void cl_delete (int count); ++ auto void cl_init (void); ++ ++ /* Move the cursor backward. */ ++ void cl_backward (int count) ++ { ++ lpos -= count; ++ ++ /* If the cursor is in the first section, display the first section ++ instead of the second. */ ++ if (section == 1 && plen + lpos < CMDLINE_WIDTH) ++ cl_refresh (1, 0); ++ else if (xpos - count < 1) ++ cl_refresh (1, 0); ++ else ++ { ++ xpos -= count; ++ ++ if (current_term->flags & TERM_DUMB) ++ { ++ int i; ++ ++ for (i = 0; i < count; i++) ++ grub_putchar ('\b'); ++ } ++ else ++ gotoxy (xpos, getxy () & 0xFF); ++ } ++ } ++ ++ /* Move the cursor forward. */ ++ void cl_forward (int count) ++ { ++ lpos += count; ++ ++ /* If the cursor goes outside, scroll the screen to the right. */ ++ if (xpos + count >= CMDLINE_WIDTH) ++ cl_refresh (1, 0); ++ else ++ { ++ xpos += count; ++ ++ if (current_term->flags & TERM_DUMB) ++ { ++ int i; ++ ++ for (i = lpos - count; i < lpos; i++) ++ { ++ if (! echo_char) ++ grub_putchar (buf[i]); ++ else ++ grub_putchar (echo_char); ++ } ++ } ++ else ++ gotoxy (xpos, getxy () & 0xFF); ++ } ++ } ++ ++ /* Refresh the screen. If FULL is true, redraw the full line, otherwise, ++ only LEN characters from LPOS. */ ++ void cl_refresh (int full, int len) ++ { ++ int i; ++ int start; ++ int pos = xpos; ++ ++ if (full) ++ { ++ /* Recompute the section number. */ ++ if (lpos + plen < CMDLINE_WIDTH) ++ section = 0; ++ else ++ section = ((lpos + plen - CMDLINE_WIDTH) ++ / (CMDLINE_WIDTH - 1 - CMDLINE_MARGIN) + 1); ++ ++ /* From the start to the end. */ ++ len = CMDLINE_WIDTH; ++ pos = 0; ++ grub_putchar ('\r'); ++ ++ /* If SECTION is the first section, print the prompt, otherwise, ++ print `<'. */ ++ if (section == 0) ++ { ++ grub_printf ("%s", prompt); ++ len -= plen; ++ pos += plen; ++ } ++ else ++ { ++ grub_putchar ('<'); ++ len--; ++ pos++; ++ } ++ } ++ ++ /* Compute the index to start writing BUF and the resulting position ++ on the screen. */ ++ if (section == 0) ++ { ++ int offset = 0; ++ ++ if (! full) ++ offset = xpos - plen; ++ ++ start = 0; ++ xpos = lpos + plen; ++ start += offset; ++ } ++ else ++ { ++ int offset = 0; ++ ++ if (! full) ++ offset = xpos - 1; ++ ++ start = ((section - 1) * (CMDLINE_WIDTH - 1 - CMDLINE_MARGIN) ++ + CMDLINE_WIDTH - plen - CMDLINE_MARGIN); ++ xpos = lpos + 1 - start; ++ start += offset; ++ } ++ ++ /* Print BUF. If ECHO_CHAR is not zero, put it instead. */ ++ for (i = start; i < start + len && i < llen; i++) ++ { ++ if (! echo_char) ++ grub_putchar (buf[i]); ++ else ++ grub_putchar (echo_char); ++ ++ pos++; ++ } ++ ++ /* Fill up the rest of the line with spaces. */ ++ for (; i < start + len; i++) ++ { ++ grub_putchar (' '); ++ pos++; ++ } ++ ++ /* If the cursor is at the last position, put `>' or a space, ++ depending on if there are more characters in BUF. */ ++ if (pos == CMDLINE_WIDTH) ++ { ++ if (start + len < llen) ++ grub_putchar ('>'); ++ else ++ grub_putchar (' '); ++ ++ pos++; ++ } ++ ++ /* Back to XPOS. */ ++ if (current_term->flags & TERM_DUMB) ++ { ++ for (i = 0; i < pos - xpos; i++) ++ grub_putchar ('\b'); ++ } ++ else ++ gotoxy (xpos, getxy () & 0xFF); ++ } ++ ++ /* Initialize the command-line. */ ++ void cl_init (void) ++ { ++ /* Distinguish us from other lines and error messages! */ ++ grub_putchar ('\n'); ++ ++ /* Print full line and set position here. */ ++ cl_refresh (1, 0); ++ } ++ ++ /* Insert STR to BUF. */ ++ void cl_insert (const char *str) ++ { ++ int l = grub_strlen (str); ++ ++ if (llen + l < maxlen) ++ { ++ if (lpos == llen) ++ grub_memmove (buf + lpos, str, l + 1); ++ else ++ { ++ grub_memmove (buf + lpos + l, buf + lpos, llen - lpos + 1); ++ grub_memmove (buf + lpos, str, l); ++ } ++ ++ llen += l; ++ lpos += l; ++ if (xpos + l >= CMDLINE_WIDTH) ++ cl_refresh (1, 0); ++ else if (xpos + l + llen - lpos > CMDLINE_WIDTH) ++ cl_refresh (0, CMDLINE_WIDTH - xpos); ++ else ++ cl_refresh (0, l + llen - lpos); ++ } ++ } ++ ++ /* Delete COUNT characters in BUF. */ ++ void cl_delete (int count) ++ { ++ grub_memmove (buf + lpos, buf + lpos + count, llen - count + 1); ++ llen -= count; ++ ++ if (xpos + llen + count - lpos > CMDLINE_WIDTH) ++ cl_refresh (0, CMDLINE_WIDTH - xpos); ++ else ++ cl_refresh (0, llen + count - lpos); ++ } ++ ++ plen = grub_strlen (prompt); ++ llen = grub_strlen (cmdline); ++ ++ if (maxlen > MAX_CMDLINE) ++ { ++ maxlen = MAX_CMDLINE; ++ if (llen >= MAX_CMDLINE) ++ { ++ llen = MAX_CMDLINE - 1; ++ cmdline[MAX_CMDLINE] = 0; ++ } ++ } ++ lpos = llen; ++ grub_strcpy (buf, cmdline); ++ ++ cl_init (); ++ ++ while ((c = ASCII_CHAR (getkey ())) != '\n' && c != '\r') ++ { ++ /* If READLINE is non-zero, handle readline-like key bindings. */ ++ if (readline) ++ { ++ switch (c) ++ { ++ case 9: /* TAB lists completions */ ++ { ++ int i; ++ /* POS points to the first space after a command. */ ++ int pos = 0; ++ int ret; ++ char *completion_buffer = (char *) COMPLETION_BUF; ++ int equal_pos = -1; ++ int is_filename; ++ ++ /* Find the first word. */ ++ while (buf[pos] == ' ') ++ pos++; ++ while (buf[pos] && buf[pos] != '=' && buf[pos] != ' ') ++ pos++; ++ ++ is_filename = (lpos > pos); ++ ++ /* Find the position of the equal character after a ++ command, and replace it with a space. */ ++ for (i = pos; buf[i] && buf[i] != ' '; i++) ++ if (buf[i] == '=') ++ { ++ equal_pos = i; ++ buf[i] = ' '; ++ break; ++ } ++ ++ /* Find the position of the first character in this ++ word. */ ++ for (i = lpos; i > 0 && buf[i - 1] != ' '; i--) ++ ; ++ ++ /* Invalidate the cache, because the user may exchange ++ removable disks. */ ++ buf_drive = -1; ++ ++ /* Copy this word to COMPLETION_BUFFER and do the ++ completion. */ ++ grub_memmove (completion_buffer, buf + i, lpos - i); ++ completion_buffer[lpos - i] = 0; ++ ret = print_completions (is_filename, 1); ++ errnum = ERR_NONE; ++ ++ if (ret >= 0) ++ { ++ /* Found, so insert COMPLETION_BUFFER. */ ++ cl_insert (completion_buffer + lpos - i); ++ ++ if (ret > 0) ++ { ++ /* There are more than one candidates, so print ++ the list. */ ++ grub_putchar ('\n'); ++ print_completions (is_filename, 0); ++ errnum = ERR_NONE; ++ } ++ } ++ ++ /* Restore the command-line. */ ++ if (equal_pos >= 0) ++ buf[equal_pos] = '='; ++ ++ if (ret) ++ cl_init (); ++ } ++ break; ++ case 1: /* C-a go to beginning of line */ ++ cl_backward (lpos); ++ break; ++ case 5: /* C-e go to end of line */ ++ cl_forward (llen - lpos); ++ break; ++ case 6: /* C-f forward one character */ ++ if (lpos < llen) ++ cl_forward (1); ++ break; ++ case 2: /* C-b backward one character */ ++ if (lpos > 0) ++ cl_backward (1); ++ break; ++ case 21: /* C-u kill to beginning of line */ ++ if (lpos == 0) ++ break; ++ /* Copy the string being deleted to KILL_BUF. */ ++ grub_memmove (kill_buf, buf, lpos); ++ kill_buf[lpos] = 0; ++ { ++ /* XXX: Not very clever. */ ++ ++ int count = lpos; ++ ++ cl_backward (lpos); ++ cl_delete (count); ++ } ++ break; ++ case 11: /* C-k kill to end of line */ ++ if (lpos == llen) ++ break; ++ /* Copy the string being deleted to KILL_BUF. */ ++ grub_memmove (kill_buf, buf + lpos, llen - lpos + 1); ++ cl_delete (llen - lpos); ++ break; ++ case 25: /* C-y yank the kill buffer */ ++ cl_insert (kill_buf); ++ break; ++ case 16: /* C-p fetch the previous command */ ++ { ++ char *p; ++ ++ if (history < 0) ++ /* Save the working buffer. */ ++ grub_strcpy (cmdline, buf); ++ else if (grub_strcmp (get_history (history), buf) != 0) ++ /* If BUF is modified, add it into the history list. */ ++ add_history (buf, history); ++ ++ history++; ++ p = get_history (history); ++ if (! p) ++ { ++ history--; ++ break; ++ } ++ ++ grub_strcpy (buf, p); ++ llen = grub_strlen (buf); ++ lpos = llen; ++ cl_refresh (1, 0); ++ } ++ break; ++ case 14: /* C-n fetch the next command */ ++ { ++ char *p; ++ ++ if (history < 0) ++ { ++ break; ++ } ++ else if (grub_strcmp (get_history (history), buf) != 0) ++ /* If BUF is modified, add it into the history list. */ ++ add_history (buf, history); ++ ++ history--; ++ p = get_history (history); ++ if (! p) ++ p = cmdline; ++ ++ grub_strcpy (buf, p); ++ llen = grub_strlen (buf); ++ lpos = llen; ++ cl_refresh (1, 0); ++ } ++ break; ++ } ++ } ++ ++ /* ESC, C-d and C-h are always handled. Actually C-d is not ++ functional if READLINE is zero, as the cursor cannot go ++ backward, but that's ok. */ ++ switch (c) ++ { ++ case 27: /* ESC immediately return 1 */ ++ return 1; ++ case 4: /* C-d delete character under cursor */ ++ if (lpos == llen) ++ break; ++ cl_delete (1); ++ break; ++ case 8: /* C-h backspace */ ++# ifdef GRUB_UTIL ++ case 127: /* also backspace */ ++# endif ++ if (lpos > 0) ++ { ++ cl_backward (1); ++ cl_delete (1); ++ } ++ break; ++ default: /* insert printable character into line */ ++ if (c >= ' ' && c <= '~') ++ { ++ char str[2]; ++ ++ str[0] = c; ++ str[1] = 0; ++ cl_insert (str); ++ } ++ } ++ } ++ ++ grub_putchar ('\n'); ++ ++ /* If ECHO_CHAR is NUL, remove the leading spaces. */ ++ lpos = 0; ++ if (! echo_char) ++ while (buf[lpos] == ' ') ++ lpos++; ++ ++ /* Copy the working buffer to CMDLINE. */ ++ grub_memmove (cmdline, buf + lpos, llen - lpos + 1); ++ ++ /* If the readline-like feature is turned on and CMDLINE is not ++ empty, add it into the history list. */ ++ if (readline && lpos < llen) ++ add_history (cmdline, 0); ++ ++ return 0; ++} ++ ++/* Don't use this with a MAXLEN greater than 1600 or so! The problem ++ is that GET_CMDLINE depends on the everything fitting on the screen ++ at once. So, the whole screen is about 2000 characters, minus the ++ PROMPT, and space for error and status lines, etc. MAXLEN must be ++ at least 1, and PROMPT and CMDLINE must be valid strings (not NULL ++ or zero-length). ++ ++ If ECHO_CHAR is nonzero, echo it instead of the typed character. */ ++int ++get_cmdline (char *prompt, char *cmdline, int maxlen, ++ int echo_char, int readline) ++{ ++ int old_cursor; ++ int ret; ++ ++ old_cursor = setcursor (1); ++ ++ /* Because it is hard to deal with different conditions simultaneously, ++ less functional cases are handled here. Assume that TERM_NO_ECHO ++ implies TERM_NO_EDIT. */ ++ if (current_term->flags & (TERM_NO_ECHO | TERM_NO_EDIT)) ++ { ++ char *p = cmdline; ++ int c; ++ ++ /* Make sure that MAXLEN is not too large. */ ++ if (maxlen > MAX_CMDLINE) ++ maxlen = MAX_CMDLINE; ++ ++ /* Print only the prompt. The contents of CMDLINE is simply discarded, ++ even if it is not empty. */ ++ grub_printf ("%s", prompt); ++ ++ /* Gather characters until a newline is gotten. */ ++ while ((c = ASCII_CHAR (getkey ())) != '\n' && c != '\r') ++ { ++ /* Return immediately if ESC is pressed. */ ++ if (c == 27) ++ { ++ setcursor (old_cursor); ++ return 1; ++ } ++ ++ /* Printable characters are added into CMDLINE. */ ++ if (c >= ' ' && c <= '~') ++ { ++ if (! (current_term->flags & TERM_NO_ECHO)) ++ grub_putchar (c); ++ ++ /* Preceding space characters must be ignored. */ ++ if (c != ' ' || p != cmdline) ++ *p++ = c; ++ } ++ } ++ ++ *p = 0; ++ ++ if (! (current_term->flags & TERM_NO_ECHO)) ++ grub_putchar ('\n'); ++ ++ setcursor (old_cursor); ++ return 0; ++ } ++ ++ /* Complicated features are left to real_get_cmdline. */ ++ ret = real_get_cmdline (prompt, cmdline, maxlen, echo_char, readline); ++ setcursor (old_cursor); ++ return ret; ++} ++ ++int ++safe_parse_maxint (char **str_ptr, int *myint_ptr) ++{ ++ char *ptr = *str_ptr; ++ int myint = 0; ++ int mult = 10, found = 0; ++ ++ /* ++ * Is this a hex number? ++ */ ++ if (*ptr == '0' && tolower (*(ptr + 1)) == 'x') ++ { ++ ptr += 2; ++ mult = 16; ++ } ++ ++ while (1) ++ { ++ /* A bit tricky. This below makes use of the equivalence: ++ (A >= B && A <= C) <=> ((A - B) <= (C - B)) ++ when C > B and A is unsigned. */ ++ unsigned int digit; ++ ++ digit = tolower (*ptr) - '0'; ++ if (digit > 9) ++ { ++ digit -= 'a' - '0'; ++ if (mult == 10 || digit > 5) ++ break; ++ digit += 10; ++ } ++ ++ found = 1; ++ if (myint > ((MAXINT - digit) / mult)) ++ { ++ errnum = ERR_NUMBER_OVERFLOW; ++ return 0; ++ } ++ myint = (myint * mult) + digit; ++ ptr++; ++ } ++ ++ if (!found) ++ { ++ errnum = ERR_NUMBER_PARSING; ++ return 0; ++ } ++ ++ *str_ptr = ptr; ++ *myint_ptr = myint; ++ ++ return 1; ++} ++#endif /* STAGE1_5 */ ++ ++#if !defined(STAGE1_5) || defined(FSYS_FAT) ++int ++grub_tolower (int c) ++{ ++ if (c >= 'A' && c <= 'Z') ++ return (c + ('a' - 'A')); ++ ++ return c; ++} ++#endif /* ! STAGE1_5 || FSYS_FAT */ ++ ++int ++grub_isspace (int c) ++{ ++ switch (c) ++ { ++ case ' ': ++ case '\t': ++ case '\r': ++ case '\n': ++ return 1; ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ ++#if !defined(STAGE1_5) || defined(FSYS_ISO9660) ++int ++grub_memcmp (const char *s1, const char *s2, int n) ++{ ++ while (n) ++ { ++ if (*s1 < *s2) ++ return -1; ++ else if (*s1 > *s2) ++ return 1; ++ s1++; ++ s2++; ++ n--; ++ } ++ ++ return 0; ++} ++#endif /* ! STAGE1_5 || FSYS_ISO9660 */ ++ ++#ifndef STAGE1_5 ++int ++grub_strncat (char *s1, const char *s2, int n) ++{ ++ int i = -1; ++ ++ while (++i < n && s1[i] != 0); ++ ++ while (i < n && (s1[i++] = *(s2++)) != 0); ++ ++ s1[n - 1] = 0; ++ ++ if (i >= n) ++ return 0; ++ ++ s1[i] = 0; ++ ++ return 1; ++} ++#endif /* ! STAGE1_5 */ ++ ++/* XXX: This below is an evil hack. Certainly, we should change the ++ strategy to determine what should be defined and what shouldn't be ++ defined for each image. For example, it would be better to create ++ a static library supporting minimal standard C functions and link ++ each image with the library. Complicated things should be left to ++ computer, definitely. -okuji */ ++#if !defined(STAGE1_5) || defined(FSYS_VSTAFS) ++int ++grub_strcmp (const char *s1, const char *s2) ++{ ++ while (*s1 || *s2) ++ { ++ if (*s1 < *s2) ++ return -1; ++ else if (*s1 > *s2) ++ return 1; ++ s1 ++; ++ s2 ++; ++ } ++ ++ return 0; ++} ++#endif /* ! STAGE1_5 || FSYS_VSTAFS */ ++ ++#ifndef STAGE1_5 ++/* Wait for a keypress and return its code. */ ++int ++getkey (void) ++{ ++ return current_term->getkey (); ++} ++ ++/* Check if a key code is available. */ ++int ++checkkey (void) ++{ ++ return current_term->checkkey (); ++} ++#endif /* ! STAGE1_5 */ ++ ++/* Display an ASCII character. */ ++void ++grub_putchar (int c) ++{ ++ if (c == '\n') ++ grub_putchar ('\r'); ++#ifndef STAGE1_5 ++ else if (c == '\t' && current_term->getxy) ++ { ++ int n; ++ ++ n = 8 - ((current_term->getxy () >> 8) & 3); ++ while (n--) ++ grub_putchar (' '); ++ ++ return; ++ } ++#endif /* ! STAGE1_5 */ ++ ++#ifdef STAGE1_5 ++ ++ /* In Stage 1.5, only the normal console is supported. */ ++ console_putchar (c); ++ ++#else /* ! STAGE1_5 */ ++ ++ if (c == '\n') ++ { ++ /* Internal `more'-like feature. */ ++ if (count_lines >= 0) ++ { ++ count_lines++; ++ if (count_lines >= max_lines - 2) ++ { ++ int tmp; ++ ++ /* It's important to disable the feature temporarily, because ++ the following grub_printf call will print newlines. */ ++ count_lines = -1; ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); ++ ++ grub_printf ("\n[Hit return to continue]"); ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_NORMAL); ++ ++ do ++ { ++ tmp = ASCII_CHAR (getkey ()); ++ } ++ while (tmp != '\n' && tmp != '\r'); ++ grub_printf ("\r \r"); ++ ++ /* Restart to count lines. */ ++ count_lines = 0; ++ return; ++ } ++ } ++ } ++ ++ current_term->putchar (c); ++ ++#endif /* ! STAGE1_5 */ ++} ++ ++#ifndef STAGE1_5 ++void ++gotoxy (int x, int y) ++{ ++ current_term->gotoxy (x, y); ++} ++ ++int ++getxy (void) ++{ ++ return current_term->getxy (); ++} ++ ++void ++cls (void) ++{ ++ /* If the terminal is dumb, there is no way to clean the terminal. */ ++ if (current_term->flags & TERM_DUMB) ++ grub_putchar ('\n'); ++ else ++ current_term->cls (); ++} ++ ++int ++setcursor (int on) ++{ ++ if (current_term->setcursor) ++ return current_term->setcursor (on); ++ ++ return 1; ++} ++#endif /* ! STAGE1_5 */ ++ ++int ++substring (const char *s1, const char *s2) ++{ ++ while (*s1 == *s2) ++ { ++ /* The strings match exactly. */ ++ if (! *(s1++)) ++ return 0; ++ s2 ++; ++ } ++ ++ /* S1 is a substring of S2. */ ++ if (*s1 == 0) ++ return -1; ++ ++ /* S1 isn't a substring. */ ++ return 1; ++} ++ ++#ifndef STAGE1_5 ++/* Terminate the string STR with NUL. */ ++int ++nul_terminate (char *str) ++{ ++ int ch; ++ ++ while (*str && ! grub_isspace (*str)) ++ str++; ++ ++ ch = *str; ++ *str = 0; ++ return ch; ++} ++ ++char * ++grub_strstr (const char *s1, const char *s2) ++{ ++ while (*s1) ++ { ++ const char *ptr, *tmp; ++ ++ ptr = s1; ++ tmp = s2; ++ ++ while (*tmp && *ptr == *tmp) ++ ptr++, tmp++; ++ ++ if (tmp > s2 && ! *tmp) ++ return (char *) s1; ++ ++ s1++; ++ } ++ ++ return 0; ++} ++ ++int ++grub_strlen (const char *str) ++{ ++ int len = 0; ++ ++ while (*str++) ++ len++; ++ ++ return len; ++} ++#endif /* ! STAGE1_5 */ ++ ++int ++memcheck (int addr, int len) ++{ ++#ifdef GRUB_UTIL ++ auto int start_addr (void); ++ auto int end_addr (void); ++ ++ auto int start_addr (void) ++ { ++ int ret; ++# if defined(HAVE_START_SYMBOL) ++ asm volatile ("movl $start, %0" : "=a" (ret)); ++# elif defined(HAVE_USCORE_START_SYMBOL) ++ asm volatile ("movl $_start, %0" : "=a" (ret)); ++# endif ++ return ret; ++ } ++ ++ auto int end_addr (void) ++ { ++ int ret; ++# if defined(HAVE_END_SYMBOL) ++ asm volatile ("movl $end, %0" : "=a" (ret)); ++# elif defined(HAVE_USCORE_END_SYMBOL) ++ asm volatile ("movl $_end, %0" : "=a" (ret)); ++# endif ++ return ret; ++ } ++ ++ if (start_addr () <= addr && end_addr () > addr + len) ++ return ! errnum; ++#endif /* GRUB_UTIL */ ++ ++ if ((addr < RAW_ADDR (0x1000)) ++ || (addr < RAW_ADDR (0x100000) ++ && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len)) ++ || (addr >= RAW_ADDR (0x100000) ++ && RAW_ADDR (mbi.mem_upper * 1024) < ((addr - 0x100000) + len))) ++ errnum = ERR_WONT_FIT; ++ ++ return ! errnum; ++} ++ ++void * ++grub_memmove (void *to, const void *from, int len) ++{ ++ if (memcheck ((int) to, len)) ++ { ++ /* This assembly code is stolen from ++ linux-2.2.2/include/asm-i386/string.h. This is not very fast ++ but compact. */ ++ int d0, d1, d2; ++ ++ if (to < from) ++ { ++ asm volatile ("cld\n\t" ++ "rep\n\t" ++ "movsb" ++ : "=&c" (d0), "=&S" (d1), "=&D" (d2) ++ : "0" (len),"1" (from),"2" (to) ++ : "memory"); ++ } ++ else ++ { ++ asm volatile ("std\n\t" ++ "rep\n\t" ++ "movsb\n\t" ++ "cld" ++ : "=&c" (d0), "=&S" (d1), "=&D" (d2) ++ : "0" (len), ++ "1" (len - 1 + (const char *) from), ++ "2" (len - 1 + (char *) to) ++ : "memory"); ++ } ++ } ++ ++ return errnum ? NULL : to; ++} ++ ++void * ++grub_memset (void *start, int c, int len) ++{ ++ char *p = start; ++ ++ if (memcheck ((int) start, len)) ++ { ++ while (len -- > 0) ++ *p ++ = c; ++ } ++ ++ return errnum ? NULL : start; ++} ++ ++#ifndef STAGE1_5 ++char * ++grub_strcpy (char *dest, const char *src) ++{ ++ grub_memmove (dest, src, grub_strlen (src) + 1); ++ return dest; ++} ++#endif /* ! STAGE1_5 */ ++ ++#ifndef GRUB_UTIL ++# undef memcpy ++/* GCC emits references to memcpy() for struct copies etc. */ ++void *memcpy (void *dest, const void *src, int n) __attribute__ ((alias ("grub_memmove"))); ++#endif +diff -Nur grub-0.97/stage2/common.c grub-0.97-patched/stage2/common.c +--- grub-0.97/stage2/common.c 2004-03-27 17:25:44.000000000 +0100 ++++ grub-0.97-patched/stage2/common.c 2012-11-11 17:06:52.558085305 +0100 +@@ -142,7 +142,8 @@ + init_bios_info (void) + { + #ifndef STAGE1_5 +- unsigned long cont, memtmp, addr; ++ unsigned long memtmp, addr; ++ volatile unsigned long cont; + int drive; + #endif + +diff -Nur grub-0.97/stage2/disk_io.c grub-0.97-patched/stage2/disk_io.c +--- grub-0.97/stage2/disk_io.c 2004-05-23 18:35:24.000000000 +0200 ++++ grub-0.97-patched/stage2/disk_io.c 2012-11-11 17:07:12.740730013 +0100 +@@ -21,6 +21,7 @@ + + #include + #include ++#include + + #ifdef SUPPORT_NETBOOT + # define GRUB 1 +@@ -137,7 +138,7 @@ + } + + int +-rawread (int drive, int sector, int byte_offset, int byte_len, char *buf) ++rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf) + { + int slen, sectors_per_vtrack; + int sector_size_bits = log2 (buf_geom.sector_size); +@@ -261,7 +262,7 @@ + */ + if (disk_read_func) + { +- int sector_num = sector; ++ unsigned int sector_num = sector; + int length = buf_geom.sector_size - byte_offset; + if (length > size) + length = size; +@@ -291,7 +292,7 @@ + + + int +-devread (int sector, int byte_offset, int byte_len, char *buf) ++devread (unsigned int sector, int byte_offset, int byte_len, char *buf) + { + /* + * Check partition boundaries +@@ -330,7 +331,7 @@ + + #ifndef STAGE1_5 + int +-rawwrite (int drive, int sector, char *buf) ++rawwrite (int drive, unsigned int sector, char *buf) + { + if (sector == 0) + { +@@ -363,7 +364,7 @@ + } + + int +-devwrite (int sector, int sector_count, char *buf) ++devwrite (unsigned int sector, int sector_count, char *buf) + { + #if defined(GRUB_UTIL) && defined(__linux__) + if (current_partition != 0xFFFFFF +@@ -502,8 +503,8 @@ + set_partition_hidden_flag (int hidden) + { + unsigned long part = 0xFFFFFF; +- unsigned long start, len, offset, ext_offset; +- int entry, type; ++ unsigned long start, len, offset, ext_offset, gpt_offset; ++ int entry, type, gpt_count, gpt_size; + char mbr[512]; + + /* The drive must be a hard disk. */ +@@ -524,8 +525,15 @@ + /* Look for the partition. */ + while (next_partition (current_drive, 0xFFFFFF, &part, &type, + &start, &len, &offset, &entry, +- &ext_offset, mbr)) ++ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) + { ++ /* The partition may not be a GPT partition. */ ++ if (gpt_offset != 0) ++ { ++ errnum = ERR_BAD_ARGUMENT; ++ return 1; ++ } ++ + if (part == current_partition) + { + /* Found. */ +@@ -577,11 +585,14 @@ + unsigned long *partition, int *type, + unsigned long *start, unsigned long *len, + unsigned long *offset, int *entry, +- unsigned long *ext_offset, char *buf) ++ unsigned long *ext_offset, ++ unsigned long *gpt_offset, int *gpt_count, ++ int *gpt_size, char *buf) + { + /* Forward declarations. */ + auto int next_bsd_partition (void); + auto int next_pc_slice (void); ++ auto int next_gpt_slice(void); + + /* Get next BSD partition in current PC slice. */ + int next_bsd_partition (void) +@@ -666,6 +677,40 @@ + return 0; + } + ++ /* If this is a GPT partition table, read it as such. */ ++ if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT) ++ { ++ struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf; ++ ++ /* Read in the GPT Partition table header. */ ++ if (! rawread (drive, 1, 0, SECTOR_SIZE, buf)) ++ return 0; ++ ++ if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000) ++ { ++ /* Let gpt_offset point to the first entry in the GPT ++ partition table. This can also be used by callers of ++ next_partition to determine if a entry comes from a ++ GPT partition table or not. */ ++ *gpt_offset = hdr->partitions; ++ *gpt_count = hdr->maxpart; ++ *gpt_size = hdr->partentry_size; ++ ++ return next_gpt_slice(); ++ } ++ else ++ { ++ /* This is not a valid header for a GPT partition table. ++ Re-read the MBR or the boot sector of the extended ++ partition. */ ++ if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf)) ++ return 0; ++ } ++ } ++ ++ /* Not a GPT partition. */ ++ *gpt_offset = 0; ++ + /* Increase the entry number. */ + (*entry)++; + +@@ -710,6 +755,43 @@ + return 1; + } + ++ /* Get the next GPT slice. */ ++ int next_gpt_slice (void) ++ { ++ struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf; ++ /* Make GPT partitions show up as PC slices. */ ++ int pc_slice_no = (*partition & 0xFF0000) >> 16; ++ ++ /* If this is the first time... */ ++ if (pc_slice_no == 0xFF) ++ { ++ pc_slice_no = -1; ++ *entry = -1; ++ } ++ ++ do { ++ (*entry)++; ++ ++ if (*entry >= *gpt_count) ++ { ++ errnum = ERR_NO_PART; ++ return 0; ++ } ++ /* Read in the GPT Partition table entry. */ ++ if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (*gpt_size, *entry), GPT_ENTRY_INDEX (*gpt_size, *entry), *gpt_size, buf)) ++ return 0; ++ } while (! (gptentry->type1 && gptentry->type2)); ++ ++ pc_slice_no++; ++ *start = gptentry->start; ++ *len = gptentry->end - gptentry->start + 1; ++ *type = PC_SLICE_TYPE_EXT2FS; ++ *entry = pc_slice_no; ++ *partition = (*entry << 16) | 0xFFFF; ++ ++ return 1; ++ } ++ + /* Start the body of this function. */ + + #ifndef STAGE1_5 +@@ -717,6 +799,9 @@ + return 0; + #endif + ++ if (*partition != 0xFFFFFF && *gpt_offset != 0) ++ return next_gpt_slice (); ++ + /* If previous partition is a BSD partition or a PC slice which + contains BSD partitions... */ + if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff)) +@@ -746,6 +831,8 @@ + #ifndef STAGE1_5 + static unsigned long cur_part_offset; + static unsigned long cur_part_addr; ++static unsigned long cur_part_start; ++static int cur_part_entry; + #endif + + /* Open a partition. */ +@@ -755,6 +842,9 @@ + unsigned long dest_partition = current_partition; + unsigned long part_offset; + unsigned long ext_offset; ++ unsigned long gpt_offset; ++ int gpt_count; ++ int gpt_size; + int entry; + char buf[SECTOR_SIZE]; + int bsd_part, pc_slice; +@@ -766,7 +856,8 @@ + int ret = next_partition (current_drive, dest_partition, + ¤t_partition, ¤t_slice, + &part_start, &part_length, +- &part_offset, &entry, &ext_offset, buf); ++ &part_offset, &entry, &ext_offset, ++ &gpt_offset, &gpt_count, &gpt_size, buf); + bsd_part = (current_partition >> 8) & 0xFF; + pc_slice = current_partition >> 16; + return ret; +@@ -800,7 +891,12 @@ + + /* If this is the whole disk, return here. */ + if (! flags && current_partition == 0xFFFFFF) +- return 1; ++ { ++#ifndef STAGE1_5 ++ cur_part_offset = 0; ++#endif /* ! STAGE1_5 */ ++ return 1; ++ } + + if (flags) + dest_partition = 0xFFFFFF; +@@ -815,6 +911,8 @@ + + cur_part_offset = part_offset; + cur_part_addr = BOOT_PART_TABLE + (entry << 4); ++ cur_part_start = part_start; ++ cur_part_entry = entry; + #endif /* ! STAGE1_5 */ + + /* If this is a valid partition... */ +@@ -1142,6 +1240,7 @@ + src = (char *) SCRATCHADDR + BOOTSEC_PART_OFFSET; + while (dst < (char *) BOOT_PART_TABLE + BOOTSEC_PART_LENGTH) + *dst++ = *src++; ++ PC_SLICE_START (BOOT_PART_TABLE - PC_SLICE_OFFSET, cur_part_entry) = cur_part_start; + + /* Set the active flag of the booted partition. */ + for (i = 0; i < 4; i++) +diff -Nur grub-0.97/stage2/fsys_ext2fs.c grub-0.97-patched/stage2/fsys_ext2fs.c +--- grub-0.97/stage2/fsys_ext2fs.c 2004-08-08 20:19:18.000000000 +0200 ++++ grub-0.97-patched/stage2/fsys_ext2fs.c 2012-11-11 17:07:12.750730331 +0100 +@@ -41,6 +41,7 @@ + typedef unsigned short __u16; + typedef __signed__ int __s32; + typedef unsigned int __u32; ++typedef unsigned long long __u64; + + /* + * Constants relative to the data blocks, from ext2_fs.h +@@ -61,9 +62,9 @@ + __u32 s_free_inodes_count; /* Free inodes count */ + __u32 s_first_data_block; /* First Data Block */ + __u32 s_log_block_size; /* Block size */ +- __s32 s_log_frag_size; /* Fragment size */ ++ __s32 s_obso_log_frag_size; /* Obsoleted Fragment size */ + __u32 s_blocks_per_group; /* # Blocks per group */ +- __u32 s_frags_per_group; /* # Fragments per group */ ++ __u32 s_obso_frags_per_group; /* Obsoleted Fragments per group */ + __u32 s_inodes_per_group; /* # Inodes per group */ + __u32 s_mtime; /* Mount time */ + __u32 s_wtime; /* Write time */ +@@ -72,17 +73,62 @@ + __u16 s_magic; /* Magic signature */ + __u16 s_state; /* File system state */ + __u16 s_errors; /* Behaviour when detecting errors */ +- __u16 s_pad; ++ __u16 s_minor_rev_level; /* minor revision level */ + __u32 s_lastcheck; /* time of last check */ + __u32 s_checkinterval; /* max. time between checks */ + __u32 s_creator_os; /* OS */ + __u32 s_rev_level; /* Revision level */ + __u16 s_def_resuid; /* Default uid for reserved blocks */ + __u16 s_def_resgid; /* Default gid for reserved blocks */ +- __u32 s_reserved[235]; /* Padding to the end of the block */ ++ /* ++ * These fields are for EXT2_DYNAMIC_REV superblocks only. ++ * ++ * Note: the difference between the compatible feature set and ++ * the incompatible feature set is that if there is a bit set ++ * in the incompatible feature set that the kernel doesn't ++ * know about, it should refuse to mount the filesystem. ++ * ++ * e2fsck's requirements are more strict; if it doesn't know ++ * about a feature in either the compatible or incompatible ++ * feature set, it must abort and not try to meddle with ++ * things it doesn't understand... ++ */ ++ __u32 s_first_ino; /* First non-reserved inode */ ++ __u16 s_inode_size; /* size of inode structure */ ++ __u16 s_block_group_nr; /* block group # of this superblock */ ++ __u32 s_feature_compat; /* compatible feature set */ ++ __u32 s_feature_incompat; /* incompatible feature set */ ++ __u32 s_feature_ro_compat; /* readonly-compatible feature set */ ++ __u8 s_uuid[16]; /* 128-bit uuid for volume */ ++ char s_volume_name[16]; /* volume name */ ++ char s_last_mounted[64]; /* directory where last mounted */ ++ __u32 s_algorithm_usage_bitmap; /* For compression */ ++ /* ++ * Performance hints. Directory preallocation should only ++ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on. ++ */ ++ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/ ++ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ ++ __u16 s_reserved_gdt_blocks;/* Per group table for online growth */ ++ /* ++ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set. ++ */ ++ __u8 s_journal_uuid[16]; /* uuid of journal superblock */ ++ __u32 s_journal_inum; /* inode number of journal file */ ++ __u32 s_journal_dev; /* device number of journal file */ ++ __u32 s_last_orphan; /* start of list of inodes to delete */ ++ __u32 s_hash_seed[4]; /* HTREE hash seed */ ++ __u8 s_def_hash_version; /* Default hash version to use */ ++ __u8 s_jnl_backup_type; /* Default type of journal backup */ ++ __u16 s_desc_size; /* size of group descriptor */ ++ __u32 s_default_mount_opts; ++ __u32 s_first_meta_bg; /* First metablock group */ ++ __u32 s_mkfs_time; /* When the filesystem was created */ ++ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */ ++ __u32 s_reserved[172]; /* Padding to the end of the block */ + }; + +-struct ext2_group_desc ++struct ext4_group_desc + { + __u32 bg_block_bitmap; /* Blocks bitmap block */ + __u32 bg_inode_bitmap; /* Inodes bitmap block */ +@@ -90,8 +136,18 @@ + __u16 bg_free_blocks_count; /* Free blocks count */ + __u16 bg_free_inodes_count; /* Free inodes count */ + __u16 bg_used_dirs_count; /* Directories count */ +- __u16 bg_pad; +- __u32 bg_reserved[3]; ++ __u16 bg_flags; /* EXT4_BG_flags (INODE_UNINIT, etc) */ ++ __u32 bg_reserved[2]; /* Likely block/inode bitmap checksum */ ++ __u16 bg_itable_unused; /* Unused inodes count */ ++ __u16 bg_checksum; /* crc16(sb_uuid+group+desc) */ ++ __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */ ++ __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */ ++ __u32 bg_inode_table_hi; /* Inodes table block MSB */ ++ __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */ ++ __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */ ++ __u16 bg_used_dirs_count_hi; /* Directories count MSB */ ++ __u16 bg_itable_unused_hi; /* Unused inodes count MSB */ ++ __u32 bg_reserved2[3]; + }; + + struct ext2_inode +@@ -129,22 +185,22 @@ + __u32 i_block[EXT2_N_BLOCKS]; /* 40: Pointers to blocks */ + __u32 i_version; /* File version (for NFS) */ + __u32 i_file_acl; /* File ACL */ +- __u32 i_dir_acl; /* Directory ACL */ +- __u32 i_faddr; /* Fragment address */ ++ __u32 i_size_high; ++ __u32 i_obso_faddr; /* Obsoleted fragment address */ + union + { + struct + { +- __u8 l_i_frag; /* Fragment number */ +- __u8 l_i_fsize; /* Fragment size */ +- __u16 i_pad1; +- __u32 l_i_reserved2[2]; ++ __u16 l_i_blocks_high; /* were l_i_reserved1 */ ++ __u16 l_i_file_acl_high; ++ __u16 l_i_uid_high; /* these 2 fields */ ++ __u16 l_i_gid_high; /* were reserved2[0] */ ++ __u32 l_i_reserved2; + } + linux2; + struct + { +- __u8 h_i_frag; /* Fragment number */ +- __u8 h_i_fsize; /* Fragment size */ ++ __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ + __u16 h_i_mode_high; + __u16 h_i_uid_high; + __u16 h_i_gid_high; +@@ -153,16 +209,36 @@ + hurd2; + struct + { +- __u8 m_i_frag; /* Fragment number */ +- __u8 m_i_fsize; /* Fragment size */ +- __u16 m_pad1; ++ __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ ++ __u16 m_i_file_acl_high; + __u32 m_i_reserved2[2]; + } + masix2; + } + osd2; /* OS dependent 2 */ ++ __u16 i_extra_isize; ++ __u16 i_pad1; ++ __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */ ++ __u32 i_mtime_extra; /* extra Modification time(nsec << 2 | epoch) */ ++ __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */ ++ __u32 i_crtime; /* File Creation time */ ++ __u32 i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */ ++ __u32 i_version_hi; /* high 32 bits for 64-bit version */ + }; + ++#define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */ ++#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 /* grub not supported*/ ++#define EXT4_FEATURE_INCOMPAT_MMP 0x0100 ++#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 ++ ++#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask) \ ++ ( sb->s_feature_incompat & mask ) ++ ++#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */ ++#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */ ++ ++#define EXT4_MIN_DESC_SIZE 32 ++ + /* linux/limits.h */ + #define NAME_MAX 255 /* # chars in a file name */ + +@@ -180,6 +256,57 @@ + char name[EXT2_NAME_LEN]; /* File name */ + }; + ++/* linux/ext4_fs_extents.h */ ++/* This is the extent on-disk structure. ++ * It's used at the bottom of the tree. ++ */ ++struct ext4_extent ++ { ++ __u32 ee_block; /* first logical block extent covers */ ++ __u16 ee_len; /* number of blocks covered by extent */ ++ __u16 ee_start_hi; /* high 16 bits of physical block */ ++ __u32 ee_start_lo; /* low 32 bits of physical block */ ++ }; ++ ++/* ++ * This is index on-disk structure. ++ * It's used at all the levels except the bottom. ++ */ ++struct ext4_extent_idx ++ { ++ __u32 ei_block; /* index covers logical blocks from 'block' */ ++ __u32 ei_leaf_lo; /* pointer to the physical block of the next * ++ * level. leaf or next index could be there */ ++ __u16 ei_leaf_hi; /* high 16 bits of physical block */ ++ __u16 ei_unused; ++ }; ++ ++/* ++ * Each block (leaves and indexes), even inode-stored has header. ++ */ ++struct ext4_extent_header ++ { ++ __u16 eh_magic; /* probably will support different formats */ ++ __u16 eh_entries; /* number of valid entries */ ++ __u16 eh_max; /* capacity of store in entries */ ++ __u16 eh_depth; /* has tree real underlying blocks? */ ++ __u32 eh_generation; /* generation of the tree */ ++ }; ++ ++#define EXT4_EXT_MAGIC (0xf30a) ++#define EXT_FIRST_EXTENT(__hdr__) \ ++ ((struct ext4_extent *) (((char *) (__hdr__)) + \ ++ sizeof(struct ext4_extent_header))) ++#define EXT_FIRST_INDEX(__hdr__) \ ++ ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \ ++ sizeof(struct ext4_extent_header))) ++#define EXT_LAST_EXTENT(__hdr__) \ ++ (EXT_FIRST_EXTENT((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1) ++#define EXT_LAST_INDEX(__hdr__) \ ++ (EXT_FIRST_INDEX((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1) ++ ++ ++ + /* linux/ext2fs.h */ + /* + * EXT2_DIR_PAD defines the directory entries boundaries +@@ -218,13 +345,30 @@ + #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) + #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s))) + ++#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */ ++#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */ ++#define EXT2_GOOD_OLD_INODE_SIZE 128 ++#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \ ++ EXT2_GOOD_OLD_INODE_SIZE : \ ++ (s)->s_inode_size) ++#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s)) ++ + /* linux/ext2_fs.h */ + #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10) + /* kind of from ext2/super.c */ + #define EXT2_BLOCK_SIZE(s) (1 << EXT2_BLOCK_SIZE_BITS(s)) + /* linux/ext2fs.h */ ++/* sizeof(struct ext2_group_desc) is changed in ext4 ++ * in kernel code, ext2/3 uses sizeof(struct ext2_group_desc) to calculate ++ * number of desc per block, while ext4 uses superblock->s_desc_size in stead ++ * superblock->s_desc_size is not available in ext2/3 ++ * */ ++#define EXT2_DESC_SIZE(s) \ ++ (EXT4_HAS_INCOMPAT_FEATURE(s,EXT4_FEATURE_INCOMPAT_64BIT)? \ ++ s->s_desc_size : EXT4_MIN_DESC_SIZE) + #define EXT2_DESC_PER_BLOCK(s) \ +- (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc)) ++ (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s)) ++ + /* linux/stat.h */ + #define S_IFMT 00170000 + #define S_IFLNK 0120000 +@@ -386,6 +530,122 @@ + [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)]; + } + ++/* extent binary search index ++ * find closest index in the current level extent tree ++ * kind of from ext4_ext_binsearch_idx in ext4/extents.c ++ */ ++static struct ext4_extent_idx* ++ext4_ext_binsearch_idx(struct ext4_extent_header* eh, int logical_block) ++{ ++ struct ext4_extent_idx *r, *l, *m; ++ l = EXT_FIRST_INDEX(eh) + 1; ++ r = EXT_LAST_INDEX(eh); ++ while (l <= r) ++ { ++ m = l + (r - l) / 2; ++ if (logical_block < m->ei_block) ++ r = m - 1; ++ else ++ l = m + 1; ++ } ++ return (struct ext4_extent_idx*)(l - 1); ++} ++ ++/* extent binary search ++ * find closest extent in the leaf level ++ * kind of from ext4_ext_binsearch in ext4/extents.c ++ */ ++static struct ext4_extent* ++ext4_ext_binsearch(struct ext4_extent_header* eh, int logical_block) ++{ ++ struct ext4_extent *r, *l, *m; ++ l = EXT_FIRST_EXTENT(eh) + 1; ++ r = EXT_LAST_EXTENT(eh); ++ while (l <= r) ++ { ++ m = l + (r - l) / 2; ++ if (logical_block < m->ee_block) ++ r = m - 1; ++ else ++ l = m + 1; ++ } ++ return (struct ext4_extent*)(l - 1); ++} ++ ++/* Maps extents enabled logical block into physical block via an inode. ++ * EXT4_HUGE_FILE_FL should be checked before calling this. ++ */ ++static int ++ext4fs_block_map (int logical_block) ++{ ++ struct ext4_extent_header *eh; ++ struct ext4_extent *ex, *extent; ++ struct ext4_extent_idx *ei, *index; ++ int depth; ++ int i; ++ ++#ifdef E2DEBUG ++ unsigned char *i; ++ for (i = (unsigned char *) INODE; ++ i < ((unsigned char *) INODE + sizeof (struct ext2_inode)); ++ i++) ++ { ++ printf ("%c", "0123456789abcdef"[*i >> 4]); ++ printf ("%c", "0123456789abcdef"[*i % 16]); ++ if (!((i + 1 - (unsigned char *) INODE) % 16)) ++ { ++ printf ("\n"); ++ } ++ else ++ { ++ printf (" "); ++ } ++ } ++ printf ("logical block %d\n", logical_block); ++#endif /* E2DEBUG */ ++ eh = (struct ext4_extent_header*)INODE->i_block; ++ if (eh->eh_magic != EXT4_EXT_MAGIC) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ while((depth = eh->eh_depth) != 0) ++ { /* extent index */ ++ if (eh->eh_magic != EXT4_EXT_MAGIC) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ ei = ext4_ext_binsearch_idx(eh, logical_block); ++ if (ei->ei_leaf_hi) ++ {/* 64bit physical block number not supported */ ++ errnum = ERR_FILELENGTH; ++ return -1; ++ } ++ if (!ext2_rdfsb(ei->ei_leaf_lo, DATABLOCK1)) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ eh = (struct ext4_extent_header*)DATABLOCK1; ++ } ++ ++ /* depth==0, we come to the leaf */ ++ ex = ext4_ext_binsearch(eh, logical_block); ++ if (ex->ee_start_hi) ++ {/* 64bit physical block number not supported */ ++ errnum = ERR_FILELENGTH; ++ return -1; ++ } ++ if ((ex->ee_block + ex->ee_len) < logical_block) ++ { ++ errnum = ERR_FSYS_CORRUPT; ++ return -1; ++ } ++ return ex->ee_start_lo + logical_block - ex->ee_block; ++ ++} ++ + /* preconditions: all preconds of ext2fs_block_map */ + int + ext2fs_read (char *buf, int len) +@@ -420,6 +680,11 @@ + /* find the (logical) block component of our location */ + logical_block = filepos >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK); + offset = filepos & (EXT2_BLOCK_SIZE (SUPERBLOCK) - 1); ++ /* map extents enabled logical block number to physical fs on-dick block number */ ++ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) ++ && INODE->i_flags & EXT4_EXTENTS_FL) ++ map = ext4fs_block_map (logical_block); ++ else + map = ext2fs_block_map (logical_block); + #ifdef E2DEBUG + printf ("map=%d\n", map); +@@ -504,7 +769,7 @@ + int desc; /* index within that group */ + int ino_blk; /* fs pointer of the inode's information */ + int str_chk = 0; /* used to hold the results of a string compare */ +- struct ext2_group_desc *gdp; ++ struct ext4_group_desc *ext4_gdp; + struct ext2_inode *raw_inode; /* inode info corresponding to current_ino */ + + char linkbuf[PATH_MAX]; /* buffer for following symbolic links */ +@@ -550,10 +815,17 @@ + { + return 0; + } +- gdp = GROUP_DESC; +- ino_blk = gdp[desc].bg_inode_table + ++ ext4_gdp = (struct ext4_group_desc *)( (__u8*)GROUP_DESC + ++ desc * EXT2_DESC_SIZE(SUPERBLOCK)); ++ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK, EXT4_FEATURE_INCOMPAT_64BIT) ++ && (! ext4_gdp->bg_inode_table_hi)) ++ {/* 64bit itable not supported */ ++ errnum = ERR_FILELENGTH; ++ return -1; ++ } ++ ino_blk = ext4_gdp->bg_inode_table + + (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group)) +- >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode))); ++ >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK))); + #ifdef E2DEBUG + printf ("inode table fsblock=%d\n", ino_blk); + #endif /* E2DEBUG */ +@@ -565,13 +837,12 @@ + /* reset indirect blocks! */ + mapblock2 = mapblock1 = -1; + +- raw_inode = INODE + +- ((current_ino - 1) +- & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1)); ++ raw_inode = (struct ext2_inode *)((char *)INODE + ++ ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) * ++ EXT2_INODE_SIZE (SUPERBLOCK)); + #ifdef E2DEBUG + printf ("ipb=%d, sizeof(inode)=%d\n", +- (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)), +- sizeof (struct ext2_inode)); ++ EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK)); + printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode); + printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE); + for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode; +@@ -629,7 +900,10 @@ + } + linkbuf[filemax + len] = '\0'; + +- /* Read the symlink data. */ ++ /* Read the symlink data. ++ * Slow symlink is extents enabled ++ * But since grub_read invokes ext2fs_read, nothing to change here ++ * */ + if (! ext2_is_fast_symlink ()) + { + /* Read the necessary blocks, and reset the file pointer. */ +@@ -640,7 +914,9 @@ + } + else + { +- /* Copy the data directly from the inode. */ ++ /* Copy the data directly from the inode. ++ * Fast symlink is not extents enabled ++ * */ + len = filemax; + memmove (linkbuf, (char *) INODE->i_block, len); + } +@@ -674,6 +950,13 @@ + errnum = ERR_BAD_FILETYPE; + return 0; + } ++ /* if file is too large, just stop and report an error*/ ++ if ( (INODE->i_flags & EXT4_HUGE_FILE_FL) && !(INODE->i_size_high)) ++ { ++ /* file too large, stop reading */ ++ errnum = ERR_FILELENGTH; ++ return 0; ++ } + + filemax = (INODE->i_size); + return 1; +@@ -728,17 +1011,28 @@ + } + + /* else, find the (logical) block component of our location */ ++ /* ext4 logical block number the same as ext2/3 */ + blk = loc >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK); + + /* we know which logical block of the directory entry we are looking + for, now we have to translate that to the physical (fs) block on + the disk */ ++ /* map extents enabled logical block number to physical fs on-dick block number */ ++ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) ++ && INODE->i_flags & EXT4_EXTENTS_FL) ++ map = ext4fs_block_map (blk); ++ else + map = ext2fs_block_map (blk); + #ifdef E2DEBUG + printf ("fs block=%d\n", map); + #endif /* E2DEBUG */ + mapblock2 = -1; +- if ((map < 0) || !ext2_rdfsb (map, DATABLOCK2)) ++ if (map < 0) ++ { ++ *rest = ch; ++ return 0; ++ } ++ if (!ext2_rdfsb (map, DATABLOCK2)) + { + errnum = ERR_FSYS_CORRUPT; + *rest = ch; +diff -Nur grub-0.97/stage2/gpt.h grub-0.97-patched/stage2/gpt.h +--- grub-0.97/stage2/gpt.h 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/gpt.h 2012-11-11 17:07:12.697728638 +0100 +@@ -0,0 +1,68 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2005,2006 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef _GPT_H ++#define _GPT_H ++ ++typedef signed char grub_int8_t; ++typedef signed short grub_int16_t; ++typedef signed int grub_int32_t; ++typedef signed long long int grub_int64_t; ++typedef unsigned char grub_uint8_t; ++typedef unsigned short grub_uint16_t; ++typedef unsigned int grub_uint32_t; ++typedef unsigned long long int grub_uint64_t; ++ ++struct grub_gpt_header ++{ ++ grub_uint64_t magic; ++ grub_uint32_t version; ++ grub_uint32_t headersize; ++ grub_uint32_t crc32; ++ grub_uint32_t unused1; ++ grub_uint64_t primary; ++ grub_uint64_t backup; ++ grub_uint64_t start; ++ grub_uint64_t end; ++ grub_uint8_t guid[16]; ++ grub_uint64_t partitions; ++ grub_uint32_t maxpart; ++ grub_uint32_t partentry_size; ++ grub_uint32_t partentry_crc32; ++} __attribute__ ((packed)); ++ ++struct grub_gpt_partentry ++{ ++ grub_uint64_t type1; ++ grub_uint64_t type2; ++ grub_uint8_t guid[16]; ++ grub_uint64_t start; ++ grub_uint64_t end; ++ grub_uint8_t attrib; ++ char name[72]; ++} __attribute__ ((packed)); ++ ++#define GPT_HEADER_MAGIC 0x5452415020494645UL ++ ++#define GPT_ENTRY_SECTOR(size,entry) \ ++ ((((entry) * (size) + 1) & ~(SECTOR_SIZE - 1)) >> SECTOR_BITS) ++#define GPT_ENTRY_INDEX(size,entry) \ ++ ((((entry) * (size) + 1) & (SECTOR_SIZE - 1)) - 1) ++ ++#endif /* _GPT_H */ +diff -Nur grub-0.97/stage2/graphics.c grub-0.97-patched/stage2/graphics.c +--- grub-0.97/stage2/graphics.c 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/graphics.c 2012-11-11 17:06:33.320470847 +0100 +@@ -0,0 +1,563 @@ ++/* graphics.c - graphics mode support for GRUB */ ++/* Implemented as a terminal type by Jeremy Katz based ++ * on a patch by Paulo César Pereira de Andrade ++ */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2001,2002 Red Hat, Inc. ++ * Portions copyright (C) 2000 Conectiva, 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++ ++ ++#ifdef SUPPORT_GRAPHICS ++ ++#include ++#include ++#include ++ ++int saved_videomode; ++unsigned char *font8x16; ++ ++int graphics_inited = 0; ++static char splashimage[64]; ++ ++#define VSHADOW VSHADOW1 ++unsigned char VSHADOW1[38400]; ++unsigned char VSHADOW2[38400]; ++unsigned char VSHADOW4[38400]; ++unsigned char VSHADOW8[38400]; ++ ++/* constants to define the viewable area */ ++const int x0 = 0; ++const int x1 = 80; ++const int y0 = 0; ++const int y1 = 30; ++ ++/* text buffer has to be kept around so that we can write things as we ++ * scroll and the like */ ++unsigned short text[80 * 30]; ++ ++/* why do these have to be kept here? */ ++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0; ++ ++/* current position */ ++static int fontx = 0; ++static int fonty = 0; ++ ++/* global state so that we don't try to recursively scroll or cursor */ ++static int no_scroll = 0; ++ ++/* color state */ ++static int graphics_standard_color = A_NORMAL; ++static int graphics_normal_color = A_NORMAL; ++static int graphics_highlight_color = A_REVERSE; ++static int graphics_current_color = A_NORMAL; ++static color_state graphics_color_state = COLOR_STATE_STANDARD; ++ ++ ++/* graphics local functions */ ++static void graphics_setxy(int col, int row); ++static void graphics_scroll(); ++ ++/* FIXME: where do these really belong? */ ++static inline void outb(unsigned short port, unsigned char val) ++{ ++ __asm __volatile ("outb %0,%1"::"a" (val), "d" (port)); ++} ++ ++static void MapMask(int value) { ++ outb(0x3c4, 2); ++ outb(0x3c5, value); ++} ++ ++/* bit mask register */ ++static void BitMask(int value) { ++ outb(0x3ce, 8); ++ outb(0x3cf, value); ++} ++ ++ ++ ++/* Set the splash image */ ++void graphics_set_splash(char *splashfile) { ++ grub_strcpy(splashimage, splashfile); ++} ++ ++/* Get the current splash image */ ++char *graphics_get_splash(void) { ++ return splashimage; ++} ++ ++/* Initialize a vga16 graphics display with the palette based off of ++ * the image in splashimage. If the image doesn't exist, leave graphics ++ * mode. */ ++int graphics_init() ++{ ++ if(!grub_file_exists(splashimage)) { ++ return 0; ++ } ++ ++ if (!graphics_inited) { ++ saved_videomode = set_videomode(0x12); ++ } ++ ++ if (!read_image(splashimage)) { ++ set_videomode(saved_videomode); ++ grub_printf("failed to read image\n"); ++ return 0; ++ } ++ ++ font8x16 = (unsigned char*)graphics_get_font(); ++ ++ graphics_inited = 1; ++ ++ /* make sure that the highlight color is set correctly */ ++ graphics_highlight_color = ((graphics_normal_color >> 4) | ++ ((graphics_normal_color & 0xf) << 4)); ++ ++ return 1; ++} ++ ++/* Leave graphics mode */ ++void graphics_end(void) ++{ ++ if (graphics_inited) { ++ set_videomode(saved_videomode); ++ graphics_inited = 0; ++ } ++} ++ ++/* Print ch on the screen. Handle any needed scrolling or the like */ ++void graphics_putchar(int ch) { ++ ch &= 0xff; ++ ++ graphics_cursor(0); ++ ++ if (ch == '\n') { ++ if (fonty + 1 < y1) ++ graphics_setxy(fontx, fonty + 1); ++ else ++ graphics_scroll(); ++ graphics_cursor(1); ++ return; ++ } else if (ch == '\r') { ++ graphics_setxy(x0, fonty); ++ graphics_cursor(1); ++ return; ++ } ++ ++ graphics_cursor(0); ++ ++ text[fonty * 80 + fontx] = ch; ++ text[fonty * 80 + fontx] &= 0x00ff; ++ if (graphics_current_color & 0xf0) ++ text[fonty * 80 + fontx] |= 0x100; ++ ++ graphics_cursor(0); ++ ++ if ((fontx + 1) >= x1) { ++ graphics_setxy(x0, fonty); ++ if (fonty + 1 < y1) ++ graphics_setxy(x0, fonty + 1); ++ else ++ graphics_scroll(); ++ } else { ++ graphics_setxy(fontx + 1, fonty); ++ } ++ ++ graphics_cursor(1); ++} ++ ++/* get the current location of the cursor */ ++int graphics_getxy(void) { ++ return (fontx << 8) | fonty; ++} ++ ++void graphics_gotoxy(int x, int y) { ++ graphics_cursor(0); ++ ++ graphics_setxy(x, y); ++ ++ graphics_cursor(1); ++} ++ ++void graphics_cls(void) { ++ int i; ++ unsigned char *mem, *s1, *s2, *s4, *s8; ++ ++ graphics_cursor(0); ++ graphics_gotoxy(x0, y0); ++ ++ mem = (unsigned char*)VIDEOMEM; ++ s1 = (unsigned char*)VSHADOW1; ++ s2 = (unsigned char*)VSHADOW2; ++ s4 = (unsigned char*)VSHADOW4; ++ s8 = (unsigned char*)VSHADOW8; ++ ++ for (i = 0; i < 80 * 30; i++) ++ text[i] = ' '; ++ graphics_cursor(1); ++ ++ BitMask(0xff); ++ ++ /* plano 1 */ ++ MapMask(1); ++ grub_memcpy(mem, s1, 38400); ++ ++ /* plano 2 */ ++ MapMask(2); ++ grub_memcpy(mem, s2, 38400); ++ ++ /* plano 3 */ ++ MapMask(4); ++ grub_memcpy(mem, s4, 38400); ++ ++ /* plano 4 */ ++ MapMask(8); ++ grub_memcpy(mem, s8, 38400); ++ ++ MapMask(15); ++ ++} ++ ++void graphics_setcolorstate (color_state state) { ++ switch (state) { ++ case COLOR_STATE_STANDARD: ++ graphics_current_color = graphics_standard_color; ++ break; ++ case COLOR_STATE_NORMAL: ++ graphics_current_color = graphics_normal_color; ++ break; ++ case COLOR_STATE_HIGHLIGHT: ++ graphics_current_color = graphics_highlight_color; ++ break; ++ default: ++ graphics_current_color = graphics_standard_color; ++ break; ++ } ++ ++ graphics_color_state = state; ++} ++ ++void graphics_setcolor (int normal_color, int highlight_color) { ++ graphics_normal_color = normal_color; ++ graphics_highlight_color = highlight_color; ++ ++ graphics_setcolorstate (graphics_color_state); ++} ++ ++void graphics_setcursor (int on) { ++ /* FIXME: we don't have a cursor in graphics */ ++ return; ++} ++ ++/* Read in the splashscreen image and set the palette up appropriately. ++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and ++ * 640x480. */ ++int read_image(char *s) ++{ ++ char buf[32], pal[16]; ++ unsigned char c, base, mask, *s1, *s2, *s4, *s8; ++ unsigned i, len, idx, colors, x, y, width, height; ++ ++ if (!grub_open(s)) ++ return 0; ++ ++ /* read header */ ++ if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) { ++ grub_close(); ++ return 0; ++ } ++ ++ /* parse info */ ++ while (grub_read(&c, 1)) { ++ if (c == '"') ++ break; ++ } ++ ++ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++ ; ++ ++ i = 0; ++ width = c - '0'; ++ while (grub_read(&c, 1)) { ++ if (c >= '0' && c <= '9') ++ width = width * 10 + c - '0'; ++ else ++ break; ++ } ++ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++ ; ++ ++ height = c - '0'; ++ while (grub_read(&c, 1)) { ++ if (c >= '0' && c <= '9') ++ height = height * 10 + c - '0'; ++ else ++ break; ++ } ++ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) ++ ; ++ ++ colors = c - '0'; ++ while (grub_read(&c, 1)) { ++ if (c >= '0' && c <= '9') ++ colors = colors * 10 + c - '0'; ++ else ++ break; ++ } ++ ++ base = 0; ++ while (grub_read(&c, 1) && c != '"') ++ ; ++ ++ /* palette */ ++ for (i = 0, idx = 1; i < colors; i++) { ++ len = 0; ++ ++ while (grub_read(&c, 1) && c != '"') ++ ; ++ grub_read(&c, 1); /* char */ ++ base = c; ++ grub_read(buf, 4); /* \t c # */ ++ ++ while (grub_read(&c, 1) && c != '"') { ++ if (len < sizeof(buf)) ++ buf[len++] = c; ++ } ++ ++ if (len == 6 && idx < 15) { ++ int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2; ++ int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2; ++ int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2; ++ ++ pal[idx] = base; ++ graphics_set_palette(idx, r, g, b); ++ ++idx; ++ } ++ } ++ ++ x = y = len = 0; ++ ++ s1 = (unsigned char*)VSHADOW1; ++ s2 = (unsigned char*)VSHADOW2; ++ s4 = (unsigned char*)VSHADOW4; ++ s8 = (unsigned char*)VSHADOW8; ++ ++ for (i = 0; i < 38400; i++) ++ s1[i] = s2[i] = s4[i] = s8[i] = 0; ++ ++ /* parse xpm data */ ++ while (y < height) { ++ while (1) { ++ if (!grub_read(&c, 1)) { ++ grub_close(); ++ return 0; ++ } ++ if (c == '"') ++ break; ++ } ++ ++ while (grub_read(&c, 1) && c != '"') { ++ for (i = 1; i < 15; i++) ++ if (pal[i] == c) { ++ c = i; ++ break; ++ } ++ ++ mask = 0x80 >> (x & 7); ++ if (c & 1) ++ s1[len + (x >> 3)] |= mask; ++ if (c & 2) ++ s2[len + (x >> 3)] |= mask; ++ if (c & 4) ++ s4[len + (x >> 3)] |= mask; ++ if (c & 8) ++ s8[len + (x >> 3)] |= mask; ++ ++ if (++x >= 640) { ++ x = 0; ++ ++ if (y < 480) ++ len += 80; ++ ++y; ++ } ++ } ++ } ++ ++ grub_close(); ++ ++ graphics_set_palette(0, (background >> 16), (background >> 8) & 63, ++ background & 63); ++ graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, ++ foreground & 63); ++ graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, ++ border & 63); ++ ++ return 1; ++} ++ ++ ++/* Convert a character which is a hex digit to the appropriate integer */ ++int hex(int v) ++{ ++ if (v >= 'A' && v <= 'F') ++ return (v - 'A' + 10); ++ if (v >= 'a' && v <= 'f') ++ return (v - 'a' + 10); ++ return (v - '0'); ++} ++ ++ ++/* move the graphics cursor location to col, row */ ++static void graphics_setxy(int col, int row) { ++ if (col >= x0 && col < x1) { ++ fontx = col; ++ cursorX = col << 3; ++ } ++ if (row >= y0 && row < y1) { ++ fonty = row; ++ cursorY = row << 4; ++ } ++} ++ ++/* scroll the screen */ ++static void graphics_scroll() { ++ int i, j; ++ ++ /* we don't want to scroll recursively... that would be bad */ ++ if (no_scroll) ++ return; ++ no_scroll = 1; ++ ++ /* move everything up a line */ ++ for (j = y0 + 1; j < y1; j++) { ++ graphics_gotoxy(x0, j - 1); ++ for (i = x0; i < x1; i++) { ++ graphics_putchar(text[j * 80 + i]); ++ } ++ } ++ ++ /* last line should be blank */ ++ graphics_gotoxy(x0, y1 - 1); ++ for (i = x0; i < x1; i++) ++ graphics_putchar(' '); ++ graphics_setxy(x0, y1 - 1); ++ ++ no_scroll = 0; ++} ++ ++ ++void graphics_cursor(int set) { ++ unsigned char *pat, *mem, *ptr, chr[16 << 2]; ++ int i, ch, invert, offset; ++ ++ if (set && no_scroll) ++ return; ++ ++ offset = cursorY * 80 + fontx; ++ ch = text[fonty * 80 + fontx] & 0xff; ++ invert = (text[fonty * 80 + fontx] & 0xff00) != 0; ++ pat = font8x16 + (ch << 4); ++ ++ mem = (unsigned char*)VIDEOMEM + offset; ++ ++ if (!set) { ++ for (i = 0; i < 16; i++) { ++ unsigned char mask = pat[i]; ++ ++ if (!invert) { ++ chr[i ] = ((unsigned char*)VSHADOW1)[offset]; ++ chr[16 + i] = ((unsigned char*)VSHADOW2)[offset]; ++ chr[32 + i] = ((unsigned char*)VSHADOW4)[offset]; ++ chr[48 + i] = ((unsigned char*)VSHADOW8)[offset]; ++ ++ /* FIXME: if (shade) */ ++ if (1) { ++ if (ch == DISP_VERT || ch == DISP_LL || ++ ch == DISP_UR || ch == DISP_LR) { ++ unsigned char pmask = ~(pat[i] >> 1); ++ ++ chr[i ] &= pmask; ++ chr[16 + i] &= pmask; ++ chr[32 + i] &= pmask; ++ chr[48 + i] &= pmask; ++ } ++ if (i > 0 && ch != DISP_VERT) { ++ unsigned char pmask = ~(pat[i - 1] >> 1); ++ ++ chr[i ] &= pmask; ++ chr[16 + i] &= pmask; ++ chr[32 + i] &= pmask; ++ chr[48 + i] &= pmask; ++ if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) { ++ pmask = ~pat[i - 1]; ++ ++ chr[i ] &= pmask; ++ chr[16 + i] &= pmask; ++ chr[32 + i] &= pmask; ++ chr[48 + i] &= pmask; ++ } ++ } ++ } ++ chr[i ] |= mask; ++ chr[16 + i] |= mask; ++ chr[32 + i] |= mask; ++ chr[48 + i] |= mask; ++ ++ offset += 80; ++ } ++ else { ++ chr[i ] = mask; ++ chr[16 + i] = mask; ++ chr[32 + i] = mask; ++ chr[48 + i] = mask; ++ } ++ } ++ } ++ else { ++ MapMask(15); ++ ptr = mem; ++ for (i = 0; i < 16; i++, ptr += 80) { ++ cursorBuf[i] = pat[i]; ++ *ptr = ~pat[i]; ++ } ++ return; ++ } ++ ++ offset = 0; ++ for (i = 1; i < 16; i <<= 1, offset += 16) { ++ int j; ++ ++ MapMask(i); ++ ptr = mem; ++ for (j = 0; j < 16; j++, ptr += 80) ++ *ptr = chr[j + offset]; ++ } ++ ++ MapMask(15); ++} ++ ++int grub_file_exists(char *s) { ++ if (!grub_open(s)) ++ return 0; ++ grub_close(); ++ return 1; ++} ++ ++#endif /* SUPPORT_GRAPHICS */ +diff -Nur grub-0.97/stage2/graphics.h grub-0.97-patched/stage2/graphics.h +--- grub-0.97/stage2/graphics.h 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/graphics.h 2012-11-11 17:06:33.321470879 +0100 +@@ -0,0 +1,45 @@ ++/* graphics.h - graphics console interface */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef GRAPHICS_H ++#define GRAPHICS_H ++ ++/* magic constant */ ++#define VIDEOMEM 0xA0000 ++ ++/* function prototypes */ ++char *graphics_get_splash(void); ++ ++int read_image(char *s); ++void graphics_cursor(int set); ++ ++/* function prototypes for asm functions */ ++void * graphics_get_font(); ++void graphics_set_palette(int idx, int red, int green, int blue); ++void set_int1c_handler(); ++void unset_int1c_handler(); ++ ++/* Only to check for safe opening before we start */ ++int grub_file_exists(char *s); ++ ++extern short cursorX, cursorY; ++extern char cursorBuf[16]; ++ ++#endif /* GRAPHICS_H */ +diff -Nur grub-0.97/stage2/iso9660.h grub-0.97-patched/stage2/iso9660.h +--- grub-0.97/stage2/iso9660.h 2004-03-27 17:02:38.000000000 +0100 ++++ grub-0.97-patched/stage2/iso9660.h 2012-11-11 17:07:12.740730013 +0100 +@@ -73,11 +73,11 @@ + + typedef struct __iso_16bit { + u_int16_t l, b; +-} iso_16bit_t __attribute__ ((packed)); ++} iso_16bit_t; + + typedef struct __iso_32bit { + u_int32_t l, b; +-} iso_32bit_t __attribute__ ((packed)); ++} iso_32bit_t; + + typedef u_int8_t iso_date_t[7]; + +diff -Nur grub-0.97/stage2/Makefile.am grub-0.97-patched/stage2/Makefile.am +--- grub-0.97/stage2/Makefile.am 2005-02-02 21:37:35.000000000 +0100 ++++ grub-0.97-patched/stage2/Makefile.am 2012-11-11 17:07:12.747730236 +0100 +@@ -7,7 +7,7 @@ + fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ + imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ + nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ +- terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h ++ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h + EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) + + # For . +@@ -19,20 +19,20 @@ + disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ + fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ + fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ +- terminfo.c tparm.c +-libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ ++ terminfo.c tparm.c graphics.c ++libgrub_a_CFLAGS = $(GRUB_CFLAGS) -fno-stack-protector -I$(top_srcdir)/lib \ + -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ + -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ + -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ + -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 + + # Stage 2 and Stage 1.5's. +-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) ++stagedir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) + + EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec + + if DISKLESS_SUPPORT +-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++stage_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ + ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ + reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ + nbgrub pxegrub +@@ -43,7 +43,7 @@ + reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ + xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec + else +-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++stage_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ + ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ + reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 + noinst_DATA = pre_stage2 start start_eltorito +@@ -79,8 +79,14 @@ + HERCULES_FLAGS = + endif + +-STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ +- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) ++if GRAPHICS_SUPPORT ++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 ++else ++GRAPHICS_FLAGS = ++endif ++ ++STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-reorder-functions -fno-builtin -nostdinc \ ++ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) + + STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 + STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 +@@ -90,7 +96,8 @@ + cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ + fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ + fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ +- hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c ++ hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \ ++ graphics.c + pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) + pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) + pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) +@@ -105,7 +112,7 @@ + BUILT_SOURCES = stage2_size.h + endif + +-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) ++CLEANFILES = $(stage_DATA) $(noinst_DATA) $(BUILT_SOURCES) + + stage2_size.h: pre_stage2 + -rm -f stage2_size.h +diff -Nur grub-0.97/stage2/Makefile.am.orig grub-0.97-patched/stage2/Makefile.am.orig +--- grub-0.97/stage2/Makefile.am.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/Makefile.am.orig 2005-02-02 21:37:35.000000000 +0100 +@@ -0,0 +1,272 @@ ++# For test target. ++TESTS = size_test ++noinst_SCRIPTS = $(TESTS) ++ ++# For dist target. ++noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \ ++ fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ ++ imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ ++ nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ ++ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h ++EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) ++ ++# For . ++INCLUDES = -I$(top_srcdir)/stage1 ++ ++# The library for /sbin/grub. ++noinst_LIBRARIES = libgrub.a ++libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \ ++ disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ ++ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ ++ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ ++ terminfo.c tparm.c ++libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ ++ -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ ++ -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ ++ -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ ++ -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 ++ ++# Stage 2 and Stage 1.5's. ++pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) ++ ++EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec ++ ++if DISKLESS_SUPPORT ++pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ ++ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ ++ nbgrub pxegrub ++noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless ++noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ ++ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \ ++ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \ ++ reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ ++ xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec ++else ++pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ ++ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ ++ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 ++noinst_DATA = pre_stage2 start start_eltorito ++noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ ++ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \ ++ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \ ++ reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ ++ xfs_stage1_5.exec ++endif ++MOSTLYCLEANFILES = $(noinst_PROGRAMS) ++ ++PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 ++START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 ++NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 ++PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 ++START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 ++ ++if NETBOOT_SUPPORT ++NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1 ++else ++NETBOOT_FLAGS = ++endif ++ ++if SERIAL_SUPPORT ++SERIAL_FLAGS = -DSUPPORT_SERIAL=1 ++else ++SERIAL_FLAGS = ++endif ++ ++if HERCULES_SUPPORT ++HERCULES_FLAGS = -DSUPPORT_HERCULES=1 ++else ++HERCULES_FLAGS = ++endif ++ ++STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ ++ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) ++ ++STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 ++STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 ++ ++# For stage2 target. ++pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \ ++ cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ ++ fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ ++ fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ ++ hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c ++pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) ++pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) ++pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) ++ ++if NETBOOT_SUPPORT ++pre_stage2_exec_LDADD = ../netboot/libdrivers.a ++endif ++ ++if DISKLESS_SUPPORT ++BUILT_SOURCES = stage2_size.h diskless_size.h ++else ++BUILT_SOURCES = stage2_size.h ++endif ++ ++CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) ++ ++stage2_size.h: pre_stage2 ++ -rm -f stage2_size.h ++ set dummy `ls -l pre_stage2`; \ ++ echo "#define STAGE2_SIZE $$6" > stage2_size.h ++ ++start_exec_SOURCES = start.S ++start_exec_CCASFLAGS = $(STAGE2_COMPILE) ++start_exec_LDFLAGS = $(START_LINK) ++ ++# XXX: automake doesn't provide a way to specify dependencies for object ++# files explicitly, so we must write this by a general Makefile scheme. ++# If automake change the naming scheme for per-executable objects, this ++# will be broken. ++start_exec-start.$(OBJEXT): stage2_size.h ++ ++stage2: pre_stage2 start ++ -rm -f stage2 ++ cat start pre_stage2 > stage2 ++ ++start_eltorito_exec_SOURCES = start_eltorito.S ++start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE) ++start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK) ++ ++start_eltorito_exec-start.$(OBJEXT): stage2_size.h ++ ++stage2_eltorito: pre_stage2 start_eltorito ++ -rm -f stage2_eltorito ++ cat start_eltorito pre_stage2 > stage2_eltorito ++ ++# For e2fs_stage1_5 target. ++e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_ext2fs.c bios.c ++e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ ++ -DNO_BLOCK_FILES=1 ++e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ ++ -DNO_BLOCK_FILES=1 ++e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For fat_stage1_5 target. ++fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_fat.c bios.c ++fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ ++ -DNO_BLOCK_FILES=1 ++fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ ++ -DNO_BLOCK_FILES=1 ++fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For ffs_stage1_5 target. ++ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_ffs.c bios.c ++ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ ++ -DNO_BLOCK_FILES=1 ++ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ ++ -DNO_BLOCK_FILES=1 ++ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For ufs2_stage1_5 target. ++ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_ufs2.c bios.c ++ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ ++ -DNO_BLOCK_FILES=1 ++ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ ++ -DNO_BLOCK_FILES=1 ++ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For minix_stage1_5 target. ++minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ ++ stage1_5.c fsys_minix.c bios.c ++minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ ++ -DNO_BLOCK_FILES=1 ++minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ ++ -DNO_BLOCK_FILES=1 ++minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For reiserfs_stage1_5 target. ++reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_reiserfs.c bios.c ++reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ ++ -DNO_BLOCK_FILES=1 ++reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ ++ -DNO_BLOCK_FILES=1 ++reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For vstafs_stage1_5 target. ++vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_vstafs.c bios.c ++vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ ++ -DNO_BLOCK_FILES=1 ++vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ ++ -DNO_BLOCK_FILES=1 ++vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For jfs_stage1_5 target. ++jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_jfs.c bios.c ++jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ ++ -DNO_BLOCK_FILES=1 ++jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ ++ -DNO_BLOCK_FILES=1 ++jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For xfs_stage1_5 target. ++xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_xfs.c bios.c ++xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ ++ -DNO_BLOCK_FILES=1 ++xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ ++ -DNO_BLOCK_FILES=1 ++xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For iso9660_stage1_5 target. ++iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \ ++ disk_io.c stage1_5.c fsys_iso9660.c bios.c ++iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ ++ -DNO_BLOCK_FILES=1 ++iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ ++ -DNO_BLOCK_FILES=1 ++iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) ++ ++# For diskless target. ++diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES) ++diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ ++ -DSUPPORT_DISKLESS=1 ++diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ ++ -DSUPPORT_DISKLESS=1 ++diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK) ++diskless_exec_LDADD = ../netboot/libdrivers.a ++ ++diskless_size.h: diskless ++ -rm -f $@ ++ set dummy `ls -l $^`; \ ++ echo "#define DISKLESS_SIZE $$6" > $@ ++ ++# For nbloader target. ++nbloader_exec_SOURCES = nbloader.S ++nbloader_exec_CCASFLAGS = $(STAGE2_COMPILE) ++nbloader_exec_LDFLAGS = $(NBLOADER_LINK) ++ ++# XXX: See the comment for start_exec-start.o. ++nbloader_exec-nbloader.$(OBJEXT): diskless_size.h ++ ++# For nbgrub target. ++nbgrub: nbloader diskless ++ -rm -f $@ ++ cat $^ > $@ ++ ++# For pxeloader target. ++pxeloader_exec_SOURCES = pxeloader.S ++pxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE) ++pxeloader_exec_LDFLAGS = $(PXELOADER_LINK) ++ ++# XXX: See the comment for start_exec-start.o. ++pxeloader_exec-pxeloader.$(OBJEXT): diskless_size.h ++ ++# For pxegrub target. ++pxegrub: pxeloader diskless ++ -rm -f $@ ++ cat $^ > $@ ++ ++# General rule for making a raw binary. ++SUFFIXES = .exec ++.exec: ++ $(OBJCOPY) -O binary $< $@ +diff -Nur grub-0.97/stage2/pc_slice.h grub-0.97-patched/stage2/pc_slice.h +--- grub-0.97/stage2/pc_slice.h 2003-07-09 13:45:53.000000000 +0200 ++++ grub-0.97-patched/stage2/pc_slice.h 2012-11-11 17:07:12.698728671 +0100 +@@ -115,6 +115,7 @@ + #define PC_SLICE_TYPE_LINUX_EXTENDED 0x85 + #define PC_SLICE_TYPE_VSTAFS 0x9e + #define PC_SLICE_TYPE_DELL_UTIL 0xde ++#define PC_SLICE_TYPE_GPT 0xee + #define PC_SLICE_TYPE_LINUX_RAID 0xfd + + +diff -Nur grub-0.97/stage2/shared.h grub-0.97-patched/stage2/shared.h +--- grub-0.97/stage2/shared.h 2004-06-19 18:40:09.000000000 +0200 ++++ grub-0.97-patched/stage2/shared.h 2012-11-11 17:07:12.741730044 +0100 +@@ -36,8 +36,8 @@ + + /* Maybe redirect memory requests through grub_scratch_mem. */ + #ifdef GRUB_UTIL +-extern char *grub_scratch_mem; +-# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem) ++extern void *grub_scratch_mem; ++# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem) + # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4) + #else + # define RAW_ADDR(x) (x) +@@ -161,7 +161,9 @@ + + #define LINUX_CL_OFFSET 0x9000 + #define LINUX_CL_END_OFFSET 0x90FF +-#define LINUX_SETUP_MOVE_SIZE 0x9100 ++#define LINUX_CL_0202_PRM_OFFSET 0x9500 ++#define LINUX_CL_0202_PRM_END_OFFSET 0x9FFF ++#define LINUX_SETUP_MOVE_SIZE 0xA000 + #define LINUX_CL_MAGIC 0xA33F + + /* +@@ -499,7 +501,11 @@ + unsigned char linear_reserved_field_position; + unsigned long max_pixel_clock; + +- unsigned char reserved3[189]; ++ /* Reserved field to make structure to be 256 bytes long, VESA BIOS ++ Extension 3.0 Specification says to reserve 189 bytes here but ++ that doesn't make structure to be 256 bytes. So additional one is ++ added here. */ ++ unsigned char reserved3[189 + 1]; + } __attribute__ ((packed)); + + +@@ -807,7 +813,7 @@ + /* Low-level disk I/O */ + int get_diskinfo (int drive, struct geometry *geometry); + int biosdisk (int subfunc, int drive, struct geometry *geometry, +- int sector, int nsec, int segment); ++ unsigned int sector, int nsec, int segment); + void stop_floppy (void); + + /* Command-line interface functions. */ +@@ -871,6 +877,7 @@ + int grub_tolower (int c); + int grub_isspace (int c); + int grub_strncat (char *s1, const char *s2, int n); ++void grub_memcpy(void *dest, const void *src, int len); + void *grub_memmove (void *to, const void *from, int len); + void *grub_memset (void *start, int c, int len); + int grub_strncat (char *s1, const char *s2, int n); +@@ -911,7 +918,7 @@ + int nul_terminate (char *str); + int get_based_digit (int c, int base); + int safe_parse_maxint (char **str_ptr, int *myint_ptr); +-int memcheck (int start, int len); ++int memcheck (unsigned long start, unsigned long len); + void grub_putstr (const char *str); + + #ifndef NO_DECOMPRESSION +@@ -920,10 +927,10 @@ + int gunzip_read (char *buf, int len); + #endif /* NO_DECOMPRESSION */ + +-int rawread (int drive, int sector, int byte_offset, int byte_len, char *buf); +-int devread (int sector, int byte_offset, int byte_len, char *buf); +-int rawwrite (int drive, int sector, char *buf); +-int devwrite (int sector, int sector_len, char *buf); ++int rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf); ++int devread (unsigned int sector, int byte_offset, int byte_len, char *buf); ++int rawwrite (int drive, unsigned int sector, char *buf); ++int devwrite (unsigned int sector, int sector_len, char *buf); + + /* Parse a device string and initialize the global parameters. */ + char *set_device (char *device); +@@ -934,7 +941,9 @@ + unsigned long *partition, int *type, + unsigned long *start, unsigned long *len, + unsigned long *offset, int *entry, +- unsigned long *ext_offset, char *buf); ++ unsigned long *ext_offset, ++ unsigned long *gpt_offset, int *gpt_count, ++ int *gpt_size, char *buf); + + /* Sets device to the one represented by the SAVED_* parameters. */ + int make_saved_active (void); +diff -Nur grub-0.97/stage2/size_test grub-0.97-patched/stage2/size_test +--- grub-0.97/stage2/size_test 2004-05-14 21:30:52.000000000 +0200 ++++ grub-0.97-patched/stage2/size_test 2012-11-11 17:06:52.554085177 +0100 +@@ -36,9 +36,9 @@ + } + + # The bootloader area of a FFS partition is 14 sectors. +-check ffs_stage1_5 7168 +- +-check ufs2_stage1_5 7168 ++#check ffs_stage1_5 7168 ++# ++#check ufs2_stage1_5 7168 + + # Stage 1.5 can be installed in the sectors immediately after MBR in the + # first cylinder, so the size is (63 - 1) sectors. +diff -Nur grub-0.97/stage2/stage2.c grub-0.97-patched/stage2/stage2.c +--- grub-0.97/stage2/stage2.c 2005-03-19 18:51:57.000000000 +0100 ++++ grub-0.97-patched/stage2/stage2.c 2012-11-11 17:07:12.742730076 +0100 +@@ -233,6 +233,7 @@ + { + int c, time1, time2 = -1, first_entry = 0; + char *cur_entry = 0; ++ struct term_entry *prev_term = NULL; + + /* + * Main loop for menu UI. +@@ -651,7 +652,10 @@ + *(new_heap++) = 0; + + if (config_entries) +- run_menu (heap, NULL, new_num_entries, new_heap, 0); ++ { ++ current_entryno = first_entry + entryno; ++ run_menu (heap, NULL, new_num_entries, new_heap, 0); ++ } + else + { + cls (); +@@ -714,6 +718,15 @@ + + cls (); + setcursor (1); ++ /* if our terminal needed initialization, we should shut it down ++ * before booting the kernel, but we want to save what it was so ++ * we can come back if needed */ ++ prev_term = current_term; ++ if (current_term->shutdown) ++ { ++ (*current_term->shutdown)(); ++ current_term = term_table; /* assumption: console is first */ ++ } + + while (1) + { +@@ -727,7 +740,8 @@ + cur_entry = get_entry (config_entries, first_entry + entryno, 1); + + /* Set CURRENT_ENTRYNO for the command "savedefault". */ +- current_entryno = first_entry + entryno; ++ if (config_entries) ++ current_entryno = first_entry + entryno; + + if (run_script (cur_entry, heap)) + { +@@ -748,6 +762,13 @@ + break; + } + ++ /* if we get back here, we should go back to what our term was before */ ++ current_term = prev_term; ++ if (current_term->startup) ++ /* if our terminal fails to initialize, fall back to console since ++ * it should always work */ ++ if ((*current_term->startup)() == 0) ++ current_term = term_table; /* we know that console is first */ + show_menu = 1; + goto restart; + } +@@ -1050,6 +1071,10 @@ + while (is_preset); + } + ++ /* go ahead and make sure the terminal is setup */ ++ if (current_term->startup) ++ (*current_term->startup)(); ++ + if (! num_entries) + { + /* If no acceptable config file, goto command-line, starting +diff -Nur grub-0.97/stage2/stage2.c.orig grub-0.97-patched/stage2/stage2.c.orig +--- grub-0.97/stage2/stage2.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/stage2/stage2.c.orig 2005-03-19 18:51:57.000000000 +0100 +@@ -0,0 +1,1067 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2000,2001,2002,2004,2005 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 2 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, write to the Free Software ++ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include ++#include ++ ++grub_jmp_buf restart_env; ++ ++#if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS) ++ ++# if defined(PRESET_MENU_STRING) ++static const char *preset_menu = PRESET_MENU_STRING; ++# elif defined(SUPPORT_DISKLESS) ++/* Execute the command "bootp" automatically. */ ++static const char *preset_menu = "bootp\n"; ++# endif /* SUPPORT_DISKLESS */ ++ ++static int preset_menu_offset; ++ ++static int ++open_preset_menu (void) ++{ ++#ifdef GRUB_UTIL ++ /* Unless the user explicitly requests to use the preset menu, ++ always opening the preset menu fails in the grub shell. */ ++ if (! use_preset_menu) ++ return 0; ++#endif /* GRUB_UTIL */ ++ ++ preset_menu_offset = 0; ++ return preset_menu != 0; ++} ++ ++static int ++read_from_preset_menu (char *buf, int maxlen) ++{ ++ int len = grub_strlen (preset_menu + preset_menu_offset); ++ ++ if (len > maxlen) ++ len = maxlen; ++ ++ grub_memmove (buf, preset_menu + preset_menu_offset, len); ++ preset_menu_offset += len; ++ ++ return len; ++} ++ ++static void ++close_preset_menu (void) ++{ ++ /* Disable the preset menu. */ ++ preset_menu = 0; ++} ++ ++#else /* ! PRESET_MENU_STRING && ! SUPPORT_DISKLESS */ ++ ++#define open_preset_menu() 0 ++#define read_from_preset_menu(buf, maxlen) 0 ++#define close_preset_menu() ++ ++#endif /* ! PRESET_MENU_STRING && ! SUPPORT_DISKLESS */ ++ ++static char * ++get_entry (char *list, int num, int nested) ++{ ++ int i; ++ ++ for (i = 0; i < num; i++) ++ { ++ do ++ { ++ while (*(list++)); ++ } ++ while (nested && *(list++)); ++ } ++ ++ return list; ++} ++ ++/* Print an entry in a line of the menu box. */ ++static void ++print_entry (int y, int highlight, char *entry) ++{ ++ int x; ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_NORMAL); ++ ++ if (highlight && current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); ++ ++ gotoxy (2, y); ++ grub_putchar (' '); ++ for (x = 3; x < 75; x++) ++ { ++ if (*entry && x <= 72) ++ { ++ if (x == 72) ++ grub_putchar (DISP_RIGHT); ++ else ++ grub_putchar (*entry++); ++ } ++ else ++ grub_putchar (' '); ++ } ++ gotoxy (74, y); ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_STANDARD); ++} ++ ++/* Print entries in the menu box. */ ++static void ++print_entries (int y, int size, int first, int entryno, char *menu_entries) ++{ ++ int i; ++ ++ gotoxy (77, y + 1); ++ ++ if (first) ++ grub_putchar (DISP_UP); ++ else ++ grub_putchar (' '); ++ ++ menu_entries = get_entry (menu_entries, first, 0); ++ ++ for (i = 0; i < size; i++) ++ { ++ print_entry (y + i + 1, entryno == i, menu_entries); ++ ++ while (*menu_entries) ++ menu_entries++; ++ ++ if (*(menu_entries - 1)) ++ menu_entries++; ++ } ++ ++ gotoxy (77, y + size); ++ ++ if (*menu_entries) ++ grub_putchar (DISP_DOWN); ++ else ++ grub_putchar (' '); ++ ++ gotoxy (74, y + entryno + 1); ++} ++ ++static void ++print_entries_raw (int size, int first, char *menu_entries) ++{ ++ int i; ++ ++#define LINE_LENGTH 67 ++ ++ for (i = 0; i < LINE_LENGTH; i++) ++ grub_putchar ('-'); ++ grub_putchar ('\n'); ++ ++ for (i = first; i < size; i++) ++ { ++ /* grub's printf can't %02d so ... */ ++ if (i < 10) ++ grub_putchar (' '); ++ grub_printf ("%d: %s\n", i, get_entry (menu_entries, i, 0)); ++ } ++ ++ for (i = 0; i < LINE_LENGTH; i++) ++ grub_putchar ('-'); ++ grub_putchar ('\n'); ++ ++#undef LINE_LENGTH ++} ++ ++ ++static void ++print_border (int y, int size) ++{ ++ int i; ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_NORMAL); ++ ++ gotoxy (1, y); ++ ++ grub_putchar (DISP_UL); ++ for (i = 0; i < 73; i++) ++ grub_putchar (DISP_HORIZ); ++ grub_putchar (DISP_UR); ++ ++ i = 1; ++ while (1) ++ { ++ gotoxy (1, y + i); ++ ++ if (i > size) ++ break; ++ ++ grub_putchar (DISP_VERT); ++ gotoxy (75, y + i); ++ grub_putchar (DISP_VERT); ++ ++ i++; ++ } ++ ++ grub_putchar (DISP_LL); ++ for (i = 0; i < 73; i++) ++ grub_putchar (DISP_HORIZ); ++ grub_putchar (DISP_LR); ++ ++ if (current_term->setcolorstate) ++ current_term->setcolorstate (COLOR_STATE_STANDARD); ++} ++ ++static void ++run_menu (char *menu_entries, char *config_entries, int num_entries, ++ char *heap, int entryno) ++{ ++ int c, time1, time2 = -1, first_entry = 0; ++ char *cur_entry = 0; ++ ++ /* ++ * Main loop for menu UI. ++ */ ++ ++restart: ++ /* Dumb terminal always use all entries for display ++ invariant for TERM_DUMB: first_entry == 0 */ ++ if (! (current_term->flags & TERM_DUMB)) ++ { ++ while (entryno > 11) ++ { ++ first_entry++; ++ entryno--; ++ } ++ } ++ ++ /* If the timeout was expired or wasn't set, force to show the menu ++ interface. */ ++ if (grub_timeout < 0) ++ show_menu = 1; ++ ++ /* If SHOW_MENU is false, don't display the menu until ESC is pressed. */ ++ if (! show_menu) ++ { ++ /* Get current time. */ ++ while ((time1 = getrtsecs ()) == 0xFF) ++ ; ++ ++ while (1) ++ { ++ /* Check if ESC is pressed. */ ++ if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e') ++ { ++ grub_timeout = -1; ++ show_menu = 1; ++ break; ++ } ++ ++ /* If GRUB_TIMEOUT is expired, boot the default entry. */ ++ if (grub_timeout >=0 ++ && (time1 = getrtsecs ()) != time2 ++ && time1 != 0xFF) ++ { ++ if (grub_timeout <= 0) ++ { ++ grub_timeout = -1; ++ goto boot_entry; ++ } ++ ++ time2 = time1; ++ grub_timeout--; ++ ++ /* Print a message. */ ++ grub_printf ("\rPress `ESC' to enter the menu... %d ", ++ grub_timeout); ++ } ++ } ++ } ++ ++ /* Only display the menu if the user wants to see it. */ ++ if (show_menu) ++ { ++ init_page (); ++ setcursor (0); ++ ++ if (current_term->flags & TERM_DUMB) ++ print_entries_raw (num_entries, first_entry, menu_entries); ++ else ++ print_border (3, 12); ++ ++ grub_printf ("\n\ ++ Use the %c and %c keys to select which entry is highlighted.\n", ++ DISP_UP, DISP_DOWN); ++ ++ if (! auth && password) ++ { ++ printf ("\ ++ Press enter to boot the selected OS or \'p\' to enter a\n\ ++ password to unlock the next set of features."); ++ } ++ else ++ { ++ if (config_entries) ++ printf ("\ ++ Press enter to boot the selected OS, \'e\' to edit the\n\ ++ commands before booting, or \'c\' for a command-line."); ++ else ++ printf ("\ ++ Press \'b\' to boot, \'e\' to edit the selected command in the\n\ ++ boot sequence, \'c\' for a command-line, \'o\' to open a new line\n\ ++ after (\'O\' for before) the selected line, \'d\' to remove the\n\ ++ selected line, or escape to go back to the main menu."); ++ } ++ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\n\nThe selected entry is %d ", entryno); ++ else ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ ++ /* XX using RT clock now, need to initialize value */ ++ while ((time1 = getrtsecs()) == 0xFF); ++ ++ while (1) ++ { ++ /* Initialize to NULL just in case... */ ++ cur_entry = NULL; ++ ++ if (grub_timeout >= 0 && (time1 = getrtsecs()) != time2 && time1 != 0xFF) ++ { ++ if (grub_timeout <= 0) ++ { ++ grub_timeout = -1; ++ break; ++ } ++ ++ /* else not booting yet! */ ++ time2 = time1; ++ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\r Entry %d will be booted automatically in %d seconds. ", ++ entryno, grub_timeout); ++ else ++ { ++ gotoxy (3, 22); ++ grub_printf ("The highlighted entry will be booted automatically in %d seconds. ", ++ grub_timeout); ++ gotoxy (74, 4 + entryno); ++ } ++ ++ grub_timeout--; ++ } ++ ++ /* Check for a keypress, however if TIMEOUT has been expired ++ (GRUB_TIMEOUT == -1) relax in GETKEY even if no key has been ++ pressed. ++ This avoids polling (relevant in the grub-shell and later on ++ in grub if interrupt driven I/O is done). */ ++ if (checkkey () >= 0 || grub_timeout < 0) ++ { ++ /* Key was pressed, show which entry is selected before GETKEY, ++ since we're comming in here also on GRUB_TIMEOUT == -1 and ++ hang in GETKEY */ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\r Highlighted entry is %d: ", entryno); ++ ++ c = ASCII_CHAR (getkey ()); ++ ++ if (grub_timeout >= 0) ++ { ++ if (current_term->flags & TERM_DUMB) ++ grub_putchar ('\r'); ++ else ++ gotoxy (3, 22); ++ printf (" "); ++ grub_timeout = -1; ++ fallback_entryno = -1; ++ if (! (current_term->flags & TERM_DUMB)) ++ gotoxy (74, 4 + entryno); ++ } ++ ++ /* We told them above (at least in SUPPORT_SERIAL) to use ++ '^' or 'v' so accept these keys. */ ++ if (c == 16 || c == '^') ++ { ++ if (current_term->flags & TERM_DUMB) ++ { ++ if (entryno > 0) ++ entryno--; ++ } ++ else ++ { ++ if (entryno > 0) ++ { ++ print_entry (4 + entryno, 0, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ entryno--; ++ print_entry (4 + entryno, 1, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ } ++ else if (first_entry > 0) ++ { ++ first_entry--; ++ print_entries (3, 12, first_entry, entryno, ++ menu_entries); ++ } ++ } ++ } ++ else if ((c == 14 || c == 'v') ++ && first_entry + entryno + 1 < num_entries) ++ { ++ if (current_term->flags & TERM_DUMB) ++ entryno++; ++ else ++ { ++ if (entryno < 11) ++ { ++ print_entry (4 + entryno, 0, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ entryno++; ++ print_entry (4 + entryno, 1, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ } ++ else if (num_entries > 12 + first_entry) ++ { ++ first_entry++; ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ } ++ } ++ else if (c == 7) ++ { ++ /* Page Up */ ++ first_entry -= 12; ++ if (first_entry < 0) ++ { ++ entryno += first_entry; ++ first_entry = 0; ++ if (entryno < 0) ++ entryno = 0; ++ } ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ else if (c == 3) ++ { ++ /* Page Down */ ++ first_entry += 12; ++ if (first_entry + entryno + 1 >= num_entries) ++ { ++ first_entry = num_entries - 12; ++ if (first_entry < 0) ++ first_entry = 0; ++ entryno = num_entries - first_entry - 1; ++ } ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ ++ if (config_entries) ++ { ++ if ((c == '\n') || (c == '\r') || (c == 6)) ++ break; ++ } ++ else ++ { ++ if ((c == 'd') || (c == 'o') || (c == 'O')) ++ { ++ if (! (current_term->flags & TERM_DUMB)) ++ print_entry (4 + entryno, 0, ++ get_entry (menu_entries, ++ first_entry + entryno, ++ 0)); ++ ++ /* insert after is almost exactly like insert before */ ++ if (c == 'o') ++ { ++ /* But `o' differs from `O', since it may causes ++ the menu screen to scroll up. */ ++ if (entryno < 11 || (current_term->flags & TERM_DUMB)) ++ entryno++; ++ else ++ first_entry++; ++ ++ c = 'O'; ++ } ++ ++ cur_entry = get_entry (menu_entries, ++ first_entry + entryno, ++ 0); ++ ++ if (c == 'O') ++ { ++ grub_memmove (cur_entry + 2, cur_entry, ++ ((int) heap) - ((int) cur_entry)); ++ ++ cur_entry[0] = ' '; ++ cur_entry[1] = 0; ++ ++ heap += 2; ++ ++ num_entries++; ++ } ++ else if (num_entries > 0) ++ { ++ char *ptr = get_entry(menu_entries, ++ first_entry + entryno + 1, ++ 0); ++ ++ grub_memmove (cur_entry, ptr, ++ ((int) heap) - ((int) ptr)); ++ heap -= (((int) ptr) - ((int) cur_entry)); ++ ++ num_entries--; ++ ++ if (entryno >= num_entries) ++ entryno--; ++ if (first_entry && num_entries < 12 + first_entry) ++ first_entry--; ++ } ++ ++ if (current_term->flags & TERM_DUMB) ++ { ++ grub_printf ("\n\n"); ++ print_entries_raw (num_entries, first_entry, ++ menu_entries); ++ grub_printf ("\n"); ++ } ++ else ++ print_entries (3, 12, first_entry, entryno, menu_entries); ++ } ++ ++ cur_entry = menu_entries; ++ if (c == 27) ++ return; ++ if (c == 'b') ++ break; ++ } ++ ++ if (! auth && password) ++ { ++ if (c == 'p') ++ { ++ /* Do password check here! */ ++ char entered[32]; ++ char *pptr = password; ++ ++ if (current_term->flags & TERM_DUMB) ++ grub_printf ("\r "); ++ else ++ gotoxy (1, 21); ++ ++ /* Wipe out the previously entered password */ ++ grub_memset (entered, 0, sizeof (entered)); ++ get_cmdline (" Password: ", entered, 31, '*', 0); ++ ++ while (! isspace (*pptr) && *pptr) ++ pptr++; ++ ++ /* Make sure that PASSWORD is NUL-terminated. */ ++ *pptr++ = 0; ++ ++ if (! check_password (entered, password, password_type)) ++ { ++ char *new_file = config_file; ++ while (isspace (*pptr)) ++ pptr++; ++ ++ /* If *PPTR is NUL, then allow the user to use ++ privileged instructions, otherwise, load ++ another configuration file. */ ++ if (*pptr != 0) ++ { ++ while ((*(new_file++) = *(pptr++)) != 0) ++ ; ++ ++ /* Make sure that the user will not have ++ authority in the next configuration. */ ++ auth = 0; ++ return; ++ } ++ else ++ { ++ /* Now the user is superhuman. */ ++ auth = 1; ++ goto restart; ++ } ++ } ++ else ++ { ++ grub_printf ("Failed!\n Press any key to continue..."); ++ getkey (); ++ goto restart; ++ } ++ } ++ } ++ else ++ { ++ if (c == 'e') ++ { ++ int new_num_entries = 0, i = 0; ++ char *new_heap; ++ ++ if (config_entries) ++ { ++ new_heap = heap; ++ cur_entry = get_entry (config_entries, ++ first_entry + entryno, ++ 1); ++ } ++ else ++ { ++ /* safe area! */ ++ new_heap = heap + NEW_HEAPSIZE + 1; ++ cur_entry = get_entry (menu_entries, ++ first_entry + entryno, ++ 0); ++ } ++ ++ do ++ { ++ while ((*(new_heap++) = cur_entry[i++]) != 0); ++ new_num_entries++; ++ } ++ while (config_entries && cur_entry[i]); ++ ++ /* this only needs to be done if config_entries is non-NULL, ++ but it doesn't hurt to do it always */ ++ *(new_heap++) = 0; ++ ++ if (config_entries) ++ run_menu (heap, NULL, new_num_entries, new_heap, 0); ++ else ++ { ++ cls (); ++ print_cmdline_message (0); ++ ++ new_heap = heap + NEW_HEAPSIZE + 1; ++ ++ saved_drive = boot_drive; ++ saved_partition = install_partition; ++ current_drive = GRUB_INVALID_DRIVE; ++ ++ if (! get_cmdline (PACKAGE " edit> ", new_heap, ++ NEW_HEAPSIZE + 1, 0, 1)) ++ { ++ int j = 0; ++ ++ /* get length of new command */ ++ while (new_heap[j++]) ++ ; ++ ++ if (j < 2) ++ { ++ j = 2; ++ new_heap[0] = ' '; ++ new_heap[1] = 0; ++ } ++ ++ /* align rest of commands properly */ ++ grub_memmove (cur_entry + j, cur_entry + i, ++ (int) heap - ((int) cur_entry + i)); ++ ++ /* copy command to correct area */ ++ grub_memmove (cur_entry, new_heap, j); ++ ++ heap += (j - i); ++ } ++ } ++ ++ goto restart; ++ } ++ if (c == 'c') ++ { ++ enter_cmdline (heap, 0); ++ goto restart; ++ } ++#ifdef GRUB_UTIL ++ if (c == 'q') ++ { ++ /* The same as ``quit''. */ ++ stop (); ++ } ++#endif ++ } ++ } ++ } ++ ++ /* Attempt to boot an entry. */ ++ ++ boot_entry: ++ ++ cls (); ++ setcursor (1); ++ ++ while (1) ++ { ++ if (config_entries) ++ printf (" Booting \'%s\'\n\n", ++ get_entry (menu_entries, first_entry + entryno, 0)); ++ else ++ printf (" Booting command-list\n\n"); ++ ++ if (! cur_entry) ++ cur_entry = get_entry (config_entries, first_entry + entryno, 1); ++ ++ /* Set CURRENT_ENTRYNO for the command "savedefault". */ ++ current_entryno = first_entry + entryno; ++ ++ if (run_script (cur_entry, heap)) ++ { ++ if (fallback_entryno >= 0) ++ { ++ cur_entry = NULL; ++ first_entry = 0; ++ entryno = fallback_entries[fallback_entryno]; ++ fallback_entryno++; ++ if (fallback_entryno >= MAX_FALLBACK_ENTRIES ++ || fallback_entries[fallback_entryno] < 0) ++ fallback_entryno = -1; ++ } ++ else ++ break; ++ } ++ else ++ break; ++ } ++ ++ show_menu = 1; ++ goto restart; ++} ++ ++ ++static int ++get_line_from_config (char *cmdline, int maxlen, int read_from_file) ++{ ++ int pos = 0, literal = 0, comment = 0; ++ char c; /* since we're loading it a byte at a time! */ ++ ++ while (1) ++ { ++ if (read_from_file) ++ { ++ if (! grub_read (&c, 1)) ++ break; ++ } ++ else ++ { ++ if (! read_from_preset_menu (&c, 1)) ++ break; ++ } ++ ++ /* Skip all carriage returns. */ ++ if (c == '\r') ++ continue; ++ ++ /* Replace tabs with spaces. */ ++ if (c == '\t') ++ c = ' '; ++ ++ /* The previous is a backslash, then... */ ++ if (literal) ++ { ++ /* If it is a newline, replace it with a space and continue. */ ++ if (c == '\n') ++ { ++ c = ' '; ++ ++ /* Go back to overwrite a backslash. */ ++ if (pos > 0) ++ pos--; ++ } ++ ++ literal = 0; ++ } ++ ++ /* translate characters first! */ ++ if (c == '\\' && ! literal) ++ literal = 1; ++ ++ if (comment) ++ { ++ if (c == '\n') ++ comment = 0; ++ } ++ else if (! pos) ++ { ++ if (c == '#') ++ comment = 1; ++ else if ((c != ' ') && (c != '\n')) ++ cmdline[pos++] = c; ++ } ++ else ++ { ++ if (c == '\n') ++ break; ++ ++ if (pos < maxlen) ++ cmdline[pos++] = c; ++ } ++ } ++ ++ cmdline[pos] = 0; ++ ++ return pos; ++} ++ ++ ++/* This is the starting function in C. */ ++void ++cmain (void) ++{ ++ int config_len, menu_len, num_entries; ++ char *config_entries, *menu_entries; ++ char *kill_buf = (char *) KILL_BUF; ++ ++ auto void reset (void); ++ void reset (void) ++ { ++ count_lines = -1; ++ config_len = 0; ++ menu_len = 0; ++ num_entries = 0; ++ config_entries = (char *) mbi.drives_addr + mbi.drives_length; ++ menu_entries = (char *) MENU_BUF; ++ init_config (); ++ } ++ ++ /* Initialize the environment for restarting Stage 2. */ ++ grub_setjmp (restart_env); ++ ++ /* Initialize the kill buffer. */ ++ *kill_buf = 0; ++ ++ /* Never return. */ ++ for (;;) ++ { ++ int is_opened, is_preset; ++ ++ reset (); ++ ++ /* Here load the configuration file. */ ++ ++#ifdef GRUB_UTIL ++ if (use_config_file) ++#endif /* GRUB_UTIL */ ++ { ++ char *default_file = (char *) DEFAULT_FILE_BUF; ++ int i; ++ ++ /* Get a saved default entry if possible. */ ++ saved_entryno = 0; ++ *default_file = 0; ++ grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN); ++ for (i = grub_strlen(default_file); i >= 0; i--) ++ if (default_file[i] == '/') ++ { ++ i++; ++ break; ++ } ++ default_file[i] = 0; ++ grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i); ++ if (grub_open (default_file)) ++ { ++ char buf[10]; /* This is good enough. */ ++ char *p = buf; ++ int len; ++ ++ len = grub_read (buf, sizeof (buf)); ++ if (len > 0) ++ { ++ buf[sizeof (buf) - 1] = 0; ++ safe_parse_maxint (&p, &saved_entryno); ++ } ++ ++ grub_close (); ++ } ++ errnum = ERR_NONE; ++ ++ do ++ { ++ /* STATE 0: Before any title command. ++ STATE 1: In a title command. ++ STATE >1: In a entry after a title command. */ ++ int state = 0, prev_config_len = 0, prev_menu_len = 0; ++ char *cmdline; ++ ++ /* Try the preset menu first. This will succeed at most once, ++ because close_preset_menu disables the preset menu. */ ++ is_opened = is_preset = open_preset_menu (); ++ if (! is_opened) ++ { ++ is_opened = grub_open (config_file); ++ errnum = ERR_NONE; ++ } ++ ++ if (! is_opened) ++ break; ++ ++ /* This is necessary, because the menu must be overrided. */ ++ reset (); ++ ++ cmdline = (char *) CMDLINE_BUF; ++ while (get_line_from_config (cmdline, NEW_HEAPSIZE, ++ ! is_preset)) ++ { ++ struct builtin *builtin; ++ ++ /* Get the pointer to the builtin structure. */ ++ builtin = find_command (cmdline); ++ errnum = 0; ++ if (! builtin) ++ /* Unknown command. Just skip now. */ ++ continue; ++ ++ if (builtin->flags & BUILTIN_TITLE) ++ { ++ char *ptr; ++ ++ /* the command "title" is specially treated. */ ++ if (state > 1) ++ { ++ /* The next title is found. */ ++ num_entries++; ++ config_entries[config_len++] = 0; ++ prev_menu_len = menu_len; ++ prev_config_len = config_len; ++ } ++ else ++ { ++ /* The first title is found. */ ++ menu_len = prev_menu_len; ++ config_len = prev_config_len; ++ } ++ ++ /* Reset the state. */ ++ state = 1; ++ ++ /* Copy title into menu area. */ ++ ptr = skip_to (1, cmdline); ++ while ((menu_entries[menu_len++] = *(ptr++)) != 0) ++ ; ++ } ++ else if (! state) ++ { ++ /* Run a command found is possible. */ ++ if (builtin->flags & BUILTIN_MENU) ++ { ++ char *arg = skip_to (1, cmdline); ++ (builtin->func) (arg, BUILTIN_MENU); ++ errnum = 0; ++ } ++ else ++ /* Ignored. */ ++ continue; ++ } ++ else ++ { ++ char *ptr = cmdline; ++ ++ state++; ++ /* Copy config file data to config area. */ ++ while ((config_entries[config_len++] = *ptr++) != 0) ++ ; ++ } ++ } ++ ++ if (state > 1) ++ { ++ /* Finish the last entry. */ ++ num_entries++; ++ config_entries[config_len++] = 0; ++ } ++ else ++ { ++ menu_len = prev_menu_len; ++ config_len = prev_config_len; ++ } ++ ++ menu_entries[menu_len++] = 0; ++ config_entries[config_len++] = 0; ++ grub_memmove (config_entries + config_len, menu_entries, ++ menu_len); ++ menu_entries = config_entries + config_len; ++ ++ /* Make sure that all fallback entries are valid. */ ++ if (fallback_entryno >= 0) ++ { ++ for (i = 0; i < MAX_FALLBACK_ENTRIES; i++) ++ { ++ if (fallback_entries[i] < 0) ++ break; ++ if (fallback_entries[i] >= num_entries) ++ { ++ grub_memmove (fallback_entries + i, ++ fallback_entries + i + 1, ++ ((MAX_FALLBACK_ENTRIES - i - 1) ++ * sizeof (int))); ++ i--; ++ } ++ } ++ ++ if (fallback_entries[0] < 0) ++ fallback_entryno = -1; ++ } ++ /* Check if the default entry is present. Otherwise reset ++ it to fallback if fallback is valid, or to DEFAULT_ENTRY ++ if not. */ ++ if (default_entry >= num_entries) ++ { ++ if (fallback_entryno >= 0) ++ { ++ default_entry = fallback_entries[0]; ++ fallback_entryno++; ++ if (fallback_entryno >= MAX_FALLBACK_ENTRIES ++ || fallback_entries[fallback_entryno] < 0) ++ fallback_entryno = -1; ++ } ++ else ++ default_entry = 0; ++ } ++ ++ if (is_preset) ++ close_preset_menu (); ++ else ++ grub_close (); ++ } ++ while (is_preset); ++ } ++ ++ if (! num_entries) ++ { ++ /* If no acceptable config file, goto command-line, starting ++ heap from where the config entries would have been stored ++ if there were any. */ ++ enter_cmdline (config_entries, 1); ++ } ++ else ++ { ++ /* Run menu interface. */ ++ run_menu (menu_entries, config_entries, num_entries, ++ menu_entries + menu_len, default_entry); ++ } ++ } ++} +diff -Nur grub-0.97/stage2/term.h grub-0.97-patched/stage2/term.h +--- grub-0.97/stage2/term.h 2003-07-09 13:45:53.000000000 +0200 ++++ grub-0.97-patched/stage2/term.h 2012-11-11 17:06:33.311470556 +0100 +@@ -60,6 +60,8 @@ + const char *name; + /* The feature flags defined above. */ + unsigned long flags; ++ /* Default for maximum number of lines if not specified */ ++ unsigned short max_lines; + /* Put a character. */ + void (*putchar) (int c); + /* Check if any input character is available. */ +@@ -79,6 +81,11 @@ + void (*setcolor) (int normal_color, int highlight_color); + /* Turn on/off the cursor. */ + int (*setcursor) (int on); ++ ++ /* function to start a terminal */ ++ int (*startup) (void); ++ /* function to use to shutdown a terminal */ ++ void (*shutdown) (void); + }; + + /* This lists up available terminals. */ +@@ -124,4 +131,23 @@ + int hercules_setcursor (int on); + #endif + ++#ifdef SUPPORT_GRAPHICS ++extern int foreground, background, border, graphics_inited; ++ ++void graphics_set_splash(char *splashfile); ++int set_videomode (int mode); ++void graphics_putchar (int c); ++int graphics_getxy(void); ++void graphics_gotoxy(int x, int y); ++void graphics_cls(void); ++void graphics_setcolorstate (color_state state); ++void graphics_setcolor (int normal_color, int highlight_color); ++void graphics_setcursor (int on); ++int graphics_init(void); ++void graphics_end(void); ++ ++int hex(int v); ++void graphics_set_palette(int idx, int red, int green, int blue); ++#endif /* SUPPORT_GRAPHICS */ ++ + #endif /* ! GRUB_TERM_HEADER */ +diff -Nur grub-0.97/THANKS grub-0.97-patched/THANKS +--- grub-0.97/THANKS 2005-05-08 04:17:43.000000000 +0200 ++++ grub-0.97-patched/THANKS 2012-11-11 17:07:12.709729021 +0100 +@@ -121,3 +121,4 @@ + Yedidyah Bar-David + Yury V. Umanets + Yuri Zaporogets ++Vitaly Fertman +diff -Nur grub-0.97/util/grub-install.in grub-0.97-patched/util/grub-install.in +--- grub-0.97/util/grub-install.in 2004-07-24 20:57:31.000000000 +0200 ++++ grub-0.97-patched/util/grub-install.in 2012-11-11 17:07:12.748730268 +0100 +@@ -96,24 +96,27 @@ + # Break the device name into the disk part and the partition part. + case "$host_os" in + linux*) +- tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \ ++ tmp_disk=`echo "$1" | sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \ + -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \ + -e 's%\(fd[0-9]*\)$%\1%' \ + -e 's%/part[0-9]*$%/disc%' \ +- -e 's%\(c[0-7]d[0-9]*\).*$%\1%'` +- tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \ ++ -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \ ++ -e 's%\(e[0-9]\.[0-9]*\).*$%\1%'` ++ tmp_part=`echo "$1" | sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \ + -e 's%.*d[0-9]*p%%' \ + -e 's%.*/fd[0-9]*$%%' \ + -e 's%.*/floppy/[0-9]*$%%' \ + -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \ +- -e 's%.*c[0-7]d[0-9]*p%%'` ++ -e 's%.*c[0-7]d[0-9]*p*%%' \ ++ -e 's%.*e[0-9]\.[0-9]*p%%' \ ++ -e 's%.*e[0-9]\.[0-9]*\$%%'` + ;; + gnu*) + tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'` + tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;; + freebsd* | kfreebsd*-gnu) +- tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%r\1%' \ +- | sed 's%r\{0,1\}\(da[0-9]*\).*$%r\1%'` ++ tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%\1%' \ ++ | sed 's%r\{0,1\}\(da[0-9]*\).*$%\1%'` + tmp_part=`echo "$1" \ + | sed "s%.*/r\{0,1\}[saw]d[0-9]\(s[0-9]*[a-h]\)%\1%" \ + | sed "s%.*/r\{0,1\}da[0-9]\(s[0-9]*[a-h]\)%\1%"` +@@ -131,7 +134,7 @@ + + # Get the drive name. + tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \ +- | sed 's%.*\(([hf]d[0-9][a-g0-9,]*)\).*%\1%'` ++ | sed 's%.*\(([hf]d[0-9][a-z0-9,]*)\).*%\1%'` + + # If not found, print an error message and exit. + if test "x$tmp_drive" = x; then +@@ -148,13 +151,13 @@ + gnu*) + if echo $tmp_part | grep "^s" >/dev/null; then + tmp_pc_slice=`echo $tmp_part \ +- | sed "s%s\([0-9]*\)[a-g]*$%\1%"` ++ | sed "s%s\([0-9]*\)[a-z]*$%\1%"` + tmp_drive=`echo "$tmp_drive" \ + | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"` + fi +- if echo $tmp_part | grep "[a-g]$" >/dev/null; then ++ if echo $tmp_part | grep "[a-z]$" >/dev/null; then + tmp_bsd_partition=`echo "$tmp_part" \ +- | sed "s%[^a-g]*\([a-g]\)$%\1%"` ++ | sed "s%[^a-z]*\([a-z]\)$%\1%"` + tmp_drive=`echo "$tmp_drive" \ + | sed "s%)%,$tmp_bsd_partition)%"` + fi +@@ -336,6 +339,10 @@ + # Create a safe temporary file. + test -n "$mklog" && log_file=`$mklog` + ++ # Before all invocations of the grub shell, call sync to make sure ++ # the raw device is in sync with any bufferring in filesystems. ++ sync ++ + $grub_shell --batch $no_floppy --device-map=$device_map <$log_file + quit + EOF +@@ -450,6 +457,10 @@ + # Create a safe temporary file. + test -n "$mklog" && log_file=`$mklog` + ++# Before all invocations of the grub shell, call sync to make sure ++# the raw device is in sync with any bufferring in filesystems. ++sync ++ + # Now perform the installation. + $grub_shell --batch $no_floppy --device-map=$device_map <$log_file + root $root_drive +diff -Nur grub-0.97/util/grub-install.in.orig grub-0.97-patched/util/grub-install.in.orig +--- grub-0.97/util/grub-install.in.orig 1970-01-01 01:00:00.000000000 +0100 ++++ grub-0.97-patched/util/grub-install.in.orig 2004-07-24 20:57:31.000000000 +0200 +@@ -0,0 +1,477 @@ ++#! /bin/sh ++ ++# Install GRUB on your drive. ++# Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. ++# ++# This file 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 2 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, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++# Initialize some variables. ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++sbindir=@sbindir@ ++libdir=@libdir@ ++PACKAGE=@PACKAGE@ ++VERSION=@VERSION@ ++host_cpu=@host_cpu@ ++host_os=@host_os@ ++host_vendor=@host_vendor@ ++pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} ++ ++grub_shell=${sbindir}/grub ++grub_set_default=${sbindir}/grub-set-default ++log_file=/tmp/grub-install.log.$$ ++img_file=/tmp/grub-install.img.$$ ++rootdir= ++grub_prefix=/boot/grub ++ ++install_device= ++no_floppy= ++force_lba= ++recheck=no ++debug=no ++ ++# look for secure tempfile creation wrappers on this platform ++if test -x /bin/tempfile; then ++ mklog="/bin/tempfile --prefix=grub" ++ mkimg="/bin/tempfile --prefix=grub" ++elif test -x /bin/mktemp; then ++ mklog="/bin/mktemp /tmp/grub-install.log.XXXXXX" ++ mkimg="/bin/mktemp /tmp/grub-install.img.XXXXXX" ++else ++ mklog="" ++ mkimg="" ++fi ++ ++# Usage: usage ++# Print the usage. ++usage () { ++ cat <. ++EOF ++} ++ ++# Usage: convert os_device ++# Convert an OS device to the corresponding GRUB drive. ++# This part is OS-specific. ++convert () { ++ # First, check if the device file exists. ++ if test -e "$1"; then ++ : ++ else ++ echo "$1: Not found or not a block device." 1>&2 ++ exit 1 ++ fi ++ ++ # Break the device name into the disk part and the partition part. ++ case "$host_os" in ++ linux*) ++ tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \ ++ -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \ ++ -e 's%\(fd[0-9]*\)$%\1%' \ ++ -e 's%/part[0-9]*$%/disc%' \ ++ -e 's%\(c[0-7]d[0-9]*\).*$%\1%'` ++ tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \ ++ -e 's%.*d[0-9]*p%%' \ ++ -e 's%.*/fd[0-9]*$%%' \ ++ -e 's%.*/floppy/[0-9]*$%%' \ ++ -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \ ++ -e 's%.*c[0-7]d[0-9]*p%%'` ++ ;; ++ gnu*) ++ tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'` ++ tmp_part=`echo "$1" | sed "s%$tmp_disk%%"` ;; ++ freebsd* | kfreebsd*-gnu) ++ tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([saw]d[0-9]*\).*$%r\1%' \ ++ | sed 's%r\{0,1\}\(da[0-9]*\).*$%r\1%'` ++ tmp_part=`echo "$1" \ ++ | sed "s%.*/r\{0,1\}[saw]d[0-9]\(s[0-9]*[a-h]\)%\1%" \ ++ | sed "s%.*/r\{0,1\}da[0-9]\(s[0-9]*[a-h]\)%\1%"` ++ ;; ++ netbsd* | knetbsd*-gnu) ++ tmp_disk=`echo "$1" | sed 's%r\{0,1\}\([sw]d[0-9]*\).*$%r\1d%' \ ++ | sed 's%r\{0,1\}\(fd[0-9]*\).*$%r\1a%'` ++ tmp_part=`echo "$1" \ ++ | sed "s%.*/r\{0,1\}[sw]d[0-9]\([abe-p]\)%\1%"` ++ ;; ++ *) ++ echo "grub-install does not support your OS yet." 1>&2 ++ exit 1 ;; ++ esac ++ ++ # Get the drive name. ++ tmp_drive=`grep -v '^#' $device_map | grep "$tmp_disk *$" \ ++ | sed 's%.*\(([hf]d[0-9][a-g0-9,]*)\).*%\1%'` ++ ++ # If not found, print an error message and exit. ++ if test "x$tmp_drive" = x; then ++ echo "$1 does not have any corresponding BIOS drive." 1>&2 ++ exit 1 ++ fi ++ ++ if test "x$tmp_part" != x; then ++ # If a partition is specified, we need to translate it into the ++ # GRUB's syntax. ++ case "$host_os" in ++ linux*) ++ echo "$tmp_drive" | sed "s%)$%,`expr $tmp_part - 1`)%" ;; ++ gnu*) ++ if echo $tmp_part | grep "^s" >/dev/null; then ++ tmp_pc_slice=`echo $tmp_part \ ++ | sed "s%s\([0-9]*\)[a-g]*$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"` ++ fi ++ if echo $tmp_part | grep "[a-g]$" >/dev/null; then ++ tmp_bsd_partition=`echo "$tmp_part" \ ++ | sed "s%[^a-g]*\([a-g]\)$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,$tmp_bsd_partition)%"` ++ fi ++ echo "$tmp_drive" ;; ++ freebsd* | kfreebsd*-gnu) ++ if echo $tmp_part | grep "^s" >/dev/null; then ++ tmp_pc_slice=`echo $tmp_part \ ++ | sed "s%s\([0-9]*\)[a-h]*$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,\`expr "$tmp_pc_slice" - 1\`)%"` ++ fi ++ if echo $tmp_part | grep "[a-h]$" >/dev/null; then ++ tmp_bsd_partition=`echo "$tmp_part" \ ++ | sed "s%s\{0,1\}[0-9]*\([a-h]\)$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,$tmp_bsd_partition)%"` ++ fi ++ echo "$tmp_drive" ;; ++ netbsd* | knetbsd*-gnu) ++ if echo $tmp_part | grep "^[abe-p]$" >/dev/null; then ++ tmp_bsd_partition=`echo "$tmp_part" \ ++ | sed "s%\([a-p]\)$%\1%"` ++ tmp_drive=`echo "$tmp_drive" \ ++ | sed "s%)%,$tmp_bsd_partition)%"` ++ fi ++ echo "$tmp_drive" ;; ++ esac ++ else ++ # If no partition is specified, just print the drive name. ++ echo "$tmp_drive" ++ fi ++} ++ ++# Usage: resolve_symlink file ++# Find the real file/device that file points at ++resolve_symlink () { ++ tmp_fname=$1 ++ # Resolve symlinks ++ while test -L $tmp_fname; do ++ tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'` ++ if test -z "$tmp_new_fname"; then ++ echo "Unrecognized ls output" 2>&1 ++ exit 1 ++ fi ++ ++ # Convert relative symlinks ++ case $tmp_new_fname in ++ /*) tmp_fname="$tmp_new_fname" ++ ;; ++ *) tmp_fname="`echo $tmp_fname | sed 's%/[^/]*$%%'`/$tmp_new_fname" ++ ;; ++ esac ++ done ++ echo "$tmp_fname" ++} ++ ++# Usage: find_device file ++# Find block device on which the file resides. ++find_device () { ++ # For now, this uses the program `df' to get the device name, but is ++ # this really portable? ++ tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'` ++ ++ if test -z "$tmp_fname"; then ++ echo "Could not find device for $1" 2>&1 ++ exit 1 ++ fi ++ ++ tmp_fname=`resolve_symlink $tmp_fname` ++ ++ echo "$tmp_fname" ++} ++ ++# Check the arguments. ++for option in "$@"; do ++ case "$option" in ++ -h | --help) ++ usage ++ exit 0 ;; ++ -v | --version) ++ echo "grub-install (GNU GRUB ${VERSION})" ++ exit 0 ;; ++ --root-directory=*) ++ rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; ++ --grub-shell=*) ++ grub_shell=`echo "$option" | sed 's/--grub-shell=//'` ;; ++ --no-floppy) ++ no_floppy="--no-floppy" ;; ++ --force-lba) ++ force_lba="--force-lba" ;; ++ --recheck) ++ recheck=yes ;; ++ # This is an undocumented feature... ++ --debug) ++ debug=yes ;; ++ -*) ++ echo "Unrecognized option \`$option'" 1>&2 ++ usage ++ exit 1 ++ ;; ++ *) ++ if test "x$install_device" != x; then ++ echo "More than one install_devices?" 1>&2 ++ usage ++ exit 1 ++ fi ++ install_device="${option}" ;; ++ esac ++done ++ ++if test "x$install_device" = x; then ++ echo "install_device not specified." 1>&2 ++ usage ++ exit 1 ++fi ++ ++# If the debugging feature is enabled, print commands. ++if test $debug = yes; then ++ set -x ++fi ++ ++# Initialize these directories here, since ROOTDIR was initialized. ++case "$host_os" in ++netbsd* | openbsd*) ++ # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub ++ # instead of /boot/grub. ++ grub_prefix=/grub ++ bootdir=${rootdir} ++ ;; ++*) ++ # Use /boot/grub by default. ++ bootdir=${rootdir}/boot ++ ;; ++esac ++ ++grubdir=${bootdir}/grub ++device_map=${grubdir}/device.map ++ ++# Check if GRUB is installed. ++# This is necessary, because the user can specify "grub --read-only". ++set $grub_shell dummy ++if test -f "$1"; then ++ : ++else ++ echo "$1: Not found." 1>&2 ++ exit 1 ++fi ++ ++if test -f "$pkglibdir/stage1"; then ++ : ++else ++ echo "${pkglibdir}/stage1: Not found." 1>&2 ++ exit 1 ++fi ++ ++if test -f "$pkglibdir/stage2"; then ++ : ++else ++ echo "${pkglibdir}/stage2: Not found." 1>&2 ++ exit 1 ++fi ++ ++# Don't check for *stage1_5, because it is not fatal even if any ++# Stage 1.5 does not exist. ++ ++# Create the GRUB directory if it is not present. ++test -d "$bootdir" || mkdir "$bootdir" || exit 1 ++test -d "$grubdir" || mkdir "$grubdir" || exit 1 ++ ++# If --recheck is specified, remove the device map, if present. ++if test $recheck = yes; then ++ rm -f $device_map ++fi ++ ++# Create the device map file if it is not present. ++if test -f "$device_map"; then ++ : ++else ++ # Create a safe temporary file. ++ test -n "$mklog" && log_file=`$mklog` ++ ++ $grub_shell --batch $no_floppy --device-map=$device_map <$log_file ++quit ++EOF ++ if grep "Error [0-9]*: " $log_file >/dev/null; then ++ cat $log_file 1>&2 ++ exit 1 ++ fi ++ ++ rm -f $log_file ++fi ++ ++# Make sure that there is no duplicated entry. ++tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \ ++ | sort | uniq -d | sed -n 1p` ++if test -n "$tmp"; then ++ echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2 ++ exit 1 ++fi ++ ++# Check for INSTALL_DEVICE. ++case "$install_device" in ++/dev/*) ++ install_device=`resolve_symlink "$install_device"` ++ install_drive=`convert "$install_device"` ++ # I don't know why, but some shells wouldn't die if exit is ++ # called in a function. ++ if test "x$install_drive" = x; then ++ exit 1 ++ fi ;; ++\([hf]d[0-9]*\)) ++ install_drive="$install_device" ;; ++[hf]d[0-9]*) ++ # The GRUB format with no parenthesis. ++ install_drive="($install_device)" ;; ++*) ++ echo "Format of install_device not recognized." 1>&2 ++ usage ++ exit 1 ;; ++esac ++ ++# Get the root drive. ++root_device=`find_device ${rootdir}` ++bootdir_device=`find_device ${bootdir}` ++ ++# Check if the boot directory is in the same device as the root directory. ++if test "x$root_device" != "x$bootdir_device"; then ++ # Perhaps the user has a separate boot partition. ++ root_device=$bootdir_device ++ grub_prefix="/grub" ++fi ++ ++# Convert the root device to a GRUB drive. ++root_drive=`convert "$root_device"` ++if test "x$root_drive" = x; then ++ exit 1 ++fi ++ ++# Check if the root directory exists in the same device as the grub ++# directory. ++grubdir_device=`find_device ${grubdir}` ++ ++if test "x$grubdir_device" != "x$root_device"; then ++ # For now, cannot deal with this situation. ++ cat <&2 ++You must set the root directory by the option --root-directory, because ++$grubdir does not exist in the root device $root_device. ++EOF ++ exit 1 ++fi ++ ++# Copy the GRUB images to the GRUB directory. ++for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do ++ rm -f $file || exit 1 ++done ++for file in \ ++ ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do ++ cp -f $file ${grubdir} || exit 1 ++done ++ ++# Make a default file. ++${grub_set_default} --root-directory=${rootdir} default ++ ++# Make sure that GRUB reads the same images as the host OS. ++test -n "$mkimg" && img_file=`$mkimg` ++test -n "$mklog" && log_file=`$mklog` ++ ++for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do ++ count=5 ++ tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` ++ while test $count -gt 0; do ++ $grub_shell --batch $no_floppy --device-map=$device_map <$log_file ++dump ${root_drive}${tmp} ${img_file} ++quit ++EOF ++ if grep "Error [0-9]*: " $log_file >/dev/null; then ++ : ++ elif cmp $file $img_file >/dev/null; then ++ break ++ fi ++ sleep 1 ++ count=`expr $count - 1` ++ done ++ if test $count -eq 0; then ++ echo "The file $file not read correctly." 1>&2 ++ exit 1 ++ fi ++done ++ ++rm -f $img_file ++rm -f $log_file ++ ++# Create a safe temporary file. ++test -n "$mklog" && log_file=`$mklog` ++ ++# Now perform the installation. ++$grub_shell --batch $no_floppy --device-map=$device_map <$log_file ++root $root_drive ++setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive ++quit ++EOF ++ ++if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then ++ cat $log_file 1>&2 ++ exit 1 ++fi ++ ++rm -f $log_file ++ ++# Prompt the user to check if the device map is correct. ++echo "Installation finished. No error reported." ++echo "This is the contents of the device map $device_map." ++echo "Check if this is correct or not. If any of the lines is incorrect," ++echo "fix it and re-run the script \`grub-install'." ++echo ++ ++cat $device_map ++ ++# Bye. ++exit 0 +diff -Nur grub-0.97/util/mkbimage grub-0.97-patched/util/mkbimage +--- grub-0.97/util/mkbimage 2004-07-24 20:57:31.000000000 +0200 ++++ grub-0.97-patched/util/mkbimage 2012-11-11 17:07:12.744730138 +0100 +@@ -1,7 +1,7 @@ + #!/bin/sh + # MaKe a Bootable IMAGE --- 1.44, 2.88 and El Torito no-emulation mode + # C) 2001,2002,2003 Thierry Laronde +-# C) 2001,2002,2003 Robert Millan ++# C) 2001,2002,2003 Robert Millan + + + # This program is free software; you can redistribute it and/or modify +@@ -94,15 +94,13 @@ + display Version information and exit + + Copyright (c) 2001,2002,2003 Thierry Laronde . +-Copyright (c) 2001,2002 Robert Millan . + GPLed." + + version="mkbimage $version_number + +-Written by Thierry Laronde and Robert Millan. ++Written by Thierry Laronde. + + Copyright (c) 2001,2002,2003 Thierry Laronde . +-Copyright (c) 2001,2002,2003 Robert Millan . + + This is free software under the GPL version 2 or later; see the source for + copying conditions. There is NO warranty, not even for MERCHANTABILITY or diff --git a/src/patches/iptables-1.4.6-imq_test1.patch b/src/patches/iptables-1.4.12-IMQ-test4.diff similarity index 60% rename from src/patches/iptables-1.4.6-imq_test1.patch rename to src/patches/iptables-1.4.12-IMQ-test4.diff index 2b4fb79cb0..5ce17e1b45 100644 --- a/src/patches/iptables-1.4.6-imq_test1.patch +++ b/src/patches/iptables-1.4.12-IMQ-test4.diff @@ -1,14 +1,7 @@ -diff -Naurw iptables-1.4.1/extensions/.IMQ-testx iptables-1.4.1.imq/extensions/.IMQ-testx ---- iptables-1.4.1/extensions/.IMQ-testx 1969-12-31 21:00:00.000000000 -0300 -+++ iptables-1.4.1.imq/extensions/.IMQ-testx 2008-06-24 22:20:06.000000000 -0300 -@@ -0,0 +1,3 @@ -+#!/bin/sh -+# True if IMQ target patch is applied. -+[ -f $KERNEL_DIR/include/linux/netfilter/xt_IMQ.h ] && echo IMQ -diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/libxt_IMQ.c ---- iptables-1.4.1/extensions/libxt_IMQ.c 1969-12-31 21:00:00.000000000 -0300 -+++ iptables-1.4.1.imq/extensions/libxt_IMQ.c 2008-06-24 22:31:02.000000000 -0300 -@@ -0,0 +1,103 @@ +diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.c iptables-1.4.12.1-imq/extensions/libxt_IMQ.c +--- iptables-1.4.12.1/extensions/libxt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.c 2011-09-30 13:53:21.000000000 +0300 +@@ -0,0 +1,105 @@ +/* Shared library add-on to iptables to add IMQ target support. */ +#include +#include @@ -50,11 +43,13 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/ + + switch(c) { + case '1': -+ if (xtables_check_inverse(optarg, &invert, NULL, 0, argv)) ++/* if (xtables_check_inverse(optarg, &invert, NULL, 0, argv)) + xtables_error(PARAMETER_PROBLEM, -+ "Unexpected `!' for --todev"); ++ "Unexpected `!' after --todev"); ++*/ + mr->todev=atoi(optarg); + break; ++ + default: + return 0; + } @@ -76,7 +71,7 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/ +{ + struct xt_imq_info *mr = (struct xt_imq_info*)target->data; + -+ printf("--todev %u", mr->todev); ++ printf(" --todev %u", mr->todev); +} + +static struct xtables_target imq_target = { @@ -112,8 +107,28 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/ + xtables_register_target(&imq_target); + xtables_register_target(&imq_target6); +} ---- iptables-1.4.1.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 -+++ iptables-1.4.1.1.new/include/linux/netfilter/xt_IMQ.h 2008-08-05 00:41:28.000000000 +0300 +diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.man iptables-1.4.12.1-imq/extensions/libxt_IMQ.man +--- iptables-1.4.12.1/extensions/libxt_IMQ.man 1970-01-01 02:00:00.000000000 +0200 ++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.man 2011-09-30 13:53:21.000000000 +0300 +@@ -0,0 +1,15 @@ ++This target is used to redirect the traffic to the IMQ driver and you can apply ++QoS rules like HTB or CBQ. ++For example you can select only traffic comming from a specific interface or ++is going out on a specific interface. ++Also it permits to capture the traffic BEFORE NAT in the case of outgoing traffic ++or AFTER NAT in the case of incomming traffic. ++.TP ++\fB\-\-to\-dev\fP \fIvalue\fP ++Set the IMQ interface where to send this traffic ++.TP ++Example: ++.TP ++Redirect incomming traffic from interface eth0 to imq0 and outgoing traffic to imq1: ++iptables \-t mangle \-A FORWARD \-i eth0 \-j IMQ \-\-to\-dev 0 ++iptables \-t mangle \-A FORWARD \-o eth0 \-j IMQ \-\-to\-dev 1 +diff -Naur iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h +--- iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h 2011-09-30 13:53:21.000000000 +0300 @@ -0,0 +1,9 @@ +#ifndef _XT_IMQ_H +#define _XT_IMQ_H diff --git a/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch b/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch similarity index 99% rename from src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch rename to src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch index 68e44b16b1..9a11eb50cc 100644 --- a/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch +++ b/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch @@ -414,8 +414,8 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension + .next = NULL, + .name = "ipp2p", + .version = XTABLES_VERSION, -+ .size = IPT_ALIGN(sizeof(struct ipt_p2p_info)), -+ .userspacesize = IPT_ALIGN(sizeof(struct ipt_p2p_info)), ++ .size = XT_ALIGN(sizeof(struct ipt_p2p_info)), ++ .userspacesize = XT_ALIGN(sizeof(struct ipt_p2p_info)), + .help = &help, + .init = &init, + .parse = &parse, diff --git a/src/patches/iptables-1.4.6-errorno_includes.patch b/src/patches/iptables-1.4.6-errorno_includes.patch deleted file mode 100644 index a25c5a313c..0000000000 --- a/src/patches/iptables-1.4.6-errorno_includes.patch +++ /dev/null @@ -1,170 +0,0 @@ -diff -Naur include.org/asm/errno.h include/asm/errno.h ---- include.org/asm/errno.h 2010-02-12 18:21:40.000000000 +0100 -+++ include/asm/errno.h 2010-02-12 18:19:41.000000000 +0100 -@@ -5,4 +5,8 @@ - #include - #endif - -+#ifndef _ASM_GENERIC_ERRNO_H -+ #include -+#endif -+ - #endif -diff -Naur include.org/asm-generic/errno-base.h include/asm-generic/errno-base.h ---- include.org/asm-generic/errno-base.h 1970-01-01 01:00:00.000000000 +0100 -+++ include/asm-generic/errno-base.h 2010-02-09 13:57:19.000000000 +0100 -@@ -0,0 +1,39 @@ -+#ifndef _ASM_GENERIC_ERRNO_BASE_H -+#define _ASM_GENERIC_ERRNO_BASE_H -+ -+#define EPERM 1 /* Operation not permitted */ -+#define ENOENT 2 /* No such file or directory */ -+#define ESRCH 3 /* No such process */ -+#define EINTR 4 /* Interrupted system call */ -+#define EIO 5 /* I/O error */ -+#define ENXIO 6 /* No such device or address */ -+#define E2BIG 7 /* Argument list too long */ -+#define ENOEXEC 8 /* Exec format error */ -+#define EBADF 9 /* Bad file number */ -+#define ECHILD 10 /* No child processes */ -+#define EAGAIN 11 /* Try again */ -+#define ENOMEM 12 /* Out of memory */ -+#define EACCES 13 /* Permission denied */ -+#define EFAULT 14 /* Bad address */ -+#define ENOTBLK 15 /* Block device required */ -+#define EBUSY 16 /* Device or resource busy */ -+#define EEXIST 17 /* File exists */ -+#define EXDEV 18 /* Cross-device link */ -+#define ENODEV 19 /* No such device */ -+#define ENOTDIR 20 /* Not a directory */ -+#define EISDIR 21 /* Is a directory */ -+#define EINVAL 22 /* Invalid argument */ -+#define ENFILE 23 /* File table overflow */ -+#define EMFILE 24 /* Too many open files */ -+#define ENOTTY 25 /* Not a typewriter */ -+#define ETXTBSY 26 /* Text file busy */ -+#define EFBIG 27 /* File too large */ -+#define ENOSPC 28 /* No space left on device */ -+#define ESPIPE 29 /* Illegal seek */ -+#define EROFS 30 /* Read-only file system */ -+#define EMLINK 31 /* Too many links */ -+#define EPIPE 32 /* Broken pipe */ -+#define EDOM 33 /* Math argument out of domain of func */ -+#define ERANGE 34 /* Math result not representable */ -+ -+#endif -diff -Naur include.org/asm-generic/errno.h include/asm-generic/errno.h ---- include.org/asm-generic/errno.h 1970-01-01 01:00:00.000000000 +0100 -+++ include/asm-generic/errno.h 2010-02-09 13:57:19.000000000 +0100 -@@ -0,0 +1,111 @@ -+#ifndef _ASM_GENERIC_ERRNO_H -+#define _ASM_GENERIC_ERRNO_H -+ -+#include -+ -+#define EDEADLK 35 /* Resource deadlock would occur */ -+#define ENAMETOOLONG 36 /* File name too long */ -+#define ENOLCK 37 /* No record locks available */ -+#define ENOSYS 38 /* Function not implemented */ -+#define ENOTEMPTY 39 /* Directory not empty */ -+#define ELOOP 40 /* Too many symbolic links encountered */ -+#define EWOULDBLOCK EAGAIN /* Operation would block */ -+#define ENOMSG 42 /* No message of desired type */ -+#define EIDRM 43 /* Identifier removed */ -+#define ECHRNG 44 /* Channel number out of range */ -+#define EL2NSYNC 45 /* Level 2 not synchronized */ -+#define EL3HLT 46 /* Level 3 halted */ -+#define EL3RST 47 /* Level 3 reset */ -+#define ELNRNG 48 /* Link number out of range */ -+#define EUNATCH 49 /* Protocol driver not attached */ -+#define ENOCSI 50 /* No CSI structure available */ -+#define EL2HLT 51 /* Level 2 halted */ -+#define EBADE 52 /* Invalid exchange */ -+#define EBADR 53 /* Invalid request descriptor */ -+#define EXFULL 54 /* Exchange full */ -+#define ENOANO 55 /* No anode */ -+#define EBADRQC 56 /* Invalid request code */ -+#define EBADSLT 57 /* Invalid slot */ -+ -+#define EDEADLOCK EDEADLK -+ -+#define EBFONT 59 /* Bad font file format */ -+#define ENOSTR 60 /* Device not a stream */ -+#define ENODATA 61 /* No data available */ -+#define ETIME 62 /* Timer expired */ -+#define ENOSR 63 /* Out of streams resources */ -+#define ENONET 64 /* Machine is not on the network */ -+#define ENOPKG 65 /* Package not installed */ -+#define EREMOTE 66 /* Object is remote */ -+#define ENOLINK 67 /* Link has been severed */ -+#define EADV 68 /* Advertise error */ -+#define ESRMNT 69 /* Srmount error */ -+#define ECOMM 70 /* Communication error on send */ -+#define EPROTO 71 /* Protocol error */ -+#define EMULTIHOP 72 /* Multihop attempted */ -+#define EDOTDOT 73 /* RFS specific error */ -+#define EBADMSG 74 /* Not a data message */ -+#define EOVERFLOW 75 /* Value too large for defined data type */ -+#define ENOTUNIQ 76 /* Name not unique on network */ -+#define EBADFD 77 /* File descriptor in bad state */ -+#define EREMCHG 78 /* Remote address changed */ -+#define ELIBACC 79 /* Can not access a needed shared library */ -+#define ELIBBAD 80 /* Accessing a corrupted shared library */ -+#define ELIBSCN 81 /* .lib section in a.out corrupted */ -+#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ -+#define ELIBEXEC 83 /* Cannot exec a shared library directly */ -+#define EILSEQ 84 /* Illegal byte sequence */ -+#define ERESTART 85 /* Interrupted system call should be restarted */ -+#define ESTRPIPE 86 /* Streams pipe error */ -+#define EUSERS 87 /* Too many users */ -+#define ENOTSOCK 88 /* Socket operation on non-socket */ -+#define EDESTADDRREQ 89 /* Destination address required */ -+#define EMSGSIZE 90 /* Message too long */ -+#define EPROTOTYPE 91 /* Protocol wrong type for socket */ -+#define ENOPROTOOPT 92 /* Protocol not available */ -+#define EPROTONOSUPPORT 93 /* Protocol not supported */ -+#define ESOCKTNOSUPPORT 94 /* Socket type not supported */ -+#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ -+#define EPFNOSUPPORT 96 /* Protocol family not supported */ -+#define EAFNOSUPPORT 97 /* Address family not supported by protocol */ -+#define EADDRINUSE 98 /* Address already in use */ -+#define EADDRNOTAVAIL 99 /* Cannot assign requested address */ -+#define ENETDOWN 100 /* Network is down */ -+#define ENETUNREACH 101 /* Network is unreachable */ -+#define ENETRESET 102 /* Network dropped connection because of reset */ -+#define ECONNABORTED 103 /* Software caused connection abort */ -+#define ECONNRESET 104 /* Connection reset by peer */ -+#define ENOBUFS 105 /* No buffer space available */ -+#define EISCONN 106 /* Transport endpoint is already connected */ -+#define ENOTCONN 107 /* Transport endpoint is not connected */ -+#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ -+#define ETOOMANYREFS 109 /* Too many references: cannot splice */ -+#define ETIMEDOUT 110 /* Connection timed out */ -+#define ECONNREFUSED 111 /* Connection refused */ -+#define EHOSTDOWN 112 /* Host is down */ -+#define EHOSTUNREACH 113 /* No route to host */ -+#define EALREADY 114 /* Operation already in progress */ -+#define EINPROGRESS 115 /* Operation now in progress */ -+#define ESTALE 116 /* Stale NFS file handle */ -+#define EUCLEAN 117 /* Structure needs cleaning */ -+#define ENOTNAM 118 /* Not a XENIX named type file */ -+#define ENAVAIL 119 /* No XENIX semaphores available */ -+#define EISNAM 120 /* Is a named type file */ -+#define EREMOTEIO 121 /* Remote I/O error */ -+#define EDQUOT 122 /* Quota exceeded */ -+ -+#define ENOMEDIUM 123 /* No medium found */ -+#define EMEDIUMTYPE 124 /* Wrong medium type */ -+#define ECANCELED 125 /* Operation Canceled */ -+#define ENOKEY 126 /* Required key not available */ -+#define EKEYEXPIRED 127 /* Key has expired */ -+#define EKEYREVOKED 128 /* Key has been revoked */ -+#define EKEYREJECTED 129 /* Key was rejected by service */ -+ -+/* for robust mutexes */ -+#define EOWNERDEAD 130 /* Owner died */ -+#define ENOTRECOVERABLE 131 /* State not recoverable */ -+ -+#define ERFKILL 132 /* Operation not possible due to RF-kill */ -+ -+#endif diff --git a/src/patches/kudzu-link-lintl.diff b/src/patches/kudzu-link-lintl.diff deleted file mode 100644 index ec3974c48b..0000000000 --- a/src/patches/kudzu-link-lintl.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- tmp/kudzu-1.2.60/Makefile 2006-09-05 15:56:21.000000000 +0200 -+++ build/usr/src/kudzu-1.2.60/Makefile 2006-11-20 15:08:32.000000000 +0100 -@@ -63,7 +63,7 @@ - $(RANLIB) libkudzu.a - - kudzu: libkudzu.a $(KUDOBJS) po -- $(CC) $(CFLAGS) $(LDFLAGS) $(KUDOBJS) -o kudzu -L. -lkudzu -L. -lpci -Wl,-Bstatic -lpopt -Wl,-Bdynamic -+ $(CC) $(CFLAGS) $(LDFLAGS) $(KUDOBJS) -o kudzu -L. -lkudzu -L. -lpci -L. -lintl -Wl,-Bstatic -lpopt -Wl,-Bdynamic - - module_upgrade: libkudzu.a module_upgrade.c - $(CC) $(CFLAGS) $(LDFLAGS) module_upgrade.c -o module_upgrade -L. -lkudzu -lpci diff --git a/src/patches/kudzu-usbnet.patch b/src/patches/kudzu-usbnet.patch deleted file mode 100644 index 185d1a72ab..0000000000 --- a/src/patches/kudzu-usbnet.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -Naur kudzu-1.2.64.org/usb.c kudzu-1.2.64/usb.c ---- kudzu-1.2.64.org/usb.c 2006-11-28 17:58:58.000000000 +0100 -+++ kudzu-1.2.64/usb.c 2009-07-16 20:33:19.000000000 +0200 -@@ -261,13 +261,33 @@ - t->desc = strdup(t->usbprod); - else - asprintf(&t->desc,"Unknown USB device 0x%x:0x%x",t->vendorId,t->deviceId); -- if (t->driver && (!strcmp(t->driver, "pegasus") || -+ if (t->driver && (!strcmp(t->driver, "asix") || - !strcmp(t->driver, "catc") || -+ !strcmp(t->driver, "cdc_ether") || -+ !strcmp(t->driver, "cdc_subset") || -+ !strcmp(t->driver, "dm9601") || -+ !strcmp(t->driver, "gl620a") || - !strcmp(t->driver, "kaweth") || -+ !strcmp(t->driver, "mcs7830") || -+ !strcmp(t->driver, "net1080") || -+ !strcmp(t->driver, "pegasus") || -+ !strcmp(t->driver, "plusb") || -+ !strcmp(t->driver, "rndis_host") || - !strcmp(t->driver, "rtl8150") || -- !strcmp(t->driver, "ax8817x") || -+ !strcmp(t->driver, "zaurus") || -+ !strcmp(t->driver, "rt2500usb") || -+ !strcmp(t->driver, "rt2800usb") || -+ !strcmp(t->driver, "rt2x00usb") || -+ !strcmp(t->driver, "rt73usb") || -+ !strcmp(t->driver, "ar9170usb") || -+ !strcmp(t->driver, "libertas_tf_usb") || -+ !strcmp(t->driver, "at76c50x-usb") || -+ !strcmp(t->driver, "p54usb") || -+ !strcmp(t->driver, "rndis_wlan") || -+ !strcmp(t->driver, "rtl8187") || -+ !strcmp(t->driver, "usb8xxx") || - !strcmp(t->driver, "zd1201") || -- !strcmp(t->driver, "asix") || -+ !strcmp(t->driver, "zd1211rw") || - !strcmp(t->driver, "usbnet"))) { - if (t->type == CLASS_OTHER) - t->type = CLASS_NETWORK; diff --git a/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch b/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch deleted file mode 100644 index 331e8a1875..0000000000 --- a/src/patches/kvm-kmod-2.6.38.6_remove_pvclock_scale_delta_redifinition.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -Naur kvm-kmod-2.6.38.6.org/x86/external-module-compat.h kvm-kmod-2.6.38.6/x86/external-module-compat.h ---- kvm-kmod-2.6.38.6.org/x86/external-module-compat.h 2011-05-15 09:34:48.000000000 +0200 -+++ kvm-kmod-2.6.38.6/x86/external-module-compat.h 2011-05-21 13:30:50.529469540 +0200 -@@ -1064,41 +1064,6 @@ - - #endif /* >= 2.6.36 */ - --#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) --static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift) --{ -- u64 product; --#ifdef __i386__ -- u32 tmp1, tmp2; --#endif -- -- if (shift < 0) -- delta >>= -shift; -- else -- delta <<= shift; -- --#ifdef __i386__ -- __asm__ ( -- "mul %5 ; " -- "mov %4,%%eax ; " -- "mov %%edx,%4 ; " -- "mul %5 ; " -- "xor %5,%5 ; " -- "add %4,%%eax ; " -- "adc %5,%%edx ; " -- : "=A" (product), "=r" (tmp1), "=r" (tmp2) -- : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) ); --#elif defined(__x86_64__) -- __asm__ ( -- "mul %%rdx ; shrd $32,%%rdx,%%rax" -- : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) ); --#else --#error implement me! --#endif -- -- return product; --} --#endif - - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) && \ - LINUX_VERSION_CODE != KERNEL_VERSION(2,6,32) && defined(CONFIG_X86_64) diff --git a/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch b/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch deleted file mode 100644 index 87effb30a0..0000000000 --- a/src/patches/kvm-kmod-3.0b_remove_pvclock_scale_delta_redefinition.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur kvm-kmod-3.0b.org/x86/external-module-compat.h kvm-kmod-3.0b/x86/external-module-compat.h ---- kvm-kmod-3.0b.org/x86/external-module-compat.h 2011-07-23 16:39:10.000000000 +0200 -+++ kvm-kmod-3.0b/x86/external-module-compat.h 2011-08-13 21:37:56.046677541 +0200 -@@ -1095,7 +1095,7 @@ - - #endif /* >= 2.6.36 */ - --#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) || \ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) && \ - (LINUX_VERSION_CODE == KERNEL_VERSION(2,6,32) && KERNEL_EXTRAVERSION < 40) - static inline u64 pvclock_scale_delta(u64 delta, u32 mul_frac, int shift) - { diff --git a/src/patches/libmad-0.15.1b-cflags-O2.patch b/src/patches/libmad-0.15.1b-cflags-O2.patch new file mode 100644 index 0000000000..61b4b13bd7 --- /dev/null +++ b/src/patches/libmad-0.15.1b-cflags-O2.patch @@ -0,0 +1,12 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-07-01 12:58:13.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-07-01 12:59:13.000000000 -0600 +@@ -105,7 +105,7 @@ + shift + ;; + -O2) +- optimize="-O" ++ optimize="-O2" + shift + ;; + -fomit-frame-pointer) diff --git a/src/patches/libmad-0.15.1b-cflags.patch b/src/patches/libmad-0.15.1b-cflags.patch new file mode 100644 index 0000000000..2ec44e3445 --- /dev/null +++ b/src/patches/libmad-0.15.1b-cflags.patch @@ -0,0 +1,146 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-06-30 20:22:31.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-06-30 20:25:31.000000000 -0600 +@@ -122,74 +122,74 @@ + esac + done + +-if test "$GCC" = yes +-then +- if test -z "$arch" +- then +- case "$host" in +- i386-*) ;; +- i?86-*) arch="-march=i486" ;; +- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; +- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; +- powerpc-*) ;; +- mips*-agenda-*) arch="-mcpu=vr4100" ;; +- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; +- esac +- fi +- +- case "$optimize" in +- -O|"-O "*) +- optimize="-O" +- optimize="$optimize -fforce-mem" +- optimize="$optimize -fforce-addr" +- : #x optimize="$optimize -finline-functions" +- : #- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -fthread-jumps" +- optimize="$optimize -fcse-follow-jumps" +- optimize="$optimize -fcse-skip-blocks" +- : #x optimize="$optimize -frerun-cse-after-loop" +- : #x optimize="$optimize -frerun-loop-opt" +- : #x optimize="$optimize -fgcse" +- optimize="$optimize -fexpensive-optimizations" +- optimize="$optimize -fregmove" +- : #* optimize="$optimize -fdelayed-branch" +- : #x optimize="$optimize -fschedule-insns" +- optimize="$optimize -fschedule-insns2" +- : #? optimize="$optimize -ffunction-sections" +- : #? optimize="$optimize -fcaller-saves" +- : #> optimize="$optimize -funroll-loops" +- : #> optimize="$optimize -funroll-all-loops" +- : #x optimize="$optimize -fmove-all-movables" +- : #x optimize="$optimize -freduce-all-givs" +- : #? optimize="$optimize -fstrict-aliasing" +- : #* optimize="$optimize -fstructure-noalias" +- +- case "$host" in +- arm*-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- mips*-*) +- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -finline-functions" +- ;; +- i?86-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- powerpc-apple-*) +- # this triggers an internal compiler error with gcc2 +- : #optimize="$optimize -fstrength-reduce" +- +- # this is really only beneficial with gcc3 +- : #optimize="$optimize -finline-functions" +- ;; +- *) +- # this sometimes provokes bugs in gcc 2.95.2 +- : #optimize="$optimize -fstrength-reduce" +- ;; +- esac +- ;; +- esac +-fi ++#if test "$GCC" = yes ++#then ++# if test -z "$arch" ++# then ++# case "$host" in ++# i386-*) ;; ++# i?86-*) arch="-march=i486" ;; ++# arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; ++# armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; ++# powerpc-*) ;; ++# mips*-agenda-*) arch="-mcpu=vr4100" ;; ++# mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; ++# esac ++# fi ++# ++# case "$optimize" in ++# -O|"-O "*) ++# optimize="-O" ++# optimize="$optimize -fforce-mem" ++# optimize="$optimize -fforce-addr" ++# : #x optimize="$optimize -finline-functions" ++# : #- optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -fthread-jumps" ++# optimize="$optimize -fcse-follow-jumps" ++# optimize="$optimize -fcse-skip-blocks" ++# : #x optimize="$optimize -frerun-cse-after-loop" ++# : #x optimize="$optimize -frerun-loop-opt" ++# : #x optimize="$optimize -fgcse" ++# optimize="$optimize -fexpensive-optimizations" ++# optimize="$optimize -fregmove" ++# : #* optimize="$optimize -fdelayed-branch" ++# : #x optimize="$optimize -fschedule-insns" ++# optimize="$optimize -fschedule-insns2" ++# : #? optimize="$optimize -ffunction-sections" ++# : #? optimize="$optimize -fcaller-saves" ++# : #> optimize="$optimize -funroll-loops" ++# : #> optimize="$optimize -funroll-all-loops" ++# : #x optimize="$optimize -fmove-all-movables" ++# : #x optimize="$optimize -freduce-all-givs" ++# : #? optimize="$optimize -fstrict-aliasing" ++# : #* optimize="$optimize -fstructure-noalias" ++# ++# case "$host" in ++# arm*-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# mips*-*) ++# optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -finline-functions" ++# ;; ++# i?86-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# powerpc-apple-*) ++# # this triggers an internal compiler error with gcc2 ++# : #optimize="$optimize -fstrength-reduce" ++# ++# # this is really only beneficial with gcc3 ++# : #optimize="$optimize -finline-functions" ++# ;; ++# *) ++# # this sometimes provokes bugs in gcc 2.95.2 ++# : #optimize="$optimize -fstrength-reduce" ++# ;; ++# esac ++# ;; ++# esac ++#fi + + case "$host" in + mips*-agenda-*) diff --git a/src/patches/libnl-1.1-ULONG_MAX.patch b/src/patches/libnl-1.1-ULONG_MAX.patch new file mode 100644 index 0000000000..ca3dd40131 --- /dev/null +++ b/src/patches/libnl-1.1-ULONG_MAX.patch @@ -0,0 +1,11 @@ +--- libnl-1.1/include/netlink-local.h.orig 2008-06-08 19:09:20.000000000 +0200 ++++ libnl-1.1/include/netlink-local.h 2008-06-08 19:09:33.000000000 +0200 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include + #include + diff --git a/src/patches/libsafe-alpha.diff b/src/patches/libsafe-alpha.diff deleted file mode 100644 index dfeb9f227a..0000000000 --- a/src/patches/libsafe-alpha.diff +++ /dev/null @@ -1,232 +0,0 @@ ---- libsafe-2.0-16-orig/src/intercept.c 2003-03-15 16:02:12.000000000 +0100 -+++ libsafe-2.0-16/src/intercept.c 2003-03-15 16:12:22.000000000 +0100 -@@ -165,7 +165,8 @@ - */ - char *strcpy(char *dest, const char *src) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_memcpy) - real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -@@ -196,7 +197,8 @@ - - char *strncpy(char *dest, const char *src, size_t n) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_strncpy) - real_strncpy = (strncpy_t) getLibraryFunction("strncpy"); -@@ -219,7 +221,8 @@ - - char *stpcpy(char *dest, const char *src) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_memcpy) - real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -@@ -251,7 +254,8 @@ - #ifndef MISSING_WCSNLEN - wchar_t *wcscpy(wchar_t *dest, const wchar_t *src) - { -- size_t max_bytes, max_wchars, len; -+ size_t max_wchars, len; -+ uint max_bytes; - - if (!real_wcscpy) - real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy"); -@@ -291,7 +295,8 @@ - - wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src) - { -- size_t max_bytes, max_wchars, len; -+ size_t max_wchars, len; -+ uint max_bytes; - - if (!real_wcpcpy) - real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy"); -@@ -333,9 +338,15 @@ - /* - * This is needed! See the strcpy() for the reason. -ab. - */ --void *memcpy(void *dest, const void *src, size_t n) -+void *memcpy(void *dest, const void *src, size_t hack) - { -- size_t max_size; -+ /* -+ * a size_t IS an unsigned long everywhere, though it sometimes -+ * doesn't state so, making printf misinterpret it. -+ */ -+ unsigned long n = hack; -+ uint max_size; -+ - - if (!real_memcpy) - real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -@@ -344,11 +355,11 @@ - return real_memcpy(dest, src, n); - - if ((max_size = _libsafe_stackVariableP(dest)) == 0) { -- LOG(5, "memcpy( , , %d)\n", n); -+ LOG(5, "memcpy( , , %ld)\n", n); - return real_memcpy(dest, src, n); - } - -- LOG(4, "memcpy( , , %d) stack limit=%d)\n", n, max_size); -+ LOG(4, "memcpy( , , %ld) stack limit=%d)\n", n, max_size); - if (n > max_size) - _libsafe_die("Overflow caused by memcpy()"); - return real_memcpy(dest, src, n); -@@ -357,7 +368,7 @@ - - char *strcat(char *dest, const char *src) - { -- size_t max_size; -+ uint max_size; - uint dest_len, src_len; - - if (!real_memcpy) -@@ -388,7 +399,7 @@ - - char *strncat(char *dest, const char *src, size_t n) - { -- size_t max_size; -+ uint max_size; - uint dest_len, src_len; - - if (!real_strncat) -@@ -1008,12 +1019,31 @@ - if (is_printf_convspec[(int)*p]) { - caddr_t addr; - c++; -+#if 0 -+ /* -+ * cannot add va_list (ap here) with a number on alpha. -+ * this is faster than the other method, and might be -+ * a good idea to enable this on !alpha arch. -+ */ - if (pnum) { - addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*))); - } - else { - addr = *((caddr_t*)(ap + c*sizeof(char*))); - } -+#else -+ { -+ va_list apc; -+ uint nb = c + 1; -+ -+ va_copy(apc, ap); -+ if (pnum) -+ nb = atoi(pnum); -+ addr = NULL; -+ while (nb--) -+ addr = va_arg(apc, caddr_t); -+ } -+#endif - if (*p == 'n') { - if (_libsafe_raVariableP((void *)(addr))) { - _libsafe_die("printf(\"%%n\")"); -@@ -1172,12 +1202,32 @@ - if (is_printf_convspec[(int)*p]) { - caddr_t addr; - c++; -+#if 0 -+ /* -+ * cannot add va_list (ap here) with a number on alpha. -+ * this is faster than the other method, and might be -+ * a good idea to enable this on !alpha arch. -+ */ -+ - if (pnum) { - addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*))); - } - else { - addr = *((caddr_t*)(ap + c*sizeof(char*))); - } -+#else -+ { -+ va_list apc; -+ uint nb = c + 1; -+ -+ va_copy(apc, ap); -+ if (pnum) -+ nb = atoi(pnum); -+ addr = NULL; -+ while (nb--) -+ addr = va_arg(apc, caddr_t); -+ } -+#endif - if (*p == 'n') { - if (_libsafe_raVariableP((void *)(addr))) { - _libsafe_die("printf(\"%%n\")"); -@@ -1194,7 +1244,7 @@ - - int sprintf(char *str, const char *format, ...) - { -- size_t max_size; -+ uint max_size; - va_list ap; - int res; - -@@ -1242,7 +1292,7 @@ - - int snprintf(char *str, size_t size, const char *format, ...) - { -- size_t max_size; -+ uint max_size; - va_list ap; - int res; - -@@ -1288,7 +1338,7 @@ - - int vsprintf(char *str, const char *format, va_list ap) - { -- size_t max_size; -+ uint max_size; - int res; - - if (!real_vsprintf) -@@ -1325,7 +1375,7 @@ - - int vsnprintf(char *str, size_t size, const char *format, va_list ap) - { -- size_t max_size; -+ uint max_size; - int res; - - if (!real_vsnprintf) -@@ -1360,7 +1410,7 @@ - - char *getwd(char *buf) - { -- size_t max_size; -+ uint max_size; - char *res; - - if (!real_getwd) -@@ -1384,7 +1434,8 @@ - - char *gets(char *s) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - - if (!real_gets) - real_gets = (gets_t) getLibraryFunction("gets"); -@@ -1409,7 +1460,8 @@ - - char *realpath(char *path, char resolved_path[]) - { -- size_t max_size, len; -+ uint max_size; -+ size_t len; - char *res; - char buf[MAXPATHLEN + 1]; - diff --git a/src/patches/libsafe-functioncaching.diff b/src/patches/libsafe-functioncaching.diff deleted file mode 100644 index db003a4cfc..0000000000 --- a/src/patches/libsafe-functioncaching.diff +++ /dev/null @@ -1,258 +0,0 @@ -From: Goswin Brederlow -Subject: Bug#129345: patch to prevent a loop between libdl and libsafe causing libdl to crash -To: 129345@bugs.debian.org -Date: 01 Sep 2002 23:54:35 +0200 -Reply-To: Goswin Brederlow , - 129345@bugs.debian.org -Resent-From: Goswin Brederlow - - -------- -[D. Coe edited this patch slightly -- moved an unrelated change into the -Makefile itself [it changed the debugging comments only], and corrected a -spelling error and reworded the comments. The original patch is in the -bug tracking system, if you want to see it as submitted by Goswin.] -------- -------- -D. Coe subsequently modified the patch further, because in some cases -the initializations did not occur (e.g. when IO_vfscanf or memcpy was -called from ps or top (likely one of the libraries they use). maybe -they do something that disables libsafe's library globals initialization? - - -In any case, I've adopted both strategise in this new patch; the addresses -are preloaded as Goswin had coded, but they are also individually checked -each time needed (as was the case before Goswin's patch), and are initialized -at that point if necessary. Hopefully this will let ps and top work -and also continue to work around the libdl problem. -------- - -Hi, - -if libsafe is invoked from inside libdl (or only inside dlerror()?) -and a real_XXX function is not yet looked up it will reenter -libdl. That causes memory corruption resulting in a read from 0x0 and -thus segfault. - -The patch below makes libsafe cache all needed symbols once upon -init. That not only causes less lookups than before but should prevent -fatal loops. Failures of the initial lookups might not be reported -correctly but terminate in some odd way if the functions needed to -report are not yet looked up. - -MfG - Goswin - ----------------------------------------------------------------------- -diff -Nurd libsafe-2.0-16/src/intercept.c libsafe-2.0-16-mrvn/src/intercept.c ---- libsafe-2.0-16/src/intercept.c 2002-05-31 19:37:34.000000000 +0200 -+++ libsafe-2.0-16-mrvn/src/intercept.c 2002-09-01 23:44:55.000000000 +0200 -@@ -128,14 +128,29 @@ - } - - --/* Starting with version 2.0, we keep a single global copy of the pointer to -- * the real memcpy() function. This allows us to call -- * getLibraryFunction("memcpy") just once instead of multiple times, since -- * memcpy() is needed in four different functions below. -+/* Starting with Debian version 2.0-16-2, we keep a global copy of the pointer -+ * to each real functions. Otherwise a getLibraryFunction might -+ * be triggered from inside dlsym() and cause memory corruption reulting in a -+ * segfault. - */ --static memcpy_t real_memcpy = NULL; -- -- -+static memcpy_t real_memcpy = NULL; -+static _IO_vfscanf_t real_IO_vfscanf = NULL; -+static vfprintf_t real_vfprintf = NULL; -+static vsnprintf_t real_vsnprintf = NULL; -+static vsprintf_t real_vsprintf = NULL; -+static gets_t real_gets = NULL; -+static getwd_t real_getwd = NULL; -+static realpath_t real_realpath = NULL; -+static stpcpy_t real_stpcpy = NULL; -+static strcat_t real_strcat = NULL; -+static strcpy_t real_strcpy = NULL; -+static strncat_t real_strncat = NULL; -+static strncpy_t real_strncpy = NULL; -+static wcscpy_t real_wcscpy = NULL; -+static wcpcpy_t real_wcpcpy = NULL; -+#ifndef MISSING_WCSNLEN -+static wcscat_t real_wcscat = NULL; -+#endif - /* - * -------------- system library implementations ------------------- - * Here is the story: if a C source file includes and is -@@ -150,7 +165,6 @@ - */ - char *strcpy(char *dest, const char *src) - { -- static strcpy_t real_strcpy = NULL; - size_t max_size, len; - - if (!real_memcpy) -@@ -182,7 +196,6 @@ - - char *strncpy(char *dest, const char *src, size_t n) - { -- static strncpy_t real_strncpy = NULL; - size_t max_size, len; - - if (!real_strncpy) -@@ -206,7 +219,6 @@ - - char *stpcpy(char *dest, const char *src) - { -- static stpcpy_t real_stpcpy = NULL; - size_t max_size, len; - - if (!real_memcpy) -@@ -239,7 +251,6 @@ - #ifndef MISSING_WCSNLEN - wchar_t *wcscpy(wchar_t *dest, const wchar_t *src) - { -- static wcscpy_t real_wcscpy = NULL; - size_t max_bytes, max_wchars, len; - - if (!real_wcscpy) -@@ -280,7 +291,6 @@ - - wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src) - { -- static wcpcpy_t real_wcpcpy = NULL; - size_t max_bytes, max_wchars, len; - - if (!real_wcpcpy) -@@ -347,7 +357,6 @@ - - char *strcat(char *dest, const char *src) - { -- static strcat_t real_strcat = NULL; - size_t max_size; - uint dest_len, src_len; - -@@ -379,7 +388,6 @@ - - char *strncat(char *dest, const char *src, size_t n) - { -- static strncat_t real_strncat = NULL; - size_t max_size; - uint dest_len, src_len; - -@@ -408,7 +416,6 @@ - #ifndef MISSING_WCSNLEN - wchar_t *wcscat(wchar_t *dest, const wchar_t *src) - { -- static wcscat_t real_wcscat = NULL; - size_t max_bytes; - uint dest_len, src_len; - -@@ -861,7 +868,6 @@ - */ - int vfprintf(FILE *fp, const char *format, va_list ap) - { -- static vfprintf_t real_vfprintf = NULL; - int res; - char *p, *pnum; - int c = -1; /* Next var arg to be used */ -@@ -1026,7 +1032,6 @@ - */ - int _IO_vfprintf(FILE *fp, const char *format, va_list ap) - { -- static vfprintf_t real_vfprintf = NULL; - int res; - char *p, *pnum; - int c = -1; /* Next var arg to be used */ -@@ -1189,8 +1194,6 @@ - - int sprintf(char *str, const char *format, ...) - { -- static vsprintf_t real_vsprintf = NULL; -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - va_list ap; - int res; -@@ -1239,7 +1242,6 @@ - - int snprintf(char *str, size_t size, const char *format, ...) - { -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - va_list ap; - int res; -@@ -1286,8 +1288,6 @@ - - int vsprintf(char *str, const char *format, va_list ap) - { -- static vsprintf_t real_vsprintf = NULL; -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - int res; - -@@ -1325,7 +1325,6 @@ - - int vsnprintf(char *str, size_t size, const char *format, va_list ap) - { -- static vsnprintf_t real_vsnprintf = NULL; - size_t max_size; - int res; - -@@ -1361,7 +1360,6 @@ - - char *getwd(char *buf) - { -- static getwd_t real_getwd = NULL; - size_t max_size; - char *res; - -@@ -1386,7 +1384,6 @@ - - char *gets(char *s) - { -- static gets_t real_gets = NULL; - size_t max_size, len; - - if (!real_gets) -@@ -1412,7 +1409,6 @@ - - char *realpath(char *path, char resolved_path[]) - { -- static realpath_t real_realpath = NULL; - size_t max_size, len; - char *res; - char buf[MAXPATHLEN + 1]; -@@ -1445,7 +1441,6 @@ - - int _IO_vfscanf (_IO_FILE *s, const char *format, _IO_va_list argptr, int *errp) - { -- static _IO_vfscanf_t real_IO_vfscanf = NULL; - int res, save_count; - caddr_t ra_array[MAXLEVELS], fp_array[MAXLEVELS]; - -@@ -1529,6 +1524,25 @@ - - fclose(fp); - } -+ -+ real_memcpy = (memcpy_t) getLibraryFunction("memcpy"); -+ real_IO_vfscanf = (_IO_vfscanf_t) getLibraryFunction("_IO_vfscanf"); -+ real_vfprintf = (vfprintf_t) getLibraryFunction("vfprintf"); -+ real_vsnprintf = (vsnprintf_t) getLibraryFunction("vsnprintf"); -+ real_vsprintf = (vsprintf_t) getLibraryFunction("vsprintf"); -+ real_gets = (gets_t) getLibraryFunction("gets"); -+ real_getwd = (getwd_t) getLibraryFunction("getwd"); -+ real_realpath = (realpath_t) getLibraryFunction("realpath"); -+ real_stpcpy = (stpcpy_t) getLibraryFunction("stpcpy"); -+ real_strcat = (strcat_t) getLibraryFunction("strcat"); -+ real_strcpy = (strcpy_t) getLibraryFunction("strcpy"); -+ real_strncat = (strncat_t) getLibraryFunction("strncat"); -+ real_strncpy = (strncpy_t) getLibraryFunction("strncpy"); -+ real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy"); -+ real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy"); -+#ifndef MISSING_WCSNLEN -+ real_wcscat = (wcscat_t) getLibraryFunction("wcscat"); -+#endif - } - - diff --git a/src/patches/libsigc++-gcc43.patch b/src/patches/libsigc++-gcc43.patch new file mode 100644 index 0000000000..528f21e1ff --- /dev/null +++ b/src/patches/libsigc++-gcc43.patch @@ -0,0 +1,85 @@ +diff -urN libsigc++-2.0-2.0.17.old/sigc++/signal.h libsigc++-2.0-2.0.17/sigc++/signal.h +--- libsigc++-2.0-2.0.17.old/sigc++/signal.h 2005-12-20 08:35:21.000000000 +0000 ++++ libsigc++-2.0-2.0.17/sigc++/signal.h 2008-02-22 00:22:44.000000000 +0000 +@@ -1661,7 +1661,7 @@ + typedef internal::signal_emit0 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -1770,7 +1770,7 @@ + typedef internal::signal_emit1 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -1881,7 +1881,7 @@ + typedef internal::signal_emit2 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -1994,7 +1994,7 @@ + typedef internal::signal_emit3 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2109,7 +2109,7 @@ + typedef internal::signal_emit4 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2226,7 +2226,7 @@ + typedef internal::signal_emit5 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2345,7 +2345,7 @@ + typedef internal::signal_emit6 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +@@ -2466,7 +2466,7 @@ + typedef internal::signal_emit7 emitter_type; + typedef typename emitter_type::result_type result_type; + typedef slot slot_type; +- typedef slot_list slot_list_type; ++ typedef sigc::slot_list slot_list_type; + typedef typename slot_list_type::iterator iterator; + typedef typename slot_list_type::const_iterator const_iterator; + typedef typename slot_list_type::reverse_iterator reverse_iterator; +diff -urN libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc +--- libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc 2005-05-01 02:00:47.000000000 +0000 ++++ libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc 2008-02-22 00:24:08.000000000 +0000 +@@ -1,4 +1,6 @@ + #include ++#include ++#include + #include + + void Foo(sigc::trackable &t) {} diff --git a/src/patches/linux-2.6-arm-asm-constraint.patch b/src/patches/linux-2.6-arm-asm-constraint.patch new file mode 100644 index 0000000000..ac0641e92c --- /dev/null +++ b/src/patches/linux-2.6-arm-asm-constraint.patch @@ -0,0 +1,347 @@ +From 398aa66827155ef52bab58bebd24597d90968929 Mon Sep 17 00:00:00 2001 +From: Will Deacon +Date: Thu, 8 Jul 2010 10:59:16 +0100 +Subject: [PATCH] ARM: 6212/1: atomic ops: add memory constraints to inline + asm + +Currently, the 32-bit and 64-bit atomic operations on ARM do not +include memory constraints in the inline assembly blocks. In the +case of barrier-less operations [for example, atomic_add], this +means that the compiler may constant fold values which have actually +been modified by a call to an atomic operation. + +This issue can be observed in the atomic64_test routine in +/lib/atomic64_test.c: + +00000000 : + 0: e1a0c00d mov ip, sp + 4: e92dd830 push {r4, r5, fp, ip, lr, pc} + 8: e24cb004 sub fp, ip, #4 + c: e24dd008 sub sp, sp, #8 + 10: e24b3014 sub r3, fp, #20 + 14: e30d000d movw r0, #53261 ; 0xd00d + 18: e3011337 movw r1, #4919 ; 0x1337 + 1c: e34c0001 movt r0, #49153 ; 0xc001 + 20: e34a1aa3 movt r1, #43683 ; 0xaaa3 + 24: e16300f8 strd r0, [r3, #-8]! + 28: e30c0afe movw r0, #51966 ; 0xcafe + 2c: e30b1eef movw r1, #48879 ; 0xbeef + 30: e34d0eaf movt r0, #57007 ; 0xdeaf + 34: e34d1ead movt r1, #57005 ; 0xdead + 38: e1b34f9f ldrexd r4, [r3] + 3c: e1a34f90 strexd r4, r0, [r3] + 40: e3340000 teq r4, #0 + 44: 1afffffb bne 38 + 48: e59f0004 ldr r0, [pc, #4] ; 54 + 4c: e3a0101e mov r1, #30 + 50: ebfffffe bl 0 <__bug> + 54: 00000000 .word 0x00000000 + +The atomic64_set (0x38-0x44) writes to the atomic64_t, but the +compiler doesn't see this, assumes the test condition is always +false and generates an unconditional branch to __bug. The rest of the +test is optimised away. + +This patch adds suitable memory constraints to the atomic operations on ARM +to ensure that the compiler is informed of the correct data hazards. We have +to use the "Qo" constraints to avoid hitting the GCC anomaly described at +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44492 , where the compiler +makes assumptions about the writeback in the addressing mode used by the +inline assembly. These constraints forbid the use of auto{inc,dec} addressing +modes, so it doesn't matter if we don't use the operand exactly once. + +Cc: stable@kernel.org +Reviewed-by: Nicolas Pitre +Signed-off-by: Will Deacon +Signed-off-by: Russell King +--- + arch/arm/include/asm/atomic.h | 132 ++++++++++++++++++++-------------------- + 1 files changed, 66 insertions(+), 66 deletions(-) + +diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h +index e9e56c0..7e79503 100644 +--- a/arch/arm/include/asm/atomic.h ++++ b/arch/arm/include/asm/atomic.h +@@ -40,12 +40,12 @@ static inline void atomic_add(int i, atomic_t *v) + int result; + + __asm__ __volatile__("@ atomic_add\n" +-"1: ldrex %0, [%2]\n" +-" add %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" add %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + } +@@ -58,12 +58,12 @@ static inline int atomic_add_return(int i, atomic_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic_add_return\n" +-"1: ldrex %0, [%2]\n" +-" add %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" add %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + +@@ -78,12 +78,12 @@ static inline void atomic_sub(int i, atomic_t *v) + int result; + + __asm__ __volatile__("@ atomic_sub\n" +-"1: ldrex %0, [%2]\n" +-" sub %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" sub %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + } +@@ -96,12 +96,12 @@ static inline int atomic_sub_return(int i, atomic_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic_sub_return\n" +-"1: ldrex %0, [%2]\n" +-" sub %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" sub %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "Ir" (i) + : "cc"); + +@@ -118,11 +118,11 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new) + + do { + __asm__ __volatile__("@ atomic_cmpxchg\n" +- "ldrex %1, [%2]\n" ++ "ldrex %1, [%3]\n" + "mov %0, #0\n" +- "teq %1, %3\n" +- "strexeq %0, %4, [%2]\n" +- : "=&r" (res), "=&r" (oldval) ++ "teq %1, %4\n" ++ "strexeq %0, %5, [%3]\n" ++ : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter) + : "r" (&ptr->counter), "Ir" (old), "r" (new) + : "cc"); + } while (res); +@@ -137,12 +137,12 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr) + unsigned long tmp, tmp2; + + __asm__ __volatile__("@ atomic_clear_mask\n" +-"1: ldrex %0, [%2]\n" +-" bic %0, %0, %3\n" +-" strex %1, %0, [%2]\n" ++"1: ldrex %0, [%3]\n" ++" bic %0, %0, %4\n" ++" strex %1, %0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (tmp), "=&r" (tmp2) ++ : "=&r" (tmp), "=&r" (tmp2), "+Qo" (*addr) + : "r" (addr), "Ir" (mask) + : "cc"); + } +@@ -249,7 +249,7 @@ static inline u64 atomic64_read(atomic64_t *v) + __asm__ __volatile__("@ atomic64_read\n" + " ldrexd %0, %H0, [%1]" + : "=&r" (result) +- : "r" (&v->counter) ++ : "r" (&v->counter), "Qo" (v->counter) + ); + + return result; +@@ -260,11 +260,11 @@ static inline void atomic64_set(atomic64_t *v, u64 i) + u64 tmp; + + __asm__ __volatile__("@ atomic64_set\n" +-"1: ldrexd %0, %H0, [%1]\n" +-" strexd %0, %2, %H2, [%1]\n" ++"1: ldrexd %0, %H0, [%2]\n" ++" strexd %0, %3, %H3, [%2]\n" + " teq %0, #0\n" + " bne 1b" +- : "=&r" (tmp) ++ : "=&r" (tmp), "=Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + } +@@ -275,13 +275,13 @@ static inline void atomic64_add(u64 i, atomic64_t *v) + unsigned long tmp; + + __asm__ __volatile__("@ atomic64_add\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" adds %0, %0, %3\n" +-" adc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" adds %0, %0, %4\n" ++" adc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + } +@@ -294,13 +294,13 @@ static inline u64 atomic64_add_return(u64 i, atomic64_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic64_add_return\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" adds %0, %0, %3\n" +-" adc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" adds %0, %0, %4\n" ++" adc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + +@@ -315,13 +315,13 @@ static inline void atomic64_sub(u64 i, atomic64_t *v) + unsigned long tmp; + + __asm__ __volatile__("@ atomic64_sub\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" subs %0, %0, %3\n" +-" sbc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" subs %0, %0, %4\n" ++" sbc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + } +@@ -334,13 +334,13 @@ static inline u64 atomic64_sub_return(u64 i, atomic64_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic64_sub_return\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" subs %0, %0, %3\n" +-" sbc %H0, %H0, %H3\n" +-" strexd %1, %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" subs %0, %0, %4\n" ++" sbc %H0, %H0, %H4\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (i) + : "cc"); + +@@ -358,12 +358,12 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new) + + do { + __asm__ __volatile__("@ atomic64_cmpxchg\n" +- "ldrexd %1, %H1, [%2]\n" ++ "ldrexd %1, %H1, [%3]\n" + "mov %0, #0\n" +- "teq %1, %3\n" +- "teqeq %H1, %H3\n" +- "strexdeq %0, %4, %H4, [%2]" +- : "=&r" (res), "=&r" (oldval) ++ "teq %1, %4\n" ++ "teqeq %H1, %H4\n" ++ "strexdeq %0, %5, %H5, [%3]" ++ : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter) + : "r" (&ptr->counter), "r" (old), "r" (new) + : "cc"); + } while (res); +@@ -381,11 +381,11 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new) + smp_mb(); + + __asm__ __volatile__("@ atomic64_xchg\n" +-"1: ldrexd %0, %H0, [%2]\n" +-" strexd %1, %3, %H3, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" ++" strexd %1, %4, %H4, [%3]\n" + " teq %1, #0\n" + " bne 1b" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (ptr->counter) + : "r" (&ptr->counter), "r" (new) + : "cc"); + +@@ -402,16 +402,16 @@ static inline u64 atomic64_dec_if_positive(atomic64_t *v) + smp_mb(); + + __asm__ __volatile__("@ atomic64_dec_if_positive\n" +-"1: ldrexd %0, %H0, [%2]\n" ++"1: ldrexd %0, %H0, [%3]\n" + " subs %0, %0, #1\n" + " sbc %H0, %H0, #0\n" + " teq %H0, #0\n" + " bmi 2f\n" +-" strexd %1, %0, %H0, [%2]\n" ++" strexd %1, %0, %H0, [%3]\n" + " teq %1, #0\n" + " bne 1b\n" + "2:" +- : "=&r" (result), "=&r" (tmp) ++ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter) + : "cc"); + +@@ -429,18 +429,18 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u) + smp_mb(); + + __asm__ __volatile__("@ atomic64_add_unless\n" +-"1: ldrexd %0, %H0, [%3]\n" +-" teq %0, %4\n" +-" teqeq %H0, %H4\n" ++"1: ldrexd %0, %H0, [%4]\n" ++" teq %0, %5\n" ++" teqeq %H0, %H5\n" + " moveq %1, #0\n" + " beq 2f\n" +-" adds %0, %0, %5\n" +-" adc %H0, %H0, %H5\n" +-" strexd %2, %0, %H0, [%3]\n" ++" adds %0, %0, %6\n" ++" adc %H0, %H0, %H6\n" ++" strexd %2, %0, %H0, [%4]\n" + " teq %2, #0\n" + " bne 1b\n" + "2:" +- : "=&r" (val), "+r" (ret), "=&r" (tmp) ++ : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter) + : "r" (&v->counter), "r" (u), "r" (a) + : "cc"); + +-- +1.7.6.2 + diff --git a/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch b/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch deleted file mode 100644 index 7419c0520d..0000000000 --- a/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur linux-2.6.25.18.org/kernel/sysctl.c linux-2.6.25.18/kernel/sysctl.c ---- linux-2.6.25.18.org/kernel/sysctl.c 2008-10-09 04:58:32.000000000 +0200 -+++ linux-2.6.25.18/kernel/sysctl.c 2008-10-10 18:03:33.000000000 +0200 -@@ -2807,6 +2807,10 @@ - if ((args->nlen == 2) && (name[0] == CTL_KERN) && (name[1] == KERN_VERSION)) - return 0; - -+ /* Ignore kudzu syscall 1.23 */ -+ if ((args->nlen == 2) && (name[0] == 1) && (name[1] == 23)) -+ return 0; -+ - if (msg_count < 5) { - msg_count++; - printk(KERN_INFO diff --git a/src/patches/linux-2.6.32-crypto-mv_cesa.patch b/src/patches/linux-2.6.32-crypto-mv_cesa.patch new file mode 100644 index 0000000000..cc85d52d9c --- /dev/null +++ b/src/patches/linux-2.6.32-crypto-mv_cesa.patch @@ -0,0 +1,647 @@ +From 0328ac267564089d9cedfb568f936d30a6debd21 Mon Sep 17 00:00:00 2001 +From: Uri Simchoni +Date: Thu, 8 Apr 2010 19:25:37 +0300 +Subject: [PATCH] crypto: mv_cesa - Invoke the user callback from a softirq + context + +Invoke the user callback from a softirq context + +Signed-off-by: Uri Simchoni +Signed-off-by: Herbert Xu +--- + drivers/crypto/mv_cesa.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index b21ef63..3e60ba9 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -275,7 +275,9 @@ static void dequeue_complete_req(void) + sg_miter_stop(&cpg->p.dst_sg_it); + mv_crypto_algo_completion(); + cpg->eng_st = ENGINE_IDLE; ++ local_bh_disable(); + req->base.complete(&req->base, 0); ++ local_bh_enable(); + } + } + +-- +1.7.6.5 +From 6bc6fcd609080461682c5cc0a1e3bf4345d6419d Mon Sep 17 00:00:00 2001 +From: Uri Simchoni +Date: Thu, 8 Apr 2010 19:25:56 +0300 +Subject: [PATCH] crypto: mv_cesa - Remove compiler warning in mv_cesa driver + +Remove compiler warning + +Signed-off-by: Uri Simchoni +Signed-off-by: Herbert Xu +--- + drivers/crypto/mv_cesa.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 3e60ba9..37d9f06 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -178,6 +178,7 @@ static void mv_process_current_q(int first_block) + op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_ECB; + break; + case COP_AES_CBC: ++ default: + op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_CBC; + op.enc_iv = ENC_IV_POINT(SRAM_DATA_IV) | + ENC_IV_BUF_POINT(SRAM_DATA_IV_BUF); +-- +1.7.6.5 +X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fcrypto%2Fmv_cesa.c;h=018a95ce0c9b0d6e6a13bff1522630799bc445b3;hp=37d9f0688e7575a3e366f6bb9eda5adc5db807b5;hb=f565e67ec1b8f4a95d21550f9b879fe86b4132e0;hpb=6bc6fcd609080461682c5cc0a1e3bf4345d6419d + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 37d9f06..018a95c 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -242,6 +242,8 @@ static void dequeue_complete_req(void) + struct ablkcipher_request *req = cpg->cur_req; + void *buf; + int ret; ++ int need_copy_len = cpg->p.crypt_len; ++ int sram_offset = 0; + + cpg->p.total_req_bytes += cpg->p.crypt_len; + do { +@@ -257,14 +259,16 @@ static void dequeue_complete_req(void) + buf = cpg->p.dst_sg_it.addr; + buf += cpg->p.dst_start; + +- dst_copy = min(cpg->p.crypt_len, cpg->p.sg_dst_left); +- +- memcpy(buf, cpg->sram + SRAM_DATA_OUT_START, dst_copy); ++ dst_copy = min(need_copy_len, cpg->p.sg_dst_left); + ++ memcpy(buf, ++ cpg->sram + SRAM_DATA_OUT_START + sram_offset, ++ dst_copy); ++ sram_offset += dst_copy; + cpg->p.sg_dst_left -= dst_copy; +- cpg->p.crypt_len -= dst_copy; ++ need_copy_len -= dst_copy; + cpg->p.dst_start += dst_copy; +- } while (cpg->p.crypt_len > 0); ++ } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); + if (cpg->p.total_req_bytes < req->nbytes) { +From 15d4dd3594221f11a7730fcf2d5f9942b96cdd7e Mon Sep 17 00:00:00 2001 +From: Uri Simchoni +Date: Thu, 8 Apr 2010 19:27:02 +0300 +Subject: [PATCH] crypto: mv_cesa - Fix situations where the src sglist spans + more data than the request asks for + +Fix for situations where the source scatterlist spans more data than the +request nbytes + +Signed-off-by: Uri Simchoni +Signed-off-by: Herbert Xu +--- + drivers/crypto/mv_cesa.c | 66 ++++++++++++++++++++++++++++++--------------- + 1 files changed, 44 insertions(+), 22 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 018a95c..096f9ff 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -143,27 +143,45 @@ static int mv_setkey_aes(struct crypto_ablkcipher *cipher, const u8 *key, + return 0; + } + +-static void setup_data_in(struct ablkcipher_request *req) ++static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len) + { + int ret; +- void *buf; +- +- if (!cpg->p.sg_src_left) { +- ret = sg_miter_next(&cpg->p.src_sg_it); +- BUG_ON(!ret); +- cpg->p.sg_src_left = cpg->p.src_sg_it.length; +- cpg->p.src_start = 0; +- } ++ void *sbuf; ++ int copied = 0; + +- cpg->p.crypt_len = min(cpg->p.sg_src_left, cpg->max_req_size); +- +- buf = cpg->p.src_sg_it.addr; +- buf += cpg->p.src_start; ++ while (1) { ++ if (!p->sg_src_left) { ++ ret = sg_miter_next(&p->src_sg_it); ++ BUG_ON(!ret); ++ p->sg_src_left = p->src_sg_it.length; ++ p->src_start = 0; ++ } + +- memcpy(cpg->sram + SRAM_DATA_IN_START, buf, cpg->p.crypt_len); ++ sbuf = p->src_sg_it.addr + p->src_start; ++ ++ if (p->sg_src_left <= len - copied) { ++ memcpy(dbuf + copied, sbuf, p->sg_src_left); ++ copied += p->sg_src_left; ++ p->sg_src_left = 0; ++ if (copied >= len) ++ break; ++ } else { ++ int copy_len = len - copied; ++ memcpy(dbuf + copied, sbuf, copy_len); ++ p->src_start += copy_len; ++ p->sg_src_left -= copy_len; ++ break; ++ } ++ } ++} + +- cpg->p.sg_src_left -= cpg->p.crypt_len; +- cpg->p.src_start += cpg->p.crypt_len; ++static void setup_data_in(struct ablkcipher_request *req) ++{ ++ struct req_progress *p = &cpg->p; ++ p->crypt_len = ++ min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size); ++ copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, ++ p->crypt_len); + } + + static void mv_process_current_q(int first_block) +@@ -289,12 +307,16 @@ static void dequeue_complete_req(void) + static int count_sgs(struct scatterlist *sl, unsigned int total_bytes) + { + int i = 0; +- +- do { +- total_bytes -= sl[i].length; +- i++; +- +- } while (total_bytes > 0); ++ size_t cur_len; ++ ++ while (1) { ++ cur_len = sl[i].length; ++ ++i; ++ if (total_bytes > cur_len) ++ total_bytes -= cur_len; ++ else ++ break; ++ } + + return i; + } +-- +1.7.6.5 +From 3b61a90502481045f56c1c41a2af35ee48ca8b80 Mon Sep 17 00:00:00 2001 +From: Uri Simchoni +Date: Thu, 8 Apr 2010 19:27:33 +0300 +Subject: [PATCH] crypto: mv_cesa - Enqueue generic async requests + +Enqueue generic async requests rather than ablkcipher requests +in the driver's queue + +Signed-off-by: Uri Simchoni +Signed-off-by: Herbert Xu +--- + drivers/crypto/mv_cesa.c | 43 ++++++++++++++++++++++++------------------- + 1 files changed, 24 insertions(+), 19 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 096f9ff..8891e2e 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -39,6 +39,7 @@ enum engine_status { + * @sg_src_left: bytes left in src to process (scatter list) + * @src_start: offset to add to src start position (scatter list) + * @crypt_len: length of current crypt process ++ * @hw_nbytes: total bytes to process in hw for this request + * @sg_dst_left: bytes left dst to process in this scatter list + * @dst_start: offset to add to dst start position (scatter list) + * @total_req_bytes: total number of bytes processed (request). +@@ -55,6 +56,7 @@ struct req_progress { + int sg_src_left; + int src_start; + int crypt_len; ++ int hw_nbytes; + /* dst mostly */ + int sg_dst_left; + int dst_start; +@@ -71,7 +73,7 @@ struct crypto_priv { + spinlock_t lock; + struct crypto_queue queue; + enum engine_status eng_st; +- struct ablkcipher_request *cur_req; ++ struct crypto_async_request *cur_req; + struct req_progress p; + int max_req_size; + int sram_size; +@@ -175,18 +177,18 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len) + } + } + +-static void setup_data_in(struct ablkcipher_request *req) ++static void setup_data_in(void) + { + struct req_progress *p = &cpg->p; + p->crypt_len = +- min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size); ++ min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size); + copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, + p->crypt_len); + } + + static void mv_process_current_q(int first_block) + { +- struct ablkcipher_request *req = cpg->cur_req; ++ struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req); + struct mv_ctx *ctx = crypto_tfm_ctx(req->base.tfm); + struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req); + struct sec_accel_config op; +@@ -229,7 +231,7 @@ static void mv_process_current_q(int first_block) + ENC_P_DST(SRAM_DATA_OUT_START); + op.enc_key_p = SRAM_DATA_KEY_P; + +- setup_data_in(req); ++ setup_data_in(); + op.enc_len = cpg->p.crypt_len; + memcpy(cpg->sram + SRAM_CONFIG, &op, + sizeof(struct sec_accel_config)); +@@ -246,7 +248,7 @@ static void mv_process_current_q(int first_block) + + static void mv_crypto_algo_completion(void) + { +- struct ablkcipher_request *req = cpg->cur_req; ++ struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req); + struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req); + + if (req_ctx->op != COP_AES_CBC) +@@ -257,7 +259,7 @@ static void mv_crypto_algo_completion(void) + + static void dequeue_complete_req(void) + { +- struct ablkcipher_request *req = cpg->cur_req; ++ struct crypto_async_request *req = cpg->cur_req; + void *buf; + int ret; + int need_copy_len = cpg->p.crypt_len; +@@ -289,7 +291,7 @@ static void dequeue_complete_req(void) + } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); +- if (cpg->p.total_req_bytes < req->nbytes) { ++ if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) { + /* process next scatter list entry */ + cpg->eng_st = ENGINE_BUSY; + mv_process_current_q(0); +@@ -299,7 +301,7 @@ static void dequeue_complete_req(void) + mv_crypto_algo_completion(); + cpg->eng_st = ENGINE_IDLE; + local_bh_disable(); +- req->base.complete(&req->base, 0); ++ req->complete(req, 0); + local_bh_enable(); + } + } +@@ -323,16 +325,19 @@ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes) + + static void mv_enqueue_new_req(struct ablkcipher_request *req) + { ++ struct req_progress *p = &cpg->p; + int num_sgs; + +- cpg->cur_req = req; +- memset(&cpg->p, 0, sizeof(struct req_progress)); ++ cpg->cur_req = &req->base; ++ memset(p, 0, sizeof(struct req_progress)); ++ p->hw_nbytes = req->nbytes; + + num_sgs = count_sgs(req->src, req->nbytes); +- sg_miter_start(&cpg->p.src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); ++ sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); + + num_sgs = count_sgs(req->dst, req->nbytes); +- sg_miter_start(&cpg->p.dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG); ++ sg_miter_start(&p->dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG); ++ + mv_process_current_q(1); + } + +@@ -378,13 +383,13 @@ static int queue_manag(void *data) + return 0; + } + +-static int mv_handle_req(struct ablkcipher_request *req) ++static int mv_handle_req(struct crypto_async_request *req) + { + unsigned long flags; + int ret; + + spin_lock_irqsave(&cpg->lock, flags); +- ret = ablkcipher_enqueue_request(&cpg->queue, req); ++ ret = crypto_enqueue_request(&cpg->queue, req); + spin_unlock_irqrestore(&cpg->lock, flags); + wake_up_process(cpg->queue_th); + return ret; +@@ -397,7 +402,7 @@ static int mv_enc_aes_ecb(struct ablkcipher_request *req) + req_ctx->op = COP_AES_ECB; + req_ctx->decrypt = 0; + +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_dec_aes_ecb(struct ablkcipher_request *req) +@@ -409,7 +414,7 @@ static int mv_dec_aes_ecb(struct ablkcipher_request *req) + req_ctx->decrypt = 1; + + compute_aes_dec_key(ctx); +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_enc_aes_cbc(struct ablkcipher_request *req) +@@ -419,7 +424,7 @@ static int mv_enc_aes_cbc(struct ablkcipher_request *req) + req_ctx->op = COP_AES_CBC; + req_ctx->decrypt = 0; + +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_dec_aes_cbc(struct ablkcipher_request *req) +@@ -431,7 +436,7 @@ static int mv_dec_aes_cbc(struct ablkcipher_request *req) + req_ctx->decrypt = 1; + + compute_aes_dec_key(ctx); +- return mv_handle_req(req); ++ return mv_handle_req(&req->base); + } + + static int mv_cra_init(struct crypto_tfm *tfm) +-- +1.7.6.5 +From 7a5f691ef03f4c01d2703b5ec4ddd4c17e645dec Mon Sep 17 00:00:00 2001 +From: Uri Simchoni +Date: Thu, 8 Apr 2010 19:29:16 +0300 +Subject: [PATCH] crypto: mv_cesa - Rename a variable to a more suitable name + +Rename a variable to a more suitable name + +Signed-off-by: Uri Simchoni +Signed-off-by: Herbert Xu +--- + drivers/crypto/mv_cesa.c | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 8891e2e..4262932 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -42,7 +42,7 @@ enum engine_status { + * @hw_nbytes: total bytes to process in hw for this request + * @sg_dst_left: bytes left dst to process in this scatter list + * @dst_start: offset to add to dst start position (scatter list) +- * @total_req_bytes: total number of bytes processed (request). ++ * @hw_processed_bytes: number of bytes processed by hw (request). + * + * sg helper are used to iterate over the scatterlist. Since the size of the + * SRAM may be less than the scatter size, this struct struct is used to keep +@@ -60,7 +60,7 @@ struct req_progress { + /* dst mostly */ + int sg_dst_left; + int dst_start; +- int total_req_bytes; ++ int hw_processed_bytes; + }; + + struct crypto_priv { +@@ -181,7 +181,7 @@ static void setup_data_in(void) + { + struct req_progress *p = &cpg->p; + p->crypt_len = +- min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size); ++ min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size); + copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, + p->crypt_len); + } +@@ -265,7 +265,7 @@ static void dequeue_complete_req(void) + int need_copy_len = cpg->p.crypt_len; + int sram_offset = 0; + +- cpg->p.total_req_bytes += cpg->p.crypt_len; ++ cpg->p.hw_processed_bytes += cpg->p.crypt_len; + do { + int dst_copy; + +@@ -291,7 +291,7 @@ static void dequeue_complete_req(void) + } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); +- if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) { ++ if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { + /* process next scatter list entry */ + cpg->eng_st = ENGINE_BUSY; + mv_process_current_q(0); +-- +1.6.5.GIT +From a58094ac5f95d6969e5c52ff096d2fd2864542af Mon Sep 17 00:00:00 2001 +From: Uri Simchoni +Date: Thu, 8 Apr 2010 19:30:19 +0300 +Subject: [PATCH] crypto: mv_cesa - Execute some code via function pointers + rathr than direct calls + +Execute some code via function pointers rathr than direct calls +(to allow customization in the hashing request) + +Signed-off-by: Uri Simchoni +Signed-off-by: Herbert Xu +--- + drivers/crypto/mv_cesa.c | 13 +++++++++---- + 1 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 4262932..2b4f07a 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -51,6 +51,8 @@ enum engine_status { + struct req_progress { + struct sg_mapping_iter src_sg_it; + struct sg_mapping_iter dst_sg_it; ++ void (*complete) (void); ++ void (*process) (int is_first); + + /* src mostly */ + int sg_src_left; +@@ -251,6 +253,9 @@ static void mv_crypto_algo_completion(void) + struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req); + struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req); + ++ sg_miter_stop(&cpg->p.src_sg_it); ++ sg_miter_stop(&cpg->p.dst_sg_it); ++ + if (req_ctx->op != COP_AES_CBC) + return ; + +@@ -294,11 +299,9 @@ static void dequeue_complete_req(void) + if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { + /* process next scatter list entry */ + cpg->eng_st = ENGINE_BUSY; +- mv_process_current_q(0); ++ cpg->p.process(0); + } else { +- sg_miter_stop(&cpg->p.src_sg_it); +- sg_miter_stop(&cpg->p.dst_sg_it); +- mv_crypto_algo_completion(); ++ cpg->p.complete(); + cpg->eng_st = ENGINE_IDLE; + local_bh_disable(); + req->complete(req, 0); +@@ -331,6 +334,8 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req) + cpg->cur_req = &req->base; + memset(p, 0, sizeof(struct req_progress)); + p->hw_nbytes = req->nbytes; ++ p->complete = mv_crypto_algo_completion; ++ p->process = mv_process_current_q; + + num_sgs = count_sgs(req->src, req->nbytes); + sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); +-- +1.7.6.5 +X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fcrypto%2Fmv_cesa.c;h=49a22060fb51a46afff004ddade3dacf378aecd8;hp=2b4f07aa89e8ba7422de65eea027e06daa5f7797;hb=f0d03deaad05d9cc99cd2ee0475c9ecd726c19ae;hpb=a58094ac5f95d6969e5c52ff096d2fd2864542af + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 2b4f07a..49a2206 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -40,6 +40,7 @@ enum engine_status { + * @src_start: offset to add to src start position (scatter list) + * @crypt_len: length of current crypt process + * @hw_nbytes: total bytes to process in hw for this request ++ * @copy_back: whether to copy data back (crypt) or not (hash) + * @sg_dst_left: bytes left dst to process in this scatter list + * @dst_start: offset to add to dst start position (scatter list) + * @hw_processed_bytes: number of bytes processed by hw (request). +@@ -60,6 +61,7 @@ struct req_progress { + int crypt_len; + int hw_nbytes; + /* dst mostly */ ++ int copy_back; + int sg_dst_left; + int dst_start; + int hw_processed_bytes; +@@ -267,33 +269,35 @@ static void dequeue_complete_req(void) + struct crypto_async_request *req = cpg->cur_req; + void *buf; + int ret; +- int need_copy_len = cpg->p.crypt_len; +- int sram_offset = 0; +- + cpg->p.hw_processed_bytes += cpg->p.crypt_len; +- do { +- int dst_copy; ++ if (cpg->p.copy_back) { ++ int need_copy_len = cpg->p.crypt_len; ++ int sram_offset = 0; ++ do { ++ int dst_copy; ++ ++ if (!cpg->p.sg_dst_left) { ++ ret = sg_miter_next(&cpg->p.dst_sg_it); ++ BUG_ON(!ret); ++ cpg->p.sg_dst_left = cpg->p.dst_sg_it.length; ++ cpg->p.dst_start = 0; ++ } + +- if (!cpg->p.sg_dst_left) { +- ret = sg_miter_next(&cpg->p.dst_sg_it); +- BUG_ON(!ret); +- cpg->p.sg_dst_left = cpg->p.dst_sg_it.length; +- cpg->p.dst_start = 0; +- } ++ buf = cpg->p.dst_sg_it.addr; ++ buf += cpg->p.dst_start; + +- buf = cpg->p.dst_sg_it.addr; +- buf += cpg->p.dst_start; ++ dst_copy = min(need_copy_len, cpg->p.sg_dst_left); + +- dst_copy = min(need_copy_len, cpg->p.sg_dst_left); ++ memcpy(buf, ++ cpg->sram + SRAM_DATA_OUT_START + sram_offset, ++ dst_copy); ++ sram_offset += dst_copy; ++ cpg->p.sg_dst_left -= dst_copy; ++ need_copy_len -= dst_copy; ++ cpg->p.dst_start += dst_copy; ++ } while (need_copy_len > 0); ++ } + +- memcpy(buf, +- cpg->sram + SRAM_DATA_OUT_START + sram_offset, +- dst_copy); +- sram_offset += dst_copy; +- cpg->p.sg_dst_left -= dst_copy; +- need_copy_len -= dst_copy; +- cpg->p.dst_start += dst_copy; +- } while (need_copy_len > 0); + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); + if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { +@@ -336,6 +340,7 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req) + p->hw_nbytes = req->nbytes; + p->complete = mv_crypto_algo_completion; + p->process = mv_process_current_q; ++ p->copy_back = 1; + + num_sgs = count_sgs(req->src, req->nbytes); + sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG); +From 0c5c6c4bae8fe9ae3d86b44c332eb1267df1ec99 Mon Sep 17 00:00:00 2001 +From: Uri Simchoni +Date: Thu, 8 Apr 2010 19:33:26 +0300 +Subject: [PATCH] crypto: mv_cesa - Support processing of data from previous + requests + +Support processing of data from previous requests (as in hashing +update/final requests). + +Signed-off-by: Uri Simchoni +Signed-off-by: Herbert Xu +--- + drivers/crypto/mv_cesa.c | 8 +++++--- + 1 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c +index 49a2206..d0fb10e 100644 +--- a/drivers/crypto/mv_cesa.c ++++ b/drivers/crypto/mv_cesa.c +@@ -184,10 +184,11 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len) + static void setup_data_in(void) + { + struct req_progress *p = &cpg->p; +- p->crypt_len = ++ int data_in_sram = + min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size); +- copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START, +- p->crypt_len); ++ copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START + p->crypt_len, ++ data_in_sram - p->crypt_len); ++ p->crypt_len = data_in_sram; + } + + static void mv_process_current_q(int first_block) +@@ -298,6 +299,7 @@ static void dequeue_complete_req(void) + } while (need_copy_len > 0); + } + ++ cpg->p.crypt_len = 0; + + BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE); + if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) { +-- +1.7.6.5 diff --git a/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch b/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch deleted file mode 100644 index b102380d60..0000000000 --- a/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -Naur linux-2.6.32.11.org/drivers/usb/serial/option.c linux-2.6.32.11/drivers/usb/serial/option.c ---- linux-2.6.32.11.org/drivers/usb/serial/option.c 2010-04-02 00:59:14.000000000 +0200 -+++ linux-2.6.32.11/drivers/usb/serial/option.c 2010-04-21 21:56:56.000000000 +0200 -@@ -165,6 +165,10 @@ - #define HUAWEI_PRODUCT_E143D 0x143D - #define HUAWEI_PRODUCT_E143E 0x143E - #define HUAWEI_PRODUCT_E143F 0x143F -+/* Vodafone K4505-H */ -+#define HUAWEI_PRODUCT_E1464 0x1464 -+/* Vodafone K3765-H */ -+#define HUAWEI_PRODUCT_E1465 0x1465 - #define HUAWEI_PRODUCT_E14AC 0x14AC - - #define QUANTA_VENDOR_ID 0x0408 -@@ -443,6 +447,8 @@ - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1464, 0xff, 0xff, 0xff) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1465, 0xff, 0xff, 0xff) }, - { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) }, - { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) }, - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ diff --git a/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch b/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch deleted file mode 100644 index 9db9c2e52d..0000000000 --- a/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch +++ /dev/null @@ -1,522 +0,0 @@ -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c 2011-10-11 15:35:37.000000000 +0200 -@@ -0,0 +1,140 @@ -+/* -+ * arch/arm/mach-kirkwood/dreamplug-setup.c -+ * -+ * Marvell DreamPlug Reference Board Setup -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "common.h" -+#include "mpp.h" -+ -+static const struct flash_platform_data dreamplug_spi_slave_data = { -+ .type = "mx25l1606e", -+}; -+ -+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = { -+ { -+ .modalias = "m25p80", -+ .platform_data = &dreamplug_spi_slave_data, -+ .irq = -1, -+ .max_speed_hz = 50000000, -+ .bus_num = 0, -+ .chip_select = 0, -+ }, -+}; -+ -+static struct mv643xx_eth_platform_data dreamplug_ge00_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(0), -+}; -+ -+static struct mv643xx_eth_platform_data dreamplug_ge01_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(1), -+}; -+ -+static struct mv_sata_platform_data dreamplug_sata_data = { -+ .n_ports = 1, -+}; -+ -+static struct mvsdio_platform_data dreamplug_mvsdio_data = { -+ /* unfortunately the CD signal has not been connected */ -+}; -+ -+static struct gpio_led dreamplug_led_pins[] = { -+ { -+ .name = "dreamplug:blue:bluetooth", -+ .gpio = 47, -+ .active_low = 1, -+ }, -+ { -+ .name = "dreamplug:green:wlan", -+ .gpio = 48, -+ .active_low = 1, -+ }, -+ { -+ .name = "dreamplug:blue:wlanap", -+ .gpio = 49, -+ .active_low = 1, -+ }, -+}; -+ -+static struct gpio_led_platform_data dreamplug_led_data = { -+ .leds = dreamplug_led_pins, -+ .num_leds = ARRAY_SIZE(dreamplug_led_pins), -+}; -+ -+static struct platform_device dreamplug_leds = { -+ .name = "leds-gpio", -+ .id = -1, -+ .dev = { -+ .platform_data = &dreamplug_led_data, -+ } -+}; -+ -+static unsigned int dreamplug_mpp_config[] __initdata = { -+ MPP0_SPI_SCn, -+ MPP1_SPI_MOSI, -+ MPP2_SPI_SCK, -+ MPP3_SPI_MISO, -+ MPP4_GPIO, -+ MPP5_GPO, -+ MPP7_GPO, -+ MPP18_GPO, -+ MPP19_GPO, -+ MPP47_GPIO, /* B_BLED */ -+ MPP48_GPIO, /* W_GLED */ -+ MPP49_GPIO, /* W_BLED */ -+ 0 -+}; -+ -+static void __init dreamplug_init(void) -+{ -+ /* -+ * Basic setup. Needs to be called early. -+ */ -+ kirkwood_init(); -+ kirkwood_mpp_conf(dreamplug_mpp_config); -+ -+ kirkwood_uart0_init(); -+ -+ spi_register_board_info(dreamplug_spi_slave_info, -+ ARRAY_SIZE(dreamplug_spi_slave_info)); -+ -+ kirkwood_spi_init(); -+ kirkwood_ehci_init(); -+ -+ kirkwood_ge00_init(&dreamplug_ge00_data); -+ kirkwood_ge01_init(&dreamplug_ge01_data); -+ kirkwood_sata_init(&dreamplug_sata_data); -+ kirkwood_sdio_init(&dreamplug_mvsdio_data); -+ -+ platform_device_register(&dreamplug_leds); -+} -+ -+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board") -+ /* Maintainer: Siddarth Gore marvell.com> */ -+ .phys_io = KIRKWOOD_REGS_PHYS_BASE, -+ .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, -+ .boot_params = 0x00000100, -+ .init_machine = dreamplug_init, -+ .map_io = kirkwood_map_io, -+ .init_irq = kirkwood_init_irq, -+ .timer = &kirkwood_timer, -+MACHINE_END -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c 2011-10-11 15:35:37.000000000 +0200 -@@ -0,0 +1,131 @@ -+/* -+ * arch/arm/mach-kirkwood/guruplug-setup.c -+ * -+ * Marvell GuruPlug Reference Board Setup -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "common.h" -+#include "mpp.h" -+ -+static struct mtd_partition guruplug_nand_parts[] = { -+ { -+ .name = "u-boot", -+ .offset = 0, -+ .size = SZ_1M -+ }, { -+ .name = "uImage", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = SZ_4M -+ }, { -+ .name = "root", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = MTDPART_SIZ_FULL -+ }, -+}; -+ -+static struct mv643xx_eth_platform_data guruplug_ge00_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(0), -+}; -+ -+static struct mv643xx_eth_platform_data guruplug_ge01_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(1), -+}; -+ -+static struct mv_sata_platform_data guruplug_sata_data = { -+ .n_ports = 1, -+}; -+ -+static struct mvsdio_platform_data guruplug_mvsdio_data = { -+ /* unfortunately the CD signal has not been connected */ -+}; -+ -+static struct gpio_led guruplug_led_pins[] = { -+ { -+ .name = "guruplug:red:health", -+ .gpio = 46, -+ .active_low = 1, -+ }, -+ { -+ .name = "guruplug:green:health", -+ .gpio = 47, -+ .active_low = 1, -+ }, -+ { -+ .name = "guruplug:red:wmode", -+ .gpio = 48, -+ .active_low = 1, -+ }, -+ { -+ .name = "guruplug:green:wmode", -+ .gpio = 49, -+ .active_low = 1, -+ }, -+}; -+ -+static struct gpio_led_platform_data guruplug_led_data = { -+ .leds = guruplug_led_pins, -+ .num_leds = ARRAY_SIZE(guruplug_led_pins), -+}; -+ -+static struct platform_device guruplug_leds = { -+ .name = "leds-gpio", -+ .id = -1, -+ .dev = { -+ .platform_data = &guruplug_led_data, -+ } -+}; -+ -+static unsigned int guruplug_mpp_config[] __initdata = { -+ MPP46_GPIO, /* M_RLED */ -+ MPP47_GPIO, /* M_GLED */ -+ MPP48_GPIO, /* B_RLED */ -+ MPP49_GPIO, /* B_GLED */ -+ 0 -+}; -+ -+static void __init guruplug_init(void) -+{ -+ /* -+ * Basic setup. Needs to be called early. -+ */ -+ kirkwood_init(); -+ kirkwood_mpp_conf(guruplug_mpp_config); -+ -+ kirkwood_uart0_init(); -+ kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25); -+ -+ kirkwood_ehci_init(); -+ kirkwood_ge00_init(&guruplug_ge00_data); -+ kirkwood_ge01_init(&guruplug_ge01_data); -+ kirkwood_sata_init(&guruplug_sata_data); -+ kirkwood_sdio_init(&guruplug_mvsdio_data); -+ -+ platform_device_register(&guruplug_leds); -+} -+ -+MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board") -+ /* Maintainer: Siddarth Gore */ -+ .phys_io = KIRKWOOD_REGS_PHYS_BASE, -+ .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, -+ .boot_params = 0x00000100, -+ .init_machine = guruplug_init, -+ .map_io = kirkwood_map_io, -+ .init_irq = kirkwood_init_irq, -+ .timer = &kirkwood_timer, -+MACHINE_END -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 03:57:37.000000000 +0200 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig 2011-10-15 17:06:55.816070291 +0200 -@@ -32,6 +32,18 @@ - Say 'Y' here if you want your kernel to support the - Marvell SheevaPlug Reference Board. - -+config MACH_DREAMPLUG -+ bool "Marvell DreamPlug Reference Board" -+ help -+ Say 'Y' here if you want your kernel to support the -+ Marvell DreamPlug Reference Board. -+ -+config MACH_GURUPLUG -+ bool "Marvell GuruPlug Reference Board" -+ help -+ Say 'Y' here if you want your kernel to support the -+ Marvell GuruPlug Reference Board. -+ - config MACH_TS219 - bool "QNAP TS-119 and TS-219 Turbo NAS" - help -@@ -44,6 +56,12 @@ - Say 'Y' here if you want your kernel to support the - Marvell OpenRD Base Board. - -+config MACH_NAS6210 -+ bool "RaidSonic ICY BOX IB-NAS62x0" -+ help -+ Say 'Y' here if you want your kernel to support the -+ RaidSonic ICY BOX IB-NAS62x0 device. -+ - endmenu - - endif -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile 2011-08-16 03:57:37.000000000 +0200 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile 2011-10-15 17:07:16.346068829 +0200 -@@ -5,7 +5,10 @@ - obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o - obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o - obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o -+obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o -+obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o - obj-$(CONFIG_MACH_TS219) += ts219-setup.o - obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o -+obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o - - obj-$(CONFIG_CPU_IDLE) += cpuidle.o -diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c ---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c 2011-10-16 09:57:35.268409525 +0200 -@@ -0,0 +1,180 @@ -+/* -+ * arch/arm/mach-kirkwood/nas6210-setup.c -+ * -+ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "common.h" -+#include "mpp.h" -+ -+#define NAS6210_GPIO_POWER_OFF 24 -+ -+static struct mtd_partition nas6210_nand_parts[] = { -+ { -+ .name = "u-boot", -+ .offset = 0, -+ .size = SZ_1M -+ }, { -+ .name = "uImage", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = (SZ_1M*6) -+ }, { -+ .name = "root", -+ .offset = MTDPART_OFS_NXTBLK, -+ .size = MTDPART_SIZ_FULL -+ }, -+}; -+ -+static struct mv643xx_eth_platform_data nas6210_ge00_data = { -+ .phy_addr = MV643XX_ETH_PHY_ADDR(8), -+}; -+ -+static struct mv_sata_platform_data nas6210_sata_data = { -+ .n_ports = 2, -+}; -+ -+static struct gpio_led nas6210_led_pins[] = { -+ { -+ .name = "nas6210:green:power", -+ .default_trigger = "default-on", -+ .gpio = 25, -+ .active_low = 0, -+ }, -+ { -+ .name = "nas6210:red:power", -+ .default_trigger = "none", -+ .gpio = 22, -+ .active_low = 0, -+ }, -+ { -+ .name = "nas6210:red:usb_copy", -+ .default_trigger = "none", -+ .gpio = 27, -+ .active_low = 0, -+ }, -+}; -+ -+static struct gpio_led_platform_data nas6210_led_data = { -+ .leds = nas6210_led_pins, -+ .num_leds = ARRAY_SIZE(nas6210_led_pins), -+}; -+ -+static struct platform_device nas6210_leds = { -+ .name = "leds-gpio", -+ .id = -1, -+ .dev = { -+ .platform_data = &nas6210_led_data, -+ } -+}; -+ -+static struct gpio_keys_button nas6210_buttons[] = { -+ { -+ .code = KEY_COPY, -+ .gpio = 29, -+ .desc = "USB Copy", -+ .active_low = 1, -+ }, -+ { -+ .code = KEY_RESTART, -+ .gpio = 28, -+ .desc = "Reset", -+ .active_low = 1, -+ }, -+}; -+ -+static struct gpio_keys_platform_data nas6210_button_data = { -+ .buttons = nas6210_buttons, -+ .nbuttons = ARRAY_SIZE(nas6210_buttons), -+}; -+ -+static struct platform_device nas6210_button_device = { -+ .name = "gpio-keys", -+ .id = -1, -+ .num_resources = 0, -+ .dev = { -+ .platform_data = &nas6210_button_data, -+ } -+}; -+ -+static unsigned int nas6210_mpp_config[] __initdata = { -+ MPP0_NF_IO2, -+ MPP1_NF_IO3, -+ MPP2_NF_IO4, -+ MPP3_NF_IO5, -+ MPP4_NF_IO6, -+ MPP5_NF_IO7, -+ MPP18_NF_IO0, -+ MPP19_NF_IO1, -+ MPP22_GPIO, /* Power LED red */ -+ MPP24_GPIO, /* Power off */ -+ MPP25_GPIO, /* Power LED green */ -+ MPP27_GPIO, /* USB transfer LED */ -+ MPP28_GPIO, /* Reset button */ -+ MPP29_GPIO, /* USB Copy button */ -+ 0 -+}; -+ -+void nas6210_power_off(void) -+{ -+ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); -+ while(1); -+} -+ -+static void __init nas6210_init(void) -+{ -+ /* -+ * Basic setup. Needs to be called early. -+ */ -+ kirkwood_init(); -+ kirkwood_mpp_conf(nas6210_mpp_config); -+ -+ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); -+ kirkwood_ehci_init(); -+ kirkwood_ge00_init(&nas6210_ge00_data); -+ kirkwood_sata_init(&nas6210_sata_data); -+ kirkwood_uart0_init(); -+ platform_device_register(&nas6210_leds); -+ platform_device_register(&nas6210_button_device); -+ -+ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && -+ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) -+ pm_power_off = nas6210_power_off; -+ -+ else -+ pr_err("nas6210: failed to configure power-off gpio pin"); -+} -+ -+static int __init nas6210_pci_init(void) -+{ -+ if (machine_is_nas6210()) { -+ kirkwood_pcie_init(); -+ } -+ return 0; -+} -+subsys_initcall(nas6210_pci_init); -+ -+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0") -+ /* Maintainer: Arne Fitzenreiter */ -+ .boot_params = 0x00000100, -+ .init_machine = nas6210_init, -+ .map_io = kirkwood_map_io, -+ .init_irq = kirkwood_init_irq, -+ .timer = &kirkwood_timer, -+MACHINE_END -diff -Naur linux-2.6.32.45.org/arch/arm/tools/mach-types linux-2.6.32.45/arch/arm/tools/mach-types ---- linux-2.6.32.45.org/arch/arm/tools/mach-types 2011-08-16 03:57:37.000000000 +0200 -+++ linux-2.6.32.45/arch/arm/tools/mach-types 2011-10-15 17:05:46.486069811 +0200 -@@ -2536,3 +2536,6 @@ - mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 - esyx MACH_ESYX ESYX 2551 - bulldog MACH_BULLDOG BULLDOG 2553 -+guruplug MACH_GURUPLUG GURUPLUG 2601 -+dreamplug MACH_DREAMPLUG DREAMPLUG 2659 -+nas6210 MACH_NAS6210 NAS6210 3104 diff --git a/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch b/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch new file mode 100644 index 0000000000..2aea1d1ff3 --- /dev/null +++ b/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch @@ -0,0 +1,149 @@ +Added smsc95xx.macaddr module parameter to allow the user to +change the MAC address on boot if there was no MAC on the EEPROM. + +The parameter take the MAC address in 01:23:45:67:89:ab format and +needs to be locally assigned. The MAC get assigned to the first +smsc95xx device with no MAC on EEPROM (which resulted in a random +MAC before). If there is more than one device without MAC on +EEPROM and the user needs set the MAC to a specific device, it +can be done by attaching the netdev name (e.g. eth0) to the +smsc95xx.macaddr parameter seperated by a ';' as e.g. in +'01:23:45:67:89:ab;eth0' + +This allows e.g. u-boot to pass on PandaBoard or BeagleBoard +the by u-boot generated static MAC address to the kernel device +to ensure the MAC stays the same during the whole boot process. + +Signed-off-by: Danny Kukawka +--- + drivers/net/usb/smsc95xx.c | 85 ++++++++++++++++++++++++++++++++++++++++++-- + 1 files changed, 82 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c +index d45520e..3198c7d 100644 +--- a/drivers/net/usb/smsc95xx.c ++++ b/drivers/net/usb/smsc95xx.c +@@ -52,6 +52,8 @@ struct smsc95xx_priv { + u32 hash_hi; + u32 hash_lo; + spinlock_t mac_cr_lock; ++ bool mac_set_from_param; ++ bool mac_is_random; + }; + + struct usb_context { +@@ -63,6 +65,11 @@ static bool turbo_mode = true; + module_param(turbo_mode, bool, 0644); + MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); + ++static char *macaddr = ":"; ++static bool set_macaddr = false; ++module_param(macaddr, charp, 0); ++MODULE_PARM_DESC(macaddr, " macaddr=macaddr;[tgt-netdevname] (Set MAC only if there is a device without MAC on EEPROM)"); ++ + static int smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data) + { + u32 *buf = kmalloc(4, GFP_KERNEL); +@@ -601,8 +608,71 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) + return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); + } + ++/* set mac address from the macaddr module parameter */ ++static int smsc95xx_init_mac_address_from_param(struct usbnet *dev) ++{ ++ struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); ++ int i, parsed, ret; ++ u8 mtbl[ETH_ALEN]; ++ char *input = NULL; ++ char *config_param = NULL; ++ char *netdev_name = NULL; ++ ++ parsed = 0; ++ ret = 0; ++ ++ input = kstrdup(macaddr, GFP_KERNEL); ++ ++ if (!input) ++ return -ENOMEM; ++ ++ if (strlen(input) >= 17) { ++ while ((config_param = strsep(&input, ";"))) { ++ if (parsed == 0) { ++ if (!mac_pton(config_param, mtbl)) { ++ ret = 1; ++ goto parse_err; ++ } ++ } else { ++ netdev_name = config_param; ++ } ++ parsed ++; ++ } ++ ++ if (parsed && is_valid_ether_addr(mtbl)) { ++ if (netdev_name && strlen(netdev_name)) { ++ if (strcmp(netdev_name, dev->net->name) != 0) { ++ netif_dbg(dev, ifup, dev->net, "requested devname (%s) didn't match (%s)\n", netdev_name, dev->net->name); ++ ret = 1; ++ goto out; ++ } ++ } ++ ++ for (i = 0; i < ETH_ALEN; i++) { ++ dev->net->dev_addr[i] = mtbl[i]; ++ } ++ ++ netif_dbg(dev, ifup, dev->net, "set valid MAC address from smsc95xx.macaddr\n"); ++ set_macaddr = true; ++ pdata->mac_set_from_param = true; ++ pdata->mac_is_random = false; ++ goto out; ++ } ++ } ++ ++parse_err: ++ netif_dbg(dev, ifup, dev->net, "failed to parse (valid) MAC from smsc95xx.macaddr\n"); ++ set_macaddr = true; ++out: ++ if (input) ++ kfree(input); ++ return ret; ++} ++ + static void smsc95xx_init_mac_address(struct usbnet *dev) + { ++ struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); ++ + /* try reading mac address from EEPROM */ + if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, + dev->net->dev_addr) == 0) { +@@ -615,16 +685,25 @@ static void smsc95xx_init_mac_address(struct usbnet *dev) + + /* no eeprom, or eeprom values are invalid. generate random MAC */ + random_ether_addr(dev->net->dev_addr); ++ pdata->mac_is_random = true; + netif_dbg(dev, ifup, dev->net, "MAC address set to random_ether_addr\n"); + } + + static int smsc95xx_set_mac_address(struct usbnet *dev) + { +- u32 addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 | +- dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24; +- u32 addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8; ++ struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); ++ u32 addr_lo, addr_hi; + int ret; + ++ if (pdata->mac_is_random && !pdata->mac_set_from_param && !set_macaddr) { ++ netif_dbg(dev, ifup, dev->net, "random MAC address, not yet set from smsc95xx.macaddr, try to set it ...\n"); ++ smsc95xx_init_mac_address_from_param(dev); ++ } ++ ++ addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 | ++ dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24; ++ addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8; ++ + ret = smsc95xx_write_reg(dev, ADDRL, addr_lo); + if (ret < 0) { + netdev_warn(dev->net, "Failed to write ADDRL: %d\n", ret); +-- + diff --git a/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch b/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch new file mode 100644 index 0000000000..34cba84af7 --- /dev/null +++ b/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch @@ -0,0 +1,1039 @@ +diff -Naur linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h +--- linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h 2012-03-20 09:29:20.616541362 +0100 +@@ -0,0 +1,31 @@ ++#ifndef __IPT_IPP2P_H ++#define __IPT_IPP2P_H ++#define IPP2P_VERSION "0.8.2-ipfire" ++ ++struct ipt_p2p_info { ++ int cmd; ++ int debug; ++}; ++ ++#endif //__IPT_IPP2P_H ++ ++#define SHORT_HAND_IPP2P 1 /* --ipp2p switch*/ ++//#define SHORT_HAND_DATA 4 /* --ipp2p-data switch*/ ++#define SHORT_HAND_NONE 5 /* no short hand*/ ++ ++#define IPP2P_EDK (1 << 1) ++#define IPP2P_DATA_KAZAA (1 << 2) ++#define IPP2P_DATA_EDK (1 << 3) ++#define IPP2P_DATA_DC (1 << 4) ++#define IPP2P_DC (1 << 5) ++#define IPP2P_DATA_GNU (1 << 6) ++#define IPP2P_GNU (1 << 7) ++#define IPP2P_KAZAA (1 << 8) ++#define IPP2P_BIT (1 << 9) ++#define IPP2P_APPLE (1 << 10) ++#define IPP2P_SOUL (1 << 11) ++#define IPP2P_WINMX (1 << 12) ++#define IPP2P_ARES (1 << 13) ++#define IPP2P_MUTE (1 << 14) ++#define IPP2P_WASTE (1 << 15) ++#define IPP2P_XDCC (1 << 16) +diff -Naur linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c +--- linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c 2012-03-20 11:26:38.593101443 +0100 +@@ -0,0 +1,970 @@ ++#if defined(MODVERSIONS) ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define get_u8(X,O) (*(__u8 *)(X + O)) ++#define get_u16(X,O) (*(__u16 *)(X + O)) ++#define get_u32(X,O) (*(__u32 *)(X + O)) ++ ++MODULE_AUTHOR("Eicke Friedrich/Klaus Degner "); ++MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic."); ++MODULE_LICENSE("GPL"); ++ ++ ++/*Search for UDP eDonkey/eMule/Kad commands*/ ++int ++udp_search_edk (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ switch (t[0]) { ++ case 0xe3: ++ { /*edonkey*/ ++ switch (t[1]) ++ { ++ /* client -> server status request */ ++ case 0x96: ++ if (packet_len == 14) return ((IPP2P_EDK * 100) + 50); ++ break; ++ /* server -> client status request */ ++ case 0x97: if (packet_len == 42) return ((IPP2P_EDK * 100) + 51); ++ break; ++ /* server description request */ ++ /* e3 2a ff f0 .. | size == 6 */ ++ case 0xa2: if ( (packet_len == 14) && ( get_u16(t,2) == __constant_htons(0xfff0) ) ) return ((IPP2P_EDK * 100) + 52); ++ break; ++ /* server description response */ ++ /* e3 a3 ff f0 .. | size > 40 && size < 200 */ ++ //case 0xa3: return ((IPP2P_EDK * 100) + 53); ++ // break; ++ case 0x9a: if (packet_len==26) return ((IPP2P_EDK * 100) + 54); ++ break; ++ ++ case 0x92: if (packet_len==18) return ((IPP2P_EDK * 100) + 55); ++ break; ++ } ++ break; ++ } ++ case 0xe4: ++ { ++ switch (t[1]) ++ { ++ /* e4 20 .. | size == 43 */ ++ case 0x20: if ((packet_len == 43) && (t[2] != 0x00) && (t[34] != 0x00)) return ((IPP2P_EDK * 100) + 60); ++ break; ++ /* e4 00 .. 00 | size == 35 ? */ ++ case 0x00: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 61); ++ break; ++ /* e4 10 .. 00 | size == 35 ? */ ++ case 0x10: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 62); ++ break; ++ /* e4 18 .. 00 | size == 35 ? */ ++ case 0x18: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 63); ++ break; ++ /* e4 52 .. | size = 44 */ ++ case 0x52: if (packet_len == 44 ) return ((IPP2P_EDK * 100) + 64); ++ break; ++ /* e4 58 .. | size == 6 */ ++ case 0x58: if (packet_len == 14 ) return ((IPP2P_EDK * 100) + 65); ++ break; ++ /* e4 59 .. | size == 2 */ ++ case 0x59: if (packet_len == 10 )return ((IPP2P_EDK * 100) + 66); ++ break; ++ /* e4 28 .. | packet_len == 52,77,102,127... */ ++ case 0x28: if (((packet_len-52) % 25) == 0) return ((IPP2P_EDK * 100) + 67); ++ break; ++ /* e4 50 xx xx | size == 4 */ ++ case 0x50: if (packet_len == 12) return ((IPP2P_EDK * 100) + 68); ++ break; ++ /* e4 40 xx xx | size == 48 */ ++ case 0x40: if (packet_len == 56) return ((IPP2P_EDK * 100) + 69); ++ break; ++ } ++ break; ++ } ++ } /* end of switch (t[0]) */ ++ return 0; ++}/*udp_search_edk*/ ++ ++ ++/*Search for UDP Gnutella commands*/ ++int ++udp_search_gnu (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ t += 8; ++ ++ if (memcmp(t, "GND", 3) == 0) return ((IPP2P_GNU * 100) + 51); ++ if (memcmp(t, "GNUTELLA ", 9) == 0) return ((IPP2P_GNU * 100) + 52); ++ return 0; ++}/*udp_search_gnu*/ ++ ++ ++/*Search for UDP KaZaA commands*/ ++int ++udp_search_kazaa (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ ++ if (t[packet_len-1] == 0x00){ ++ t += (packet_len - 6); ++ if (memcmp(t, "KaZaA", 5) == 0) return (IPP2P_KAZAA * 100 +50); ++ } ++ ++ return 0; ++}/*udp_search_kazaa*/ ++ ++/*Search for UDP DirectConnect commands*/ ++int ++udp_search_directconnect (unsigned char *haystack, int packet_len) ++{ ++ unsigned char *t = haystack; ++ if ((*(t + 8) == 0x24) && (*(t + packet_len - 1) == 0x7c)) { ++ t+=8; ++ if (memcmp(t, "SR ", 3) == 0) return ((IPP2P_DC * 100) + 60); ++ if (memcmp(t, "Ping ", 5) == 0) return ((IPP2P_DC * 100) + 61); ++ } ++ return 0; ++}/*udp_search_directconnect*/ ++ ++ ++ ++/*Search for UDP BitTorrent commands*/ ++int ++udp_search_bit (unsigned char *haystack, int packet_len) ++{ ++ switch(packet_len) ++ { ++ case 24: ++ /* ^ 00 00 04 17 27 10 19 80 */ ++ if ((ntohl(get_u32(haystack, 8)) == 0x00000417) && (ntohl(get_u32(haystack, 12)) == 0x27101980)) ++ return (IPP2P_BIT * 100 + 50); ++ break; ++ case 44: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 51); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000400)) ++ return (IPP2P_BIT * 100 + 61); ++ break; ++ case 65: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 52); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000404)) ++ return (IPP2P_BIT * 100 + 62); ++ break; ++ case 67: ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 53); ++ if (get_u32(haystack, 16) == __constant_htonl(0x00000406)) ++ return (IPP2P_BIT * 100 + 63); ++ break; ++ case 211: ++ if (get_u32(haystack, 8) == __constant_htonl(0x00000405)) ++ return (IPP2P_BIT * 100 + 54); ++ break; ++ case 29: ++ if ((get_u32(haystack, 8) == __constant_htonl(0x00000401))) ++ return (IPP2P_BIT * 100 + 55); ++ break; ++ case 52: ++ if (get_u32(haystack,8) == __constant_htonl(0x00000827) && ++ get_u32(haystack,12) == __constant_htonl(0x37502950)) ++ return (IPP2P_BIT * 100 + 80); ++ break; ++ default: ++ /* this packet does not have a constant size */ ++ if (packet_len >= 40 && get_u32(haystack, 16) == __constant_htonl(0x00000402) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) ++ return (IPP2P_BIT * 100 + 56); ++ break; ++ } ++ ++ /* some extra-bitcomet rules: ++ * "d1:" [a|r] "d2:id20:" ++ */ ++ if (packet_len > 30 && get_u8(haystack, 8) == 'd' && get_u8(haystack, 9) == '1' && get_u8(haystack, 10) == ':' ) ++ { ++ if (get_u8(haystack, 11) == 'a' || get_u8(haystack, 11) == 'r') ++ { ++ if (memcmp(haystack+12,"d2:id20:",8)==0) ++ return (IPP2P_BIT * 100 + 57); ++ } ++ } ++ ++#if 0 ++ /* bitlord rules */ ++ /* packetlen must be bigger than 40 */ ++ /* first 4 bytes are zero */ ++ if (packet_len > 40 && get_u32(haystack, 8) == 0x00000000) ++ { ++ /* first rule: 00 00 00 00 01 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000000 && ++ get_u32(haystack, 16) == 0x00010000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ /* 00 01 00 00 0d 00 00 xx xx xx xx 00 00 00 00*/ ++ if (get_u32(haystack, 12) == 0x00000001 && ++ get_u32(haystack, 16) == 0x000d0000 && ++ get_u32(haystack, 24) == 0x00000000 ) ++ return (IPP2P_BIT * 100 + 71); ++ ++ ++ } ++#endif ++ ++ return 0; ++}/*udp_search_bit*/ ++ ++ ++ ++/*Search for Ares commands*/ ++//#define IPP2P_DEBUG_ARES ++int ++search_ares (const unsigned char *payload, const u16 plen) ++//int search_ares (unsigned char *haystack, int packet_len, int head_len) ++{ ++// const unsigned char *t = haystack + head_len; ++ ++ /* all ares packets start with */ ++ if (payload[1] == 0 && (plen - payload[0]) == 3) ++ { ++ switch (payload[2]) ++ { ++ case 0x5a: ++ /* ares connect */ ++ if ( plen == 6 && payload[5] == 0x05 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++ case 0x09: ++ /* ares search, min 3 chars --> 14 bytes ++ * lets define a search can be up to 30 chars --> max 34 bytes ++ */ ++ if ( plen >= 14 && plen <= 34 ) return ((IPP2P_ARES * 100) + 1); ++ break; ++#ifdef IPP2P_DEBUG_ARES ++ default: ++ printk(KERN_DEBUG "Unknown Ares command %x recognized, len: %u \n", (unsigned int) payload[2],plen); ++#endif /* IPP2P_DEBUG_ARES */ ++ } ++ } ++ ++#if 0 ++ /* found connect packet: 03 00 5a 04 03 05 */ ++ /* new version ares 1.8: 03 00 5a xx xx 05 */ ++ if ((plen) == 6){ /* possible connect command*/ ++ if ((payload[0] == 0x03) && (payload[1] == 0x00) && (payload[2] == 0x5a) && (payload[5] == 0x05)) ++ return ((IPP2P_ARES * 100) + 1); ++ } ++ if ((plen) == 60){ /* possible download command*/ ++ if ((payload[59] == 0x0a) && (payload[58] == 0x0a)){ ++ if (memcmp(t, "PUSH SHA1:", 10) == 0) /* found download command */ ++ return ((IPP2P_ARES * 100) + 2); ++ } ++ } ++#endif ++ ++ return 0; ++} /*search_ares*/ ++ ++/*Search for SoulSeek commands*/ ++int ++search_soul (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_SOUL ++ /* match: xx xx xx xx | xx = sizeof(payload) - 4 */ ++ if (get_u32(payload, 0) == (plen - 4)){ ++ const __u32 m=get_u32(payload, 4); ++ /* match 00 yy yy 00, yy can be everything */ ++ if ( get_u8(payload, 4) == 0x00 && get_u8(payload, 7) == 0x00 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "0: Soulseek command 0x%x recognized\n",get_u32(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 1); ++ } ++ ++ /* next match: 01 yy 00 00 | yy can be everything */ ++ if ( get_u8(payload, 4) == 0x01 && get_u16(payload, 6) == 0x0000 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "1: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 2); ++ } ++ ++ /* other soulseek commandos are: 1-5,7,9,13-18,22,23,26,28,35-37,40-46,50,51,60,62-69,91,92,1001 */ ++ /* try to do this in an intelligent way */ ++ /* get all small commandos */ ++ switch(m) ++ { ++ case 7: ++ case 9: ++ case 22: ++ case 23: ++ case 26: ++ case 28: ++ case 50: ++ case 51: ++ case 60: ++ case 91: ++ case 92: ++ case 1001: ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "2: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 3); ++ } ++ ++ if (m > 0 && m < 6 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "3: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 4); ++ } ++ if (m > 12 && m < 19 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "4: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 5); ++ } ++ ++ if (m > 34 && m < 38 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "5: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 6); ++ } ++ ++ if (m > 39 && m < 47 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "6: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 7); ++ } ++ ++ if (m > 61 && m < 70 ) ++ { ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "7: Soulseek command 0x%x recognized\n",get_u16(payload, 4)); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 8); ++ } ++ ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "unknown SOULSEEK command: 0x%x, first 16 bit: 0x%x, first 8 bit: 0x%x ,soulseek ???\n",get_u32(payload, 4),get_u16(payload, 4) >> 16,get_u8(payload, 4) >> 24); ++#endif /* IPP2P_DEBUG_SOUL */ ++ } ++ ++ /* match 14 00 00 00 01 yy 00 00 00 STRING(YY) 01 00 00 00 00 46|50 00 00 00 00 */ ++ /* without size at the beginning !!! */ ++ if ( get_u32(payload, 0) == 0x14 && get_u8(payload, 4) == 0x01 ) ++ { ++ __u32 y=get_u32(payload, 5); ++ /* we need 19 chars + string */ ++ if ( (y + 19) <= (plen) ) ++ { ++ const unsigned char *w=payload+9+y; ++ if (get_u32(w, 0) == 0x01 && ( get_u16(w, 4) == 0x4600 || get_u16(w, 4) == 0x5000) && get_u32(w, 6) == 0x00); ++#ifdef IPP2P_DEBUG_SOUL ++ printk(KERN_DEBUG "Soulssek special client command recognized\n"); ++#endif /* IPP2P_DEBUG_SOUL */ ++ return ((IPP2P_SOUL * 100) + 9); ++ } ++ } ++ return 0; ++} ++ ++ ++/*Search for WinMX commands*/ ++int ++search_winmx (const unsigned char *payload, const u16 plen) ++{ ++//#define IPP2P_DEBUG_WINMX ++ if (((plen) == 4) && (memcmp(payload, "SEND", 4) == 0)) return ((IPP2P_WINMX * 100) + 1); ++ if (((plen) == 3) && (memcmp(payload, "GET", 3) == 0)) return ((IPP2P_WINMX * 100) + 2); ++ //if (packet_len < (head_len + 10)) return 0; ++ if (plen < 10) return 0; ++ ++ if ((memcmp(payload, "SEND", 4) == 0) || (memcmp(payload, "GET", 3) == 0)){ ++ u16 c=4; ++ const u16 end=plen-2; ++ u8 count=0; ++ while (c < end) ++ { ++ if (payload[c]== 0x20 && payload[c+1] == 0x22) ++ { ++ c++; ++ count++; ++ if (count>=2) return ((IPP2P_WINMX * 100) + 3); ++ } ++ c++; ++ } ++ } ++ ++ if ( plen == 149 && payload[0] == '8' ) ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "maybe WinMX\n"); ++#endif ++ if (get_u32(payload,17) == 0 && get_u32(payload,21) == 0 && get_u32(payload,25) == 0 && ++// get_u32(payload,33) == __constant_htonl(0x71182b1a) && get_u32(payload,37) == __constant_htonl(0x05050000) && ++// get_u32(payload,133) == __constant_htonl(0x31097edf) && get_u32(payload,145) == __constant_htonl(0xdcb8f792)) ++ get_u16(payload,39) == 0 && get_u16(payload,135) == __constant_htons(0x7edf) && get_u16(payload,147) == __constant_htons(0xf792)) ++ ++ { ++#ifdef IPP2P_DEBUG_WINMX ++ printk(KERN_INFO "got WinMX\n"); ++#endif ++ return ((IPP2P_WINMX * 100) + 4); ++ } ++ } ++ return 0; ++} /*search_winmx*/ ++ ++ ++/*Search for appleJuice commands*/ ++int ++search_apple (const unsigned char *payload, const u16 plen) ++{ ++ if ( (plen > 7) && (payload[6] == 0x0d) && (payload[7] == 0x0a) && (memcmp(payload, "ajprot", 6) == 0)) return (IPP2P_APPLE * 100); ++ ++ return 0; ++} ++ ++ ++/*Search for BitTorrent commands*/ ++int ++search_bittorrent (const unsigned char *payload, const u16 plen) ++{ ++ if (plen > 20) ++ { ++ /* test for match 0x13+"BitTorrent protocol" */ ++ if (payload[0] == 0x13) ++ { ++ if (memcmp(payload+1, "BitTorrent protocol", 19) == 0) return (IPP2P_BIT * 100); ++ } ++ ++ /* get tracker commandos, all starts with GET / ++ * then it can follow: scrape| announce ++ * and then ?hash_info= ++ */ ++ if (memcmp(payload,"GET /",5) == 0) ++ { ++ /* message scrape */ ++ if ( memcmp(payload+5,"scrape?info_hash=",17)==0 ) return (IPP2P_BIT * 100 + 1); ++ /* message announce */ ++ if ( memcmp(payload+5,"announce?info_hash=",19)==0 ) return (IPP2P_BIT * 100 + 2); ++ } ++ } ++ else ++ { ++ /* bitcomet encryptes the first packet, so we have to detect another ++ * one later in the flow */ ++ /* first try failed, too many missdetections */ ++ //if ( size == 5 && get_u32(t,0) == __constant_htonl(1) && t[4] < 3) return (IPP2P_BIT * 100 + 3); ++ ++ /* second try: block request packets */ ++ if ( plen == 17 && get_u32(payload,0) == __constant_htonl(0x0d) && payload[4] == 0x06 && get_u32(payload,13) == __constant_htonl(0x4000) ) return (IPP2P_BIT * 100 + 3); ++ } ++ ++ return 0; ++} ++ ++ ++ ++/*check for Kazaa get command*/ ++int ++search_kazaa (const unsigned char *payload, const u16 plen) ++ ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a) && memcmp(payload, "GET /.hash=", 11) == 0) ++ return (IPP2P_DATA_KAZAA * 100); ++ ++ return 0; ++} ++ ++ ++/*check for gnutella get command*/ ++int ++search_gnu (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ if (memcmp(payload, "GET /get/", 9) == 0) return ((IPP2P_DATA_GNU * 100) + 1); ++ if (memcmp(payload, "GET /uri-res/", 13) == 0) return ((IPP2P_DATA_GNU * 100) + 2); ++ } ++ return 0; ++} ++ ++ ++/*check for gnutella get commands and other typical data*/ ++int ++search_all_gnu (const unsigned char *payload, const u16 plen) ++{ ++ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GNUTELLA CONNECT/", 17) == 0) return ((IPP2P_GNU * 100) + 1); ++ if (memcmp(payload, "GNUTELLA/", 9) == 0) return ((IPP2P_GNU * 100) + 2); ++ ++ ++ if ((memcmp(payload, "GET /get/", 9) == 0) || (memcmp(payload, "GET /uri-res/", 13) == 0)) ++ { ++ u16 c=8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Gnutella-", 11) == 0) || (memcmp(&payload[c+2], "X-Queue:", 8) == 0))) ++ return ((IPP2P_GNU * 100) + 3); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++ ++/*check for KaZaA download commands and other typical data*/ ++int ++search_all_kazaa (const unsigned char *payload, const u16 plen) ++{ ++ if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a)) ++ { ++ ++ if (memcmp(payload, "GIVE ", 5) == 0) return ((IPP2P_KAZAA * 100) + 1); ++ ++ if (memcmp(payload, "GET /", 5) == 0) { ++ u16 c = 8; ++ const u16 end=plen-22; ++ while (c < end) { ++ if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0) || (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0))) ++ return ((IPP2P_KAZAA * 100) + 2); ++ c++; ++ } ++ } ++ } ++ return 0; ++} ++ ++/*fast check for edonkey file segment transfer command*/ ++int ++search_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ if (payload[5] == 0x47) ++ return (IPP2P_DATA_EDK * 100); ++ else ++ return 0; ++ } ++} ++ ++ ++ ++/*intensive but slower search for some edonkey packets including size-check*/ ++int ++search_all_edk (const unsigned char *payload, const u16 plen) ++{ ++ if (payload[0] != 0xe3) ++ return 0; ++ else { ++ //t += head_len; ++ const u16 cmd = get_u16(payload, 1); ++ if (cmd == (plen - 5)) { ++ switch (payload[5]) { ++ case 0x01: return ((IPP2P_EDK * 100) + 1); /*Client: hello or Server:hello*/ ++ case 0x4c: return ((IPP2P_EDK * 100) + 9); /*Client: Hello-Answer*/ ++ } ++ } ++ return 0; ++ } ++} ++ ++ ++/*fast check for Direct Connect send command*/ ++int ++search_dc (const unsigned char *payload, const u16 plen) ++{ ++ ++ if (payload[0] != 0x24 ) ++ return 0; ++ else { ++ if (memcmp(&payload[1], "Send|", 5) == 0) ++ return (IPP2P_DATA_DC * 100); ++ else ++ return 0; ++ } ++ ++} ++ ++ ++/*intensive but slower check for all direct connect packets*/ ++int ++search_all_dc (const unsigned char *payload, const u16 plen) ++{ ++// unsigned char *t = haystack; ++ ++ if (payload[0] == 0x24 && payload[plen-1] == 0x7c) ++ { ++ const unsigned char *t=&payload[1]; ++ /* Client-Hub-Protocol */ ++ if (memcmp(t, "Lock ", 5) == 0) return ((IPP2P_DC * 100) + 1); ++ /* Client-Client-Protocol, some are already recognized by client-hub (like lock) */ ++ if (memcmp(t, "MyNick ", 7) == 0) return ((IPP2P_DC * 100) + 38); ++ } ++ return 0; ++} ++ ++/*check for mute*/ ++int ++search_mute (const unsigned char *payload, const u16 plen) ++{ ++ if ( plen == 209 || plen == 345 || plen == 473 || plen == 609 || plen == 1121 ) ++ { ++ //printk(KERN_DEBUG "size hit: %u",size); ++ if (memcmp(payload,"PublicKey: ",11) == 0 ) ++ { ++ return ((IPP2P_MUTE * 100) + 0); ++ ++/* if (memcmp(t+size-14,"\x0aEndPublicKey\x0a",14) == 0) ++ { ++ printk(KERN_DEBUG "end pubic key hit: %u",size); ++ ++ }*/ ++ } ++ } ++ return 0; ++} ++ ++ ++/* check for xdcc */ ++int ++search_xdcc (const unsigned char *payload, const u16 plen) ++{ ++ /* search in small packets only */ ++ if (plen > 20 && plen < 200 && payload[plen-1] == 0x0a && payload[plen-2] == 0x0d && memcmp(payload,"PRIVMSG ",8) == 0) ++ { ++ ++ u16 x=10; ++ const u16 end=plen - 13; ++ ++ /* is seems to be a irc private massage, chedck for xdcc command */ ++ while (x < end) ++ { ++ if (payload[x] == ':') ++ { ++ if ( memcmp(&payload[x+1],"xdcc send #",11) == 0 ) ++ return ((IPP2P_XDCC * 100) + 0); ++ } ++ x++; ++ } ++ } ++ return 0; ++} ++ ++/* search for waste */ ++int search_waste(const unsigned char *payload, const u16 plen) ++{ ++ if ( plen >= 8 && memcmp(payload,"GET.sha1:",9) == 0) ++ return ((IPP2P_WASTE * 100) + 0); ++ ++ return 0; ++} ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (const unsigned char *, const u16); ++} matchlist[] = { ++ {IPP2P_EDK,SHORT_HAND_IPP2P,20, &search_all_edk}, ++// {IPP2P_DATA_KAZAA,SHORT_HAND_DATA,200, &search_kazaa}, ++// {IPP2P_DATA_EDK,SHORT_HAND_DATA,60, &search_edk}, ++// {IPP2P_DATA_DC,SHORT_HAND_DATA,26, &search_dc}, ++ {IPP2P_DC,SHORT_HAND_IPP2P,5, search_all_dc}, ++// {IPP2P_DATA_GNU,SHORT_HAND_DATA,40, &search_gnu}, ++ {IPP2P_GNU,SHORT_HAND_IPP2P,5, &search_all_gnu}, ++ {IPP2P_KAZAA,SHORT_HAND_IPP2P,5, &search_all_kazaa}, ++ {IPP2P_BIT,SHORT_HAND_IPP2P,20, &search_bittorrent}, ++ {IPP2P_APPLE,SHORT_HAND_IPP2P,5, &search_apple}, ++ {IPP2P_SOUL,SHORT_HAND_IPP2P,5, &search_soul}, ++ {IPP2P_WINMX,SHORT_HAND_IPP2P,2, &search_winmx}, ++ {IPP2P_ARES,SHORT_HAND_IPP2P,5, &search_ares}, ++ {IPP2P_MUTE,SHORT_HAND_NONE,200, &search_mute}, ++ {IPP2P_WASTE,SHORT_HAND_NONE,5, &search_waste}, ++ {IPP2P_XDCC,SHORT_HAND_NONE,5, &search_xdcc}, ++ {0,0,0,NULL} ++}; ++ ++ ++static struct { ++ int command; ++ __u8 short_hand; /*for fucntions included in short hands*/ ++ int packet_len; ++ int (*function_name) (unsigned char *, int); ++} udp_list[] = { ++ { IPP2P_KAZAA, SHORT_HAND_IPP2P, 14, &udp_search_kazaa}, ++ { IPP2P_BIT, SHORT_HAND_IPP2P, 23, &udp_search_bit}, ++ { IPP2P_GNU, SHORT_HAND_IPP2P, 11, &udp_search_gnu}, ++ { IPP2P_EDK, SHORT_HAND_IPP2P, 9, &udp_search_edk}, ++ { IPP2P_DC, SHORT_HAND_IPP2P, 12, &udp_search_directconnect}, ++ { 0, 0, 0, NULL } ++}; ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ const void *hdr, ++ u_int16_t datalen, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ int *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++match(const struct sk_buff *skb, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++match(const struct sk_buff *skb, ++ const struct xt_match_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++match(const struct sk_buff *skb, ++ struct xt_action_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++ const struct ipt_p2p_info *info = matchinfo; ++#else ++ const struct ipt_p2p_info *info = par->matchinfo; ++ const int offset = par->fragoff; ++#endif ++ unsigned char *haystack; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) ++ struct iphdr *ip = ip_hdr(skb); ++#else ++ struct iphdr *ip = skb->nh.iph; ++#endif ++ int p2p_result = 0, i = 0; ++// int head_len; ++ int hlen = ntohs(ip->tot_len)-(ip->ihl*4); /*hlen = packet-data length*/ ++ ++ /*must not be a fragment*/ ++ if (offset) { ++ if (info->debug) printk("IPP2P.match: offset found %i \n",offset); ++ return 0; ++ } ++ ++ /*make sure that skb is linear*/ ++ if(skb_is_nonlinear(skb)){ ++ if (info->debug) printk("IPP2P.match: nonlinear skb found\n"); ++ return 0; ++ } ++ ++ ++ haystack=(char *)ip+(ip->ihl*4); /*haystack = packet data*/ ++ ++ switch (ip->protocol){ ++ case IPPROTO_TCP: /*what to do with a TCP packet*/ ++ { ++ struct tcphdr *tcph = (void *) ip + ip->ihl * 4; ++ ++ if (tcph->fin) return 0; /*if FIN bit is set bail out*/ ++ if (tcph->syn) return 0; /*if SYN bit is set bail out*/ ++ if (tcph->rst) return 0; /*if RST bit is set bail out*/ ++ ++ haystack += tcph->doff * 4; /*get TCP-Header-Size*/ ++ hlen -= tcph->doff * 4; ++ while (matchlist[i].command) { ++ if ((((info->cmd & matchlist[i].command) == matchlist[i].command) || ++ ((info->cmd & matchlist[i].short_hand) == matchlist[i].short_hand)) && ++ (hlen > matchlist[i].packet_len)) { ++ p2p_result = matchlist[i].function_name(haystack, hlen); ++ if (p2p_result) ++ { ++ if (info->debug) printk("IPP2P.debug:TCP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(tcph->source), &ip->daddr,ntohs(tcph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ case IPPROTO_UDP: /*what to do with an UDP packet*/ ++ { ++ struct udphdr *udph = (void *) ip + ip->ihl * 4; ++ ++ while (udp_list[i].command){ ++ if ((((info->cmd & udp_list[i].command) == udp_list[i].command) || ++ ((info->cmd & udp_list[i].short_hand) == udp_list[i].short_hand)) && ++ (hlen > udp_list[i].packet_len)) { ++ p2p_result = udp_list[i].function_name(haystack, hlen); ++ if (p2p_result){ ++ if (info->debug) printk("IPP2P.debug:UDP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", ++ p2p_result, &ip->saddr,ntohs(udph->source), &ip->daddr,ntohs(udph->dest),hlen); ++ return p2p_result; ++ } ++ } ++ i++; ++ } ++ return p2p_result; ++ } ++ ++ default: return 0; ++ } ++} ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) ++static int ++checkentry(const char *tablename, ++ const struct ipt_ip *ip, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int matchsize, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) ++static int ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) ++static bool ++checkentry(const char *tablename, ++ const void *inf, ++ const struct xt_match *match, ++ void *matchinfo, ++ unsigned int hook_mask) ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++static bool ++checkentry(const struct xt_mtchk_param *par) ++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */ ++static int ++checkentry(const struct xt_mtchk_param *par) ++#endif ++{ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) ++ return 1; ++#else ++ return 0; ++#endif ++} ++ ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++static struct xt_match ipp2p_match = { ++#else ++static struct ipt_match ipp2p_match = { ++#endif ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ { NULL, NULL }, ++ "ipp2p", ++ &ipp2p_match, ++ &ipp2p_checkentry, ++ NULL, ++ THIS_MODULE ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ .name = "ipp2p", ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ .family = AF_INET, ++#endif ++ .match = &match, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17) ++ .matchsize = sizeof(struct ipt_p2p_info), ++#endif ++ .checkentry = &checkentry, ++ .me = THIS_MODULE, ++#endif ++}; ++ ++ ++static int __init init(void) ++{ ++ printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ return xt_register_match(&ipp2p_match); ++#else ++ return ipt_register_match(&ipp2p_match); ++#endif ++} ++ ++static void __exit fini(void) ++{ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++ xt_unregister_match(&ipp2p_match); ++#else ++ ipt_unregister_match(&ipp2p_match); ++#endif ++ printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION); ++} ++ ++module_init(init); ++module_exit(fini); ++ ++ +diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Kconfig linux-3.0.24/net/ipv4/netfilter/Kconfig +--- linux-3.0.24.org/net/ipv4/netfilter/Kconfig 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/ipv4/netfilter/Kconfig 2012-03-20 09:05:15.827477622 +0100 +@@ -379,5 +379,15 @@ + + endif # IP_NF_ARPTABLES + ++config IP_NF_MATCH_IPP2P ++ tristate 'IPP2P match support' ++ depends on IP_NF_IPTABLES ++ help ++ This option makes possible to match some P2P packets ++ therefore helps controlling such traffic. ++ ++ If you want to compile it as a module, say M here and read ++ . If unsure, say `N'. ++ + endmenu + +diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Makefile linux-3.0.24/net/ipv4/netfilter/Makefile +--- linux-3.0.24.org/net/ipv4/netfilter/Makefile 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/ipv4/netfilter/Makefile 2012-03-20 09:13:38.960288878 +0100 +@@ -50,6 +50,7 @@ + # matches + obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o + obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o ++obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o + + # targets + obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o diff --git a/src/patches/linux-3.1-imq.patch b/src/patches/linux-3.1-imq.patch new file mode 100644 index 0000000000..6e97f1c532 --- /dev/null +++ b/src/patches/linux-3.1-imq.patch @@ -0,0 +1,1603 @@ +diff -uNr linux-3.1/drivers/net/imq.c linux-3.1-imq/drivers/net/imq.c +--- linux-3.1/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/drivers/net/imq.c 2011-11-04 12:16:10.454992642 +0200 +@@ -0,0 +1,850 @@ ++/* ++ * Pseudo-driver for the intermediate queue device. ++ * ++ * 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 ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Authors: Patrick McHardy, ++ * ++ * The first version was written by Martin Devera, ++ * ++ * Credits: Jan Rafaj ++ * - Update patch to 2.4.21 ++ * Sebastian Strollo ++ * - Fix "Dead-loop on netdevice imq"-issue ++ * Marcel Sebek ++ * - Update to 2.6.2-rc1 ++ * ++ * After some time of inactivity there is a group taking care ++ * of IMQ again: http://www.linuximq.net ++ * ++ * ++ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 ++ * including the following changes: ++ * ++ * - Correction of ipv6 support "+"s issue (Hasso Tepper) ++ * - Correction of imq_init_devs() issue that resulted in ++ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) ++ * - Addition of functionality to choose number of IMQ devices ++ * during kernel config (Andre Correa) ++ * - Addition of functionality to choose how IMQ hooks on ++ * PRE and POSTROUTING (after or before NAT) (Andre Correa) ++ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) ++ * ++ * ++ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were ++ * released with almost no problems. 2.6.14-x was released ++ * with some important changes: nfcache was removed; After ++ * some weeks of trouble we figured out that some IMQ fields ++ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. ++ * These functions are correctly patched by this new patch version. ++ * ++ * Thanks for all who helped to figure out all the problems with ++ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, ++ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully ++ * I didn't forget anybody). I apologize again for my lack of time. ++ * ++ * ++ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead ++ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid ++ * recursive locking. New initialization routines to fix 'rmmod' not ++ * working anymore. Used code from ifb.c. (Jussi Kivilinna) ++ * ++ * 2008/08/06 - 2.6.26 - (JK) ++ * - Replaced tasklet with 'netif_schedule()'. ++ * - Cleaned up and added comments for imq_nf_queue(). ++ * ++ * 2009/04/12 ++ * - Add skb_save_cb/skb_restore_cb helper functions for backuping ++ * control buffer. This is needed because qdisc-layer on kernels ++ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) ++ * - Add better locking for IMQ device. Hopefully this will solve ++ * SMP issues. (Jussi Kivilinna) ++ * - Port to 2.6.27 ++ * - Port to 2.6.28 ++ * - Port to 2.6.29 + fix rmmod not working ++ * ++ * 2009/04/20 - (Jussi Kivilinna) ++ * - Use netdevice feature flags to avoid extra packet handling ++ * by core networking layer and possibly increase performance. ++ * ++ * 2009/09/26 - (Jussi Kivilinna) ++ * - Add imq_nf_reinject_lockless to fix deadlock with ++ * imq_nf_queue/imq_nf_reinject. ++ * ++ * 2009/12/08 - (Jussi Kivilinna) ++ * - Port to 2.6.32 ++ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit() ++ * - Also add better error checking for skb->nf_queue_entry usage ++ * ++ * 2010/02/25 - (Jussi Kivilinna) ++ * - Port to 2.6.33 ++ * ++ * 2010/08/15 - (Jussi Kivilinna) ++ * - Port to 2.6.35 ++ * - Simplify hook registration by using nf_register_hooks. ++ * - nf_reinject doesn't need spinlock around it, therefore remove ++ * imq_nf_reinject function. Other nf_reinject users protect ++ * their own data with spinlock. With IMQ however all data is ++ * needed is stored per skbuff, so no locking is needed. ++ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of ++ * NF_QUEUE, this allows working coexistance of IMQ and other ++ * NF_QUEUE users. ++ * - Make IMQ multi-queue. Number of IMQ device queues can be ++ * increased with 'numqueues' module parameters. Default number ++ * of queues is 1, in other words by default IMQ works as ++ * single-queue device. Multi-queue selection is based on ++ * IFB multi-queue patch by Changli Gao . ++ * ++ * 2011/03/18 - (Jussi Kivilinna) ++ * - Port to 2.6.38 ++ * ++ * 2011/07/12 - (syoder89@gmail.com) ++ * - Crash fix that happens when the receiving interface has more ++ * than one queue (add missing skb_set_queue_mapping in ++ * imq_select_queue). ++ * ++ * 2011/07/26 - (Jussi Kivilinna) ++ * - Add queue mapping checks for packets exiting IMQ. ++ * - Port to 3.0 ++ * ++ * 2011/08/16 - (Jussi Kivilinna) ++ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2 ++ * ++ * 2011/11/03 - Germano Michel ++ * - Fix IMQ for net namespaces ++ * ++ * 2011/11/04 - Jussi Kivilinna ++ * - Port to 3.1 ++ * - Clean-up, move 'get imq device pointer by imqX name' to ++ * separate function from imq_nf_queue(). ++ * ++ * Also, many thanks to pablo Sebastian Greco for making the initial ++ * patch and to those who helped the testing. ++ * ++ * More info at: http://www.linuximq.net/ (Andre Correa) ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ #include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num); ++ ++static nf_hookfn imq_nf_hook; ++ ++static struct nf_hook_ops imq_ops[] = { ++ { ++ /* imq_ingress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP_PRI_LAST, ++#else ++ .priority = NF_IP_PRI_NAT_SRC - 1, ++#endif ++ }, ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ { ++ /* imq_ingress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP6_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP6_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP6_PRI_LAST, ++#else ++ .priority = NF_IP6_PRI_NAT_SRC - 1, ++#endif ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++static int numdevs = CONFIG_IMQ_NUM_DEVS; ++#else ++static int numdevs = IMQ_MAX_DEVS; ++#endif ++ ++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; ++ ++#define IMQ_MAX_QUEUES 32 ++static int numqueues = 1; ++static u32 imq_hashrnd; ++ ++static inline __be16 pppoe_proto(const struct sk_buff *skb) ++{ ++ return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN + ++ sizeof(struct pppoe_hdr))); ++} ++ ++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb) ++{ ++ unsigned int pull_len; ++ u16 protocol = skb->protocol; ++ u32 addr1, addr2; ++ u32 hash, ihl = 0; ++ union { ++ u16 in16[2]; ++ u32 in32; ++ } ports; ++ u8 ip_proto; ++ ++ pull_len = 0; ++ ++recheck: ++ switch (protocol) { ++ case htons(ETH_P_8021Q): { ++ if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += VLAN_HLEN; ++ skb->network_header += VLAN_HLEN; ++ ++ protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; ++ goto recheck; ++ } ++ ++ case htons(ETH_P_PPP_SES): { ++ if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += PPPOE_SES_HLEN; ++ skb->network_header += PPPOE_SES_HLEN; ++ ++ protocol = pppoe_proto(skb); ++ goto recheck; ++ } ++ ++ case htons(ETH_P_IP): { ++ const struct iphdr *iph = ip_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr)))) ++ goto other; ++ ++ addr1 = iph->daddr; ++ addr2 = iph->saddr; ++ ++ ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? ++ iph->protocol : 0; ++ ihl = ip_hdrlen(skb); ++ ++ break; ++ } ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case htons(ETH_P_IPV6): { ++ const struct ipv6hdr *iph = ipv6_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr)))) ++ goto other; ++ ++ addr1 = iph->daddr.s6_addr32[3]; ++ addr2 = iph->saddr.s6_addr32[3]; ++ ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto); ++ if (unlikely(ihl < 0)) ++ goto other; ++ ++ break; ++ } ++#endif ++ default: ++other: ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ return (u16)(ntohs(protocol) % dev->real_num_tx_queues); ++ } ++ ++ if (addr1 > addr2) ++ swap(addr1, addr2); ++ ++ switch (ip_proto) { ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_DCCP: ++ case IPPROTO_ESP: ++ case IPPROTO_AH: ++ case IPPROTO_SCTP: ++ case IPPROTO_UDPLITE: { ++ if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) { ++ if (ports.in16[0] > ports.in16[1]) ++ swap(ports.in16[0], ports.in16[1]); ++ break; ++ } ++ /* fall-through */ ++ } ++ default: ++ ports.in32 = 0; ++ break; ++ } ++ ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto); ++ ++ return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++} ++ ++static inline bool sk_tx_queue_recorded(struct sock *sk) ++{ ++ return (sk_tx_queue_get(sk) >= 0); ++} ++ ++static struct netdev_queue *imq_select_queue(struct net_device *dev, ++ struct sk_buff *skb) ++{ ++ u16 queue_index = 0; ++ u32 hash; ++ ++ if (likely(dev->real_num_tx_queues == 1)) ++ goto out; ++ ++ /* IMQ can be receiving ingress or engress packets. */ ++ ++ /* Check first for if rx_queue is set */ ++ if (skb_rx_queue_recorded(skb)) { ++ queue_index = skb_get_rx_queue(skb); ++ goto out; ++ } ++ ++ /* Check if socket has tx_queue set */ ++ if (sk_tx_queue_recorded(skb->sk)) { ++ queue_index = sk_tx_queue_get(skb->sk); ++ goto out; ++ } ++ ++ /* Try use socket hash */ ++ if (skb->sk && skb->sk->sk_hash) { ++ hash = skb->sk->sk_hash; ++ queue_index = ++ (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++ goto out; ++ } ++ ++ /* Generate hash from packet data */ ++ queue_index = imq_hash(dev, skb); ++ ++out: ++ if (unlikely(queue_index >= dev->real_num_tx_queues)) ++ queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues); ++ ++ skb_set_queue_mapping(skb, queue_index); ++ return netdev_get_tx_queue(dev, queue_index); ++} ++ ++static struct net_device_stats *imq_get_stats(struct net_device *dev) ++{ ++ return &dev->stats; ++} ++ ++/* called for packets kfree'd in qdiscs at places other than enqueue */ ++static void imq_skb_destructor(struct sk_buff *skb) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ ++ if (entry) { ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++ } ++ ++ skb_restore_cb(skb); /* kfree backup */ ++} ++ ++static void imq_done_check_queue_mapping(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ unsigned int queue_index; ++ ++ /* Don't let queue_mapping be left too large after exiting IMQ */ ++ if (likely(skb->dev != dev && skb->dev != NULL)) { ++ queue_index = skb_get_queue_mapping(skb); ++ if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) { ++ queue_index = (u16)((u32)queue_index % ++ skb->dev->real_num_tx_queues); ++ skb_set_queue_mapping(skb, queue_index); ++ } ++ } else { ++ /* skb->dev was IMQ device itself or NULL, be on safe side and ++ * just clear queue mapping. ++ */ ++ skb_set_queue_mapping(skb, 0); ++ } ++} ++ ++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ dev->trans_start = jiffies; ++ ++ dev->stats.tx_bytes += skb->len; ++ dev->stats.tx_packets++; ++ ++ if (unlikely(entry == NULL)) { ++ /* We don't know what is going on here.. packet is queued for ++ * imq device, but (probably) not by us. ++ * ++ * If this packet was not send here by imq_nf_queue(), then ++ * skb_save_cb() was not used and skb_free() should not show: ++ * WARNING: IMQ: kfree_skb: skb->cb_next:.. ++ * and/or ++ * WARNING: IMQ: kfree_skb: skb->nf_queue_entry... ++ * ++ * However if this message is shown, then IMQ is somehow broken ++ * and you should report this to linuximq.net. ++ */ ++ ++ /* imq_dev_xmit is black hole that eats all packets, report that ++ * we eat this packet happily and increase dropped counters. ++ */ ++ ++ dev->stats.tx_dropped++; ++ dev_kfree_skb(skb); ++ ++ return NETDEV_TX_OK; ++ } ++ ++ skb_restore_cb(skb); /* restore skb->cb */ ++ ++ skb->imq_flags = 0; ++ skb->destructor = NULL; ++ ++ imq_done_check_queue_mapping(skb, dev); ++ ++ nf_reinject(entry, NF_ACCEPT); ++ ++ return NETDEV_TX_OK; ++} ++ ++static struct net_device *get_imq_device_by_index(int index) ++{ ++ struct net_device *dev = NULL; ++ struct net *net; ++ char buf[8]; ++ ++ /* get device by name and cache result */ ++ snprintf(buf, sizeof(buf), "imq%d", index); ++ ++ /* Search device from all namespaces. */ ++ for_each_net(net) { ++ dev = dev_get_by_name(net, buf); ++ if (dev) ++ break; ++ } ++ ++ if (WARN_ON_ONCE(dev == NULL)) { ++ /* IMQ device not found. Exotic config? */ ++ return ERR_PTR(-ENODEV); ++ } ++ ++ imq_devs_cache[index] = dev; ++ dev_put(dev); ++ ++ return dev; ++} ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) ++{ ++ struct net_device *dev; ++ struct sk_buff *skb_orig, *skb, *skb_shared; ++ struct Qdisc *q; ++ struct netdev_queue *txq; ++ spinlock_t *root_lock; ++ int users, index; ++ int retval = -EINVAL; ++ unsigned int orig_queue_index; ++ ++ index = entry->skb->imq_flags & IMQ_F_IFMASK; ++ if (unlikely(index > numdevs - 1)) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ numdevs - 1); ++ retval = -EINVAL; ++ goto out; ++ } ++ ++ /* check for imq device by index from cache */ ++ dev = imq_devs_cache[index]; ++ if (unlikely(!dev)) { ++ dev = get_imq_device_by_index(index); ++ if (IS_ERR(dev)) { ++ retval = PTR_ERR(dev); ++ goto out; ++ } ++ } ++ ++ if (unlikely(!(dev->flags & IFF_UP))) { ++ entry->skb->imq_flags = 0; ++ nf_reinject(entry, NF_ACCEPT); ++ retval = 0; ++ goto out; ++ } ++ dev->last_rx = jiffies; ++ ++ skb = entry->skb; ++ skb_orig = NULL; ++ ++ /* skb has owner? => make clone */ ++ if (unlikely(skb->destructor)) { ++ skb_orig = skb; ++ skb = skb_clone(skb, GFP_ATOMIC); ++ if (unlikely(!skb)) { ++ retval = -ENOMEM; ++ goto out; ++ } ++ entry->skb = skb; ++ } ++ ++ skb->nf_queue_entry = entry; ++ ++ dev->stats.rx_bytes += skb->len; ++ dev->stats.rx_packets++; ++ ++ if (!skb->dev) { ++ /* skb->dev == NULL causes problems, try the find cause. */ ++ if (net_ratelimit()) { ++ dev_warn(&dev->dev, ++ "received packet with skb->dev == NULL\n"); ++ dump_stack(); ++ } ++ ++ skb->dev = dev; ++ } ++ ++ /* Disables softirqs for lock below */ ++ rcu_read_lock_bh(); ++ ++ /* Multi-queue selection */ ++ orig_queue_index = skb_get_queue_mapping(skb); ++ txq = imq_select_queue(dev, skb); ++ ++ q = rcu_dereference(txq->qdisc); ++ if (unlikely(!q->enqueue)) ++ goto packet_not_eaten_by_imq_dev; ++ ++ root_lock = qdisc_lock(q); ++ spin_lock(root_lock); ++ ++ users = atomic_read(&skb->users); ++ ++ skb_shared = skb_get(skb); /* increase reference count by one */ ++ skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will ++ overwrite it */ ++ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ ++ ++ if (likely(atomic_read(&skb_shared->users) == users + 1)) { ++ kfree_skb(skb_shared); /* decrease reference count by one */ ++ ++ skb->destructor = &imq_skb_destructor; ++ ++ /* cloned? */ ++ if (unlikely(skb_orig)) ++ kfree_skb(skb_orig); /* free original */ ++ ++ spin_unlock(root_lock); ++ rcu_read_unlock_bh(); ++ ++ /* schedule qdisc dequeue */ ++ __netif_schedule(q); ++ ++ retval = 0; ++ goto out; ++ } else { ++ skb_restore_cb(skb_shared); /* restore skb->cb */ ++ skb->nf_queue_entry = NULL; ++ /* qdisc dropped packet and decreased skb reference count of ++ * skb, so we don't really want to and try refree as that would ++ * actually destroy the skb. */ ++ spin_unlock(root_lock); ++ goto packet_not_eaten_by_imq_dev; ++ } ++ ++packet_not_eaten_by_imq_dev: ++ skb_set_queue_mapping(skb, orig_queue_index); ++ rcu_read_unlock_bh(); ++ ++ /* cloned? restore original */ ++ if (unlikely(skb_orig)) { ++ kfree_skb(skb); ++ entry->skb = skb_orig; ++ } ++ retval = -1; ++out: ++ return retval; ++} ++ ++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, ++ const struct net_device *indev, ++ const struct net_device *outdev, ++ int (*okfn)(struct sk_buff *)) ++{ ++ return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT; ++} ++ ++static int imq_close(struct net_device *dev) ++{ ++ netif_stop_queue(dev); ++ return 0; ++} ++ ++static int imq_open(struct net_device *dev) ++{ ++ netif_start_queue(dev); ++ return 0; ++} ++ ++static const struct net_device_ops imq_netdev_ops = { ++ .ndo_open = imq_open, ++ .ndo_stop = imq_close, ++ .ndo_start_xmit = imq_dev_xmit, ++ .ndo_get_stats = imq_get_stats, ++}; ++ ++static void imq_setup(struct net_device *dev) ++{ ++ dev->netdev_ops = &imq_netdev_ops; ++ dev->type = ARPHRD_VOID; ++ dev->mtu = 16000; /* too small? */ ++ dev->tx_queue_len = 11000; /* too big? */ ++ dev->flags = IFF_NOARP; ++ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | ++ NETIF_F_GSO | NETIF_F_HW_CSUM | ++ NETIF_F_HIGHDMA; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | ++ IFF_TX_SKB_SHARING); ++} ++ ++static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) ++{ ++ int ret = 0; ++ ++ if (tb[IFLA_ADDRESS]) { ++ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { ++ ret = -EINVAL; ++ goto end; ++ } ++ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { ++ ret = -EADDRNOTAVAIL; ++ goto end; ++ } ++ } ++ return 0; ++end: ++ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); ++ return ret; ++} ++ ++static struct rtnl_link_ops imq_link_ops __read_mostly = { ++ .kind = "imq", ++ .priv_size = 0, ++ .setup = imq_setup, ++ .validate = imq_validate, ++}; ++ ++static const struct nf_queue_handler imq_nfqh = { ++ .name = "imq", ++ .outfn = imq_nf_queue, ++}; ++ ++static int __init imq_init_hooks(void) ++{ ++ int ret; ++ ++ nf_register_queue_imq_handler(&imq_nfqh); ++ ++ ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ if (ret < 0) ++ nf_unregister_queue_imq_handler(); ++ ++ return ret; ++} ++ ++static int __init imq_init_one(int index) ++{ ++ struct net_device *dev; ++ int ret; ++ ++ dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues); ++ if (!dev) ++ return -ENOMEM; ++ ++ ret = dev_alloc_name(dev, dev->name); ++ if (ret < 0) ++ goto fail; ++ ++ dev->rtnl_link_ops = &imq_link_ops; ++ ret = register_netdevice(dev); ++ if (ret < 0) ++ goto fail; ++ ++ return 0; ++fail: ++ free_netdev(dev); ++ return ret; ++} ++ ++static int __init imq_init_devs(void) ++{ ++ int err, i; ++ ++ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { ++ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", ++ IMQ_MAX_DEVS); ++ return -EINVAL; ++ } ++ ++ if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) { ++ printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n", ++ IMQ_MAX_QUEUES); ++ return -EINVAL; ++ } ++ ++ get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd)); ++ ++ rtnl_lock(); ++ err = __rtnl_link_register(&imq_link_ops); ++ ++ for (i = 0; i < numdevs && !err; i++) ++ err = imq_init_one(i); ++ ++ if (err) { ++ __rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ } ++ rtnl_unlock(); ++ ++ return err; ++} ++ ++static int __init imq_init_module(void) ++{ ++ int err; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); ++#endif ++ ++ err = imq_init_devs(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); ++ return err; ++ } ++ ++ err = imq_init_hooks(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ return err; ++ } ++ ++ printk(KERN_INFO "IMQ driver loaded successfully. " ++ "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues); ++ ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); ++#endif ++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); ++#endif ++ ++ return 0; ++} ++ ++static void __exit imq_unhook(void) ++{ ++ nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ nf_unregister_queue_imq_handler(); ++} ++ ++static void __exit imq_cleanup_devs(void) ++{ ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++} ++ ++static void __exit imq_exit_module(void) ++{ ++ imq_unhook(); ++ imq_cleanup_devs(); ++ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); ++} ++ ++module_init(imq_init_module); ++module_exit(imq_exit_module); ++ ++module_param(numdevs, int, 0); ++module_param(numqueues, int, 0); ++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " ++ "be created)"); ++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device"); ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " ++ "http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_RTNL_LINK("imq"); ++ +diff -uNr linux-3.1/drivers/net/Kconfig linux-3.1-imq/drivers/net/Kconfig +--- linux-3.1/drivers/net/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/drivers/net/Kconfig 2011-11-04 11:12:52.106390309 +0200 +@@ -124,6 +124,125 @@ + To compile this driver as a module, choose M here: the module + will be called eql. If unsure, say N. + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing ++ disciplines. Every packet entering/leaving the IP stack can be ++ directed through the IMQ device where it's enqueued/dequeued to the ++ attached qdisc. This allows you to treat network devices as classes ++ and distribute bandwidth among them. Iptables is used to specify ++ through which IMQ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_AB ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ int "Number of IMQ devices" ++ range 2 16 ++ depends on IMQ ++ default "16" ++ help ++ This setting defines how many IMQ devices will be created. ++ ++ The default value is 16. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config TUN + tristate "Universal TUN/TAP device driver support" + select CRC32 +diff -uNr linux-3.1/drivers/net/Makefile linux-3.1-imq/drivers/net/Makefile +--- linux-3.1/drivers/net/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200 +@@ -175,6 +175,7 @@ + obj-$(CONFIG_XEN_NETDEV_BACKEND) += xen-netback/ + + obj-$(CONFIG_DUMMY) += dummy.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_IFB) += ifb.o + obj-$(CONFIG_MACVLAN) += macvlan.o + obj-$(CONFIG_MACVTAP) += macvtap.o +diff -uNr linux-3.1/include/linux/imq.h linux-3.1-imq/include/linux/imq.h +--- linux-3.1/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/imq.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,13 @@ ++#ifndef _IMQ_H ++#define _IMQ_H ++ ++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ ++#define IMQ_F_BITS 5 ++ ++#define IMQ_F_IFMASK 0x0f ++#define IMQ_F_ENQUEUE 0x10 ++ ++#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) ++ ++#endif /* _IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/netfilter/xt_IMQ.h linux-3.1-imq/include/linux/netfilter/xt_IMQ.h +--- linux-3.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/netfilter/xt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/netfilter.h linux-3.1-imq/include/linux/netfilter.h +--- linux-3.1/include/linux/netfilter.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/include/linux/netfilter.h 2011-11-04 11:12:52.109723710 +0200 +@@ -22,7 +22,8 @@ + #define NF_QUEUE 3 + #define NF_REPEAT 4 + #define NF_STOP 5 +-#define NF_MAX_VERDICT NF_STOP ++#define NF_IMQ_QUEUE 6 ++#define NF_MAX_VERDICT NF_IMQ_QUEUE + + /* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function +diff -uNr linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IPT_IMQ_H ++#define _IPT_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include ++ ++#define ipt_imq_info xt_imq_info ++ ++#endif /* _IPT_IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2011-11-04 11:12:52.113057113 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IP6T_IMQ_H ++#define _IP6T_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include ++ ++#define ip6t_imq_info xt_imq_info ++ ++#endif /* _IP6T_IMQ_H */ ++ +diff -uNr linux-3.1/include/linux/skbuff.h linux-3.1-imq/include/linux/skbuff.h +--- linux-3.1/include/linux/skbuff.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/include/linux/skbuff.h 2011-11-04 11:12:52.116390515 +0200 +@@ -29,6 +29,9 @@ + #include + #include + #include ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include ++#endif + + /* Don't change this without changing skb_csum_unnecessary! */ + #define CHECKSUM_NONE 0 +@@ -356,6 +359,9 @@ + * first. This is owned by whoever has the skb queued ATM. + */ + char cb[48] __aligned(8); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ void *cb_next; ++#endif + + unsigned long _skb_refdst; + #ifdef CONFIG_XFRM +@@ -394,6 +400,9 @@ + #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED + struct sk_buff *nfct_reasm; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ struct nf_queue_entry *nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + struct nf_bridge_info *nf_bridge; + #endif +@@ -418,6 +427,10 @@ + + /* 0/13 bit hole */ + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ __u8 imq_flags:IMQ_F_BITS; ++#endif ++ + #ifdef CONFIG_NET_DMA + dma_cookie_t dma_cookie; + #endif +@@ -504,6 +517,12 @@ + return (struct rtable *)skb_dst(skb); + } + ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern int skb_save_cb(struct sk_buff *skb); ++extern int skb_restore_cb(struct sk_buff *skb); ++#endif ++ + extern void kfree_skb(struct sk_buff *skb); + extern void consume_skb(struct sk_buff *skb); + extern void __kfree_skb(struct sk_buff *skb); +@@ -2157,6 +2176,10 @@ + dst->nfct_reasm = src->nfct_reasm; + nf_conntrack_get_reasm(src->nfct_reasm); + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ dst->imq_flags = src->imq_flags; ++ dst->nf_queue_entry = src->nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + dst->nf_bridge = src->nf_bridge; + nf_bridge_get(src->nf_bridge); +diff -uNr linux-3.1/include/net/netfilter/nf_queue.h linux-3.1-imq/include/net/netfilter/nf_queue.h +--- linux-3.1/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/include/net/netfilter/nf_queue.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,5 +30,11 @@ + const struct nf_queue_handler *qh); + extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); + extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); ++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); ++extern void nf_unregister_queue_imq_handler(void); ++#endif + + #endif /* _NF_QUEUE_H */ +diff -uNr linux-3.1/net/core/dev.c linux-3.1-imq/net/core/dev.c +--- linux-3.1/net/core/dev.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/core/dev.c 2011-11-04 11:12:52.119723915 +0200 +@@ -98,6 +98,9 @@ + #include + #include + #include ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include ++#endif + #include + #include + #include +@@ -2126,7 +2129,12 @@ + if (dev->priv_flags & IFF_XMIT_DST_RELEASE) + skb_dst_drop(skb); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ if (!list_empty(&ptype_all) && ++ !(skb->imq_flags & IMQ_F_ENQUEUE)) ++#else + if (!list_empty(&ptype_all)) ++#endif + dev_queue_xmit_nit(skb, dev); + + skb_orphan_try(skb); +diff -uNr linux-3.1/net/core/skbuff.c linux-3.1-imq/net/core/skbuff.c +--- linux-3.1/net/core/skbuff.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/core/skbuff.c 2011-11-04 11:12:52.123057315 +0200 +@@ -73,6 +73,9 @@ + + static struct kmem_cache *skbuff_head_cache __read_mostly; + static struct kmem_cache *skbuff_fclone_cache __read_mostly; ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static struct kmem_cache *skbuff_cb_store_cache __read_mostly; ++#endif + + static void sock_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *buf) +@@ -92,6 +95,82 @@ + return 1; + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++/* Control buffer save/restore for IMQ devices */ ++struct skb_cb_table { ++ char cb[48] __aligned(8); ++ void *cb_next; ++ atomic_t refcnt; ++}; ++ ++static DEFINE_SPINLOCK(skb_cb_store_lock); ++ ++int skb_save_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); ++ if (!next) ++ return -ENOMEM; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(next->cb, skb->cb, sizeof(skb->cb)); ++ next->cb_next = skb->cb_next; ++ ++ atomic_set(&next->refcnt, 1); ++ ++ skb->cb_next = next; ++ return 0; ++} ++EXPORT_SYMBOL(skb_save_cb); ++ ++int skb_restore_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ if (!skb->cb_next) ++ return 0; ++ ++ next = skb->cb_next; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(skb->cb, next->cb, sizeof(skb->cb)); ++ skb->cb_next = next->cb_next; ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ if (atomic_dec_and_test(&next->refcnt)) ++ kmem_cache_free(skbuff_cb_store_cache, next); ++ ++ spin_unlock(&skb_cb_store_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(skb_restore_cb); ++ ++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old) ++{ ++ struct skb_cb_table *next; ++ struct sk_buff *old; ++ ++ if (!__old->cb_next) { ++ new->cb_next = NULL; ++ return; ++ } ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ old = (struct sk_buff *)__old; ++ ++ next = old->cb_next; ++ atomic_inc(&next->refcnt); ++ new->cb_next = next; ++ ++ spin_unlock(&skb_cb_store_lock); ++} ++#endif + + /* Pipe buffer operations for a socket. */ + static const struct pipe_buf_operations sock_pipe_buf_ops = { +@@ -392,6 +471,26 @@ + WARN_ON(in_irq()); + skb->destructor(skb); + } ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ /* This should not happen. When it does, avoid memleak by restoring ++ the chain of cb-backups. */ ++ while (skb->cb_next != NULL) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: " ++ "%08x\n", (unsigned int)skb->cb_next); ++ ++ skb_restore_cb(skb); ++ } ++ /* This should not happen either, nf_queue_entry is nullified in ++ * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are ++ * leaking entry pointers, maybe memory. We don't know if this is ++ * pointer to already freed memory, or should this be freed. ++ * If this happens we need to add refcounting, etc for nf_queue_entry. ++ */ ++ if (skb->nf_queue_entry && net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: kfree_skb: skb->nf_queue_entry != NULL"); ++#endif + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + nf_conntrack_put(skb->nfct); + #endif +@@ -533,6 +632,9 @@ + new->sp = secpath_get(old->sp); + #endif + memcpy(new->cb, old->cb, sizeof(old->cb)); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skb_copy_stored_cb(new, old); ++#endif + new->csum = old->csum; + new->local_df = old->local_df; + new->pkt_type = old->pkt_type; +@@ -2888,6 +2990,13 @@ + 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC, + NULL); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", ++ sizeof(struct skb_cb_table), ++ 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ NULL); ++#endif + } + + /** +diff -uNr linux-3.1/net/ipv6/ip6_output.c linux-3.1-imq/net/ipv6/ip6_output.c +--- linux-3.1/net/ipv6/ip6_output.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/ipv6/ip6_output.c 2011-11-04 11:12:52.123057315 +0200 +@@ -102,9 +102,6 @@ + struct net_device *dev = dst->dev; + struct neighbour *neigh; + +- skb->protocol = htons(ETH_P_IPV6); +- skb->dev = dev; +- + if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { + struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); + +@@ -170,6 +167,11 @@ + return 0; + } + ++ /* IMQ-patch: moved setting skb->dev and skb->protocol from ++ * ip6_finish_output2 to fix crashing at netif_skb_features(). */ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ + return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, + ip6_finish_output, + !(IP6CB(skb)->flags & IP6SKB_REROUTED)); +diff -uNr linux-3.1/net/netfilter/core.c linux-3.1-imq/net/netfilter/core.c +--- linux-3.1/net/netfilter/core.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200 +@@ -179,9 +179,11 @@ + ret = NF_DROP_GETERR(verdict); + if (ret == 0) + ret = -EPERM; +- } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { ++ } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE || ++ (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) { + ret = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (ret < 0) { + if (ret == -ECANCELED) + goto next_hook; +diff -uNr linux-3.1/net/netfilter/Kconfig linux-3.1-imq/net/netfilter/Kconfig +--- linux-3.1/net/netfilter/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/Kconfig 2011-11-04 11:12:52.123057315 +0200 +@@ -507,6 +507,18 @@ + For more information on the LEDs available on your system, see + Documentation/leds-class.txt + ++config NETFILTER_XT_TARGET_IMQ ++ tristate '"IMQ" target support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_MANGLE || IP6_NF_MANGLE ++ select IMQ ++ default m if NETFILTER_ADVANCED=n ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config NETFILTER_XT_TARGET_MARK + tristate '"MARK" target support' + depends on NETFILTER_ADVANCED +diff -uNr linux-3.1/net/netfilter/Makefile linux-3.1-imq/net/netfilter/Makefile +--- linux-3.1/net/netfilter/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/Makefile 2011-11-04 11:12:52.123057315 +0200 +@@ -56,6 +56,7 @@ + obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o + obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o ++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o +diff -uNr linux-3.1/net/netfilter/nf_internals.h linux-3.1-imq/net/netfilter/nf_internals.h +--- linux-3.1/net/netfilter/nf_internals.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200 +@@ -29,7 +29,7 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum); ++ unsigned int queuenum, unsigned int queuetype); + extern int __init netfilter_queue_init(void); + + /* nf_log.c */ +diff -uNr linux-3.1/net/netfilter/nf_queue.c linux-3.1-imq/net/netfilter/nf_queue.c +--- linux-3.1/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.1-imq/net/netfilter/nf_queue.c 2011-11-04 11:12:52.123057315 +0200 +@@ -22,6 +22,26 @@ + + static DEFINE_MUTEX(queue_handler_mutex); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static const struct nf_queue_handler *queue_imq_handler; ++ ++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, qh); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler); ++ ++void nf_unregister_queue_imq_handler(void) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, NULL); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler); ++#endif ++ + /* return EBUSY when somebody else is registered, return EEXIST if the + * same handler is registered, return 0 in case of success. */ + int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh) +@@ -92,7 +112,7 @@ + } + EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); + +-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) ++void nf_queue_entry_release_refs(struct nf_queue_entry *entry) + { + /* Release those devices we held, or Alexey will kill me. */ + if (entry->indev) +@@ -112,6 +132,7 @@ + /* Drop reference to owner of hook which queued us. */ + module_put(entry->elem->owner); + } ++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); + + /* + * Any packet that leaves via this function must come back +@@ -123,7 +144,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + int status = -ENOENT; + struct nf_queue_entry *entry = NULL; +@@ -137,7 +159,17 @@ + /* QUEUE == DROP if no one is waiting, to be safe. */ + rcu_read_lock(); + +- qh = rcu_dereference(queue_handler[pf]); ++ if (queuetype == NF_IMQ_QUEUE) { ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ qh = rcu_dereference(queue_imq_handler); ++#else ++ BUG(); ++ goto err_unlock; ++#endif ++ } else { ++ qh = rcu_dereference(queue_handler[pf]); ++ } ++ + if (!qh) { + status = -ESRCH; + goto err_unlock; +@@ -209,7 +241,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + struct sk_buff *segs; + int err; +@@ -217,7 +250,7 @@ + + if (!skb_is_gso(skb)) + return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- queuenum); ++ queuenum, queuetype); + + switch (pf) { + case NFPROTO_IPV4: +@@ -244,7 +277,7 @@ + segs->next = NULL; + if (err == 0) + err = __nf_queue(segs, elem, pf, hook, indev, +- outdev, okfn, queuenum); ++ outdev, okfn, queuenum, queuetype); + if (err == 0) + queued++; + else +@@ -299,9 +332,11 @@ + local_bh_enable(); + break; + case NF_QUEUE: ++ case NF_IMQ_QUEUE: + err = __nf_queue(skb, elem, entry->pf, entry->hook, + entry->indev, entry->outdev, entry->okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.1/net/netfilter/xt_IMQ.c linux-3.1-imq/net/netfilter/xt_IMQ.c +--- linux-3.1/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.1-imq/net/netfilter/xt_IMQ.c 2011-11-04 11:12:52.123057315 +0200 +@@ -0,0 +1,74 @@ ++/* ++ * This target marks packets to be enqueued to an imq device ++ */ ++#include ++#include ++#include ++#include ++#include ++ ++static unsigned int imq_target(struct sk_buff *pskb, ++ const struct xt_action_param *par) ++{ ++ const struct xt_imq_info *mr = par->targinfo; ++ ++ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; ++ ++ return XT_CONTINUE; ++} ++ ++static int imq_checkentry(const struct xt_tgchk_param *par) ++{ ++ struct xt_imq_info *mr = par->targinfo; ++ ++ if (mr->todev > IMQ_MAX_DEVS - 1) { ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ IMQ_MAX_DEVS - 1); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct xt_target xt_imq_reg[] __read_mostly = { ++ { ++ .name = "IMQ", ++ .family = AF_INET, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++ { ++ .name = "IMQ", ++ .family = AF_INET6, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++}; ++ ++static int __init imq_init(void) ++{ ++ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++static void __exit imq_fini(void) ++{ ++ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++module_init(imq_init); ++module_exit(imq_fini); ++ ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. " ++ "See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ipt_IMQ"); ++MODULE_ALIAS("ip6t_IMQ"); ++ diff --git a/src/patches/linux-3.2-0001-panda-wlan-fix.patch b/src/patches/linux-3.2-0001-panda-wlan-fix.patch new file mode 100644 index 0000000000..a2aaf206b0 --- /dev/null +++ b/src/patches/linux-3.2-0001-panda-wlan-fix.patch @@ -0,0 +1,12 @@ +diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c +index daa056e..fe03b09 100644 +--- a/arch/arm/mach-omap2/twl-common.c ++++ b/arch/arm/mach-omap2/twl-common.c +@@ -261,6 +261,7 @@ static struct regulator_init_data omap4_vusb_idata = { + static struct regulator_init_data omap4_clk32kg_idata = { + .constraints = { + .valid_ops_mask = REGULATOR_CHANGE_STATUS, ++ .always_on = true, + }, + }; + diff --git a/src/patches/linux-3.2-0002-panda-i2c.patch b/src/patches/linux-3.2-0002-panda-i2c.patch new file mode 100644 index 0000000000..fa3f6cc900 --- /dev/null +++ b/src/patches/linux-3.2-0002-panda-i2c.patch @@ -0,0 +1,51 @@ +diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c +index 7f47092..2a05d3d 100644 +--- a/arch/arm/mach-omap2/id.c ++++ b/arch/arm/mach-omap2/id.c +@@ -389,8 +389,10 @@ static void __init omap4_check_revision(void) + omap_revision = OMAP4430_REV_ES2_1; + break; + case 4: +- default: + omap_revision = OMAP4430_REV_ES2_2; ++ case 6: ++ default: ++ omap_revision = OMAP4430_REV_ES2_3; + } + break; + case 0xb94e: +@@ -403,7 +405,7 @@ static void __init omap4_check_revision(void) + break; + default: + /* Unknown default to latest silicon rev as default */ +- omap_revision = OMAP4430_REV_ES2_2; ++ omap_revision = OMAP4430_REV_ES2_3; + } + + pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16, +diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +index 7695e5d..71d3e36 100644 +--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c ++++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +@@ -2257,7 +2257,8 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = { + }; + + static struct omap_i2c_dev_attr i2c_dev_attr = { +- .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE, ++ .flags = OMAP_I2C_FLAG_BUS_SHIFT_NONE | ++ OMAP_I2C_FLAG_RESET_REGS_POSTIDLE, + }; + + /* i2c1 */ +diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h +index 408a12f..e279395 100644 +--- a/arch/arm/plat-omap/include/plat/cpu.h ++++ b/arch/arm/plat-omap/include/plat/cpu.h +@@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517) + #define OMAP4430_REV_ES2_0 (OMAP443X_CLASS | (0x20 << 8)) + #define OMAP4430_REV_ES2_1 (OMAP443X_CLASS | (0x21 << 8)) + #define OMAP4430_REV_ES2_2 (OMAP443X_CLASS | (0x22 << 8)) ++#define OMAP4430_REV_ES2_3 (OMAP443X_CLASS | (0x23 << 8)) + + #define OMAP446X_CLASS 0x44600044 + #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) diff --git a/src/patches/linux-3.2-imq.patch b/src/patches/linux-3.2-imq.patch new file mode 100644 index 0000000000..8e8685d1d0 --- /dev/null +++ b/src/patches/linux-3.2-imq.patch @@ -0,0 +1,1603 @@ +diff -uNr linux-3.2/drivers/net/imq.c linux-3.2-imq/drivers/net/imq.c +--- linux-3.2/drivers/net/imq.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/drivers/net/imq.c 2011-11-04 12:16:10.454992642 +0200 +@@ -0,0 +1,850 @@ ++/* ++ * Pseudo-driver for the intermediate queue device. ++ * ++ * 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 ++ * 2 of the License, or (at your option) any later version. ++ * ++ * Authors: Patrick McHardy, ++ * ++ * The first version was written by Martin Devera, ++ * ++ * Credits: Jan Rafaj ++ * - Update patch to 2.4.21 ++ * Sebastian Strollo ++ * - Fix "Dead-loop on netdevice imq"-issue ++ * Marcel Sebek ++ * - Update to 2.6.2-rc1 ++ * ++ * After some time of inactivity there is a group taking care ++ * of IMQ again: http://www.linuximq.net ++ * ++ * ++ * 2004/06/30 - New version of IMQ patch to kernels <=2.6.7 ++ * including the following changes: ++ * ++ * - Correction of ipv6 support "+"s issue (Hasso Tepper) ++ * - Correction of imq_init_devs() issue that resulted in ++ * kernel OOPS unloading IMQ as module (Norbert Buchmuller) ++ * - Addition of functionality to choose number of IMQ devices ++ * during kernel config (Andre Correa) ++ * - Addition of functionality to choose how IMQ hooks on ++ * PRE and POSTROUTING (after or before NAT) (Andre Correa) ++ * - Cosmetic corrections (Norbert Buchmuller) (Andre Correa) ++ * ++ * ++ * 2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were ++ * released with almost no problems. 2.6.14-x was released ++ * with some important changes: nfcache was removed; After ++ * some weeks of trouble we figured out that some IMQ fields ++ * in skb were missing in skbuff.c - skb_clone and copy_skb_header. ++ * These functions are correctly patched by this new patch version. ++ * ++ * Thanks for all who helped to figure out all the problems with ++ * 2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX, ++ * Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully ++ * I didn't forget anybody). I apologize again for my lack of time. ++ * ++ * ++ * 2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead ++ * of qdisc_restart() and moved qdisc_run() to tasklet to avoid ++ * recursive locking. New initialization routines to fix 'rmmod' not ++ * working anymore. Used code from ifb.c. (Jussi Kivilinna) ++ * ++ * 2008/08/06 - 2.6.26 - (JK) ++ * - Replaced tasklet with 'netif_schedule()'. ++ * - Cleaned up and added comments for imq_nf_queue(). ++ * ++ * 2009/04/12 ++ * - Add skb_save_cb/skb_restore_cb helper functions for backuping ++ * control buffer. This is needed because qdisc-layer on kernels ++ * 2.6.27 and newer overwrite control buffer. (Jussi Kivilinna) ++ * - Add better locking for IMQ device. Hopefully this will solve ++ * SMP issues. (Jussi Kivilinna) ++ * - Port to 2.6.27 ++ * - Port to 2.6.28 ++ * - Port to 2.6.29 + fix rmmod not working ++ * ++ * 2009/04/20 - (Jussi Kivilinna) ++ * - Use netdevice feature flags to avoid extra packet handling ++ * by core networking layer and possibly increase performance. ++ * ++ * 2009/09/26 - (Jussi Kivilinna) ++ * - Add imq_nf_reinject_lockless to fix deadlock with ++ * imq_nf_queue/imq_nf_reinject. ++ * ++ * 2009/12/08 - (Jussi Kivilinna) ++ * - Port to 2.6.32 ++ * - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit() ++ * - Also add better error checking for skb->nf_queue_entry usage ++ * ++ * 2010/02/25 - (Jussi Kivilinna) ++ * - Port to 2.6.33 ++ * ++ * 2010/08/15 - (Jussi Kivilinna) ++ * - Port to 2.6.35 ++ * - Simplify hook registration by using nf_register_hooks. ++ * - nf_reinject doesn't need spinlock around it, therefore remove ++ * imq_nf_reinject function. Other nf_reinject users protect ++ * their own data with spinlock. With IMQ however all data is ++ * needed is stored per skbuff, so no locking is needed. ++ * - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of ++ * NF_QUEUE, this allows working coexistance of IMQ and other ++ * NF_QUEUE users. ++ * - Make IMQ multi-queue. Number of IMQ device queues can be ++ * increased with 'numqueues' module parameters. Default number ++ * of queues is 1, in other words by default IMQ works as ++ * single-queue device. Multi-queue selection is based on ++ * IFB multi-queue patch by Changli Gao . ++ * ++ * 2011/03/18 - (Jussi Kivilinna) ++ * - Port to 2.6.38 ++ * ++ * 2011/07/12 - (syoder89@gmail.com) ++ * - Crash fix that happens when the receiving interface has more ++ * than one queue (add missing skb_set_queue_mapping in ++ * imq_select_queue). ++ * ++ * 2011/07/26 - (Jussi Kivilinna) ++ * - Add queue mapping checks for packets exiting IMQ. ++ * - Port to 3.0 ++ * ++ * 2011/08/16 - (Jussi Kivilinna) ++ * - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2 ++ * ++ * 2011/11/03 - Germano Michel ++ * - Fix IMQ for net namespaces ++ * ++ * 2011/11/04 - Jussi Kivilinna ++ * - Port to 3.1 ++ * - Clean-up, move 'get imq device pointer by imqX name' to ++ * separate function from imq_nf_queue(). ++ * ++ * Also, many thanks to pablo Sebastian Greco for making the initial ++ * patch and to those who helped the testing. ++ * ++ * More info at: http://www.linuximq.net/ (Andre Correa) ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ #include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num); ++ ++static nf_hookfn imq_nf_hook; ++ ++static struct nf_hook_ops imq_ops[] = { ++ { ++ /* imq_ingress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv4 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP_PRI_LAST, ++#else ++ .priority = NF_IP_PRI_NAT_SRC - 1, ++#endif ++ }, ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ { ++ /* imq_ingress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_PRE_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ .priority = NF_IP6_PRI_MANGLE + 1, ++#else ++ .priority = NF_IP6_PRI_NAT_DST + 1, ++#endif ++ }, ++ { ++ /* imq_egress_ipv6 */ ++ .hook = imq_nf_hook, ++ .owner = THIS_MODULE, ++ .pf = PF_INET6, ++ .hooknum = NF_INET_POST_ROUTING, ++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA) ++ .priority = NF_IP6_PRI_LAST, ++#else ++ .priority = NF_IP6_PRI_NAT_SRC - 1, ++#endif ++ }, ++#endif ++}; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++static int numdevs = CONFIG_IMQ_NUM_DEVS; ++#else ++static int numdevs = IMQ_MAX_DEVS; ++#endif ++ ++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS]; ++ ++#define IMQ_MAX_QUEUES 32 ++static int numqueues = 1; ++static u32 imq_hashrnd; ++ ++static inline __be16 pppoe_proto(const struct sk_buff *skb) ++{ ++ return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN + ++ sizeof(struct pppoe_hdr))); ++} ++ ++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb) ++{ ++ unsigned int pull_len; ++ u16 protocol = skb->protocol; ++ u32 addr1, addr2; ++ u32 hash, ihl = 0; ++ union { ++ u16 in16[2]; ++ u32 in32; ++ } ports; ++ u8 ip_proto; ++ ++ pull_len = 0; ++ ++recheck: ++ switch (protocol) { ++ case htons(ETH_P_8021Q): { ++ if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += VLAN_HLEN; ++ skb->network_header += VLAN_HLEN; ++ ++ protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; ++ goto recheck; ++ } ++ ++ case htons(ETH_P_PPP_SES): { ++ if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL)) ++ goto other; ++ ++ pull_len += PPPOE_SES_HLEN; ++ skb->network_header += PPPOE_SES_HLEN; ++ ++ protocol = pppoe_proto(skb); ++ goto recheck; ++ } ++ ++ case htons(ETH_P_IP): { ++ const struct iphdr *iph = ip_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr)))) ++ goto other; ++ ++ addr1 = iph->daddr; ++ addr2 = iph->saddr; ++ ++ ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? ++ iph->protocol : 0; ++ ihl = ip_hdrlen(skb); ++ ++ break; ++ } ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case htons(ETH_P_IPV6): { ++ const struct ipv6hdr *iph = ipv6_hdr(skb); ++ ++ if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr)))) ++ goto other; ++ ++ addr1 = iph->daddr.s6_addr32[3]; ++ addr2 = iph->saddr.s6_addr32[3]; ++ ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto); ++ if (unlikely(ihl < 0)) ++ goto other; ++ ++ break; ++ } ++#endif ++ default: ++other: ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ return (u16)(ntohs(protocol) % dev->real_num_tx_queues); ++ } ++ ++ if (addr1 > addr2) ++ swap(addr1, addr2); ++ ++ switch (ip_proto) { ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_DCCP: ++ case IPPROTO_ESP: ++ case IPPROTO_AH: ++ case IPPROTO_SCTP: ++ case IPPROTO_UDPLITE: { ++ if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) { ++ if (ports.in16[0] > ports.in16[1]) ++ swap(ports.in16[0], ports.in16[1]); ++ break; ++ } ++ /* fall-through */ ++ } ++ default: ++ ports.in32 = 0; ++ break; ++ } ++ ++ if (pull_len != 0) { ++ skb_push(skb, pull_len); ++ skb->network_header -= pull_len; ++ } ++ ++ hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto); ++ ++ return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++} ++ ++static inline bool sk_tx_queue_recorded(struct sock *sk) ++{ ++ return (sk_tx_queue_get(sk) >= 0); ++} ++ ++static struct netdev_queue *imq_select_queue(struct net_device *dev, ++ struct sk_buff *skb) ++{ ++ u16 queue_index = 0; ++ u32 hash; ++ ++ if (likely(dev->real_num_tx_queues == 1)) ++ goto out; ++ ++ /* IMQ can be receiving ingress or engress packets. */ ++ ++ /* Check first for if rx_queue is set */ ++ if (skb_rx_queue_recorded(skb)) { ++ queue_index = skb_get_rx_queue(skb); ++ goto out; ++ } ++ ++ /* Check if socket has tx_queue set */ ++ if (sk_tx_queue_recorded(skb->sk)) { ++ queue_index = sk_tx_queue_get(skb->sk); ++ goto out; ++ } ++ ++ /* Try use socket hash */ ++ if (skb->sk && skb->sk->sk_hash) { ++ hash = skb->sk->sk_hash; ++ queue_index = ++ (u16)(((u64)hash * dev->real_num_tx_queues) >> 32); ++ goto out; ++ } ++ ++ /* Generate hash from packet data */ ++ queue_index = imq_hash(dev, skb); ++ ++out: ++ if (unlikely(queue_index >= dev->real_num_tx_queues)) ++ queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues); ++ ++ skb_set_queue_mapping(skb, queue_index); ++ return netdev_get_tx_queue(dev, queue_index); ++} ++ ++static struct net_device_stats *imq_get_stats(struct net_device *dev) ++{ ++ return &dev->stats; ++} ++ ++/* called for packets kfree'd in qdiscs at places other than enqueue */ ++static void imq_skb_destructor(struct sk_buff *skb) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ ++ if (entry) { ++ nf_queue_entry_release_refs(entry); ++ kfree(entry); ++ } ++ ++ skb_restore_cb(skb); /* kfree backup */ ++} ++ ++static void imq_done_check_queue_mapping(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ unsigned int queue_index; ++ ++ /* Don't let queue_mapping be left too large after exiting IMQ */ ++ if (likely(skb->dev != dev && skb->dev != NULL)) { ++ queue_index = skb_get_queue_mapping(skb); ++ if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) { ++ queue_index = (u16)((u32)queue_index % ++ skb->dev->real_num_tx_queues); ++ skb_set_queue_mapping(skb, queue_index); ++ } ++ } else { ++ /* skb->dev was IMQ device itself or NULL, be on safe side and ++ * just clear queue mapping. ++ */ ++ skb_set_queue_mapping(skb, 0); ++ } ++} ++ ++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct nf_queue_entry *entry = skb->nf_queue_entry; ++ ++ skb->nf_queue_entry = NULL; ++ dev->trans_start = jiffies; ++ ++ dev->stats.tx_bytes += skb->len; ++ dev->stats.tx_packets++; ++ ++ if (unlikely(entry == NULL)) { ++ /* We don't know what is going on here.. packet is queued for ++ * imq device, but (probably) not by us. ++ * ++ * If this packet was not send here by imq_nf_queue(), then ++ * skb_save_cb() was not used and skb_free() should not show: ++ * WARNING: IMQ: kfree_skb: skb->cb_next:.. ++ * and/or ++ * WARNING: IMQ: kfree_skb: skb->nf_queue_entry... ++ * ++ * However if this message is shown, then IMQ is somehow broken ++ * and you should report this to linuximq.net. ++ */ ++ ++ /* imq_dev_xmit is black hole that eats all packets, report that ++ * we eat this packet happily and increase dropped counters. ++ */ ++ ++ dev->stats.tx_dropped++; ++ dev_kfree_skb(skb); ++ ++ return NETDEV_TX_OK; ++ } ++ ++ skb_restore_cb(skb); /* restore skb->cb */ ++ ++ skb->imq_flags = 0; ++ skb->destructor = NULL; ++ ++ imq_done_check_queue_mapping(skb, dev); ++ ++ nf_reinject(entry, NF_ACCEPT); ++ ++ return NETDEV_TX_OK; ++} ++ ++static struct net_device *get_imq_device_by_index(int index) ++{ ++ struct net_device *dev = NULL; ++ struct net *net; ++ char buf[8]; ++ ++ /* get device by name and cache result */ ++ snprintf(buf, sizeof(buf), "imq%d", index); ++ ++ /* Search device from all namespaces. */ ++ for_each_net(net) { ++ dev = dev_get_by_name(net, buf); ++ if (dev) ++ break; ++ } ++ ++ if (WARN_ON_ONCE(dev == NULL)) { ++ /* IMQ device not found. Exotic config? */ ++ return ERR_PTR(-ENODEV); ++ } ++ ++ imq_devs_cache[index] = dev; ++ dev_put(dev); ++ ++ return dev; ++} ++ ++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num) ++{ ++ struct net_device *dev; ++ struct sk_buff *skb_orig, *skb, *skb_shared; ++ struct Qdisc *q; ++ struct netdev_queue *txq; ++ spinlock_t *root_lock; ++ int users, index; ++ int retval = -EINVAL; ++ unsigned int orig_queue_index; ++ ++ index = entry->skb->imq_flags & IMQ_F_IFMASK; ++ if (unlikely(index > numdevs - 1)) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ numdevs - 1); ++ retval = -EINVAL; ++ goto out; ++ } ++ ++ /* check for imq device by index from cache */ ++ dev = imq_devs_cache[index]; ++ if (unlikely(!dev)) { ++ dev = get_imq_device_by_index(index); ++ if (IS_ERR(dev)) { ++ retval = PTR_ERR(dev); ++ goto out; ++ } ++ } ++ ++ if (unlikely(!(dev->flags & IFF_UP))) { ++ entry->skb->imq_flags = 0; ++ nf_reinject(entry, NF_ACCEPT); ++ retval = 0; ++ goto out; ++ } ++ dev->last_rx = jiffies; ++ ++ skb = entry->skb; ++ skb_orig = NULL; ++ ++ /* skb has owner? => make clone */ ++ if (unlikely(skb->destructor)) { ++ skb_orig = skb; ++ skb = skb_clone(skb, GFP_ATOMIC); ++ if (unlikely(!skb)) { ++ retval = -ENOMEM; ++ goto out; ++ } ++ entry->skb = skb; ++ } ++ ++ skb->nf_queue_entry = entry; ++ ++ dev->stats.rx_bytes += skb->len; ++ dev->stats.rx_packets++; ++ ++ if (!skb->dev) { ++ /* skb->dev == NULL causes problems, try the find cause. */ ++ if (net_ratelimit()) { ++ dev_warn(&dev->dev, ++ "received packet with skb->dev == NULL\n"); ++ dump_stack(); ++ } ++ ++ skb->dev = dev; ++ } ++ ++ /* Disables softirqs for lock below */ ++ rcu_read_lock_bh(); ++ ++ /* Multi-queue selection */ ++ orig_queue_index = skb_get_queue_mapping(skb); ++ txq = imq_select_queue(dev, skb); ++ ++ q = rcu_dereference(txq->qdisc); ++ if (unlikely(!q->enqueue)) ++ goto packet_not_eaten_by_imq_dev; ++ ++ root_lock = qdisc_lock(q); ++ spin_lock(root_lock); ++ ++ users = atomic_read(&skb->users); ++ ++ skb_shared = skb_get(skb); /* increase reference count by one */ ++ skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will ++ overwrite it */ ++ qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */ ++ ++ if (likely(atomic_read(&skb_shared->users) == users + 1)) { ++ kfree_skb(skb_shared); /* decrease reference count by one */ ++ ++ skb->destructor = &imq_skb_destructor; ++ ++ /* cloned? */ ++ if (unlikely(skb_orig)) ++ kfree_skb(skb_orig); /* free original */ ++ ++ spin_unlock(root_lock); ++ rcu_read_unlock_bh(); ++ ++ /* schedule qdisc dequeue */ ++ __netif_schedule(q); ++ ++ retval = 0; ++ goto out; ++ } else { ++ skb_restore_cb(skb_shared); /* restore skb->cb */ ++ skb->nf_queue_entry = NULL; ++ /* qdisc dropped packet and decreased skb reference count of ++ * skb, so we don't really want to and try refree as that would ++ * actually destroy the skb. */ ++ spin_unlock(root_lock); ++ goto packet_not_eaten_by_imq_dev; ++ } ++ ++packet_not_eaten_by_imq_dev: ++ skb_set_queue_mapping(skb, orig_queue_index); ++ rcu_read_unlock_bh(); ++ ++ /* cloned? restore original */ ++ if (unlikely(skb_orig)) { ++ kfree_skb(skb); ++ entry->skb = skb_orig; ++ } ++ retval = -1; ++out: ++ return retval; ++} ++ ++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb, ++ const struct net_device *indev, ++ const struct net_device *outdev, ++ int (*okfn)(struct sk_buff *)) ++{ ++ return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT; ++} ++ ++static int imq_close(struct net_device *dev) ++{ ++ netif_stop_queue(dev); ++ return 0; ++} ++ ++static int imq_open(struct net_device *dev) ++{ ++ netif_start_queue(dev); ++ return 0; ++} ++ ++static const struct net_device_ops imq_netdev_ops = { ++ .ndo_open = imq_open, ++ .ndo_stop = imq_close, ++ .ndo_start_xmit = imq_dev_xmit, ++ .ndo_get_stats = imq_get_stats, ++}; ++ ++static void imq_setup(struct net_device *dev) ++{ ++ dev->netdev_ops = &imq_netdev_ops; ++ dev->type = ARPHRD_VOID; ++ dev->mtu = 16000; /* too small? */ ++ dev->tx_queue_len = 11000; /* too big? */ ++ dev->flags = IFF_NOARP; ++ dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | ++ NETIF_F_GSO | NETIF_F_HW_CSUM | ++ NETIF_F_HIGHDMA; ++ dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | ++ IFF_TX_SKB_SHARING); ++} ++ ++static int imq_validate(struct nlattr *tb[], struct nlattr *data[]) ++{ ++ int ret = 0; ++ ++ if (tb[IFLA_ADDRESS]) { ++ if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) { ++ ret = -EINVAL; ++ goto end; ++ } ++ if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) { ++ ret = -EADDRNOTAVAIL; ++ goto end; ++ } ++ } ++ return 0; ++end: ++ printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret); ++ return ret; ++} ++ ++static struct rtnl_link_ops imq_link_ops __read_mostly = { ++ .kind = "imq", ++ .priv_size = 0, ++ .setup = imq_setup, ++ .validate = imq_validate, ++}; ++ ++static const struct nf_queue_handler imq_nfqh = { ++ .name = "imq", ++ .outfn = imq_nf_queue, ++}; ++ ++static int __init imq_init_hooks(void) ++{ ++ int ret; ++ ++ nf_register_queue_imq_handler(&imq_nfqh); ++ ++ ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ if (ret < 0) ++ nf_unregister_queue_imq_handler(); ++ ++ return ret; ++} ++ ++static int __init imq_init_one(int index) ++{ ++ struct net_device *dev; ++ int ret; ++ ++ dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues); ++ if (!dev) ++ return -ENOMEM; ++ ++ ret = dev_alloc_name(dev, dev->name); ++ if (ret < 0) ++ goto fail; ++ ++ dev->rtnl_link_ops = &imq_link_ops; ++ ret = register_netdevice(dev); ++ if (ret < 0) ++ goto fail; ++ ++ return 0; ++fail: ++ free_netdev(dev); ++ return ret; ++} ++ ++static int __init imq_init_devs(void) ++{ ++ int err, i; ++ ++ if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) { ++ printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n", ++ IMQ_MAX_DEVS); ++ return -EINVAL; ++ } ++ ++ if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) { ++ printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n", ++ IMQ_MAX_QUEUES); ++ return -EINVAL; ++ } ++ ++ get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd)); ++ ++ rtnl_lock(); ++ err = __rtnl_link_register(&imq_link_ops); ++ ++ for (i = 0; i < numdevs && !err; i++) ++ err = imq_init_one(i); ++ ++ if (err) { ++ __rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ } ++ rtnl_unlock(); ++ ++ return err; ++} ++ ++static int __init imq_init_module(void) ++{ ++ int err; ++ ++#if defined(CONFIG_IMQ_NUM_DEVS) ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2); ++ BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK); ++#endif ++ ++ err = imq_init_devs(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n"); ++ return err; ++ } ++ ++ err = imq_init_hooks(); ++ if (err) { ++ printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++ return err; ++ } ++ ++ printk(KERN_INFO "IMQ driver loaded successfully. " ++ "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues); ++ ++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); ++#endif ++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) ++ printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); ++#else ++ printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); ++#endif ++ ++ return 0; ++} ++ ++static void __exit imq_unhook(void) ++{ ++ nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops)); ++ nf_unregister_queue_imq_handler(); ++} ++ ++static void __exit imq_cleanup_devs(void) ++{ ++ rtnl_link_unregister(&imq_link_ops); ++ memset(imq_devs_cache, 0, sizeof(imq_devs_cache)); ++} ++ ++static void __exit imq_exit_module(void) ++{ ++ imq_unhook(); ++ imq_cleanup_devs(); ++ printk(KERN_INFO "IMQ driver unloaded successfully.\n"); ++} ++ ++module_init(imq_init_module); ++module_exit(imq_exit_module); ++ ++module_param(numdevs, int, 0); ++module_param(numqueues, int, 0); ++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will " ++ "be created)"); ++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device"); ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See " ++ "http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS_RTNL_LINK("imq"); ++ +diff -uNr linux-3.2/drivers/net/Kconfig linux-3.2-imq/drivers/net/Kconfig +--- linux-3.2/drivers/net/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/drivers/net/Kconfig 2011-11-04 11:12:52.106390309 +0200 +@@ -90,6 +90,125 @@ + To compile this driver as a module, choose M here: the module + will be called eql. If unsure, say N. + ++config IMQ ++ tristate "IMQ (intermediate queueing device) support" ++ depends on NETDEVICES && NETFILTER ++ ---help--- ++ The IMQ device(s) is used as placeholder for QoS queueing ++ disciplines. Every packet entering/leaving the IP stack can be ++ directed through the IMQ device where it's enqueued/dequeued to the ++ attached qdisc. This allows you to treat network devices as classes ++ and distribute bandwidth among them. Iptables is used to specify ++ through which IMQ device, if any, packets travel. ++ ++ More information at: http://www.linuximq.net/ ++ ++ To compile this driver as a module, choose M here: the module ++ will be called imq. If unsure, say N. ++ ++choice ++ prompt "IMQ behavior (PRE/POSTROUTING)" ++ depends on IMQ ++ default IMQ_BEHAVIOR_AB ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ IMQ can work in any of the following ways: ++ ++ PREROUTING | POSTROUTING ++ -----------------|------------------- ++ #1 After NAT | After NAT ++ #2 After NAT | Before NAT ++ #3 Before NAT | After NAT ++ #4 Before NAT | Before NAT ++ ++ The default behavior is to hook before NAT on PREROUTING ++ and after NAT on POSTROUTING (#3). ++ ++ This settings are specially usefull when trying to use IMQ ++ to shape NATed clients. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AA ++ bool "IMQ AA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_AB ++ bool "IMQ AB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: After NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BA ++ bool "IMQ BA" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: After NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++config IMQ_BEHAVIOR_BB ++ bool "IMQ BB" ++ help ++ This setting defines how IMQ behaves in respect to its ++ hooking in PREROUTING and POSTROUTING. ++ ++ Choosing this option will make IMQ hook like this: ++ ++ PREROUTING: Before NAT ++ POSTROUTING: Before NAT ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ ++endchoice ++ ++config IMQ_NUM_DEVS ++ int "Number of IMQ devices" ++ range 2 16 ++ depends on IMQ ++ default "16" ++ help ++ This setting defines how many IMQ devices will be created. ++ ++ The default value is 16. ++ ++ More information can be found at: www.linuximq.net ++ ++ If not sure leave the default settings alone. ++ + config NET_FC + bool "Fibre Channel driver support" + depends on SCSI && PCI +diff -uNr linux-3.2/drivers/net/Makefile linux-3.2-imq/drivers/net/Makefile +--- linux-3.2/drivers/net/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200 +@@ -8,6 +8,7 @@ + obj-$(CONFIG_BONDING) += bonding/ + obj-$(CONFIG_DUMMY) += dummy.o + obj-$(CONFIG_EQUALIZER) += eql.o ++obj-$(CONFIG_IMQ) += imq.o + obj-$(CONFIG_IFB) += ifb.o + obj-$(CONFIG_MACVLAN) += macvlan.o + obj-$(CONFIG_MACVTAP) += macvtap.o +diff -uNr linux-3.2/include/linux/imq.h linux-3.2-imq/include/linux/imq.h +--- linux-3.2/include/linux/imq.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/imq.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,13 @@ ++#ifndef _IMQ_H ++#define _IMQ_H ++ ++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */ ++#define IMQ_F_BITS 5 ++ ++#define IMQ_F_IFMASK 0x0f ++#define IMQ_F_ENQUEUE 0x10 ++ ++#define IMQ_MAX_DEVS (IMQ_F_IFMASK + 1) ++ ++#endif /* _IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter/xt_IMQ.h linux-3.2-imq/include/linux/netfilter/xt_IMQ.h +--- linux-3.2/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter/xt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,9 @@ ++#ifndef _XT_IMQ_H ++#define _XT_IMQ_H ++ ++struct xt_imq_info { ++ unsigned int todev; /* target imq device */ ++}; ++ ++#endif /* _XT_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter.h linux-3.2-imq/include/linux/netfilter.h +--- linux-3.2/include/linux/netfilter.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/linux/netfilter.h 2011-11-04 11:12:52.109723710 +0200 +@@ -22,7 +22,8 @@ + #define NF_QUEUE 3 + #define NF_REPEAT 4 + #define NF_STOP 5 +-#define NF_MAX_VERDICT NF_STOP ++#define NF_IMQ_QUEUE 6 ++#define NF_MAX_VERDICT NF_IMQ_QUEUE + + /* we overload the higher bits for encoding auxiliary data such as the queue + * number or errno values. Not nice, but better than additional function +diff -uNr linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h +--- linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h 2011-11-04 11:12:52.109723710 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IPT_IMQ_H ++#define _IPT_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include ++ ++#define ipt_imq_info xt_imq_info ++ ++#endif /* _IPT_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h +--- linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h 2011-11-04 11:12:52.113057113 +0200 +@@ -0,0 +1,10 @@ ++#ifndef _IP6T_IMQ_H ++#define _IP6T_IMQ_H ++ ++/* Backwards compatibility for old userspace */ ++#include ++ ++#define ip6t_imq_info xt_imq_info ++ ++#endif /* _IP6T_IMQ_H */ ++ +diff -uNr linux-3.2/include/linux/skbuff.h linux-3.2-imq/include/linux/skbuff.h +--- linux-3.2/include/linux/skbuff.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/linux/skbuff.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,6 +30,9 @@ + #include + #include + #include ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include ++#endif + + /* Don't change this without changing skb_csum_unnecessary! */ + #define CHECKSUM_NONE 0 +@@ -386,6 +389,9 @@ + * first. This is owned by whoever has the skb queued ATM. + */ + char cb[48] __aligned(8); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ void *cb_next; ++#endif + + unsigned long _skb_refdst; + #ifdef CONFIG_XFRM +@@ -424,6 +430,9 @@ + #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED + struct sk_buff *nfct_reasm; + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ struct nf_queue_entry *nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + struct nf_bridge_info *nf_bridge; + #endif +@@ -449,6 +458,10 @@ + + /* 0/13 bit hole */ + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ __u8 imq_flags:IMQ_F_BITS; ++#endif ++ + #ifdef CONFIG_NET_DMA + dma_cookie_t dma_cookie; + #endif +@@ -535,6 +548,12 @@ + return (struct rtable *)skb_dst(skb); + } + ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern int skb_save_cb(struct sk_buff *skb); ++extern int skb_restore_cb(struct sk_buff *skb); ++#endif ++ + extern void kfree_skb(struct sk_buff *skb); + extern void consume_skb(struct sk_buff *skb); + extern void __kfree_skb(struct sk_buff *skb); +@@ -2368,6 +2387,10 @@ + dst->nfct_reasm = src->nfct_reasm; + nf_conntrack_get_reasm(src->nfct_reasm); + #endif ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ dst->imq_flags = src->imq_flags; ++ dst->nf_queue_entry = src->nf_queue_entry; ++#endif + #ifdef CONFIG_BRIDGE_NETFILTER + dst->nf_bridge = src->nf_bridge; + nf_bridge_get(src->nf_bridge); +diff -uNr linux-3.2/include/net/netfilter/nf_queue.h linux-3.2-imq/include/net/netfilter/nf_queue.h +--- linux-3.2/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/include/net/netfilter/nf_queue.h 2011-11-04 11:12:52.116390515 +0200 +@@ -30,5 +30,11 @@ + const struct nf_queue_handler *qh); + extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh); + extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict); ++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry); ++ ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh); ++extern void nf_unregister_queue_imq_handler(void); ++#endif + + #endif /* _NF_QUEUE_H */ +diff -uNr linux-3.2/net/core/dev.c linux-3.2-imq/net/core/dev.c +--- linux-3.2/net/core/dev.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/core/dev.c 2011-11-04 11:12:52.119723915 +0200 +@@ -98,6 +98,9 @@ + #include + #include + #include ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++#include ++#endif + #include + #include + #include +@@ -2185,7 +2188,12 @@ + if (dev->priv_flags & IFF_XMIT_DST_RELEASE) + skb_dst_drop(skb); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ if (!list_empty(&ptype_all) && ++ !(skb->imq_flags & IMQ_F_ENQUEUE)) ++#else + if (!list_empty(&ptype_all)) ++#endif + dev_queue_xmit_nit(skb, dev); + + skb_orphan_try(skb); +diff -uNr linux-3.2/net/core/skbuff.c linux-3.2-imq/net/core/skbuff.c +--- linux-3.2/net/core/skbuff.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/core/skbuff.c 2011-11-04 11:12:52.123057315 +0200 +@@ -73,6 +73,9 @@ + + static struct kmem_cache *skbuff_head_cache __read_mostly; + static struct kmem_cache *skbuff_fclone_cache __read_mostly; ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static struct kmem_cache *skbuff_cb_store_cache __read_mostly; ++#endif + + static void sock_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *buf) +@@ -92,6 +95,82 @@ + return 1; + } + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++/* Control buffer save/restore for IMQ devices */ ++struct skb_cb_table { ++ char cb[48] __aligned(8); ++ void *cb_next; ++ atomic_t refcnt; ++}; ++ ++static DEFINE_SPINLOCK(skb_cb_store_lock); ++ ++int skb_save_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC); ++ if (!next) ++ return -ENOMEM; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(next->cb, skb->cb, sizeof(skb->cb)); ++ next->cb_next = skb->cb_next; ++ ++ atomic_set(&next->refcnt, 1); ++ ++ skb->cb_next = next; ++ return 0; ++} ++EXPORT_SYMBOL(skb_save_cb); ++ ++int skb_restore_cb(struct sk_buff *skb) ++{ ++ struct skb_cb_table *next; ++ ++ if (!skb->cb_next) ++ return 0; ++ ++ next = skb->cb_next; ++ ++ BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb)); ++ ++ memcpy(skb->cb, next->cb, sizeof(skb->cb)); ++ skb->cb_next = next->cb_next; ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ if (atomic_dec_and_test(&next->refcnt)) ++ kmem_cache_free(skbuff_cb_store_cache, next); ++ ++ spin_unlock(&skb_cb_store_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(skb_restore_cb); ++ ++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old) ++{ ++ struct skb_cb_table *next; ++ struct sk_buff *old; ++ ++ if (!__old->cb_next) { ++ new->cb_next = NULL; ++ return; ++ } ++ ++ spin_lock(&skb_cb_store_lock); ++ ++ old = (struct sk_buff *)__old; ++ ++ next = old->cb_next; ++ atomic_inc(&next->refcnt); ++ new->cb_next = next; ++ ++ spin_unlock(&skb_cb_store_lock); ++} ++#endif + + /* Pipe buffer operations for a socket. */ + static const struct pipe_buf_operations sock_pipe_buf_ops = { +@@ -403,6 +482,26 @@ + WARN_ON(in_irq()); + skb->destructor(skb); + } ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ /* This should not happen. When it does, avoid memleak by restoring ++ the chain of cb-backups. */ ++ while (skb->cb_next != NULL) { ++ if (net_ratelimit()) ++ printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: " ++ "%08x\n", (unsigned int)skb->cb_next); ++ ++ skb_restore_cb(skb); ++ } ++ /* This should not happen either, nf_queue_entry is nullified in ++ * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are ++ * leaking entry pointers, maybe memory. We don't know if this is ++ * pointer to already freed memory, or should this be freed. ++ * If this happens we need to add refcounting, etc for nf_queue_entry. ++ */ ++ if (skb->nf_queue_entry && net_ratelimit()) ++ printk(KERN_WARNING ++ "IMQ: kfree_skb: skb->nf_queue_entry != NULL"); ++#endif + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + nf_conntrack_put(skb->nfct); + #endif +@@ -547,6 +646,9 @@ + new->sp = secpath_get(old->sp); + #endif + memcpy(new->cb, old->cb, sizeof(old->cb)); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skb_copy_stored_cb(new, old); ++#endif + new->csum = old->csum; + new->local_df = old->local_df; + new->pkt_type = old->pkt_type; +@@ -2907,6 +3009,13 @@ + 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC, + NULL); ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache", ++ sizeof(struct skb_cb_table), ++ 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ NULL); ++#endif + } + + /** +diff -uNr linux-3.2/net/ipv6/ip6_output.c linux-3.2-imq/net/ipv6/ip6_output.c +--- linux-3.2/net/ipv6/ip6_output.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/ipv6/ip6_output.c 2011-11-04 11:12:52.123057315 +0200 +@@ -102,9 +102,6 @@ + struct net_device *dev = dst->dev; + struct neighbour *neigh; + +- skb->protocol = htons(ETH_P_IPV6); +- skb->dev = dev; +- + if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { + struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); + +@@ -170,6 +167,11 @@ + return 0; + } + ++ /* IMQ-patch: moved setting skb->dev and skb->protocol from ++ * ip6_finish_output2 to fix crashing at netif_skb_features(). */ ++ skb->protocol = htons(ETH_P_IPV6); ++ skb->dev = dev; ++ + return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev, + ip6_finish_output, + !(IP6CB(skb)->flags & IP6SKB_REROUTED)); +diff -uNr linux-3.2/net/netfilter/core.c linux-3.2-imq/net/netfilter/core.c +--- linux-3.2/net/netfilter/core.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200 +@@ -179,9 +179,11 @@ + ret = NF_DROP_GETERR(verdict); + if (ret == 0) + ret = -EPERM; +- } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { ++ } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE || ++ (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) { + int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.2/net/netfilter/Kconfig linux-3.2-imq/net/netfilter/Kconfig +--- linux-3.2/net/netfilter/Kconfig 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/Kconfig 2011-11-04 11:12:52.123057315 +0200 +@@ -506,6 +506,18 @@ + For more information on the LEDs available on your system, see + Documentation/leds/leds-class.txt + ++config NETFILTER_XT_TARGET_IMQ ++ tristate '"IMQ" target support' ++ depends on NETFILTER_XTABLES ++ depends on IP_NF_MANGLE || IP6_NF_MANGLE ++ select IMQ ++ default m if NETFILTER_ADVANCED=n ++ help ++ This option adds a `IMQ' target which is used to specify if and ++ to which imq device packets should get enqueued/dequeued. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ + config NETFILTER_XT_TARGET_MARK + tristate '"MARK" target support' + depends on NETFILTER_ADVANCED +diff -uNr linux-3.2/net/netfilter/Makefile linux-3.2-imq/net/netfilter/Makefile +--- linux-3.2/net/netfilter/Makefile 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/Makefile 2011-11-04 11:12:52.123057315 +0200 +@@ -56,6 +56,7 @@ + obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o + obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o + obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o ++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o + obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o + obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o +diff -uNr linux-3.2/net/netfilter/nf_internals.h linux-3.2-imq/net/netfilter/nf_internals.h +--- linux-3.2/net/netfilter/nf_internals.h 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200 +@@ -29,7 +29,7 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum); ++ unsigned int queuenum, unsigned int queuetype); + extern int __init netfilter_queue_init(void); + + /* nf_log.c */ +diff -uNr linux-3.2/net/netfilter/nf_queue.c linux-3.2-imq/net/netfilter/nf_queue.c +--- linux-3.2/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300 ++++ linux-3.2-imq/net/netfilter/nf_queue.c 2011-11-04 11:12:52.123057315 +0200 +@@ -22,6 +22,26 @@ + + static DEFINE_MUTEX(queue_handler_mutex); + ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++static const struct nf_queue_handler *queue_imq_handler; ++ ++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, qh); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler); ++ ++void nf_unregister_queue_imq_handler(void) ++{ ++ mutex_lock(&queue_handler_mutex); ++ rcu_assign_pointer(queue_imq_handler, NULL); ++ mutex_unlock(&queue_handler_mutex); ++} ++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler); ++#endif ++ + /* return EBUSY when somebody else is registered, return EEXIST if the + * same handler is registered, return 0 in case of success. */ + int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh) +@@ -92,7 +112,7 @@ + } + EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers); + +-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) ++void nf_queue_entry_release_refs(struct nf_queue_entry *entry) + { + /* Release those devices we held, or Alexey will kill me. */ + if (entry->indev) +@@ -112,6 +132,7 @@ + /* Drop reference to owner of hook which queued us. */ + module_put(entry->elem->owner); + } ++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs); + + /* + * Any packet that leaves via this function must come back +@@ -123,7 +144,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + int status = -ENOENT; + struct nf_queue_entry *entry = NULL; +@@ -137,7 +159,17 @@ + /* QUEUE == DROP if no one is waiting, to be safe. */ + rcu_read_lock(); + +- qh = rcu_dereference(queue_handler[pf]); ++ if (queuetype == NF_IMQ_QUEUE) { ++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE) ++ qh = rcu_dereference(queue_imq_handler); ++#else ++ BUG(); ++ goto err_unlock; ++#endif ++ } else { ++ qh = rcu_dereference(queue_handler[pf]); ++ } ++ + if (!qh) { + status = -ESRCH; + goto err_unlock; +@@ -209,7 +241,8 @@ + struct net_device *indev, + struct net_device *outdev, + int (*okfn)(struct sk_buff *), +- unsigned int queuenum) ++ unsigned int queuenum, ++ unsigned int queuetype) + { + struct sk_buff *segs; + int err; +@@ -217,7 +250,7 @@ + + if (!skb_is_gso(skb)) + return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn, +- queuenum); ++ queuenum, queuetype); + + switch (pf) { + case NFPROTO_IPV4: +@@ -244,7 +277,7 @@ + segs->next = NULL; + if (err == 0) + err = __nf_queue(segs, elem, pf, hook, indev, +- outdev, okfn, queuenum); ++ outdev, okfn, queuenum, queuetype); + if (err == 0) + queued++; + else +@@ -299,9 +332,11 @@ + local_bh_enable(); + break; + case NF_QUEUE: ++ case NF_IMQ_QUEUE: + err = __nf_queue(skb, elem, entry->pf, entry->hook, + entry->indev, entry->outdev, entry->okfn, +- verdict >> NF_VERDICT_QBITS); ++ verdict >> NF_VERDICT_QBITS, ++ verdict & NF_VERDICT_MASK); + if (err < 0) { + if (err == -ECANCELED) + goto next_hook; +diff -uNr linux-3.2/net/netfilter/xt_IMQ.c linux-3.2-imq/net/netfilter/xt_IMQ.c +--- linux-3.2/net/netfilter/xt_IMQ.c 1970-01-01 02:00:00.000000000 +0200 ++++ linux-3.2-imq/net/netfilter/xt_IMQ.c 2011-11-04 11:12:52.123057315 +0200 +@@ -0,0 +1,74 @@ ++/* ++ * This target marks packets to be enqueued to an imq device ++ */ ++#include ++#include ++#include ++#include ++#include ++ ++static unsigned int imq_target(struct sk_buff *pskb, ++ const struct xt_action_param *par) ++{ ++ const struct xt_imq_info *mr = par->targinfo; ++ ++ pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE; ++ ++ return XT_CONTINUE; ++} ++ ++static int imq_checkentry(const struct xt_tgchk_param *par) ++{ ++ struct xt_imq_info *mr = par->targinfo; ++ ++ if (mr->todev > IMQ_MAX_DEVS - 1) { ++ printk(KERN_WARNING ++ "IMQ: invalid device specified, highest is %u\n", ++ IMQ_MAX_DEVS - 1); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++static struct xt_target xt_imq_reg[] __read_mostly = { ++ { ++ .name = "IMQ", ++ .family = AF_INET, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++ { ++ .name = "IMQ", ++ .family = AF_INET6, ++ .checkentry = imq_checkentry, ++ .target = imq_target, ++ .targetsize = sizeof(struct xt_imq_info), ++ .table = "mangle", ++ .me = THIS_MODULE ++ }, ++}; ++ ++static int __init imq_init(void) ++{ ++ return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++static void __exit imq_fini(void) ++{ ++ xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg)); ++} ++ ++module_init(imq_init); ++module_exit(imq_fini); ++ ++MODULE_AUTHOR("http://www.linuximq.net"); ++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. " ++ "See http://www.linuximq.net/ for more information."); ++MODULE_LICENSE("GPL"); ++MODULE_ALIAS("ipt_IMQ"); ++MODULE_ALIAS("ip6t_IMQ"); ++ diff --git a/src/patches/linux-3.2-panda-reboot.patch b/src/patches/linux-3.2-panda-reboot.patch new file mode 100644 index 0000000000..8e37837fc2 --- /dev/null +++ b/src/patches/linux-3.2-panda-reboot.patch @@ -0,0 +1,29 @@ +With commit 3d3f78d752bf, reboot seems to broken on ARM +machines. CPU dies while doing flush_pmd_entry() as part of +setup_mm_for_reboot() + +I know this is not the fix but intention is to report the +issue and also provide temporary fix till it get fixed correctly + +Signed-off-by: Santosh Shilimkar +Reported-by: Anand Gadiyar +--- +Tested with OMAP4 device. + + arch/arm/kernel/process.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c +index e76fcaa..ac370b2 100644 +--- a/arch/arm/kernel/process.c ++++ b/arch/arm/kernel/process.c +@@ -247,7 +247,6 @@ void machine_power_off(void) + + void machine_restart(char *cmd) + { +- machine_shutdown(); + arm_pm_restart(reboot_mode, cmd); + } + +-- +1.6.0.4 diff --git a/src/patches/linux-3.2.25-arm_kirkwood_setups.patch b/src/patches/linux-3.2.25-arm_kirkwood_setups.patch new file mode 100644 index 0000000000..94bbb4b927 --- /dev/null +++ b/src/patches/linux-3.2.25-arm_kirkwood_setups.patch @@ -0,0 +1,692 @@ +diff -Naur linux-3.2.25.org/arch/arm/Kconfig linux-3.2.25/arch/arm/Kconfig +--- linux-3.2.25.org/arch/arm/Kconfig 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/Kconfig 2012-08-11 04:42:20.985949735 -0400 +@@ -197,7 +197,7 @@ + + config ARM_PATCH_PHYS_VIRT + bool "Patch physical to virtual translations at runtime" if EMBEDDED +- default y ++ default n + depends on !XIP_KERNEL && MMU + depends on !ARCH_REALVIEW || !SPARSEMEM + help +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1969-12-31 19:00:00.000000000 -0500 ++++ linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c 2012-08-11 10:22:53.242276474 -0400 +@@ -0,0 +1,148 @@ ++/* ++ * arch/arm/mach-kirkwood/dreamplug-setup.c ++ * ++ * Marvell DreamPlug Reference Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "common.h" ++#include "mpp.h" ++ ++static const struct flash_platform_data dreamplug_spi_slave_data = { ++ .type = "mx25l1606e", ++}; ++ ++static struct spi_board_info __initdata dreamplug_spi_slave_info[] = { ++ { ++ .modalias = "m25p80", ++ .platform_data = &dreamplug_spi_slave_data, ++ .irq = -1, ++ .max_speed_hz = 50000000, ++ .bus_num = 0, ++ .chip_select = 0, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0), ++}; ++ ++static struct mv643xx_eth_platform_data dreamplug_ge01_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(1), ++}; ++ ++static struct mv_sata_platform_data dreamplug_sata_data = { ++ .n_ports = 1, ++}; ++ ++static struct mvsdio_platform_data dreamplug_mvsdio_data = { ++ /* unfortunately the CD signal has not been connected */ ++}; ++ ++static struct gpio_led dreamplug_led_pins[] = { ++ { ++ .name = "dreamplug:blue:bluetooth", ++ .gpio = 47, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:green:wlan", ++ .gpio = 48, ++ .active_low = 1, ++ }, ++ { ++ .name = "dreamplug:blue:wlanap", ++ .gpio = 49, ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_led_platform_data dreamplug_led_data = { ++ .leds = dreamplug_led_pins, ++ .num_leds = ARRAY_SIZE(dreamplug_led_pins), ++}; ++ ++static struct platform_device dreamplug_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &dreamplug_led_data, ++ } ++}; ++ ++static unsigned int dreamplug_mpp_config[] __initdata = { ++ MPP0_SPI_SCn, ++ MPP1_SPI_MOSI, ++ MPP2_SPI_SCK, ++ MPP3_SPI_MISO, ++ MPP4_GPIO, ++ MPP5_GPO, ++ MPP7_GPO, ++ MPP18_GPO, ++ MPP19_GPO, ++ MPP47_GPIO, /* B_BLED */ ++ MPP48_GPIO, /* W_GLED */ ++ MPP49_GPIO, /* W_BLED */ ++ 0 ++}; ++ ++static void __init dreamplug_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(dreamplug_mpp_config); ++ ++ kirkwood_uart0_init(); ++ ++ spi_register_board_info(dreamplug_spi_slave_info, ++ ARRAY_SIZE(dreamplug_spi_slave_info)); ++ ++ kirkwood_spi_init(); ++ kirkwood_ehci_init(); ++ ++ kirkwood_ge00_init(&dreamplug_ge00_data); ++ kirkwood_ge01_init(&dreamplug_ge01_data); ++ kirkwood_sata_init(&dreamplug_sata_data); ++ kirkwood_sdio_init(&dreamplug_mvsdio_data); ++ ++ platform_device_register(&dreamplug_leds); ++} ++ ++MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board") ++ /* Maintainer: Siddarth Gore marvell.com> */ ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END ++ ++MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board") ++ .atag_offset = 0x100, ++ .init_machine = dreamplug_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c 2012-08-05 13:05:22.000000000 -0400 +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -27,15 +28,16 @@ + { + .name = "u-boot", + .offset = 0, +- .size = SZ_1M ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ + }, { + .name = "uImage", + .offset = MTDPART_OFS_NXTBLK, +- .size = SZ_4M ++ .size = SZ_4M, + }, { + .name = "root", + .offset = MTDPART_OFS_NXTBLK, +- .size = MTDPART_SIZ_FULL ++ .size = MTDPART_SIZ_FULL, + }, + }; + +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c 1969-12-31 19:00:00.000000000 -0500 ++++ linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c 2012-08-11 04:58:00.565660184 -0400 +@@ -0,0 +1,212 @@ ++/* ++ * arch/arm/mach-kirkwood/iconnect-setup.c ++ * ++ * Iomega iConnect Wireless Data Station Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "common.h" ++#include "mpp.h" ++ ++static struct mtd_partition iconnect_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "uInit", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = 0x440000, ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data iconnect_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(0xB), ++}; ++ ++static struct gpio_led iconnect_led_pins[] = { ++ { ++ .name = "iconnect:led_level", ++ .default_trigger = "default-on", ++ .gpio = 41, ++ .active_low = 0, ++ }, ++ ++ { ++ .name = "iconnect:blue:power", ++ .default_trigger = "default-on", ++ .gpio = 42, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:red:power", ++ .default_trigger = "none", ++ .gpio = 43, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_1", ++ .default_trigger = "none", ++ .gpio = 44, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_2", ++ .default_trigger = "none", ++ .gpio = 45, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_3", ++ .default_trigger = "none", ++ .gpio = 46, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:usb_4", ++ .default_trigger = "none", ++ .gpio = 47, ++ .active_low = 0, ++ }, ++ { ++ .name = "iconnect:blue:otb", ++ .default_trigger = "none", ++ .gpio = 48, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data iconnect_led_data = { ++ .leds = iconnect_led_pins, ++ .num_leds = ARRAY_SIZE(iconnect_led_pins), ++}; ++ ++static struct platform_device iconnect_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &iconnect_led_data, ++ } ++}; ++ ++static struct gpio_keys_button iconnect_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 35, ++ .desc = "OTB Button", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 12, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data iconnect_button_data = { ++ .buttons = iconnect_buttons, ++ .nbuttons = ARRAY_SIZE(iconnect_buttons), ++}; ++ ++static struct platform_device iconnect_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &iconnect_button_data, ++ } ++}; ++ ++static unsigned int iconnect_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP12_GPIO, /* Reset Button */ ++ MPP35_GPIO, /* OTB Button */ ++ ++ MPP41_GPIO, /* LED Level */ ++ MPP42_GPIO, /* Power LED blue */ ++ MPP43_GPIO, /* Power LED red */ ++ MPP44_GPIO, /* USB LED 1 */ ++ MPP45_GPIO, /* USB LED 2 */ ++ MPP46_GPIO, /* USB LED 3 */ ++ MPP47_GPIO, /* USB LED 4 */ ++ MPP48_GPIO, /* OTB LED */ ++ 0 ++}; ++ ++static struct i2c_board_info __initdata iconnect_i2c = { ++ I2C_BOARD_INFO("lm63", 0x4c), ++}; ++ ++static void __init iconnect_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(iconnect_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&iconnect_ge00_data); ++ ++ kirkwood_uart0_init(); ++ platform_device_register(&iconnect_leds); ++ platform_device_register(&iconnect_button_device); ++ ++ kirkwood_i2c_init(); ++ i2c_register_board_info(0, &iconnect_i2c,1); ++} ++ ++static int __init iconnect_pci_init(void) ++{ ++ if (machine_is_iconnect()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(iconnect_pci_init); ++ ++MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station") ++ /* Maintainer: Arne Fitzenreiter */ ++ .atag_offset = 0x100, ++ .init_machine = iconnect_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig linux-3.2.25/arch/arm/mach-kirkwood/Kconfig +--- linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/Kconfig 2012-08-05 12:45:22.015253501 -0400 +@@ -44,6 +44,12 @@ + Say 'Y' here if you want your kernel to support the + Marvell GuruPlug Reference Board. + ++config MACH_DREAMPLUG ++ bool "Marvell DreamPlug Reference Board" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Marvell DreamPlug Reference Board. ++ + config MACH_TS219 + bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS" + help +@@ -130,6 +136,18 @@ + Say 'Y' here if you want your kernel to support the + HP t5325 Thin Client. + ++config MACH_ICONNECT ++ bool "Iomega iConnect Wireless Data Station" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Iomega iConnect Wireless Data Station. ++ ++config MACH_NAS6210 ++ bool "Raidsonic ICY BOX IB-62x0" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Raidsonic ICY BOX IB-62x0. ++ + endmenu + + endif +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile linux-3.2.25/arch/arm/mach-kirkwood/Makefile +--- linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/Makefile 2012-08-05 12:46:49.015253501 -0400 +@@ -7,6 +7,7 @@ + obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o + obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o + obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o ++obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o + obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o + obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o + obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o +@@ -18,5 +19,7 @@ + obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o + obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o + obj-$(CONFIG_MACH_T5325) += t5325-setup.o ++obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o ++obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o + + obj-$(CONFIG_CPU_IDLE) += cpuidle.o +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h linux-3.2.25/arch/arm/mach-kirkwood/mpp.h +--- linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/mach-kirkwood/mpp.h 2012-08-05 13:08:23.835566001 -0400 +@@ -102,6 +102,7 @@ + #define MPP11_SATA0_ACTn MPP( 11, 0x5, 0, 0, 0, 1, 1, 1, 1 ) + + #define MPP12_GPO MPP( 12, 0x0, 0, 1, 1, 1, 1, 1, 1 ) ++#define MPP12_GPIO MPP( 12, 0x0, 1, 1, 1, 1, 1, 1, 1 ) + #define MPP12_SD_CLK MPP( 12, 0x1, 0, 0, 1, 1, 1, 1, 1 ) + #define MPP12_AU_SPDIF0 MPP( 12, 0xa, 0, 0, 0, 0, 0, 0, 1 ) + #define MPP12_SPI_MOSI MPP( 12, 0xb, 0, 0, 0, 0, 0, 0, 1 ) +diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c +--- linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c 1969-12-31 19:00:00.000000000 -0500 ++++ linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c 2012-08-11 04:58:35.223186956 -0400 +@@ -0,0 +1,184 @@ ++/* ++ * arch/arm/mach-kirkwood/nas6210-setup.c ++ * ++ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup ++ * ++ * This file is licensed under the terms of the GNU General Public ++ * License version 2. This program is licensed "as is" without any ++ * warranty of any kind, whether express or implied. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "common.h" ++#include "mpp.h" ++ ++#define NAS6210_GPIO_POWER_OFF 24 ++ ++static struct mtd_partition nas6210_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M, ++ .mask_flags = MTD_WRITEABLE, /* read only */ ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = (SZ_1M*6), ++ }, { ++ .name = "root", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL, ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data nas6210_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(8), ++}; ++ ++static struct mv_sata_platform_data nas6210_sata_data = { ++ .n_ports = 2, ++}; ++ ++static struct gpio_led nas6210_led_pins[] = { ++ { ++ .name = "nas6210:green:power", ++ .default_trigger = "default-on", ++ .gpio = 25, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:power", ++ .default_trigger = "none", ++ .gpio = 22, ++ .active_low = 0, ++ }, ++ { ++ .name = "nas6210:red:usb_copy", ++ .default_trigger = "none", ++ .gpio = 27, ++ .active_low = 0, ++ }, ++}; ++ ++static struct gpio_led_platform_data nas6210_led_data = { ++ .leds = nas6210_led_pins, ++ .num_leds = ARRAY_SIZE(nas6210_led_pins), ++}; ++ ++static struct platform_device nas6210_leds = { ++ .name = "leds-gpio", ++ .id = -1, ++ .dev = { ++ .platform_data = &nas6210_led_data, ++ } ++}; ++ ++static struct gpio_keys_button nas6210_buttons[] = { ++ { ++ .code = KEY_COPY, ++ .gpio = 29, ++ .desc = "USB Copy", ++ .active_low = 1, ++ }, ++ { ++ .code = KEY_RESTART, ++ .gpio = 28, ++ .desc = "Reset", ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data nas6210_button_data = { ++ .buttons = nas6210_buttons, ++ .nbuttons = ARRAY_SIZE(nas6210_buttons), ++}; ++ ++static struct platform_device nas6210_button_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .num_resources = 0, ++ .dev = { ++ .platform_data = &nas6210_button_data, ++ } ++}; ++ ++static unsigned int nas6210_mpp_config[] __initdata = { ++ MPP0_NF_IO2, ++ MPP1_NF_IO3, ++ MPP2_NF_IO4, ++ MPP3_NF_IO5, ++ MPP4_NF_IO6, ++ MPP5_NF_IO7, ++ MPP18_NF_IO0, ++ MPP19_NF_IO1, ++ MPP22_GPIO, /* Power LED red */ ++ MPP24_GPIO, /* Power off */ ++ MPP25_GPIO, /* Power LED green */ ++ MPP27_GPIO, /* USB transfer LED */ ++ MPP28_GPIO, /* Reset button */ ++ MPP29_GPIO, /* USB Copy button */ ++ 0 ++}; ++ ++void nas6210_power_off(void) ++{ ++ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); ++ while(1); ++} ++ ++static void __init nas6210_init(void) ++{ ++ /* ++ * Basic setup. Needs to be called early. ++ */ ++ kirkwood_init(); ++ kirkwood_mpp_conf(nas6210_mpp_config); ++ ++ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); ++ kirkwood_ehci_init(); ++ kirkwood_ge00_init(&nas6210_ge00_data); ++ kirkwood_sata_init(&nas6210_sata_data); ++ kirkwood_uart0_init(); ++ platform_device_register(&nas6210_leds); ++ platform_device_register(&nas6210_button_device); ++ ++ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && ++ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) ++ pm_power_off = nas6210_power_off; ++ ++ else ++ pr_err("nas6210: failed to configure power-off gpio pin"); ++} ++ ++static int __init nas6210_pci_init(void) ++{ ++ if (machine_is_nas6210()) { ++ kirkwood_pcie_init(KW_PCIE0); ++ } ++ return 0; ++} ++subsys_initcall(nas6210_pci_init); ++ ++MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0") ++ /* Maintainer: Arne Fitzenreiter */ ++ .atag_offset = 0x00000100, ++ .init_machine = nas6210_init, ++ .map_io = kirkwood_map_io, ++ .init_early = kirkwood_init_early, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END +diff -Naur linux-3.2.25.org/arch/arm/tools/mach-types linux-3.2.25/arch/arm/tools/mach-types +--- linux-3.2.25.org/arch/arm/tools/mach-types 2012-08-02 09:38:04.000000000 -0400 ++++ linux-3.2.25/arch/arm/tools/mach-types 2012-08-11 10:18:52.849620229 -0400 +@@ -448,6 +448,7 @@ + riot_bei2 MACH_RIOT_BEI2 RIOT_BEI2 2576 + riot_x37 MACH_RIOT_X37 RIOT_X37 2578 + pca101 MACH_PCA101 PCA101 2595 ++guruplug MACH_GURUPLUG GURUPLUG 2601 + capc7117 MACH_CAPC7117 CAPC7117 2612 + icontrol MACH_ICONTROL ICONTROL 2624 + gplugd MACH_GPLUGD GPLUGD 2625 +@@ -455,7 +456,7 @@ + mx23evk MACH_MX23EVK MX23EVK 2629 + ap4evb MACH_AP4EVB AP4EVB 2630 + mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650 +-guruplug MACH_GURUPLUG GURUPLUG 2659 ++dreamplug1 MACH_DREAMPLUG1 DREAMPLUG1 2659 + spear310 MACH_SPEAR310 SPEAR310 2660 + spear320 MACH_SPEAR320 SPEAR320 2661 + aquila MACH_AQUILA AQUILA 2676 +@@ -1123,6 +1124,7 @@ + thales_adc MACH_THALES_ADC THALES_ADC 3492 + ubisys_p9d_evp MACH_UBISYS_P9D_EVP UBISYS_P9D_EVP 3493 + atdgp318 MACH_ATDGP318 ATDGP318 3494 ++dreamplug MACH_DREAMPLUG DREAMPLUG 3550 + m28evk MACH_M28EVK M28EVK 3613 + smdk4212 MACH_SMDK4212 SMDK4212 3638 + smdk4412 MACH_SMDK4412 SMDK4412 3765 diff --git a/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch b/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch new file mode 100644 index 0000000000..f46c57c522 --- /dev/null +++ b/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch @@ -0,0 +1,38 @@ +diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile +--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile 2012-08-21 05:05:46.000000000 -0400 ++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile 2012-08-21 06:32:23.501695852 -0400 +@@ -30,15 +30,6 @@ + + else + +-ifeq ($(KDIR),) +-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment) +-endif +- +-ifeq ($(ARCH),) +-$(error Must give "ARCH=" on command line or in environment. Also, if \ +- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-") +-endif +- + ifeq ($(DOXYGEN),) + DOXYGEN := doxygen + endif +diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux +--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux 2012-08-21 05:05:46.000000000 -0400 ++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux 2012-08-21 05:22:35.964969680 -0400 +@@ -21,15 +21,6 @@ + + else + +-ifeq ($(KDIR),) +-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment) +-endif +- +-ifeq ($(ARCH),) +-$(error Must give "ARCH=" on command line or in environment. Also, if \ +- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-") +-endif +- + ifeq ($(DOXYGEN),) + DOXYGEN := doxygen + endif diff --git a/src/patches/linux-3.2.33-ledtrig-netdev-1.patch b/src/patches/linux-3.2.33-ledtrig-netdev-1.patch new file mode 100644 index 0000000000..f42ca737dd --- /dev/null +++ b/src/patches/linux-3.2.33-ledtrig-netdev-1.patch @@ -0,0 +1,479 @@ +diff -Naur linux-3.2.33.org/drivers/leds/Kconfig linux-3.2.33/drivers/leds/Kconfig +--- linux-3.2.33.org/drivers/leds/Kconfig 2012-10-31 00:27:11.000000000 +0100 ++++ linux-3.2.33/drivers/leds/Kconfig 2012-11-04 12:47:10.661589825 +0100 +@@ -457,4 +457,11 @@ + comment "iptables trigger is under Netfilter config (LED target)" + depends on LEDS_TRIGGERS + ++config LEDS_TRIGGER_NETDEV ++ tristate "LED Netdev Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be controlled by network device activity. ++ If unsure, say Y. ++ + endif # NEW_LEDS +diff -Naur linux-3.2.33.org/drivers/leds/ledtrig-netdev.c linux-3.2.33/drivers/leds/ledtrig-netdev.c +--- linux-3.2.33.org/drivers/leds/ledtrig-netdev.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.2.33/drivers/leds/ledtrig-netdev.c 2012-11-04 13:43:51.414865799 +0100 +@@ -0,0 +1,452 @@ ++/* ++ * LED Kernel Netdev Trigger ++ * ++ * Toggles the LED to reflect the link and traffic state of a named net device ++ * ++ * Copyright 2007 Oliver Jowett ++ * ++ * Derived from ledtrig-timer.c which is: ++ * Copyright 2005-2006 Openedhand Ltd. ++ * Author: Richard Purdie ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++#include ++#endif ++ ++#include "leds.h" ++ ++/* ++ * Configurable sysfs attributes: ++ * ++ * device_name - network device name to monitor ++ * ++ * interval - duration of LED blink, in milliseconds ++ * ++ * mode - either "none" (LED is off) or a space separated list of one or more of: ++ * link: LED's normal state reflects whether the link is up (has carrier) or not ++ * tx: LED blinks on transmitted data ++ * rx: LED blinks on receive data ++ * ++ * Some suggestions: ++ * ++ * Simple link status LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo link >someled/mode ++ * ++ * Ethernet-style link/activity LED: ++ * $ echo netdev >someled/trigger ++ * $ echo eth0 >someled/device_name ++ * $ echo "link tx rx" >someled/mode ++ * ++ * Modem-style tx/rx LEDs: ++ * $ echo netdev >led1/trigger ++ * $ echo ppp0 >led1/device_name ++ * $ echo tx >led1/mode ++ * $ echo netdev >led2/trigger ++ * $ echo ppp0 >led2/device_name ++ * $ echo rx >led2/mode ++ * ++ */ ++ ++#define MODE_LINK 1 ++#define MODE_TX 2 ++#define MODE_RX 4 ++ ++struct led_netdev_data { ++ rwlock_t lock; ++ ++ struct timer_list timer; ++ struct notifier_block notifier; ++ ++ struct led_classdev *led_cdev; ++ struct net_device *net_dev; ++ ++ char device_name[IFNAMSIZ]; ++ unsigned interval; ++ unsigned mode; ++ unsigned link_up; ++ unsigned last_activity; ++}; ++ ++static void set_baseline_state(struct led_netdev_data *trigger_data) ++{ ++ if ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ else ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ ++ if ((trigger_data->mode & (MODE_TX | MODE_RX)) != 0 && trigger_data->link_up) ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ else ++ del_timer(&trigger_data->timer); ++} ++ ++static ssize_t led_device_name_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%s\n", trigger_data->device_name); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21) ++extern struct net init_net; ++#endif ++ ++static ssize_t led_device_name_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (size < 0 || size >= IFNAMSIZ) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ ++ strcpy(trigger_data->device_name, buf); ++ if (size > 0 && trigger_data->device_name[size-1] == '\n') ++ trigger_data->device_name[size-1] = 0; ++ ++ if (trigger_data->device_name[0] != 0) { ++ /* check for existing device to update from */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) ++ trigger_data->net_dev = dev_get_by_name(&init_net, trigger_data->device_name); ++#else ++ trigger_data->net_dev = dev_get_by_name(trigger_data->device_name); ++#endif ++ if (trigger_data->net_dev != NULL) ++ trigger_data->link_up = (dev_get_flags(trigger_data->net_dev) & IFF_LOWER_UP) != 0; ++ set_baseline_state(trigger_data); /* updates LEDs, may start timers */ ++ } ++ ++ write_unlock(&trigger_data->lock); ++ return size; ++} ++ ++static DEVICE_ATTR(device_name, 0644, led_device_name_show, led_device_name_store); ++ ++static ssize_t led_mode_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ ++ if (trigger_data->mode == 0) { ++ strcpy(buf, "none\n"); ++ } else { ++ if (trigger_data->mode & MODE_LINK) ++ strcat(buf, "link "); ++ if (trigger_data->mode & MODE_TX) ++ strcat(buf, "tx "); ++ if (trigger_data->mode & MODE_RX) ++ strcat(buf, "rx "); ++ strcat(buf, "\n"); ++ } ++ ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf)+1; ++} ++ ++static ssize_t led_mode_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ char copybuf[1024]; ++ int new_mode = -1; ++ char *p, *token; ++ ++ /* take a copy since we don't want to trash the inbound buffer when using strsep */ ++ strncpy(copybuf, buf, sizeof(copybuf)); ++ copybuf[1023] = 0; ++ p = copybuf; ++ ++ while ((token = strsep(&p, " \t\n")) != NULL) { ++ if (!*token) ++ continue; ++ ++ if (new_mode == -1) ++ new_mode = 0; ++ ++ if (!strcmp(token, "none")) ++ new_mode = 0; ++ else if (!strcmp(token, "tx")) ++ new_mode |= MODE_TX; ++ else if (!strcmp(token, "rx")) ++ new_mode |= MODE_RX; ++ else if (!strcmp(token, "link")) ++ new_mode |= MODE_LINK; ++ else ++ return -EINVAL; ++ } ++ ++ if (new_mode == -1) ++ return -EINVAL; ++ ++ write_lock(&trigger_data->lock); ++ trigger_data->mode = new_mode; ++ set_baseline_state(trigger_data); ++ write_unlock(&trigger_data->lock); ++ ++ return size; ++} ++ ++static DEVICE_ATTR(mode, 0644, led_mode_show, led_mode_store); ++ ++static ssize_t led_interval_show(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ read_lock(&trigger_data->lock); ++ sprintf(buf, "%u\n", jiffies_to_msecs(trigger_data->interval)); ++ read_unlock(&trigger_data->lock); ++ ++ return strlen(buf) + 1; ++} ++ ++static ssize_t led_interval_store(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ struct led_classdev *led_cdev = dev_get_drvdata(dev); ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ int ret = -EINVAL; ++ char *after; ++ unsigned long value = simple_strtoul(buf, &after, 10); ++ size_t count = after - buf; ++ ++ if (*after && isspace(*after)) ++ count++; ++ ++ /* impose some basic bounds on the timer interval */ ++ if (count == size && value >= 5 && value <= 10000) { ++ write_lock(&trigger_data->lock); ++ trigger_data->interval = msecs_to_jiffies(value); ++ set_baseline_state(trigger_data); // resets timer ++ write_unlock(&trigger_data->lock); ++ ret = count; ++ } ++ ++ return ret; ++} ++ ++static DEVICE_ATTR(interval, 0644, led_interval_show, led_interval_store); ++ ++static int netdev_trig_notify(struct notifier_block *nb, ++ unsigned long evt, ++ void *dv) ++{ ++ struct net_device *dev = dv; ++ struct led_netdev_data *trigger_data = container_of(nb, struct led_netdev_data, notifier); ++ ++ if (evt != NETDEV_UP && evt != NETDEV_DOWN && evt != NETDEV_CHANGE && evt != NETDEV_REGISTER && evt != NETDEV_UNREGISTER) ++ return NOTIFY_DONE; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (strcmp(dev->name, trigger_data->device_name)) ++ goto done; ++ ++ if (evt == NETDEV_REGISTER) { ++ if (trigger_data->net_dev != NULL) ++ dev_put(trigger_data->net_dev); ++ dev_hold(dev); ++ trigger_data->net_dev = dev; ++ trigger_data->link_up = 0; ++ goto done; ++ } ++ ++ if (evt == NETDEV_UNREGISTER && trigger_data->net_dev != NULL) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ goto done; ++ } ++ ++ /* UP / DOWN / CHANGE */ ++ ++ trigger_data->link_up = (evt != NETDEV_DOWN && netif_carrier_ok(dev)); ++ set_baseline_state(trigger_data); ++ ++done: ++ write_unlock(&trigger_data->lock); ++ return NOTIFY_DONE; ++} ++ ++/* here's the real work! */ ++static void netdev_trig_timer(unsigned long arg) ++{ ++ struct led_netdev_data *trigger_data = (struct led_netdev_data *)arg; ++ struct rtnl_link_stats64 *dev_stats; ++ unsigned new_activity; ++ struct rtnl_link_stats64 temp; ++ ++ write_lock(&trigger_data->lock); ++ ++ if (!trigger_data->link_up || !trigger_data->net_dev || (trigger_data->mode & (MODE_TX | MODE_RX)) == 0) { ++ /* we don't need to do timer work, just reflect link state. */ ++ led_set_brightness(trigger_data->led_cdev, ((trigger_data->mode & MODE_LINK) != 0 && trigger_data->link_up) ? LED_FULL : LED_OFF); ++ goto no_restart; ++ } ++ ++ dev_stats = dev_get_stats(trigger_data->net_dev, &temp); ++ new_activity = ++ ((trigger_data->mode & MODE_TX) ? dev_stats->tx_packets : 0) + ++ ((trigger_data->mode & MODE_RX) ? dev_stats->rx_packets : 0); ++ ++ if (trigger_data->mode & MODE_LINK) { ++ /* base state is ON (link present) */ ++ /* if there's no link, we don't get this far and the LED is off */ ++ ++ /* OFF -> ON always */ ++ /* ON -> OFF on activity */ ++ if (trigger_data->led_cdev->brightness == LED_OFF) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } ++ } else { ++ /* base state is OFF */ ++ /* ON -> OFF always */ ++ /* OFF -> ON on activity */ ++ if (trigger_data->led_cdev->brightness == LED_FULL) { ++ led_set_brightness(trigger_data->led_cdev, LED_OFF); ++ } else if (trigger_data->last_activity != new_activity) { ++ led_set_brightness(trigger_data->led_cdev, LED_FULL); ++ } ++ } ++ ++ trigger_data->last_activity = new_activity; ++ mod_timer(&trigger_data->timer, jiffies + trigger_data->interval); ++ ++no_restart: ++ write_unlock(&trigger_data->lock); ++} ++ ++static void netdev_trig_activate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data; ++ int rc; ++ ++ trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); ++ if (!trigger_data) ++ return; ++ ++ rwlock_init(&trigger_data->lock); ++ ++ trigger_data->notifier.notifier_call = netdev_trig_notify; ++ trigger_data->notifier.priority = 10; ++ ++ setup_timer(&trigger_data->timer, netdev_trig_timer, (unsigned long) trigger_data); ++ ++ trigger_data->led_cdev = led_cdev; ++ trigger_data->net_dev = NULL; ++ trigger_data->device_name[0] = 0; ++ ++ trigger_data->mode = 0; ++ trigger_data->interval = msecs_to_jiffies(50); ++ trigger_data->link_up = 0; ++ trigger_data->last_activity = 0; ++ ++ led_cdev->trigger_data = trigger_data; ++ ++ rc = device_create_file(led_cdev->dev, &dev_attr_device_name); ++ if (rc) ++ goto err_out; ++ rc = device_create_file(led_cdev->dev, &dev_attr_mode); ++ if (rc) ++ goto err_out_device_name; ++ rc = device_create_file(led_cdev->dev, &dev_attr_interval); ++ if (rc) ++ goto err_out_mode; ++ ++ register_netdevice_notifier(&trigger_data->notifier); ++ return; ++ ++err_out_mode: ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++err_out_device_name: ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++err_out: ++ led_cdev->trigger_data = NULL; ++ kfree(trigger_data); ++} ++ ++static void netdev_trig_deactivate(struct led_classdev *led_cdev) ++{ ++ struct led_netdev_data *trigger_data = led_cdev->trigger_data; ++ ++ if (trigger_data) { ++ unregister_netdevice_notifier(&trigger_data->notifier); ++ ++ device_remove_file(led_cdev->dev, &dev_attr_device_name); ++ device_remove_file(led_cdev->dev, &dev_attr_mode); ++ device_remove_file(led_cdev->dev, &dev_attr_interval); ++ ++ write_lock(&trigger_data->lock); ++ ++ if (trigger_data->net_dev) { ++ dev_put(trigger_data->net_dev); ++ trigger_data->net_dev = NULL; ++ } ++ ++ write_unlock(&trigger_data->lock); ++ ++ del_timer_sync(&trigger_data->timer); ++ ++ kfree(trigger_data); ++ } ++} ++ ++static struct led_trigger netdev_led_trigger = { ++ .name = "netdev", ++ .activate = netdev_trig_activate, ++ .deactivate = netdev_trig_deactivate, ++}; ++ ++static int __init netdev_trig_init(void) ++{ ++ return led_trigger_register(&netdev_led_trigger); ++} ++ ++static void __exit netdev_trig_exit(void) ++{ ++ led_trigger_unregister(&netdev_led_trigger); ++} ++ ++module_init(netdev_trig_init); ++module_exit(netdev_trig_exit); ++ ++MODULE_AUTHOR("Oliver Jowett "); ++MODULE_DESCRIPTION("Netdev LED trigger"); ++MODULE_LICENSE("GPL"); +diff -Naur linux-3.2.33.org/drivers/leds/Makefile linux-3.2.33/drivers/leds/Makefile +--- linux-3.2.33.org/drivers/leds/Makefile 2012-10-31 00:27:11.000000000 +0100 ++++ linux-3.2.33/drivers/leds/Makefile 2012-11-04 12:47:10.661589825 +0100 +@@ -54,3 +54,4 @@ + obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o + obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o + obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o ++obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += ledtrig-netdev.o diff --git a/src/patches/linux-3.2.33_ipg-fix-driver-name.patch b/src/patches/linux-3.2.33_ipg-fix-driver-name.patch new file mode 100644 index 0000000000..95e6107cae --- /dev/null +++ b/src/patches/linux-3.2.33_ipg-fix-driver-name.patch @@ -0,0 +1,15 @@ +Patch by Arne Fitzenreiter +Fix PHYSDEVDRIVER from "Sundance IPG ..." to the modulname (ipg) + +diff -Naur linux-3.2.33.org/drivers/net/ethernet/icplus/ipg.c linux-3.2.33/drivers/net/ethernet/icplus/ipg.c +--- linux-3.2.33.org/drivers/net/ethernet/icplus/ipg.c 2012-10-31 00:27:11.000000000 +0100 ++++ linux-3.2.33/drivers/net/ethernet/icplus/ipg.c 2012-11-05 20:02:36.529101528 +0100 +@@ -2304,7 +2304,7 @@ + } + + static struct pci_driver ipg_pci_driver = { +- .name = IPG_DRIVER_NAME, ++ .name = DRV_NAME, + .id_table = ipg_pci_tbl, + .probe = ipg_probe, + .remove = __devexit_p(ipg_remove), diff --git a/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch b/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch deleted file mode 100644 index 4acfd8fe45..0000000000 --- a/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch +++ /dev/null @@ -1,115 +0,0 @@ -Submitted By: Dan Nicholson -Date: 2006-08-01 -Initial Package Version: 2.6.12.0 -Origin: linux-2.6.16 series, syscalls diffed by Alexander Patrakov -Upstream Status: Project is dead -Description: Adds userspace headers and syscalls for inotify -Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify - -diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h ---- linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h 2005-07-06 00:17:47.000000000 +0000 -+++ linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h 2006-08-01 05:56:42.000000000 +0000 -@@ -294,8 +294,13 @@ - #define __NR_add_key 286 - #define __NR_request_key 287 - #define __NR_keyctl 288 -+/* #define __NR_ioprio_set 289 */ -+/* #define __NR_ioprio_get 290 */ -+#define __NR_inotify_init 291 -+#define __NR_inotify_add_watch 292 -+#define __NR_inotify_rm_watch 293 - --#define NR_syscalls 289 -+#define NR_syscalls 294 - - /* - * user-visible error numbers are in the range -1 - -128: see -diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h ---- linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h 2005-07-06 00:17:23.000000000 +0000 -+++ linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h 2006-08-01 05:56:42.000000000 +0000 -@@ -277,8 +277,13 @@ - #define __NR_request_key 270 - #define __NR_keyctl 271 - #define __NR_waitid 272 -+/* #define __NR_ioprio_set 273 */ -+/* #define __NR_ioprio_get 274 */ -+#define __NR_inotify_init 275 -+#define __NR_inotify_add_watch 276 -+#define __NR_inotify_rm_watch 277 - --#define __NR_syscalls 273 -+#define __NR_syscalls 278 - - #define __NR(n) #n - -diff -pNur linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h linux-libc-headers-2.6.12.0/include/linux/inotify.h ---- linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h 1970-01-01 00:00:00.000000000 +0000 -+++ linux-libc-headers-2.6.12.0/include/linux/inotify.h 2006-08-01 05:56:42.000000000 +0000 -@@ -0,0 +1,67 @@ -+/* -+ * Inode based directory notification for Linux -+ * -+ * Copyright (C) 2005 John McCutchan -+ */ -+ -+#ifndef _LINUX_INOTIFY_H -+#define _LINUX_INOTIFY_H -+ -+#include -+ -+/* -+ * struct inotify_event - structure read from the inotify device for each event -+ * -+ * When you are watching a directory, you will receive the filename for events -+ * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd. -+ */ -+struct inotify_event { -+ __s32 wd; /* watch descriptor */ -+ __u32 mask; /* watch mask */ -+ __u32 cookie; /* cookie to synchronize two events */ -+ __u32 len; /* length (including nulls) of name */ -+ char name[0]; /* stub for possible name */ -+}; -+ -+/* the following are legal, implemented events that user-space can watch for */ -+#define IN_ACCESS 0x00000001 /* File was accessed */ -+#define IN_MODIFY 0x00000002 /* File was modified */ -+#define IN_ATTRIB 0x00000004 /* Metadata changed */ -+#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed */ -+#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */ -+#define IN_OPEN 0x00000020 /* File was opened */ -+#define IN_MOVED_FROM 0x00000040 /* File was moved from X */ -+#define IN_MOVED_TO 0x00000080 /* File was moved to Y */ -+#define IN_CREATE 0x00000100 /* Subfile was created */ -+#define IN_DELETE 0x00000200 /* Subfile was deleted */ -+#define IN_DELETE_SELF 0x00000400 /* Self was deleted */ -+#define IN_MOVE_SELF 0x00000800 /* Self was moved */ -+ -+/* the following are legal events. they are sent as needed to any watch */ -+#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */ -+#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */ -+#define IN_IGNORED 0x00008000 /* File was ignored */ -+ -+/* helper events */ -+#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */ -+#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ -+ -+/* special flags */ -+#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ -+#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ -+#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ -+#define IN_ISDIR 0x40000000 /* event occurred against dir */ -+#define IN_ONESHOT 0x80000000 /* only send event once */ -+ -+/* -+ * All of the events - we build the list by hand so that we can add flags in -+ * the future and not break backward compatibility. Apps will get only the -+ * events that they originally wanted. Be sure to add new events here! -+ */ -+#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \ -+ IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \ -+ IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \ -+ IN_MOVE_SELF) -+ -+ -+#endif /* _LINUX_INOTIFY_H */ diff --git a/src/patches/mISDN_hfc-s_add_id.patch b/src/patches/mISDN_hfc-s_add_id.patch index d544b1fcf7..724b1f2c0d 100644 --- a/src/patches/mISDN_hfc-s_add_id.patch +++ b/src/patches/mISDN_hfc-s_add_id.patch @@ -1,7 +1,16 @@ diff -Naur mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c mISDN/drivers/isdn/hardware/mISDN/hfcpci.c ---- mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c 2010-05-25 10:41:29.000000000 +0200 -+++ mISDN/drivers/isdn/hardware/mISDN/hfcpci.c 2010-10-31 11:19:05.000000000 +0100 -@@ -88,6 +88,7 @@ +--- mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c 2012-10-08 14:48:40.000000000 +0200 ++++ mISDN/drivers/isdn/hardware/mISDN/hfcpci.c 2012-10-08 17:09:29.527792226 +0200 +@@ -53,6 +53,8 @@ + + #include "hfc_pci.h" + ++#define PCI_VENDOR_ID_0x1AE7 0x1AE7 ++ + static const char *hfcpci_revision = "2.0"; + + static int HFC_cnt; +@@ -90,6 +92,7 @@ HFC_DIGI_DF_M_A, HFC_ABOCOM_2BD1, HFC_SITECOM_DC105V2, @@ -9,20 +18,20 @@ diff -Naur mISDN.org/drivers/isdn/hardware/mISDN/hfcpci.c mISDN/drivers/isdn/har }; struct hfcPCI_hw { -@@ -2182,6 +2183,7 @@ +@@ -2161,6 +2164,7 @@ {HFC_DIGI_DF_M_A, 0, - "Digi International DataFire Micro V (North America)"}, + "Digi International DataFire Micro V (North America)"}, {HFC_SITECOM_DC105V2, 0, "Sitecom Connectivity DC-105 ISDN TA"}, + {HFC_NONAME_1AE7_0520, 0, "NoName HFC-S (1AE7:0520) ISDN TA"}, {}, }; -@@ -2233,6 +2235,8 @@ - PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[21]}, - {PCI_VENDOR_ID_SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[22]}, -+ {0x1ae7, 0x0520, -+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, (unsigned long) &hfc_map[23]}, +@@ -2212,6 +2216,8 @@ + (unsigned long) &hfc_map[21] }, + { PCI_VDEVICE(SITECOM, PCI_DEVICE_ID_SITECOM_DC105V2), + (unsigned long) &hfc_map[22] }, ++ { PCI_VDEVICE(0x1AE7, 0x0520), ++ (unsigned long) &hfc_map[23] }, {}, }; diff --git a/src/patches/miniupnpd-iptcrdr.patch b/src/patches/miniupnpd-iptcrdr.patch deleted file mode 100644 index 677043bdc3..0000000000 --- a/src/patches/miniupnpd-iptcrdr.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- netfilter/iptcrdr.c.old 2010-02-24 14:22:23.000000000 +0100 -+++ netfilter/iptcrdr.c 2010-02-24 14:48:00.000000000 +0100 -@@ -20,6 +20,13 @@ - - #if IPTABLES_143 - /* IPTABLES API version >= 1.4.3 */ -+ -+#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) -+#define __must_be_array(a) \ -+ BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0]))) -+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) -+#define LIST_POISON2 ((void *) 0x00200200 ) -+ - #include - #define ip_nat_multi_range nf_nat_multi_range - #define ip_nat_range nf_nat_range diff --git a/src/patches/ncurses-5.5-fixes-1.patch b/src/patches/ncurses-5.5-fixes-1.patch deleted file mode 100644 index 73e084d1c7..0000000000 --- a/src/patches/ncurses-5.5-fixes-1.patch +++ /dev/null @@ -1,225 +0,0 @@ -Submitted by: Alexander E. Patrakov -Date: 2005-12-07 -Initial Package Version: 5.5 -Upstream Status: Backport -Origin: Cherry-picked from ftp://invisible-island.net/ncurses/5.5/*.gz -Description: Fixes the following bugs: - -* memory leak in keyname() -* mishandling of overlapped wide characters, http://bugs.debian.org/316663 -* problems with line-drawing characters on cygwin, http://bugs.debian.org/338234 -* mishandling of EINTR in tcgetattr/tcsetattr, http://bugs.debian.org/339518 -* mishandling of single-column multibyte characters, http://bugs.debian.org/341661 - ---- ncurses-5.5-20051015+/ncurses/base/MKkeyname.awk 2005-04-30 19:26:25.000000000 +0000 -+++ ncurses-5.5-20051022/ncurses/base/MKkeyname.awk 2005-10-22 19:01:23.000000000 +0000 -@@ -97,6 +97,7 @@ - print " break;" - print " }" - print " }" -+ print " free(bound);" - print " if (result != 0)" - print " break;" - print " }" ---- ncurses-5.5-20051022+/ncurses/base/lib_addch.c 2005-03-27 16:52:16.000000000 +0000 -+++ ncurses-5.5-20051029/ncurses/base/lib_addch.c 2005-10-30 00:51:36.000000000 +0000 -@@ -315,7 +315,7 @@ - * setup though. - */ - for (i = 0; i < len; ++i) { -- if (isWidecBase(win->_line[y].text[i])) { -+ if (isWidecBase(win->_line[y].text[x + i])) { - break; - } else if (isWidecExt(win->_line[y].text[x + i])) { - for (j = i; x + j <= win->_maxx; ++j) { -@@ -334,7 +334,9 @@ - for (i = 0; i < len; ++i) { - NCURSES_CH_T value = ch; - SetWidecExt(value, i); -- TR(TRACE_VIRTPUT, ("multicolumn %d:%d", i + 1, len)); -+ TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)", -+ i + 1, len, -+ win->_begy + y, win->_begx + x)); - line->text[x] = value; - CHANGED_CELL(line, x); - ++x; ---- ncurses-5.5-20051022+/ncurses/base/lib_bkgd.c 2005-04-16 18:03:48.000000000 +0000 -+++ ncurses-5.5-20051029/ncurses/base/lib_bkgd.c 2005-10-30 00:41:09.000000000 +0000 -@@ -131,11 +131,11 @@ - - for (y = 0; y <= win->_maxy; y++) { - for (x = 0; x <= win->_maxx; x++) { -- if (CharEq(win->_line[y].text[x], old_bkgrnd)) -+ if (CharEq(win->_line[y].text[x], old_bkgrnd)) { - win->_line[y].text[x] = win->_nc_bkgd; -- else { -+ } else { - NCURSES_CH_T wch = win->_line[y].text[x]; -- RemAttr(wch, (~A_ALTCHARSET)); -+ RemAttr(wch, (~(A_ALTCHARSET | A_CHARTEXT))); - win->_line[y].text[x] = _nc_render(win, wch); - } - } ---- ncurses-5.5-20051022+/ncurses/base/lib_erase.c 2001-12-19 01:06:13.000000000 +0000 -+++ ncurses-5.5-20051029/ncurses/base/lib_erase.c 2005-10-30 00:36:36.000000000 +0000 -@@ -58,6 +59,24 @@ - start = win->_line[y].text; - end = &start[win->_maxx]; - -+ /* -+ * If this is a derived window, we have to handle the case where -+ * a multicolumn character extends into the window that we are -+ * erasing. -+ */ -+ if_WIDEC({ -+ if (isWidecExt(start[0])) { -+ int x = (win->_parent != 0) ? (win->_begx) : 0; -+ while (x-- > 0) { -+ if (isWidecBase(start[-1])) { -+ --start; -+ break; -+ } -+ --start; -+ } -+ } -+ }); -+ - for (sp = start; sp <= end; sp++) - *sp = blank; - ---- ncurses-5.5-20051029+/misc/terminfo.src 2005-10-26 23:21:06.000000000 +0000 -+++ ncurses-5.5-20051112/misc/terminfo.src 2005-11-12 23:01:03.000000000 +0000 -@@ -4731,32 +4731,35 @@ - # civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c - # ech [erase characters param] broken \E[%p1%dX - # kcbt [back-tab key] not implemented in cygwin? \E[Z -+# -+# 2005/11/12 -TD -+# Remove cbt since it does not work in current cygwin -+# Add 'mir' and 'in' flags based on tack - cygwin|ansi emulation for Cygwin, -- am, hs, in, msgr, xon, -+ am, hs, mir, msgr, xon, - colors#8, it#8, pairs#64, - acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, -- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, cr=^M, -- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, -- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, -- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, -- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, -- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, -- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, -- kb2=\E[G, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, -- kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, -- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, -- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, -- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, -- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, -- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, -- knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m, -- rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, -- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmpch=\E[10m, -- rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, -- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, -+ bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, -+ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, -+ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, -+ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, -+ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H, -+ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, -+ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G, -+ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, -+ kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~, -+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, -+ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, -+ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, -+ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, -+ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, -+ nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, -+ rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, -+ rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, -+ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, - sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, -- sgr0=\E[0;10m, smacs=\E11m, smcup=\E7\E[?47h, smir=\E[4h, -- smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, -+ sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h, -+ smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, - u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c, - vpa=\E[%i%p1%dd, - ---- ncurses-5.5-20051112+/ncurses/tinfo/lib_ttyflags.c 2003-05-17 23:50:37.000000000 +0000 -+++ ncurses-5.5-20051119/ncurses/tinfo/lib_ttyflags.c 2005-11-19 20:36:23.000000000 +0000 -@@ -59,28 +59,51 @@ - NCURSES_EXPORT(int) - _nc_get_tty_mode(TTY * buf) - { -- if (cur_term == 0 -- || GET_TTY(cur_term->Filedes, buf) != 0) { -- memset(buf, 0, sizeof(*buf)); -- return (ERR); -+ int result = OK; -+ -+ if (cur_term == 0) { -+ result = ERR; -+ } else { -+ for (;;) { -+ if (GET_TTY(cur_term->Filedes, buf) != 0) { -+ if (errno == EINTR) -+ continue; -+ result = ERR; -+ } -+ break; -+ } - } -+ -+ if (result == ERR) -+ memset(buf, 0, sizeof(*buf)); -+ - TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s", - cur_term->Filedes, _nc_trace_ttymode(buf))); -- return (OK); -+ return (result); - } - - NCURSES_EXPORT(int) - _nc_set_tty_mode(TTY * buf) - { -- if (cur_term == 0 -- || SET_TTY(cur_term->Filedes, buf) != 0) { -- if ((errno == ENOTTY) && (SP != 0)) -- SP->_notty = TRUE; -- return (ERR); -+ int result = OK; -+ -+ if (cur_term == 0) { -+ result = ERR; -+ } else { -+ for (;;) { -+ if (SET_TTY(cur_term->Filedes, buf) != 0) { -+ if (errno == EINTR) -+ continue; -+ if ((errno == ENOTTY) && (SP != 0)) -+ SP->_notty = TRUE; -+ result = ERR; -+ } -+ break; -+ } - } - TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s", - cur_term->Filedes, _nc_trace_ttymode(buf))); -- return (OK); -+ return (result); - } - - NCURSES_EXPORT(int) ---- ncurses-5.5-20051126+/ncurses/widechar/lib_ins_wch.c 2005-09-17 19:25:13.000000000 +0000 -+++ ncurses-5.5-20051203/ncurses/widechar/lib_ins_wch.c 2005-12-03 20:24:19.000000000 +0000 -@@ -117,7 +117,7 @@ - for (cp = wstr; *cp && ((cp - wstr) < n); cp++) { - int len = wcwidth(*cp); - -- if (len != 1) { -+ if (len != 1 || !is8bits(*cp)) { - cchar_t tmp_cchar; - wchar_t tmp_wchar = *cp; - memset(&tmp_cchar, 0, sizeof(tmp_cchar)); diff --git a/src/patches/netfilter_layer7_2.22_kernel3.0.patch b/src/patches/netfilter_layer7_2.22_kernel3.0.patch new file mode 100644 index 0000000000..82d85097a7 --- /dev/null +++ b/src/patches/netfilter_layer7_2.22_kernel3.0.patch @@ -0,0 +1,2160 @@ +diff -Naur linux-3.0.24.org/include/linux/netfilter/xt_layer7.h linux-3.0.24/include/linux/netfilter/xt_layer7.h +--- linux-3.0.24.org/include/linux/netfilter/xt_layer7.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/include/linux/netfilter/xt_layer7.h 2012-03-15 20:08:48.976050501 +0100 +@@ -0,0 +1,13 @@ ++#ifndef _XT_LAYER7_H ++#define _XT_LAYER7_H ++ ++#define MAX_PATTERN_LEN 8192 ++#define MAX_PROTOCOL_LEN 256 ++ ++struct xt_layer7_info { ++ char protocol[MAX_PROTOCOL_LEN]; ++ char pattern[MAX_PATTERN_LEN]; ++ u_int8_t invert; ++}; ++ ++#endif /* _XT_LAYER7_H */ +diff -Naur linux-3.0.24.org/include/net/netfilter/nf_conntrack.h linux-3.0.24/include/net/netfilter/nf_conntrack.h +--- linux-3.0.24.org/include/net/netfilter/nf_conntrack.h 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/include/net/netfilter/nf_conntrack.h 2012-03-15 20:11:43.806042495 +0100 +@@ -134,6 +134,22 @@ + struct net *ct_net; + #endif + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || \ ++ defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ struct { ++ /* ++ * e.g. "http". NULL before decision. "unknown" after decision ++ * if no match. ++ */ ++ char *app_proto; ++ /* ++ * application layer data so far. NULL after match decision. ++ */ ++ char *app_data; ++ unsigned int app_data_len; ++ } layer7; ++#endif ++ + /* Storage reserved for other modules, must be the last member */ + union nf_conntrack_proto proto; + }; +diff -Naur linux-3.0.24.org/net/netfilter/Kconfig linux-3.0.24/net/netfilter/Kconfig +--- linux-3.0.24.org/net/netfilter/Kconfig 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/Kconfig 2012-03-15 20:46:12.046043918 +0100 +@@ -1020,6 +1020,26 @@ + + To compile it as a module, choose M here. If unsure, say N. + ++config NETFILTER_XT_MATCH_LAYER7 ++ tristate '"layer7" match support' ++ depends on NETFILTER_XTABLES ++ depends on EXPERIMENTAL && (IP_NF_CONNTRACK || NF_CONNTRACK) ++ help ++ Say Y if you want to be able to classify connections (and their ++ packets) based on regular expression matching of their application ++ layer data. This is one way to classify applications such as ++ peer-to-peer filesharing systems that do not always use the same ++ port. ++ ++ To compile it as a module, choose M here. If unsure, say N. ++ ++config NETFILTER_XT_MATCH_LAYER7_DEBUG ++ bool 'Layer 7 debugging output' ++ depends on NETFILTER_XT_MATCH_LAYER7 ++ help ++ Say Y to get lots of debugging output. ++ ++ + config NETFILTER_XT_MATCH_STATISTIC + tristate '"statistic" match support' + depends on NETFILTER_ADVANCED +diff -Naur linux-3.0.24.org/net/netfilter/Makefile linux-3.0.24/net/netfilter/Makefile +--- linux-3.0.24.org/net/netfilter/Makefile 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/Makefile 2012-03-15 20:08:49.016044445 +0100 +@@ -102,6 +102,7 @@ + obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o + obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o ++obj-$(CONFIG_NETFILTER_XT_MATCH_LAYER7) += xt_layer7.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o + obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o + obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o +diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_core.c linux-3.0.24/net/netfilter/nf_conntrack_core.c +--- linux-3.0.24.org/net/netfilter/nf_conntrack_core.c 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/nf_conntrack_core.c 2012-03-15 20:08:49.026044761 +0100 +@@ -213,6 +213,14 @@ + * too. */ + nf_ct_remove_expectations(ct); + ++ #if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto) ++ kfree(ct->layer7.app_proto); ++ if(ct->layer7.app_data) ++ kfree(ct->layer7.app_data); ++ #endif ++ ++ + /* We overload first tuple to link into unconfirmed list. */ + if (!nf_ct_is_confirmed(ct)) { + BUG_ON(hlist_nulls_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode)); +diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c linux-3.0.24/net/netfilter/nf_conntrack_standalone.c +--- linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c 2012-03-12 18:58:19.000000000 +0100 ++++ linux-3.0.24/net/netfilter/nf_conntrack_standalone.c 2012-03-15 20:08:49.036047262 +0100 +@@ -239,6 +239,12 @@ + if (ct_show_delta_time(s, ct)) + goto release; + ++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE) ++ if(ct->layer7.app_proto && ++ seq_printf(s, "l7proto=%s ", ct->layer7.app_proto)) ++ return -ENOSPC; ++#endif ++ + if (seq_printf(s, "use=%u\n", atomic_read(&ct->ct_general.use))) + goto release; + +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.c linux-3.0.24/net/netfilter/regexp/regexp.c +--- linux-3.0.24.org/net/netfilter/regexp/regexp.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regexp.c 2012-03-15 20:08:49.066043520 +0100 +@@ -0,0 +1,1197 @@ ++/* ++ * regcomp and regexec -- regsub and regerror are elsewhere ++ * @(#)regexp.c 1.3 of 18 April 87 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * Beware that some of this code is subtly aware of the way operator ++ * precedence is structured in regular expressions. Serious changes in ++ * regular-expression syntax might require a total rethink. ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ * Modified slightly by Matthew Strait to use more modern C. ++ */ ++ ++#include "regexp.h" ++#include "regmagic.h" ++ ++/* added by ethan and matt. Lets it work in both kernel and user space. ++(So iptables can use it, for instance.) Yea, it goes both ways... */ ++#if __KERNEL__ ++ #define malloc(foo) kmalloc(foo,GFP_ATOMIC) ++#else ++ #define printk(format,args...) printf(format,##args) ++#endif ++ ++void regerror(char * s) ++{ ++ printk("<3>Regexp: %s\n", s); ++ /* NOTREACHED */ ++} ++ ++/* ++ * The "internal use only" fields in regexp.h are present to pass info from ++ * compile to execute that permits the execute phase to run lots faster on ++ * simple cases. They are: ++ * ++ * regstart char that must begin a match; '\0' if none obvious ++ * reganch is the match anchored (at beginning-of-line only)? ++ * regmust string (pointer into program) that match must include, or NULL ++ * regmlen length of regmust string ++ * ++ * Regstart and reganch permit very fast decisions on suitable starting points ++ * for a match, cutting down the work a lot. Regmust permits fast rejection ++ * of lines that cannot possibly match. The regmust tests are costly enough ++ * that regcomp() supplies a regmust only if the r.e. contains something ++ * potentially expensive (at present, the only such thing detected is * or + ++ * at the start of the r.e., which can involve a lot of backup). Regmlen is ++ * supplied because the test in regexec() needs it and regcomp() is computing ++ * it anyway. ++ */ ++ ++/* ++ * Structure for regexp "program". This is essentially a linear encoding ++ * of a nondeterministic finite-state machine (aka syntax charts or ++ * "railroad normal form" in parsing technology). Each node is an opcode ++ * plus a "next" pointer, possibly plus an operand. "Next" pointers of ++ * all nodes except BRANCH implement concatenation; a "next" pointer with ++ * a BRANCH on both ends of it is connecting two alternatives. (Here we ++ * have one of the subtle syntax dependencies: an individual BRANCH (as ++ * opposed to a collection of them) is never concatenated with anything ++ * because of operator precedence.) The operand of some types of node is ++ * a literal string; for others, it is a node leading into a sub-FSM. In ++ * particular, the operand of a BRANCH node is the first node of the branch. ++ * (NB this is *not* a tree structure: the tail of the branch connects ++ * to the thing following the set of BRANCHes.) The opcodes are: ++ */ ++ ++/* definition number opnd? meaning */ ++#define END 0 /* no End of program. */ ++#define BOL 1 /* no Match "" at beginning of line. */ ++#define EOL 2 /* no Match "" at end of line. */ ++#define ANY 3 /* no Match any one character. */ ++#define ANYOF 4 /* str Match any character in this string. */ ++#define ANYBUT 5 /* str Match any character not in this string. */ ++#define BRANCH 6 /* node Match this alternative, or the next... */ ++#define BACK 7 /* no Match "", "next" ptr points backward. */ ++#define EXACTLY 8 /* str Match this string. */ ++#define NOTHING 9 /* no Match empty string. */ ++#define STAR 10 /* node Match this (simple) thing 0 or more times. */ ++#define PLUS 11 /* node Match this (simple) thing 1 or more times. */ ++#define OPEN 20 /* no Mark this point in input as start of #n. */ ++ /* OPEN+1 is number 1, etc. */ ++#define CLOSE 30 /* no Analogous to OPEN. */ ++ ++/* ++ * Opcode notes: ++ * ++ * BRANCH The set of branches constituting a single choice are hooked ++ * together with their "next" pointers, since precedence prevents ++ * anything being concatenated to any individual branch. The ++ * "next" pointer of the last BRANCH in a choice points to the ++ * thing following the whole choice. This is also where the ++ * final "next" pointer of each individual branch points; each ++ * branch starts with the operand node of a BRANCH node. ++ * ++ * BACK Normal "next" pointers all implicitly point forward; BACK ++ * exists to make loop structures possible. ++ * ++ * STAR,PLUS '?', and complex '*' and '+', are implemented as circular ++ * BRANCH structures using BACK. Simple cases (one character ++ * per match) are implemented with STAR and PLUS for speed ++ * and to minimize recursive plunges. ++ * ++ * OPEN,CLOSE ...are numbered at compile time. ++ */ ++ ++/* ++ * A node is one char of opcode followed by two chars of "next" pointer. ++ * "Next" pointers are stored as two 8-bit pieces, high order first. The ++ * value is a positive offset from the opcode of the node containing it. ++ * An operand, if any, simply follows the node. (Note that much of the ++ * code generation knows about this implicit relationship.) ++ * ++ * Using two bytes for the "next" pointer is vast overkill for most things, ++ * but allows patterns to get big without disasters. ++ */ ++#define OP(p) (*(p)) ++#define NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377)) ++#define OPERAND(p) ((p) + 3) ++ ++/* ++ * See regmagic.h for one further detail of program structure. ++ */ ++ ++ ++/* ++ * Utility definitions. ++ */ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#define FAIL(m) { regerror(m); return(NULL); } ++#define ISMULT(c) ((c) == '*' || (c) == '+' || (c) == '?') ++#define META "^$.[()|?+*\\" ++ ++/* ++ * Flags to be passed up and down. ++ */ ++#define HASWIDTH 01 /* Known never to match null string. */ ++#define SIMPLE 02 /* Simple enough to be STAR/PLUS operand. */ ++#define SPSTART 04 /* Starts with * or +. */ ++#define WORST 0 /* Worst case. */ ++ ++/* ++ * Global work variables for regcomp(). ++ */ ++struct match_globals { ++char *reginput; /* String-input pointer. */ ++char *regbol; /* Beginning of input, for ^ check. */ ++char **regstartp; /* Pointer to startp array. */ ++char **regendp; /* Ditto for endp. */ ++char *regparse; /* Input-scan pointer. */ ++int regnpar; /* () count. */ ++char regdummy; ++char *regcode; /* Code-emit pointer; ®dummy = don't. */ ++long regsize; /* Code size. */ ++}; ++ ++/* ++ * Forward declarations for regcomp()'s friends. ++ */ ++#ifndef STATIC ++#define STATIC static ++#endif ++STATIC char *reg(struct match_globals *g, int paren,int *flagp); ++STATIC char *regbranch(struct match_globals *g, int *flagp); ++STATIC char *regpiece(struct match_globals *g, int *flagp); ++STATIC char *regatom(struct match_globals *g, int *flagp); ++STATIC char *regnode(struct match_globals *g, char op); ++STATIC char *regnext(struct match_globals *g, char *p); ++STATIC void regc(struct match_globals *g, char b); ++STATIC void reginsert(struct match_globals *g, char op, char *opnd); ++STATIC void regtail(struct match_globals *g, char *p, char *val); ++STATIC void regoptail(struct match_globals *g, char *p, char *val); ++ ++ ++__kernel_size_t my_strcspn(const char *s1,const char *s2) ++{ ++ char *scan1; ++ char *scan2; ++ int count; ++ ++ count = 0; ++ for (scan1 = (char *)s1; *scan1 != '\0'; scan1++) { ++ for (scan2 = (char *)s2; *scan2 != '\0';) /* ++ moved down. */ ++ if (*scan1 == *scan2++) ++ return(count); ++ count++; ++ } ++ return(count); ++} ++ ++/* ++ - regcomp - compile a regular expression into internal code ++ * ++ * We can't allocate space until we know how big the compiled form will be, ++ * but we can't compile it (and thus know how big it is) until we've got a ++ * place to put the code. So we cheat: we compile it twice, once with code ++ * generation turned off and size counting turned on, and once "for real". ++ * This also means that we don't allocate space until we are sure that the ++ * thing really will compile successfully, and we never have to move the ++ * code and thus invalidate pointers into it. (Note that it has to be in ++ * one piece because free() must be able to free it all.) ++ * ++ * Beware that the optimization-preparation code in here knows about some ++ * of the structure of the compiled regexp. ++ */ ++regexp * ++regcomp(char *exp,int *patternsize) ++{ ++ register regexp *r; ++ register char *scan; ++ register char *longest; ++ register int len; ++ int flags; ++ struct match_globals g; ++ ++ /* commented out by ethan ++ extern char *malloc(); ++ */ ++ ++ if (exp == NULL) ++ FAIL("NULL argument"); ++ ++ /* First pass: determine size, legality. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regsize = 0L; ++ g.regcode = &g.regdummy; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Small enough for pointer-storage convention? */ ++ if (g.regsize >= 32767L) /* Probably could be 65535L. */ ++ FAIL("regexp too big"); ++ ++ /* Allocate space. */ ++ *patternsize=sizeof(regexp) + (unsigned)g.regsize; ++ r = (regexp *)malloc(sizeof(regexp) + (unsigned)g.regsize); ++ if (r == NULL) ++ FAIL("out of space"); ++ ++ /* Second pass: emit code. */ ++ g.regparse = exp; ++ g.regnpar = 1; ++ g.regcode = r->program; ++ regc(&g, MAGIC); ++ if (reg(&g, 0, &flags) == NULL) ++ return(NULL); ++ ++ /* Dig out information for optimizations. */ ++ r->regstart = '\0'; /* Worst-case defaults. */ ++ r->reganch = 0; ++ r->regmust = NULL; ++ r->regmlen = 0; ++ scan = r->program+1; /* First BRANCH. */ ++ if (OP(regnext(&g, scan)) == END) { /* Only one top-level choice. */ ++ scan = OPERAND(scan); ++ ++ /* Starting-point info. */ ++ if (OP(scan) == EXACTLY) ++ r->regstart = *OPERAND(scan); ++ else if (OP(scan) == BOL) ++ r->reganch++; ++ ++ /* ++ * If there's something expensive in the r.e., find the ++ * longest literal string that must appear and make it the ++ * regmust. Resolve ties in favor of later strings, since ++ * the regstart check works with the beginning of the r.e. ++ * and avoiding duplication strengthens checking. Not a ++ * strong reason, but sufficient in the absence of others. ++ */ ++ if (flags&SPSTART) { ++ longest = NULL; ++ len = 0; ++ for (; scan != NULL; scan = regnext(&g, scan)) ++ if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) { ++ longest = OPERAND(scan); ++ len = strlen(OPERAND(scan)); ++ } ++ r->regmust = longest; ++ r->regmlen = len; ++ } ++ } ++ ++ return(r); ++} ++ ++/* ++ - reg - regular expression, i.e. main body or parenthesized thing ++ * ++ * Caller must absorb opening parenthesis. ++ * ++ * Combining parenthesis handling with the base level of regular expression ++ * is a trifle forced, but the need to tie the tails of the branches to what ++ * follows makes it hard to avoid. ++ */ ++static char * ++reg(struct match_globals *g, int paren, int *flagp /* Parenthesized? */ ) ++{ ++ register char *ret; ++ register char *br; ++ register char *ender; ++ register int parno = 0; /* 0 makes gcc happy */ ++ int flags; ++ ++ *flagp = HASWIDTH; /* Tentatively. */ ++ ++ /* Make an OPEN node, if parenthesized. */ ++ if (paren) { ++ if (g->regnpar >= NSUBEXP) ++ FAIL("too many ()"); ++ parno = g->regnpar; ++ g->regnpar++; ++ ret = regnode(g, OPEN+parno); ++ } else ++ ret = NULL; ++ ++ /* Pick up the branches, linking them together. */ ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ if (ret != NULL) ++ regtail(g, ret, br); /* OPEN -> first. */ ++ else ++ ret = br; ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ while (*g->regparse == '|') { ++ g->regparse++; ++ br = regbranch(g, &flags); ++ if (br == NULL) ++ return(NULL); ++ regtail(g, ret, br); /* BRANCH -> BRANCH. */ ++ if (!(flags&HASWIDTH)) ++ *flagp &= ~HASWIDTH; ++ *flagp |= flags&SPSTART; ++ } ++ ++ /* Make a closing node, and hook it on the end. */ ++ ender = regnode(g, (paren) ? CLOSE+parno : END); ++ regtail(g, ret, ender); ++ ++ /* Hook the tails of the branches to the closing node. */ ++ for (br = ret; br != NULL; br = regnext(g, br)) ++ regoptail(g, br, ender); ++ ++ /* Check for proper termination. */ ++ if (paren && *g->regparse++ != ')') { ++ FAIL("unmatched ()"); ++ } else if (!paren && *g->regparse != '\0') { ++ if (*g->regparse == ')') { ++ FAIL("unmatched ()"); ++ } else ++ FAIL("junk on end"); /* "Can't happen". */ ++ /* NOTREACHED */ ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regbranch - one alternative of an | operator ++ * ++ * Implements the concatenation operator. ++ */ ++static char * ++regbranch(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char *chain; ++ register char *latest; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ ret = regnode(g, BRANCH); ++ chain = NULL; ++ while (*g->regparse != '\0' && *g->regparse != '|' && *g->regparse != ')') { ++ latest = regpiece(g, &flags); ++ if (latest == NULL) ++ return(NULL); ++ *flagp |= flags&HASWIDTH; ++ if (chain == NULL) /* First piece. */ ++ *flagp |= flags&SPSTART; ++ else ++ regtail(g, chain, latest); ++ chain = latest; ++ } ++ if (chain == NULL) /* Loop ran zero times. */ ++ (void) regnode(g, NOTHING); ++ ++ return(ret); ++} ++ ++/* ++ - regpiece - something followed by possible [*+?] ++ * ++ * Note that the branching code sequences used for ? and the general cases ++ * of * and + are somewhat optimized: they use the same NOTHING node as ++ * both the endmarker for their branch list and the body of the last branch. ++ * It might seem that this node could be dispensed with entirely, but the ++ * endmarker role is not redundant. ++ */ ++static char * ++regpiece(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ register char op; ++ register char *next; ++ int flags; ++ ++ ret = regatom(g, &flags); ++ if (ret == NULL) ++ return(NULL); ++ ++ op = *g->regparse; ++ if (!ISMULT(op)) { ++ *flagp = flags; ++ return(ret); ++ } ++ ++ if (!(flags&HASWIDTH) && op != '?') ++ FAIL("*+ operand could be empty"); ++ *flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH); ++ ++ if (op == '*' && (flags&SIMPLE)) ++ reginsert(g, STAR, ret); ++ else if (op == '*') { ++ /* Emit x* as (x&|), where & means "self". */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regoptail(g, ret, regnode(g, BACK)); /* and loop */ ++ regoptail(g, ret, ret); /* back */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '+' && (flags&SIMPLE)) ++ reginsert(g, PLUS, ret); ++ else if (op == '+') { ++ /* Emit x+ as x(&|), where & means "self". */ ++ next = regnode(g, BRANCH); /* Either */ ++ regtail(g, ret, next); ++ regtail(g, regnode(g, BACK), ret); /* loop back */ ++ regtail(g, next, regnode(g, BRANCH)); /* or */ ++ regtail(g, ret, regnode(g, NOTHING)); /* null. */ ++ } else if (op == '?') { ++ /* Emit x? as (x|) */ ++ reginsert(g, BRANCH, ret); /* Either x */ ++ regtail(g, ret, regnode(g, BRANCH)); /* or */ ++ next = regnode(g, NOTHING); /* null. */ ++ regtail(g, ret, next); ++ regoptail(g, ret, next); ++ } ++ g->regparse++; ++ if (ISMULT(*g->regparse)) ++ FAIL("nested *?+"); ++ ++ return(ret); ++} ++ ++/* ++ - regatom - the lowest level ++ * ++ * Optimization: gobbles an entire sequence of ordinary characters so that ++ * it can turn them into a single node, which is smaller to store and ++ * faster to run. Backslashed characters are exceptions, each becoming a ++ * separate node; the code is simpler that way and it's not worth fixing. ++ */ ++static char * ++regatom(struct match_globals *g, int *flagp) ++{ ++ register char *ret; ++ int flags; ++ ++ *flagp = WORST; /* Tentatively. */ ++ ++ switch (*g->regparse++) { ++ case '^': ++ ret = regnode(g, BOL); ++ break; ++ case '$': ++ ret = regnode(g, EOL); ++ break; ++ case '.': ++ ret = regnode(g, ANY); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ case '[': { ++ register int class; ++ register int classend; ++ ++ if (*g->regparse == '^') { /* Complement of range. */ ++ ret = regnode(g, ANYBUT); ++ g->regparse++; ++ } else ++ ret = regnode(g, ANYOF); ++ if (*g->regparse == ']' || *g->regparse == '-') ++ regc(g, *g->regparse++); ++ while (*g->regparse != '\0' && *g->regparse != ']') { ++ if (*g->regparse == '-') { ++ g->regparse++; ++ if (*g->regparse == ']' || *g->regparse == '\0') ++ regc(g, '-'); ++ else { ++ class = UCHARAT(g->regparse-2)+1; ++ classend = UCHARAT(g->regparse); ++ if (class > classend+1) ++ FAIL("invalid [] range"); ++ for (; class <= classend; class++) ++ regc(g, class); ++ g->regparse++; ++ } ++ } else ++ regc(g, *g->regparse++); ++ } ++ regc(g, '\0'); ++ if (*g->regparse != ']') ++ FAIL("unmatched []"); ++ g->regparse++; ++ *flagp |= HASWIDTH|SIMPLE; ++ } ++ break; ++ case '(': ++ ret = reg(g, 1, &flags); ++ if (ret == NULL) ++ return(NULL); ++ *flagp |= flags&(HASWIDTH|SPSTART); ++ break; ++ case '\0': ++ case '|': ++ case ')': ++ FAIL("internal urp"); /* Supposed to be caught earlier. */ ++ break; ++ case '?': ++ case '+': ++ case '*': ++ FAIL("?+* follows nothing"); ++ break; ++ case '\\': ++ if (*g->regparse == '\0') ++ FAIL("trailing \\"); ++ ret = regnode(g, EXACTLY); ++ regc(g, *g->regparse++); ++ regc(g, '\0'); ++ *flagp |= HASWIDTH|SIMPLE; ++ break; ++ default: { ++ register int len; ++ register char ender; ++ ++ g->regparse--; ++ len = my_strcspn((const char *)g->regparse, (const char *)META); ++ if (len <= 0) ++ FAIL("internal disaster"); ++ ender = *(g->regparse+len); ++ if (len > 1 && ISMULT(ender)) ++ len--; /* Back off clear of ?+* operand. */ ++ *flagp |= HASWIDTH; ++ if (len == 1) ++ *flagp |= SIMPLE; ++ ret = regnode(g, EXACTLY); ++ while (len > 0) { ++ regc(g, *g->regparse++); ++ len--; ++ } ++ regc(g, '\0'); ++ } ++ break; ++ } ++ ++ return(ret); ++} ++ ++/* ++ - regnode - emit a node ++ */ ++static char * /* Location. */ ++regnode(struct match_globals *g, char op) ++{ ++ register char *ret; ++ register char *ptr; ++ ++ ret = g->regcode; ++ if (ret == &g->regdummy) { ++ g->regsize += 3; ++ return(ret); ++ } ++ ++ ptr = ret; ++ *ptr++ = op; ++ *ptr++ = '\0'; /* Null "next" pointer. */ ++ *ptr++ = '\0'; ++ g->regcode = ptr; ++ ++ return(ret); ++} ++ ++/* ++ - regc - emit (if appropriate) a byte of code ++ */ ++static void ++regc(struct match_globals *g, char b) ++{ ++ if (g->regcode != &g->regdummy) ++ *g->regcode++ = b; ++ else ++ g->regsize++; ++} ++ ++/* ++ - reginsert - insert an operator in front of already-emitted operand ++ * ++ * Means relocating the operand. ++ */ ++static void ++reginsert(struct match_globals *g, char op, char* opnd) ++{ ++ register char *src; ++ register char *dst; ++ register char *place; ++ ++ if (g->regcode == &g->regdummy) { ++ g->regsize += 3; ++ return; ++ } ++ ++ src = g->regcode; ++ g->regcode += 3; ++ dst = g->regcode; ++ while (src > opnd) ++ *--dst = *--src; ++ ++ place = opnd; /* Op node, where operand used to be. */ ++ *place++ = op; ++ *place++ = '\0'; ++ *place++ = '\0'; ++} ++ ++/* ++ - regtail - set the next-pointer at the end of a node chain ++ */ ++static void ++regtail(struct match_globals *g, char *p, char *val) ++{ ++ register char *scan; ++ register char *temp; ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return; ++ ++ /* Find last node. */ ++ scan = p; ++ for (;;) { ++ temp = regnext(g, scan); ++ if (temp == NULL) ++ break; ++ scan = temp; ++ } ++ ++ if (OP(scan) == BACK) ++ offset = scan - val; ++ else ++ offset = val - scan; ++ *(scan+1) = (offset>>8)&0377; ++ *(scan+2) = offset&0377; ++} ++ ++/* ++ - regoptail - regtail on operand of first argument; nop if operandless ++ */ ++static void ++regoptail(struct match_globals *g, char *p, char *val) ++{ ++ /* "Operandless" and "op != BRANCH" are synonymous in practice. */ ++ if (p == NULL || p == &g->regdummy || OP(p) != BRANCH) ++ return; ++ regtail(g, OPERAND(p), val); ++} ++ ++/* ++ * regexec and friends ++ */ ++ ++ ++/* ++ * Forwards. ++ */ ++STATIC int regtry(struct match_globals *g, regexp *prog, char *string); ++STATIC int regmatch(struct match_globals *g, char *prog); ++STATIC int regrepeat(struct match_globals *g, char *p); ++ ++#ifdef DEBUG ++int regnarrate = 0; ++void regdump(); ++STATIC char *regprop(char *op); ++#endif ++ ++/* ++ - regexec - match a regexp against a string ++ */ ++int ++regexec(regexp *prog, char *string) ++{ ++ register char *s; ++ struct match_globals g; ++ ++ /* Be paranoid... */ ++ if (prog == NULL || string == NULL) { ++ printk("<3>Regexp: NULL parameter\n"); ++ return(0); ++ } ++ ++ /* Check validity of program. */ ++ if (UCHARAT(prog->program) != MAGIC) { ++ printk("<3>Regexp: corrupted program\n"); ++ return(0); ++ } ++ ++ /* If there is a "must appear" string, look for it. */ ++ if (prog->regmust != NULL) { ++ s = string; ++ while ((s = strchr(s, prog->regmust[0])) != NULL) { ++ if (strncmp(s, prog->regmust, prog->regmlen) == 0) ++ break; /* Found it. */ ++ s++; ++ } ++ if (s == NULL) /* Not present. */ ++ return(0); ++ } ++ ++ /* Mark beginning of line for ^ . */ ++ g.regbol = string; ++ ++ /* Simplest case: anchored match need be tried only once. */ ++ if (prog->reganch) ++ return(regtry(&g, prog, string)); ++ ++ /* Messy cases: unanchored match. */ ++ s = string; ++ if (prog->regstart != '\0') ++ /* We know what char it must start with. */ ++ while ((s = strchr(s, prog->regstart)) != NULL) { ++ if (regtry(&g, prog, s)) ++ return(1); ++ s++; ++ } ++ else ++ /* We don't -- general case. */ ++ do { ++ if (regtry(&g, prog, s)) ++ return(1); ++ } while (*s++ != '\0'); ++ ++ /* Failure. */ ++ return(0); ++} ++ ++/* ++ - regtry - try match at specific point ++ */ ++static int /* 0 failure, 1 success */ ++regtry(struct match_globals *g, regexp *prog, char *string) ++{ ++ register int i; ++ register char **sp; ++ register char **ep; ++ ++ g->reginput = string; ++ g->regstartp = prog->startp; ++ g->regendp = prog->endp; ++ ++ sp = prog->startp; ++ ep = prog->endp; ++ for (i = NSUBEXP; i > 0; i--) { ++ *sp++ = NULL; ++ *ep++ = NULL; ++ } ++ if (regmatch(g, prog->program + 1)) { ++ prog->startp[0] = string; ++ prog->endp[0] = g->reginput; ++ return(1); ++ } else ++ return(0); ++} ++ ++/* ++ - regmatch - main matching routine ++ * ++ * Conceptually the strategy is simple: check to see whether the current ++ * node matches, call self recursively to see whether the rest matches, ++ * and then act accordingly. In practice we make some effort to avoid ++ * recursion, in particular by going through "ordinary" nodes (that don't ++ * need to know whether the rest of the match failed) by a loop instead of ++ * by recursion. ++ */ ++static int /* 0 failure, 1 success */ ++regmatch(struct match_globals *g, char *prog) ++{ ++ register char *scan = prog; /* Current node. */ ++ char *next; /* Next node. */ ++ ++#ifdef DEBUG ++ if (scan != NULL && regnarrate) ++ fprintf(stderr, "%s(\n", regprop(scan)); ++#endif ++ while (scan != NULL) { ++#ifdef DEBUG ++ if (regnarrate) ++ fprintf(stderr, "%s...\n", regprop(scan)); ++#endif ++ next = regnext(g, scan); ++ ++ switch (OP(scan)) { ++ case BOL: ++ if (g->reginput != g->regbol) ++ return(0); ++ break; ++ case EOL: ++ if (*g->reginput != '\0') ++ return(0); ++ break; ++ case ANY: ++ if (*g->reginput == '\0') ++ return(0); ++ g->reginput++; ++ break; ++ case EXACTLY: { ++ register int len; ++ register char *opnd; ++ ++ opnd = OPERAND(scan); ++ /* Inline the first character, for speed. */ ++ if (*opnd != *g->reginput) ++ return(0); ++ len = strlen(opnd); ++ if (len > 1 && strncmp(opnd, g->reginput, len) != 0) ++ return(0); ++ g->reginput += len; ++ } ++ break; ++ case ANYOF: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) == NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case ANYBUT: ++ if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) != NULL) ++ return(0); ++ g->reginput++; ++ break; ++ case NOTHING: ++ case BACK: ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - OPEN; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set startp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regstartp[no] == NULL) ++ g->regstartp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ { ++ register int no; ++ register char *save; ++ ++ no = OP(scan) - CLOSE; ++ save = g->reginput; ++ ++ if (regmatch(g, next)) { ++ /* ++ * Don't set endp if some later ++ * invocation of the same parentheses ++ * already has. ++ */ ++ if (g->regendp[no] == NULL) ++ g->regendp[no] = save; ++ return(1); ++ } else ++ return(0); ++ } ++ break; ++ case BRANCH: { ++ register char *save; ++ ++ if (OP(next) != BRANCH) /* No choice. */ ++ next = OPERAND(scan); /* Avoid recursion. */ ++ else { ++ do { ++ save = g->reginput; ++ if (regmatch(g, OPERAND(scan))) ++ return(1); ++ g->reginput = save; ++ scan = regnext(g, scan); ++ } while (scan != NULL && OP(scan) == BRANCH); ++ return(0); ++ /* NOTREACHED */ ++ } ++ } ++ break; ++ case STAR: ++ case PLUS: { ++ register char nextch; ++ register int no; ++ register char *save; ++ register int min; ++ ++ /* ++ * Lookahead to avoid useless match attempts ++ * when we know what character comes next. ++ */ ++ nextch = '\0'; ++ if (OP(next) == EXACTLY) ++ nextch = *OPERAND(next); ++ min = (OP(scan) == STAR) ? 0 : 1; ++ save = g->reginput; ++ no = regrepeat(g, OPERAND(scan)); ++ while (no >= min) { ++ /* If it could work, try it. */ ++ if (nextch == '\0' || *g->reginput == nextch) ++ if (regmatch(g, next)) ++ return(1); ++ /* Couldn't or didn't -- back up. */ ++ no--; ++ g->reginput = save + no; ++ } ++ return(0); ++ } ++ break; ++ case END: ++ return(1); /* Success! */ ++ break; ++ default: ++ printk("<3>Regexp: memory corruption\n"); ++ return(0); ++ break; ++ } ++ ++ scan = next; ++ } ++ ++ /* ++ * We get here only if there's trouble -- normally "case END" is ++ * the terminating point. ++ */ ++ printk("<3>Regexp: corrupted pointers\n"); ++ return(0); ++} ++ ++/* ++ - regrepeat - repeatedly match something simple, report how many ++ */ ++static int ++regrepeat(struct match_globals *g, char *p) ++{ ++ register int count = 0; ++ register char *scan; ++ register char *opnd; ++ ++ scan = g->reginput; ++ opnd = OPERAND(p); ++ switch (OP(p)) { ++ case ANY: ++ count = strlen(scan); ++ scan += count; ++ break; ++ case EXACTLY: ++ while (*opnd == *scan) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYOF: ++ while (*scan != '\0' && strchr(opnd, *scan) != NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ case ANYBUT: ++ while (*scan != '\0' && strchr(opnd, *scan) == NULL) { ++ count++; ++ scan++; ++ } ++ break; ++ default: /* Oh dear. Called inappropriately. */ ++ printk("<3>Regexp: internal foulup\n"); ++ count = 0; /* Best compromise. */ ++ break; ++ } ++ g->reginput = scan; ++ ++ return(count); ++} ++ ++/* ++ - regnext - dig the "next" pointer out of a node ++ */ ++static char* ++regnext(struct match_globals *g, char *p) ++{ ++ register int offset; ++ ++ if (p == &g->regdummy) ++ return(NULL); ++ ++ offset = NEXT(p); ++ if (offset == 0) ++ return(NULL); ++ ++ if (OP(p) == BACK) ++ return(p-offset); ++ else ++ return(p+offset); ++} ++ ++#ifdef DEBUG ++ ++STATIC char *regprop(); ++ ++/* ++ - regdump - dump a regexp onto stdout in vaguely comprehensible form ++ */ ++void ++regdump(regexp *r) ++{ ++ register char *s; ++ register char op = EXACTLY; /* Arbitrary non-END op. */ ++ register char *next; ++ /* extern char *strchr(); */ ++ ++ ++ s = r->program + 1; ++ while (op != END) { /* While that wasn't END last time... */ ++ op = OP(s); ++ printf("%2d%s", s-r->program, regprop(s)); /* Where, what. */ ++ next = regnext(s); ++ if (next == NULL) /* Next ptr. */ ++ printf("(0)"); ++ else ++ printf("(%d)", (s-r->program)+(next-s)); ++ s += 3; ++ if (op == ANYOF || op == ANYBUT || op == EXACTLY) { ++ /* Literal string, where present. */ ++ while (*s != '\0') { ++ putchar(*s); ++ s++; ++ } ++ s++; ++ } ++ putchar('\n'); ++ } ++ ++ /* Header fields of interest. */ ++ if (r->regstart != '\0') ++ printf("start `%c' ", r->regstart); ++ if (r->reganch) ++ printf("anchored "); ++ if (r->regmust != NULL) ++ printf("must have \"%s\"", r->regmust); ++ printf("\n"); ++} ++ ++/* ++ - regprop - printable representation of opcode ++ */ ++static char * ++regprop(char *op) ++{ ++#define BUFLEN 50 ++ register char *p; ++ static char buf[BUFLEN]; ++ ++ strcpy(buf, ":"); ++ ++ switch (OP(op)) { ++ case BOL: ++ p = "BOL"; ++ break; ++ case EOL: ++ p = "EOL"; ++ break; ++ case ANY: ++ p = "ANY"; ++ break; ++ case ANYOF: ++ p = "ANYOF"; ++ break; ++ case ANYBUT: ++ p = "ANYBUT"; ++ break; ++ case BRANCH: ++ p = "BRANCH"; ++ break; ++ case EXACTLY: ++ p = "EXACTLY"; ++ break; ++ case NOTHING: ++ p = "NOTHING"; ++ break; ++ case BACK: ++ p = "BACK"; ++ break; ++ case END: ++ p = "END"; ++ break; ++ case OPEN+1: ++ case OPEN+2: ++ case OPEN+3: ++ case OPEN+4: ++ case OPEN+5: ++ case OPEN+6: ++ case OPEN+7: ++ case OPEN+8: ++ case OPEN+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "OPEN%d", OP(op)-OPEN); ++ p = NULL; ++ break; ++ case CLOSE+1: ++ case CLOSE+2: ++ case CLOSE+3: ++ case CLOSE+4: ++ case CLOSE+5: ++ case CLOSE+6: ++ case CLOSE+7: ++ case CLOSE+8: ++ case CLOSE+9: ++ snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "CLOSE%d", OP(op)-CLOSE); ++ p = NULL; ++ break; ++ case STAR: ++ p = "STAR"; ++ break; ++ case PLUS: ++ p = "PLUS"; ++ break; ++ default: ++ printk("<3>Regexp: corrupted opcode\n"); ++ break; ++ } ++ if (p != NULL) ++ strncat(buf, p, BUFLEN-strlen(buf)); ++ return(buf); ++} ++#endif ++ ++ +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.h linux-3.0.24/net/netfilter/regexp/regexp.h +--- linux-3.0.24.org/net/netfilter/regexp/regexp.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regexp.h 2012-03-15 20:08:49.066043520 +0100 +@@ -0,0 +1,41 @@ ++/* ++ * Definitions etc. for regexp(3) routines. ++ * ++ * Caveat: this is V8 regexp(3) [actually, a reimplementation thereof], ++ * not the System V one. ++ */ ++ ++#ifndef REGEXP_H ++#define REGEXP_H ++ ++ ++/* ++http://www.opensource.apple.com/darwinsource/10.3/expect-1/expect/expect.h , ++which contains a version of this library, says: ++ ++ * ++ * NSUBEXP must be at least 10, and no greater than 117 or the parser ++ * will not work properly. ++ * ++ ++However, it looks rather like this library is limited to 10. If you think ++otherwise, let us know. ++*/ ++ ++#define NSUBEXP 10 ++typedef struct regexp { ++ char *startp[NSUBEXP]; ++ char *endp[NSUBEXP]; ++ char regstart; /* Internal use only. */ ++ char reganch; /* Internal use only. */ ++ char *regmust; /* Internal use only. */ ++ int regmlen; /* Internal use only. */ ++ char program[1]; /* Unwarranted chumminess with compiler. */ ++} regexp; ++ ++regexp * regcomp(char *exp, int *patternsize); ++int regexec(regexp *prog, char *string); ++void regsub(regexp *prog, char *source, char *dest); ++void regerror(char *s); ++ ++#endif +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regmagic.h linux-3.0.24/net/netfilter/regexp/regmagic.h +--- linux-3.0.24.org/net/netfilter/regexp/regmagic.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regmagic.h 2012-03-15 20:08:49.066043520 +0100 +@@ -0,0 +1,5 @@ ++/* ++ * The first byte of the regexp internal "program" is actually this magic ++ * number; the start node begins in the second byte. ++ */ ++#define MAGIC 0234 +diff -Naur linux-3.0.24.org/net/netfilter/regexp/regsub.c linux-3.0.24/net/netfilter/regexp/regsub.c +--- linux-3.0.24.org/net/netfilter/regexp/regsub.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/regexp/regsub.c 2012-03-15 20:08:49.076047746 +0100 +@@ -0,0 +1,95 @@ ++/* ++ * regsub ++ * @(#)regsub.c 1.3 of 2 April 86 ++ * ++ * Copyright (c) 1986 by University of Toronto. ++ * Written by Henry Spencer. Not derived from licensed software. ++ * ++ * Permission is granted to anyone to use this software for any ++ * purpose on any computer system, and to redistribute it freely, ++ * subject to the following restrictions: ++ * ++ * 1. The author is not responsible for the consequences of use of ++ * this software, no matter how awful, even if they arise ++ * from defects in it. ++ * ++ * 2. The origin of this software must not be misrepresented, either ++ * by explicit claim or by omission. ++ * ++ * 3. Altered versions must be plainly marked as such, and must not ++ * be misrepresented as being the original software. ++ * ++ * ++ * This code was modified by Ethan Sommer to work within the kernel ++ * (it now uses kmalloc etc..) ++ * ++ */ ++#include "regexp.h" ++#include "regmagic.h" ++#include ++ ++ ++#ifndef CHARBITS ++#define UCHARAT(p) ((int)*(unsigned char *)(p)) ++#else ++#define UCHARAT(p) ((int)*(p)&CHARBITS) ++#endif ++ ++#if 0 ++//void regerror(char * s) ++//{ ++// printk("regexp(3): %s", s); ++// /* NOTREACHED */ ++//} ++#endif ++ ++/* ++ - regsub - perform substitutions after a regexp match ++ */ ++void ++regsub(regexp * prog, char * source, char * dest) ++{ ++ register char *src; ++ register char *dst; ++ register char c; ++ register int no; ++ register int len; ++ ++ /* Not necessary and gcc doesn't like it -MLS */ ++ /*extern char *strncpy();*/ ++ ++ if (prog == NULL || source == NULL || dest == NULL) { ++ regerror("NULL parm to regsub"); ++ return; ++ } ++ if (UCHARAT(prog->program) != MAGIC) { ++ regerror("damaged regexp fed to regsub"); ++ return; ++ } ++ ++ src = source; ++ dst = dest; ++ while ((c = *src++) != '\0') { ++ if (c == '&') ++ no = 0; ++ else if (c == '\\' && '0' <= *src && *src <= '9') ++ no = *src++ - '0'; ++ else ++ no = -1; ++ ++ if (no < 0) { /* Ordinary character. */ ++ if (c == '\\' && (*src == '\\' || *src == '&')) ++ c = *src++; ++ *dst++ = c; ++ } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) { ++ len = prog->endp[no] - prog->startp[no]; ++ (void) strncpy(dst, prog->startp[no], len); ++ dst += len; ++ if (len != 0 && *(dst-1) == '\0') { /* strncpy hit NUL. */ ++ regerror("damaged match string"); ++ return; ++ } ++ } ++ } ++ *dst++ = '\0'; ++} +diff -Naur linux-3.0.24.org/net/netfilter/xt_layer7.c linux-3.0.24/net/netfilter/xt_layer7.c +--- linux-3.0.24.org/net/netfilter/xt_layer7.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.0.24/net/netfilter/xt_layer7.c 2012-03-20 01:44:50.907527097 +0100 +@@ -0,0 +1,684 @@ ++/* ++ Kernel module to match application layer (OSI layer 7) data in connections. ++ ++ http://l7-filter.sf.net ++ ++ (C) 2003-2009 Matthew Strait and Ethan Sommer. ++ ++ 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 ++ 2 of the License, or (at your option) any later version. ++ http://www.gnu.org/licenses/gpl.txt ++ ++ Based on ipt_string.c (C) 2000 Emmanuel Roger , ++ xt_helper.c (C) 2002 Harald Welte and cls_layer7.c (C) 2003 Matthew Strait, ++ Ethan Sommer, Justin Levandoski. ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) ++#include ++#include ++#endif ++#include ++#include ++#include ++#include ++ ++#include "regexp/regexp.c" ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Matthew Strait , Ethan Sommer "); ++MODULE_DESCRIPTION("iptables application layer match module"); ++MODULE_ALIAS("ipt_layer7"); ++MODULE_VERSION("2.22ipfire"); ++ ++static int maxdatalen = 2048; // this is the default ++module_param(maxdatalen, int, 0444); ++MODULE_PARM_DESC(maxdatalen, "maximum bytes of data looked at by l7-filter"); ++#ifdef CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG ++ #define DPRINTK(format,args...) printk(format,##args) ++#else ++ #define DPRINTK(format,args...) ++#endif ++ ++/* Number of packets whose data we look at. ++This can be modified through /proc/net/layer7_numpackets */ ++static int num_packets = 10; ++ ++static struct pattern_cache { ++ char * regex_string; ++ regexp * pattern; ++ struct pattern_cache * next; ++} * first_pattern_cache = NULL; ++ ++DEFINE_SPINLOCK(l7_lock); ++ ++static int total_acct_packets(struct nf_conn *ct) ++{ ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26) ++ BUG_ON(ct == NULL); ++ return (ct->counters[IP_CT_DIR_ORIGINAL].packets + ct->counters[IP_CT_DIR_REPLY].packets); ++#else ++ struct nf_conn_counter *acct; ++ ++ BUG_ON(ct == NULL); ++ acct = nf_conn_acct_find(ct); ++ if (!acct) ++ return 0; ++ return (acct[IP_CT_DIR_ORIGINAL].packets + acct[IP_CT_DIR_REPLY].packets); ++#endif ++} ++ ++#ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++/* Converts an unfriendly string into a friendly one by ++replacing unprintables with periods and all whitespace with " ". */ ++static char * friendly_print(unsigned char * s) ++{ ++ char * f = kmalloc(strlen(s) + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!f) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "friendly_print, bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++){ ++ if(isprint(s[i]) && s[i] < 128) f[i] = s[i]; ++ else if(isspace(s[i])) f[i] = ' '; ++ else f[i] = '.'; ++ } ++ f[i] = '\0'; ++ return f; ++} ++ ++static char dec2hex(int i) ++{ ++ switch (i) { ++ case 0 ... 9: ++ return (i + '0'); ++ break; ++ case 10 ... 15: ++ return (i - 10 + 'a'); ++ break; ++ default: ++ if (net_ratelimit()) ++ printk("layer7: Problem in dec2hex\n"); ++ return '\0'; ++ } ++} ++ ++static char * hex_print(unsigned char * s) ++{ ++ char * g = kmalloc(strlen(s)*3 + 1, GFP_ATOMIC); ++ int i; ++ ++ if(!g) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in hex_print, " ++ "bailing.\n"); ++ return NULL; ++ } ++ ++ for(i = 0; i < strlen(s); i++) { ++ g[i*3 ] = dec2hex(s[i]/16); ++ g[i*3 + 1] = dec2hex(s[i]%16); ++ g[i*3 + 2] = ' '; ++ } ++ g[i*3] = '\0'; ++ ++ return g; ++} ++#endif // DEBUG ++ ++/* Use instead of regcomp. As we expect to be seeing the same regexps over and ++over again, it make sense to cache the results. */ ++static regexp * compile_and_cache(const char * regex_string, ++ const char * protocol) ++{ ++ struct pattern_cache * node = first_pattern_cache; ++ struct pattern_cache * last_pattern_cache = first_pattern_cache; ++ struct pattern_cache * tmp; ++ unsigned int len; ++ ++ while (node != NULL) { ++ if (!strcmp(node->regex_string, regex_string)) ++ return node->pattern; ++ ++ last_pattern_cache = node;/* points at the last non-NULL node */ ++ node = node->next; ++ } ++ ++ /* If we reach the end of the list, then we have not yet cached ++ the pattern for this regex. Let's do that now. ++ Be paranoid about running out of memory to avoid list corruption. */ ++ tmp = kmalloc(sizeof(struct pattern_cache), GFP_ATOMIC); ++ ++ if(!tmp) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ return NULL; ++ } ++ ++ tmp->regex_string = kmalloc(strlen(regex_string) + 1, GFP_ATOMIC); ++ tmp->pattern = kmalloc(sizeof(struct regexp), GFP_ATOMIC); ++ tmp->next = NULL; ++ ++ if(!tmp->regex_string || !tmp->pattern) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "compile_and_cache, bailing.\n"); ++ kfree(tmp->regex_string); ++ kfree(tmp->pattern); ++ kfree(tmp); ++ return NULL; ++ } ++ ++ /* Ok. The new node is all ready now. */ ++ node = tmp; ++ ++ if(first_pattern_cache == NULL) /* list is empty */ ++ first_pattern_cache = node; /* make node the beginning */ ++ else ++ last_pattern_cache->next = node; /* attach node to the end */ ++ ++ /* copy the string and compile the regex */ ++ len = strlen(regex_string); ++ DPRINTK("layer7: about to compile this: \"%s\"\n", regex_string); ++ node->pattern = regcomp((char *)regex_string, &len); ++ if ( !node->pattern ) { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: Error compiling regexp " ++ "\"%s\" (%s)\n", ++ regex_string, protocol); ++ /* pattern is now cached as NULL, so we won't try again. */ ++ } ++ ++ strcpy(node->regex_string, regex_string); ++ return node->pattern; ++} ++ ++static int can_handle(const struct sk_buff *skb) ++{ ++ if(!ip_hdr(skb)) /* not IP */ ++ return 0; ++ if(ip_hdr(skb)->protocol != IPPROTO_TCP && ++ ip_hdr(skb)->protocol != IPPROTO_UDP && ++ ip_hdr(skb)->protocol != IPPROTO_ICMP) ++ return 0; ++ return 1; ++} ++ ++/* Returns offset the into the skb->data that the application data starts */ ++static int app_data_offset(const struct sk_buff *skb) ++{ ++ /* In case we are ported somewhere (ebtables?) where ip_hdr(skb) ++ isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */ ++ int ip_hl = 4*ip_hdr(skb)->ihl; ++ ++ if( ip_hdr(skb)->protocol == IPPROTO_TCP ) { ++ /* 12 == offset into TCP header for the header length field. ++ Can't get this with skb->h.th->doff because the tcphdr ++ struct doesn't get set when routing (this is confirmed to be ++ true in Netfilter as well as QoS.) */ ++ int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4); ++ ++ return ip_hl + tcp_hl; ++ } else if( ip_hdr(skb)->protocol == IPPROTO_UDP ) { ++ return ip_hl + 8; /* UDP header is always 8 bytes */ ++ } else if( ip_hdr(skb)->protocol == IPPROTO_ICMP ) { ++ return ip_hl + 8; /* ICMP header is 8 bytes */ ++ } else { ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: tried to handle unknown " ++ "protocol!\n"); ++ return ip_hl + 8; /* something reasonable */ ++ } ++} ++ ++/* handles whether there's a match when we aren't appending data anymore */ ++static int match_no_append(struct nf_conn * conntrack, ++ struct nf_conn * master_conntrack, ++ enum ip_conntrack_info ctinfo, ++ enum ip_conntrack_info master_ctinfo, ++ const struct xt_layer7_info * info) ++{ ++ /* If we're in here, throw the app data away */ ++ if(master_conntrack->layer7.app_data != NULL) { ++ ++ #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG ++ if(!master_conntrack->layer7.app_proto) { ++ char * f = ++ friendly_print(master_conntrack->layer7.app_data); ++ char * g = ++ hex_print(master_conntrack->layer7.app_data); ++ DPRINTK("\nl7-filter gave up after %d bytes " ++ "(%d packets):\n%s\n", ++ strlen(f), total_acct_packets(master_conntrack), f); ++ kfree(f); ++ DPRINTK("In hex: %s\n", g); ++ kfree(g); ++ } ++ #endif ++ ++ kfree(master_conntrack->layer7.app_data); ++ master_conntrack->layer7.app_data = NULL; /* don't free again */ ++ } ++ ++ if(master_conntrack->layer7.app_proto){ ++ /* Here child connections set their .app_proto (for /proc) */ ++ if(!conntrack->layer7.app_proto) { ++ conntrack->layer7.app_proto = ++ kmalloc(strlen(master_conntrack->layer7.app_proto)+1, ++ GFP_ATOMIC); ++ if(!conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory " ++ "in match_no_append, " ++ "bailing.\n"); ++ return 1; ++ } ++ strcpy(conntrack->layer7.app_proto, ++ master_conntrack->layer7.app_proto); ++ } ++ ++ return (!strcmp(master_conntrack->layer7.app_proto, ++ info->protocol)); ++ } ++ else { ++ /* If not classified, set to "unknown" to distinguish from ++ connections that are still being tested. */ ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen("unknown")+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match_no_append, bailing.\n"); ++ return 1; ++ } ++ strcpy(master_conntrack->layer7.app_proto, "unknown"); ++ return 0; ++ } ++} ++ ++/* add the new app data to the conntrack. Return number of bytes added. */ ++static int add_data(struct nf_conn * master_conntrack, ++ char * app_data, int appdatalen) ++{ ++ int length = 0, i; ++ int oldlength = master_conntrack->layer7.app_data_len; ++ ++ /* This is a fix for a race condition by Deti Fliegl. However, I'm not ++ clear on whether the race condition exists or whether this really ++ fixes it. I might just be being dense... Anyway, if it's not really ++ a fix, all it does is waste a very small amount of time. */ ++ if(!master_conntrack->layer7.app_data) return 0; ++ ++ /* Strip nulls. Make everything lower case (our regex lib doesn't ++ do case insensitivity). Add it to the end of the current data. */ ++ for(i = 0; i < maxdatalen-oldlength-1 && ++ i < appdatalen; i++) { ++ if(app_data[i] != '\0') { ++ /* the kernel version of tolower mungs 'upper ascii' */ ++ master_conntrack->layer7.app_data[length+oldlength] = ++ isascii(app_data[i])? ++ tolower(app_data[i]) : app_data[i]; ++ length++; ++ } ++ } ++ ++ master_conntrack->layer7.app_data[length+oldlength] = '\0'; ++ master_conntrack->layer7.app_data_len = length + oldlength; ++ ++ return length; ++} ++ ++/* taken from drivers/video/modedb.c */ ++static int my_atoi(const char *s) ++{ ++ int val = 0; ++ ++ for (;; s++) { ++ switch (*s) { ++ case '0'...'9': ++ val = 10*val+(*s-'0'); ++ break; ++ default: ++ return val; ++ } ++ } ++} ++ ++/* write out num_packets to userland. */ ++static int layer7_read_proc(char* page, char ** start, off_t off, int count, ++ int* eof, void * data) ++{ ++ if(num_packets > 99 && net_ratelimit()) ++ printk(KERN_ERR "layer7: NOT REACHED. num_packets too big\n"); ++ ++ page[0] = num_packets/10 + '0'; ++ page[1] = num_packets%10 + '0'; ++ page[2] = '\n'; ++ page[3] = '\0'; ++ ++ *eof=1; ++ ++ return 3; ++} ++ ++/* Read in num_packets from userland */ ++static int layer7_write_proc(struct file* file, const char* buffer, ++ unsigned long count, void *data) ++{ ++ char * foo = kmalloc(count, GFP_ATOMIC); ++ ++ if(!foo){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory, bailing. " ++ "num_packets unchanged.\n"); ++ return count; ++ } ++ ++ if(copy_from_user(foo, buffer, count)) { ++ return -EFAULT; ++ } ++ ++ ++ num_packets = my_atoi(foo); ++ kfree (foo); ++ ++ /* This has an arbitrary limit to make the math easier. I'm lazy. ++ But anyway, 99 is a LOT! If you want more, you're doing it wrong! */ ++ if(num_packets > 99) { ++ printk(KERN_WARNING "layer7: num_packets can't be > 99.\n"); ++ num_packets = 99; ++ } else if(num_packets < 1) { ++ printk(KERN_WARNING "layer7: num_packets can't be < 1.\n"); ++ num_packets = 1; ++ } ++ ++ return count; ++} ++ ++static bool ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++match(const struct sk_buff *skbin, struct xt_action_param *par) ++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++match(const struct sk_buff *skbin, const struct xt_match_param *par) ++#else ++match(const struct sk_buff *skbin, ++ const struct net_device *in, ++ const struct net_device *out, ++ const struct xt_match *match, ++ const void *matchinfo, ++ int offset, ++ unsigned int protoff, ++ bool *hotdrop) ++#endif ++{ ++ /* sidestep const without getting a compiler warning... */ ++ struct sk_buff * skb = (struct sk_buff *)skbin; ++ ++ const struct xt_layer7_info * info = ++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ par->matchinfo; ++ #else ++ matchinfo; ++ #endif ++ ++ enum ip_conntrack_info master_ctinfo, ctinfo; ++ struct nf_conn *master_conntrack, *conntrack; ++ unsigned char * app_data; ++ unsigned int pattern_result, appdatalen; ++ regexp * comppattern; ++ ++ /* Be paranoid/incompetent - lock the entire match function. */ ++ spin_lock_bh(&l7_lock); ++ ++ if(!can_handle(skb)){ ++ DPRINTK("layer7: This is some protocol I can't handle.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Treat parent & all its children together as one connection, except ++ for the purpose of setting conntrack->layer7.app_proto in the actual ++ connection. This makes /proc/net/ip_conntrack more satisfying. */ ++ if(!(conntrack = nf_ct_get(skb, &ctinfo)) || ++ !(master_conntrack=nf_ct_get(skb,&master_ctinfo))){ ++ DPRINTK("layer7: couldn't get conntrack.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ /* Try to get a master conntrack (and its master etc) for FTP, etc. */ ++ while (master_ct(master_conntrack) != NULL) ++ master_conntrack = master_ct(master_conntrack); ++ ++ /* if we've classified it or seen too many packets */ ++ if(total_acct_packets(master_conntrack) > num_packets || ++ master_conntrack->layer7.app_proto) { ++ ++ pattern_result = match_no_append(conntrack, master_conntrack, ++ ctinfo, master_ctinfo, info); ++ ++ /* skb->cb[0] == seen. Don't do things twice if there are ++ multiple l7 rules. I'm not sure that using cb for this purpose ++ is correct, even though it says "put your private variables ++ there". But it doesn't look like it is being used for anything ++ else in the skbs that make it here. */ ++ skb->cb[0] = 1; /* marking it seen here's probably irrelevant */ ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ ++ if(skb_is_nonlinear(skb)){ ++ if(skb_linearize(skb) != 0){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: failed to linearize " ++ "packet, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* now that the skb is linearized, it's safe to set these. */ ++ app_data = skb->data + app_data_offset(skb); ++ appdatalen = skb_tail_pointer(skb) - app_data; ++ ++ /* the return value gets checked later, when we're ready to use it */ ++ comppattern = compile_and_cache(info->pattern, info->protocol); ++ ++ /* On the first packet of a connection, allocate space for app data */ ++ if(total_acct_packets(master_conntrack) == 1 && !skb->cb[0] && ++ !master_conntrack->layer7.app_data){ ++ master_conntrack->layer7.app_data = ++ kmalloc(maxdatalen, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_data){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ ++ master_conntrack->layer7.app_data[0] = '\0'; ++ } ++ ++ /* Can be here, but unallocated, if numpackets is increased near ++ the beginning of a connection */ ++ if(master_conntrack->layer7.app_data == NULL){ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; /* unmatched */ ++ } ++ ++ if(!skb->cb[0]){ ++ int newbytes; ++ newbytes = add_data(master_conntrack, app_data, appdatalen); ++ ++ if(newbytes == 0) { /* didn't add any data */ ++ skb->cb[0] = 1; ++ /* Didn't match before, not going to match now */ ++ spin_unlock_bh(&l7_lock); ++ return info->invert; ++ } ++ } ++ ++ /* If looking for "unknown", then never match. "Unknown" means that ++ we've given up; we're still trying with these packets. */ ++ if(!strcmp(info->protocol, "unknown")) { ++ pattern_result = 0; ++ /* If looking for "unset", then always match. "Unset" means that we ++ haven't yet classified the connection. */ ++ } else if(!strcmp(info->protocol, "unset")) { ++ pattern_result = 2; ++ DPRINTK("layer7: matched unset: not yet classified " ++ "(%d/%d packets)\n", ++ total_acct_packets(master_conntrack), num_packets); ++ /* If the regexp failed to compile, don't bother running it */ ++ } else if(comppattern && ++ regexec(comppattern, master_conntrack->layer7.app_data)){ ++ DPRINTK("layer7: matched %s\n", info->protocol); ++ pattern_result = 1; ++ } else pattern_result = 0; ++ ++ if(pattern_result == 1) { ++ master_conntrack->layer7.app_proto = ++ kmalloc(strlen(info->protocol)+1, GFP_ATOMIC); ++ if(!master_conntrack->layer7.app_proto){ ++ if (net_ratelimit()) ++ printk(KERN_ERR "layer7: out of memory in " ++ "match, bailing.\n"); ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++ } ++ strcpy(master_conntrack->layer7.app_proto, info->protocol); ++ } else if(pattern_result > 1) { /* cleanup from "unset" */ ++ pattern_result = 1; ++ } ++ ++ /* mark the packet seen */ ++ skb->cb[0] = 1; ++ ++ spin_unlock_bh(&l7_lock); ++ return (pattern_result ^ info->invert); ++} ++ ++// load nf_conntrack_ipv4 ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++static int ++#else ++static bool ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++check(const struct xt_mtchk_param *par) ++{ ++ if (nf_ct_l3proto_try_module_get(par->match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", par->match->family); ++#else ++check(const char *tablename, const void *inf, ++ const struct xt_match *match, void *matchinfo, ++ unsigned int hook_mask) ++{ ++ if (nf_ct_l3proto_try_module_get(match->family) < 0) { ++ printk(KERN_WARNING "can't load conntrack support for " ++ "proto=%d\n", match->family); ++#endif ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35) ++ return -EINVAL; ++ } ++ return 0; ++#else ++ return 0; ++ } ++ return 1; ++#endif ++} ++ ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28) ++ static void destroy(const struct xt_mtdtor_param *par) ++ { ++ nf_ct_l3proto_module_put(par->match->family); ++ } ++#else ++ static void destroy(const struct xt_match *match, void *matchinfo) ++ { ++ nf_ct_l3proto_module_put(match->family); ++ } ++#endif ++ ++static struct xt_match xt_layer7_match[] __read_mostly = { ++{ ++ .name = "layer7", ++ .family = AF_INET, ++ .checkentry = check, ++ .match = match, ++ .destroy = destroy, ++ .matchsize = sizeof(struct xt_layer7_info), ++ .me = THIS_MODULE ++} ++}; ++ ++static void layer7_cleanup_proc(void) ++{ ++ remove_proc_entry("layer7_numpackets", init_net.proc_net); ++} ++ ++/* register the proc file */ ++static void layer7_init_proc(void) ++{ ++ struct proc_dir_entry* entry; ++ entry = create_proc_entry("layer7_numpackets", 0644, init_net.proc_net); ++ entry->read_proc = layer7_read_proc; ++ entry->write_proc = layer7_write_proc; ++} ++ ++static int __init xt_layer7_init(void) ++{ ++ need_conntrack(); ++ ++ if (init_net.ct.sysctl_acct == 0) { ++ printk(KERN_WARNING "layer7: enabling nf_conntrack_acct\n"); ++ init_net.ct.sysctl_acct = 1; ++ } ++ ++ layer7_init_proc(); ++ if(maxdatalen < 1) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be < 1, " ++ "using 1\n"); ++ maxdatalen = 1; ++ } ++ /* This is not a hard limit. It's just here to prevent people from ++ bringing their slow machines to a grinding halt. */ ++ else if(maxdatalen > 65536) { ++ printk(KERN_WARNING "layer7: maxdatalen can't be > 65536, " ++ "using 65536\n"); ++ maxdatalen = 65536; ++ } ++ return xt_register_matches(xt_layer7_match, ++ ARRAY_SIZE(xt_layer7_match)); ++} ++ ++static void __exit xt_layer7_fini(void) ++{ ++ layer7_cleanup_proc(); ++ xt_unregister_matches(xt_layer7_match, ARRAY_SIZE(xt_layer7_match)); ++} ++ ++module_init(xt_layer7_init); ++module_exit(xt_layer7_fini); diff --git a/src/patches/netpbm-10.26.46-getline.patch b/src/patches/netpbm-10.26.46-getline.patch new file mode 100644 index 0000000000..c5a961b30b --- /dev/null +++ b/src/patches/netpbm-10.26.46-getline.patch @@ -0,0 +1,202 @@ +The getline function used in a couple of places in netpbm-free is also +defined by POSIX:2008, and so netpbm-free fails to build with newer +versions of (e)glibc. Here's a patch to rename it. + + * Rename getline functions to get_line to avoid conflict with POSIX:2008. + +--- netpbm-free-10.0.orig/ppm/xvminitoppm.c ++++ netpbm-free-10.0/ppm/xvminitoppm.c +@@ -14,7 +14,7 @@ + #include "ppm.h" + #define BUFSIZE 256 + +-static void getline ARGS((FILE *fp, char *buf)); ++static void get_line ARGS((FILE *fp, char *buf)); + + int + main(argc, argv) +@@ -48,18 +48,18 @@ + i++; + } + +- getline(ifp, buf); ++ get_line(ifp, buf); + if( strncmp(buf, "P7 332", 6) != 0 ) + pm_error("bad magic number - not a XV thumbnail picture"); + + while(1) { +- getline(ifp, buf); ++ get_line(ifp, buf); + if( strncmp(buf, "#END_OF_COMMENTS", 16)==0 ) + break; + if( strncmp(buf, "#BUILTIN", 8)==0 ) + pm_error("cannot convert builtin XV thumbnail pictures"); + } +- getline(ifp, buf); ++ get_line(ifp, buf); + if( sscanf(buf, "%d %d %d", &cols, &rows, &maxval) != 3 ) + pm_error("error parsing dimension info"); + if( maxval != 255 ) +@@ -85,7 +85,7 @@ + + + static void +-getline(fp, buf) ++get_line(fp, buf) + FILE *fp; + char *buf; + { +--- netpbm-free-10.0.orig/ppm/xpmtoppm.c ++++ netpbm-free-10.0/ppm/xpmtoppm.c +@@ -114,7 +114,7 @@ + + + static void +-getline(char * const line, int const size, FILE * const stream) { ++get_line(char * const line, int const size, FILE * const stream) { + /*---------------------------------------------------------------------------- + Read the next line from the input file 'stream', through the one-line + buffer lastInputLine[]. +@@ -130,7 +130,7 @@ + Exit program if the line doesn't fit in the buffer. + -----------------------------------------------------------------------------*/ + if (size > MAX_LINE+1) +- pm_error("INTERNAL ERROR: getline() received 'size' parameter " ++ pm_error("INTERNAL ERROR: get_line() received 'size' parameter " + "which is out of bounds"); + + if (backup) { +@@ -346,7 +346,7 @@ + int * const transparentP) { + /*---------------------------------------------------------------------------- + Read the header of the XPM file on stream 'stream'. Assume the +- getline() stream is presently positioned to the beginning of the ++ get_line() stream is presently positioned to the beginning of the + file and it is a Version 3 XPM file. Leave the stream positioned + after the header. + +@@ -377,25 +377,25 @@ + *widthP = *heightP = *ncolorsP = *chars_per_pixelP = -1; + + /* Read the XPM signature comment */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (strncmp(line, xpm3_signature, strlen(xpm3_signature)) != 0) + pm_error("Apparent XPM 3 file does not start with '/* XPM */'. " + "First line is '%s'", xpm3_signature); + + /* Read the assignment line */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (strncmp(line, "static char", 11) != 0) + pm_error("Cannot find data structure declaration. Expected a " + "line starting with 'static char', but found the line " + "'%s'.", line); + + /* Read the hints line */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + /* skip the comment line if any */ + if (!strncmp(line, "/*", 2)) { + while (!strstr(line, "*/")) +- getline(line, sizeof(line), stream); +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + } + if (sscanf(line, "\"%d %d %d %d\",", widthP, heightP, + ncolorsP, chars_per_pixelP) != 4) +@@ -427,10 +427,10 @@ + *transparentP = -1; /* initial value */ + + for (seqNum = 0; seqNum < *ncolorsP; seqNum++) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + /* skip the comment line if any */ + if (!strncmp(line, "/*", 2)) +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + + interpretXpm3ColorTableLine(line, seqNum, *chars_per_pixelP, + *colorsP, *ptabP, transparentP); +@@ -445,7 +445,7 @@ + pixel ** const colorsP, int ** const ptabP) { + /*---------------------------------------------------------------------------- + Read the header of the XPM file on stream 'stream'. Assume the +- getline() stream is presently positioned to the beginning of the ++ get_line() stream is presently positioned to the beginning of the + file and it is a Version 1 XPM file. Leave the stream positioned + after the header. + +@@ -464,7 +464,7 @@ + /* Read the initial defines. */ + processedStaticChar = FALSE; + while (!processedStaticChar) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + + if (sscanf(line, "#define %s %d", str1, &v) == 2) { + char *t1; +@@ -512,7 +512,7 @@ + /* If there's a monochrome color table, skip it. */ + if (!strncmp(t1, "mono", 4)) { + for (;;) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (!strncmp(line, "static char", 11)) + break; + } +@@ -533,7 +533,7 @@ + + /* Read color table. */ + for (i = 0; i < *ncolorsP; ++i) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + + if ((t1 = strchr(line, '"')) == NULL) + pm_error("D error scanning color table"); +@@ -569,7 +569,7 @@ + "static char ..."). + */ + for (;;) { +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + if (strncmp(line, "static char", 11) == 0) + break; + } +@@ -660,7 +660,7 @@ + backup = FALSE; + + /* Read the header line */ +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + backup = TRUE; /* back up so next read reads this line again */ + + rc = sscanf(line, "/* %s */", str1); +@@ -681,7 +681,7 @@ + pm_error("Could not get %d bytes of memory for image", totalpixels); + cursor = *dataP; + maxcursor = *dataP + totalpixels - 1; +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + /* read next line (first line may not always start with comment) */ + while (cursor <= maxcursor) { + if (strncmp(line, "/*", 2) == 0) { +@@ -691,7 +691,7 @@ + ncolors, ptab, &cursor, maxcursor); + } + if (cursor <= maxcursor) +- getline(line, sizeof(line), stream); ++ get_line(line, sizeof(line), stream); + } + if (ptab) free(ptab); + } + +Thanks, + +-- +Colin Watson [cjwatson@ubuntu.com] + + + + diff --git a/src/patches/openldap-gcc44-fixes.patch b/src/patches/openldap-gcc44-fixes.patch new file mode 100644 index 0000000000..53b8ea0473 --- /dev/null +++ b/src/patches/openldap-gcc44-fixes.patch @@ -0,0 +1,31 @@ +--- include/ldap_pvt_thread.h~ 2008-11-12 07:37:16.000000000 +0000 ++++ include/ldap_pvt_thread.h 2008-11-12 08:01:45.000000000 +0000 +@@ -59,12 +59,12 @@ + + #ifndef LDAP_PVT_THREAD_H_DONE + #define LDAP_PVT_THREAD_SET_STACK_SIZE +-#ifndef LDAP_PVT_THREAD_STACK_SIZE +- /* LARGE stack. Will be twice as large on 64 bit machine. */ +-#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) ) + /* May be explicitly defined to zero to disable it */ +-#elif LDAP_PVT_THREAD_STACK_SIZE == 0 ++#if LDAP_PVT_THREAD_STACK_SIZE == 0 + #undef LDAP_PVT_THREAD_SET_STACK_SIZE ++#elif !defined(LDAP_PVT_THREAD_STACK_SIZE) ++ /* LARGE stack. Will be twice as large on 64 bit machine. */ ++#define LDAP_PVT_THREAD_STACK_SIZE ( 1 * 1024 * 1024 * sizeof(void *) ) + #endif + #endif /* !LDAP_PVT_THREAD_H_DONE */ + +--- libraries/libldap/os-ip.c~ 2008-11-12 07:33:10.000000000 +0000 ++++ libraries/libldap/os-ip.c 2008-11-12 07:33:31.000000000 +0000 +@@ -690,7 +690,7 @@ + char *herr; + #ifdef NI_MAXHOST + char hbuf[NI_MAXHOST]; +-#elif defined( MAXHOSTNAMELEN ++#elif defined( MAXHOSTNAMELEN ) + char hbuf[MAXHOSTNAMELEN]; + #else + char hbuf[256]; + diff --git a/src/patches/pakfire3-changes-for-ipfire2.diff b/src/patches/pakfire3-changes-for-ipfire2.diff new file mode 100644 index 0000000000..e0f476a951 --- /dev/null +++ b/src/patches/pakfire3-changes-for-ipfire2.diff @@ -0,0 +1,35 @@ +diff --git a/Makefile b/Makefile +index 0361af6..0bcb1bf 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,7 +1,7 @@ + + include Makeconfig + +-SUBDIRS = po python tools tools/fake-environ ++SUBDIRS = python tools tools/fake-environ + + all: build + +diff --git a/tools/Makefile b/tools/Makefile +index d7cbf70..499beb4 100644 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -12,7 +12,7 @@ LIBS_POPT = -lpopt + + SCRIPTS = $(SCRIPTS_BIN) $(SCRIPTS_SHELL) + SCRIPTS_BIN = \ +- debugedit ++ #debugedit + + SCRIPTS_SHELL = \ + chroot-shell \ +@@ -50,7 +50,7 @@ install: $(SCRIPTS) + + # Create script aliases. + -mkdir -pv $(DESTDIR)/usr/bin +- ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire ++ ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire3 + ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-builder + ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-client + ln -svf ../..$(SCRIPT_DIR)/pakfire-multicall.py $(DESTDIR)/usr/bin/pakfire-daemon diff --git a/src/patches/pptp-1.7.2-compat.patch b/src/patches/pptp-1.7.2-compat.patch new file mode 100644 index 0000000000..0ea1551663 --- /dev/null +++ b/src/patches/pptp-1.7.2-compat.patch @@ -0,0 +1,71 @@ +Index: pptp_compat.c +=================================================================== +RCS file: /cvsroot/pptpclient/pptp-linux/pptp_compat.c,v +retrieving revision 1.1 +retrieving revision 1.3 +diff -u -r1.1 -r1.3 +--- pptp_compat.c 19 Feb 2008 21:43:28 -0000 1.1 ++++ pptp_compat.c 25 Jul 2008 00:13:56 -0000 1.3 +@@ -7,14 +7,15 @@ + #include + #include + #include +-#include + #include ++#if defined (__SVR4) && defined (__sun) /* Solaris */ ++#include ++#endif + #include + #include "pptp_compat.h" + #include + #include "util.h" + +- + #if defined (__SVR4) && defined (__sun) /* Solaris */ + /* + * daemon implementation from uClibc +Index: pptp.c +=================================================================== +RCS file: /cvsroot/pptpclient/pptp-linux/pptp.c,v +retrieving revision 1.49 +retrieving revision 1.51 +diff -u -r1.49 -r1.51 +--- pptp.c 14 May 2008 06:32:52 -0000 1.49 ++++ pptp.c 24 Jul 2008 05:53:05 -0000 1.51 +@@ -61,9 +61,8 @@ + #include "version.h" + #if defined(__linux__) + #include +-#else +-#include "inststr.h" + #endif ++#include "inststr.h" + #include "util.h" + #include "pptp_quirks.h" + #include "pqueue.h" +@@ -129,7 +128,7 @@ + } + + #if defined (__SVR4) && defined (__sun) +-struct in_addr localbind = { INADDR_ANY }; ++struct in_addr localbind = { .s_addr = INADDR_ANY }; + #else + struct in_addr localbind = { INADDR_NONE }; + #endif +@@ -183,6 +182,7 @@ + struct in_addr inetaddr; + volatile int callmgr_sock = -1; + char ttydev[PATH_MAX]; ++ char *tty_name; + int pty_fd, tty_fd, gre_fd, rc; + volatile pid_t parent_pid, child_pid; + u_int16_t call_id, peer_call_id; +@@ -391,7 +391,7 @@ + file2fd("/dev/null", "wb", STDERR_FILENO); + } + +- char *tty_name = ttyname(tty_fd); ++ tty_name = ttyname(tty_fd); + snprintf(buf, sizeof(buf), "pptp: GRE-to-PPP gateway on %s", + tty_name ? tty_name : "(null)"); + #ifdef PR_SET_NAME diff --git a/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch b/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch new file mode 100644 index 0000000000..7e20b15c2f --- /dev/null +++ b/src/patches/python-pycurl-fix-do_curl_reset-refcount.patch @@ -0,0 +1,24 @@ +--- a/src/pycurl.c ++++ a/src/pycurl.c +@@ -1452,6 +1452,7 @@ do_curl_reset(CurlObject *self) + } + } + ++ Py_INCREF(Py_None); + return Py_None; + } + +--- a/tests/test_internals.py ++++ a/tests/test_internals.py +@@ -245,6 +245,11 @@ if 1 and gc: + if opts.verbose >= 1: + print "Tracked objects:", len(gc.get_objects()) + ++if 1: ++ # Ensure that the refcounting error in "reset" is fixed: ++ for i in xrange(100000): ++ c = Curl() ++ c.reset() + + # /*********************************************************************** + # // done diff --git a/src/patches/python-pycurl-no-static-libs.patch b/src/patches/python-pycurl-no-static-libs.patch new file mode 100644 index 0000000000..c1410dcdfa --- /dev/null +++ b/src/patches/python-pycurl-no-static-libs.patch @@ -0,0 +1,12 @@ +--- setup.py~ 2008-04-22 17:00:45.000000000 +0300 ++++ setup.py 2008-07-03 21:53:36.000000000 +0300 +@@ -97,8 +97,7 @@ + else: + extra_compile_args.append(e) + libs = split_quoted( +- os.popen("'%s' --libs" % CURL_CONFIG).read()+\ +- os.popen("'%s' --static-libs" % CURL_CONFIG).read()) ++ os.popen("'%s' --libs" % CURL_CONFIG).read()) + for e in libs: + if e[:2] == "-l": + libraries.append(e[2:]) diff --git a/src/patches/qemu-kqemu_change-default-kqemu-bios.patch b/src/patches/qemu-kqemu_change-default-kqemu-bios.patch deleted file mode 100644 index a36c54e219..0000000000 --- a/src/patches/qemu-kqemu_change-default-kqemu-bios.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur qemu-0.11.1.org/hw/pc.c qemu-0.11.1/hw/pc.c ---- qemu-0.11.1.org/hw/pc.c 2009-12-02 21:27:02.000000000 +0100 -+++ qemu-0.11.1/hw/pc.c 2010-12-27 12:09:41.845206649 +0100 -@@ -43,7 +43,7 @@ - /* Show multiboot debug output */ - //#define DEBUG_MULTIBOOT - --#define BIOS_FILENAME "bios.bin" -+#define BIOS_FILENAME "bios-kqemu.bin" - #define VGABIOS_FILENAME "vgabios.bin" - #define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin" - diff --git a/src/patches/r8169_add_missing_pciids.patch b/src/patches/r8169_add_missing_pciids.patch index dab3af0d20..86916f6488 100644 --- a/src/patches/r8169_add_missing_pciids.patch +++ b/src/patches/r8169_add_missing_pciids.patch @@ -1,12 +1,14 @@ -diff -Naur r8169-6.011.00.org/src/r8169_n.c r8169-6.011.00/src/r8169_n.c ---- r8169-6.011.00.org/src/r8169_n.c 2009-07-14 08:39:25.000000000 +0200 -+++ r8169-6.011.00/src/r8169_n.c 2009-10-22 19:18:42.000000000 +0200 -@@ -114,6 +114,11 @@ +diff -Naur r8169-6.017.00.org/src/r8169_n.c r8169-6.017.00/src/r8169_n.c +--- r8169-6.017.00.org/src/r8169_n.c 2012-05-03 14:23:12.000000000 +0200 ++++ r8169-6.017.00/src/r8169_n.c 2012-10-14 12:43:52.478555777 +0200 +@@ -115,7 +115,12 @@ static struct pci_device_id rtl8169_pci_tbl[] = { { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 }, { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 }, +- { PCI_VENDOR_ID_DLINK, 0x4300, PCI_VENDOR_ID_DLINK, 0x4c00, 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8129), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 }, ++ { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4302), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(PCI_VENDOR_ID_AT, 0xC107), 0, 0, RTL_CFG_0 }, + { PCI_DEVICE(0x16EC, 0x0116), 0, 0, RTL_CFG_0 }, + { PCI_VENDOR_ID_LINKSYS, 0x1032, PCI_ANY_ID, 0x0024, 0, 0, RTL_CFG_0 }, diff --git a/src/patches/readline-5.1-fixes-3.patch b/src/patches/readline-5.1-fixes-3.patch deleted file mode 100644 index e0fb8756a5..0000000000 --- a/src/patches/readline-5.1-fixes-3.patch +++ /dev/null @@ -1,128 +0,0 @@ -Submitted By: Matthew Burgess (matthew at linuxfromscratch dot org) -Date: 2006-03-17 -Initial Package Version: 5.1 -Origin: http://ftp.gnu.org/gnu/readline/readline-5.1-patches/ -Upstream Status: From Upstream -Description: Contains Patch 001-004 from Upstream - -diff -Naur readline-5.1.orig/display.c readline-5.1/display.c ---- readline-5.1.orig/display.c 2005-11-30 19:05:02.000000000 +0000 -+++ readline-5.1/display.c 2006-03-17 16:03:09.000000000 +0000 -@@ -1983,11 +1983,15 @@ - int pchar; - { - int len; -- char *pmt; -+ char *pmt, *p; - - rl_save_prompt (); - -- if (saved_local_prompt == 0) -+ /* We've saved the prompt, and can do anything with the various prompt -+ strings we need before they're restored. We want the unexpanded -+ portion of the prompt string after any final newline. */ -+ p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; -+ if (p == 0) - { - len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; - pmt = (char *)xmalloc (len + 2); -@@ -1998,19 +2002,17 @@ - } - else - { -- len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; -+ p++; -+ len = strlen (p); - pmt = (char *)xmalloc (len + 2); - if (len) -- strcpy (pmt, saved_local_prompt); -+ strcpy (pmt, p); - pmt[len] = pchar; - pmt[len+1] = '\0'; -- local_prompt = savestring (pmt); -- prompt_last_invisible = saved_last_invisible; -- prompt_visible_length = saved_visible_length + 1; -- } -+ } - -+ /* will be overwritten by expand_prompt, called from rl_message */ - prompt_physical_chars = saved_physical_chars + 1; -- - return pmt; - } - -diff -Naur readline-5.1.orig/readline.c readline-5.1/readline.c ---- readline-5.1.orig/readline.c 2005-07-05 02:29:35.000000000 +0000 -+++ readline-5.1/readline.c 2006-03-17 16:03:05.000000000 +0000 -@@ -282,6 +282,7 @@ - { - FREE (rl_prompt); - rl_prompt = prompt ? savestring (prompt) : (char *)NULL; -+ rl_display_prompt = rl_prompt ? rl_prompt : ""; - - rl_visible_prompt_length = rl_expand_prompt (rl_prompt); - return 0; -@@ -714,7 +715,7 @@ - - rl_dispatching = 1; - RL_SETSTATE(RL_STATE_DISPATCHING); -- r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); -+ (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); - RL_UNSETSTATE(RL_STATE_DISPATCHING); - rl_dispatching = 0; - -diff -Naur readline-5.1.orig/terminal.c readline-5.1/terminal.c ---- readline-5.1.orig/terminal.c 2005-11-13 01:46:54.000000000 +0000 -+++ readline-5.1/terminal.c 2006-03-17 16:03:02.000000000 +0000 -@@ -122,7 +122,7 @@ - static char *_rl_visible_bell; - - /* Non-zero means the terminal can auto-wrap lines. */ --int _rl_term_autowrap; -+int _rl_term_autowrap = -1; - - /* Non-zero means that this terminal has a meta key. */ - static int term_has_meta; -@@ -274,6 +274,9 @@ - _rl_set_screen_size (rows, cols) - int rows, cols; - { -+ if (_rl_term_autowrap == -1) -+ _rl_init_terminal_io (rl_terminal_name); -+ - if (rows > 0) - _rl_screenheight = rows; - if (cols > 0) -diff -Naur readline-5.1.orig/text.c readline-5.1/text.c ---- readline-5.1.orig/text.c 2005-09-24 23:06:07.000000000 +0000 -+++ readline-5.1/text.c 2006-03-17 16:02:58.000000000 +0000 -@@ -1071,8 +1071,6 @@ - rl_delete (count, key) - int count, key; - { -- int r; -- - if (count < 0) - return (_rl_rubout_char (-count, key)); - -@@ -1090,17 +1088,17 @@ - else - rl_forward_byte (count, key); - -- r = rl_kill_text (orig_point, rl_point); -+ rl_kill_text (orig_point, rl_point); - rl_point = orig_point; -- return r; - } - else - { - int new_point; - - new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); -- return (rl_delete_text (rl_point, new_point)); -+ rl_delete_text (rl_point, new_point); - } -+ return 0; - } - - /* Delete the character under the cursor, unless the insertion diff --git a/src/patches/readline/readline52-001 b/src/patches/readline/readline52-001 new file mode 100644 index 0000000000..0bec9a278c --- /dev/null +++ b/src/patches/readline/readline52-001 @@ -0,0 +1,30 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-001 + +Bug-Reported-by: ebb9@byu.net +Bug-Reference-ID: <45540862.9030900@byu.net> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html + http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html + +Bug-Description: + +In some cases, code that is intended to be used in the presence of multibyte +characters is called when no such characters are present, leading to incorrect +display position calculations and incorrect redisplay. + +Patch: + +*** ../readline-5.2/display.c Thu Sep 14 14:20:12 2006 +--- display.c Mon Nov 13 17:55:57 2006 +*************** +*** 2381,2384 **** +--- 2409,2414 ---- + if (end <= start) + return 0; ++ if (MB_CUR_MAX == 1 || rl_byte_oriented) ++ return (end - start); + + memset (&ps, 0, sizeof (mbstate_t)); diff --git a/src/patches/readline/readline52-002 b/src/patches/readline/readline52-002 new file mode 100644 index 0000000000..b0d8c92236 --- /dev/null +++ b/src/patches/readline/readline52-002 @@ -0,0 +1,49 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-002 + +Bug-Reported-by: Magnus Svensson +Bug-Reference-ID: <45BDC44D.80609@mysql.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html + +Bug-Description: + +Readline neglects to reallocate the array it uses to keep track of wrapped +screen lines when increasing its size. This will eventually result in +segmentation faults when given sufficiently long input. + +Patch: + +*** ../readline-5.2-patched/display.c Thu Sep 14 14:20:12 2006 +--- display.c Fri Feb 2 20:23:17 2007 +*************** +*** 561,574 **** +--- 561,586 ---- + wrap_offset = prompt_invis_chars_first_line = 0; + } + ++ #if defined (HANDLE_MULTIBYTE) + #define CHECK_INV_LBREAKS() \ + do { \ + if (newlines >= (inv_lbsize - 2)) \ + { \ + inv_lbsize *= 2; \ + inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ + } \ + } while (0) ++ #else ++ #define CHECK_INV_LBREAKS() \ ++ do { \ ++ if (newlines >= (inv_lbsize - 2)) \ ++ { \ ++ inv_lbsize *= 2; \ ++ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ } \ ++ } while (0) ++ #endif /* HANDLE_MULTIBYTE */ + + #if defined (HANDLE_MULTIBYTE) + #define CHECK_LPOS() \ diff --git a/src/patches/readline/readline52-003 b/src/patches/readline/readline52-003 new file mode 100644 index 0000000000..06916b3b24 --- /dev/null +++ b/src/patches/readline/readline52-003 @@ -0,0 +1,37 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-003 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1171795523.8021.18.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html + +Bug-Description: + +When moving the cursor, bash sometimes misplaces the cursor when the prompt +contains two or more multibyte characters. The particular circumstance that +uncovered the problem was having the (multibyte) current directory name in +the prompt string. + +Patch: + +*** ../readline-5.2.2/display.c Fri Jan 19 13:34:50 2007 +--- display.c Sat Mar 10 17:25:44 2007 +*************** +*** 1745,1749 **** + { + dpos = _rl_col_width (data, 0, new); +! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1745,1752 ---- + { + dpos = _rl_col_width (data, 0, new); +! /* Use NEW when comparing against the last invisible character in the +! prompt string, since they're both buffer indices and DPOS is a +! desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; diff --git a/src/patches/readline/readline52-004 b/src/patches/readline/readline52-004 new file mode 100644 index 0000000000..b165ad9f40 --- /dev/null +++ b/src/patches/readline/readline52-004 @@ -0,0 +1,70 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-004 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1173636022.7039.36.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html + +Bug-Description: + +When restoring the original prompt after finishing an incremental search, +bash sometimes places the cursor incorrectly if the primary prompt contains +invisible characters. + +Patch: + +*** ../readline-5.2.3/display.c Fri Apr 20 13:30:16 2007 +--- display.c Fri Apr 20 15:17:01 2007 +*************** +*** 1599,1604 **** + if (temp > 0) + { + _rl_output_some_chars (nfd, temp); +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);; + } + } +--- 1599,1618 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! { +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp); +! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) +! { +! _rl_last_c_pos -= wrap_offset; +! cpos_adjusted = 1; +! } +! } +! else +! _rl_last_c_pos += temp; + } + } +*************** +*** 1608,1613 **** +--- 1622,1639 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; /* XXX */ ++ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ++ { ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ } + } + lendiff = (oe - old) - (ne - new); diff --git a/src/patches/readline/readline52-005 b/src/patches/readline/readline52-005 new file mode 100644 index 0000000000..d192ac1520 --- /dev/null +++ b/src/patches/readline/readline52-005 @@ -0,0 +1,328 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-005 + +Bug-Reported-by: Thomas Loeber +Bug-Reference-ID: <200703082223.08919.ifp@loeber1.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html + +Bug-Description: + +When rl_read_key returns -1, indicating that readline's controlling terminal +has been invalidated for some reason (e.g., receiving a SIGHUP), the error +status was not reported correctly to the caller. This could cause input +loops. + +Patch: + +*** ../readline-5.2/complete.c Fri Jul 28 11:35:49 2006 +--- complete.c Tue Mar 13 08:50:16 2007 +*************** +*** 429,433 **** + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +--- 440,444 ---- + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR || c < 0) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006 +--- input.c Wed May 2 16:07:59 2007 +*************** +*** 514,518 **** + int size; + { +! int mb_len = 0; + size_t mbchar_bytes_length; + wchar_t wc; +--- 522,526 ---- + int size; + { +! int mb_len, c; + size_t mbchar_bytes_length; + wchar_t wc; +*************** +*** 521,531 **** + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! mbchar[mb_len++] = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +--- 529,545 ---- + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! +! mb_len = 0; + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ break; ++ ++ mbchar[mb_len++] = c; ++ + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +*************** +*** 565,569 **** + c = first; + memset (mb, 0, mlen); +! for (i = 0; i < mlen; i++) + { + mb[i] = (char)c; +--- 579,583 ---- + c = first; + memset (mb, 0, mlen); +! for (i = 0; c >= 0 && i < mlen; i++) + { + mb[i] = (char)c; +*** ../readline-5.2/isearch.c Mon Dec 26 17:18:53 2005 +--- isearch.c Fri Mar 9 14:30:59 2007 +*************** +*** 328,333 **** + + f = (rl_command_func_t *)NULL; +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +--- 328,340 ---- + + f = (rl_command_func_t *)NULL; +! +! if (c < 0) +! { +! cxt->sflags |= SF_FAILED; +! cxt->history_pos = cxt->last_found_line; +! return -1; +! } +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +*** ../readline-5.2/misc.c Mon Dec 26 17:20:46 2005 +--- misc.c Fri Mar 9 14:44:11 2007 +*************** +*** 147,150 **** +--- 147,152 ---- + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); ++ if (key < 0) ++ return -1; + return (_rl_dispatch (key, _rl_keymap)); + } +*** ../readline-5.2/readline.c Wed Aug 16 15:00:36 2006 +--- readline.c Fri Mar 9 14:47:24 2007 +*************** +*** 646,649 **** +--- 669,677 ---- + { + nkey = _rl_subseq_getchar (cxt->okey); ++ if (nkey < 0) ++ { ++ _rl_abort_internal (); ++ return -1; ++ } + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); + cxt->flags |= KSEQ_DISPATCHED; +*** ../readline-5.2/text.c Fri Jul 28 11:55:27 2006 +--- text.c Sun Mar 25 13:41:38 2007 +*************** +*** 858,861 **** +--- 864,870 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_SIGNALS) + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) +*************** +*** 1521,1524 **** +--- 1530,1536 ---- + mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX); + ++ if (mb_len <= 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, mbchar, mb_len)); +*************** +*** 1537,1540 **** +--- 1549,1555 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, c)); +*** ../readline-5.2/vi_mode.c Sat Jul 29 16:42:28 2006 +--- vi_mode.c Fri Mar 9 15:02:11 2007 +*************** +*** 887,890 **** +--- 887,897 ---- + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } ++ + *nextkey = c; + +*************** +*** 903,906 **** +--- 910,918 ---- + c = rl_read_key (); /* real command */ + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } + *nextkey = c; + } +*************** +*** 1225,1236 **** + _rl_callback_generic_arg *data; + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + + _rl_callback_func = 0; + _rl_want_redisplay = 1; +--- 1243,1262 ---- + _rl_callback_generic_arg *data; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) +! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + ++ if (c <= 0) ++ return -1; ++ ++ #if !defined (HANDLE_MULTIBYTE) ++ _rl_vi_last_search_char = c; ++ #endif ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1248,1251 **** +--- 1274,1278 ---- + int count, key; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) + static char *target; +*************** +*** 1294,1302 **** + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + } +--- 1321,1335 ---- + { + #if defined (HANDLE_MULTIBYTE) +! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +! if (c <= 0) +! return -1; +! _rl_vi_last_search_mblen = c; + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ return -1; ++ _rl_vi_last_search_char = c; + #endif + } +*************** +*** 1468,1471 **** +--- 1501,1507 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +*************** +*** 1486,1489 **** +--- 1522,1528 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1517,1520 **** +--- 1556,1562 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + return (_rl_vi_change_char (count, c, mb)); + } +*************** +*** 1651,1655 **** + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1693,1697 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*************** +*** 1703,1707 **** + return 0; + } +! else if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1745,1749 ---- + return 0; + } +! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); diff --git a/src/patches/readline/readline52-006 b/src/patches/readline/readline52-006 new file mode 100644 index 0000000000..d7391438d3 --- /dev/null +++ b/src/patches/readline/readline52-006 @@ -0,0 +1,62 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-006 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1178376645.9063.25.camel@localhost> +Bug-Reference-URL: http://bugs.gentoo.org/177095 + +Bug-Description: + +The readline display code miscalculated the screen position when performing +a redisplay in which the new text occupies more screen space that the old, +but takes fewer bytes to do so (e.g., when replacing a shorter string +containing multibyte characters with a longer one containing only ASCII). + +Patch: + +*** ../readline-5.2/display.c Thu Apr 26 11:38:22 2007 +--- display.c Thu Jul 12 23:10:10 2007 +*************** +*** 1519,1527 **** + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +--- 1568,1596 ---- + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; ++ /* If col_lendiff is > 0, implying that the new string takes up more ++ screen real estate than the old, but lendiff is < 0, meaning that it ++ takes fewer bytes, we need to just output the characters starting ++ from the first difference. These will overwrite what is on the ++ display, so there's no reason to do a smart update. This can really ++ only happen in a multibyte environment. */ ++ if (lendiff < 0) ++ { ++ _rl_output_some_chars (nfd, temp); ++ _rl_last_c_pos += _rl_col_width (nfd, 0, temp); ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ return; ++ } + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and diff --git a/src/patches/readline/readline52-007 b/src/patches/readline/readline52-007 new file mode 100644 index 0000000000..f75f53fc66 --- /dev/null +++ b/src/patches/readline/readline52-007 @@ -0,0 +1,65 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-007 + +Bug-Reported-by: Tom Bjorkholm +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html + + +Bug-Description: + +An off-by-one error in readline's input buffering caused readline to drop +each 511th character of buffered input (e.g., when pasting a large amount +of data into a terminal window). + +Patch: + +*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006 +--- input.c Tue Jul 17 09:24:21 2007 +*************** +*** 134,139 **** + + *key = ibuffer[pop_index++]; +! + if (pop_index >= ibuffer_len) + pop_index = 0; + +--- 134,142 ---- + + *key = ibuffer[pop_index++]; +! #if 0 + if (pop_index >= ibuffer_len) ++ #else ++ if (pop_index > ibuffer_len) ++ #endif + pop_index = 0; + +*************** +*** 251,255 **** + { + k = (*rl_getc_function) (rl_instream); +! rl_stuff_char (k); + if (k == NEWLINE || k == RETURN) + break; +--- 254,259 ---- + { + k = (*rl_getc_function) (rl_instream); +! if (rl_stuff_char (k) == 0) +! break; /* some problem; no more room */ + if (k == NEWLINE || k == RETURN) + break; +*************** +*** 374,378 **** +--- 378,386 ---- + } + ibuffer[push_index++] = key; ++ #if 0 + if (push_index >= ibuffer_len) ++ #else ++ if (push_index > ibuffer_len) ++ #endif + push_index = 0; + diff --git a/src/patches/readline/readline52-008 b/src/patches/readline/readline52-008 new file mode 100644 index 0000000000..1d7f3277f9 --- /dev/null +++ b/src/patches/readline/readline52-008 @@ -0,0 +1,70 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-008 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: <4702ED8A.5000503@thequod.de> +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938 + +Bug-Description: + +When updating the display after displaying, for instance, a list of possible +completions, readline will place the cursor at the wrong position if the +prompt contains invisible characters and a newline. + +Patch: + +*** ../readline-5.2-patched/display.c Mon Aug 6 14:26:29 2007 +--- display.c Wed Oct 10 22:43:58 2007 +*************** +*** 1049,1053 **** + else + tx = nleft; +! if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +--- 1049,1053 ---- + else + tx = nleft; +! if (tx >= 0 && _rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1205,1209 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1466,1469 **** +--- 1466,1471 ---- + } + ++ o_cpos = _rl_last_c_pos; ++ + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a +*************** +*** 1475,1479 **** + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +--- 1477,1483 ---- + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && +! (_rl_last_c_pos > 0 || o_cpos > 0) && +! _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif diff --git a/src/patches/readline/readline52-009 b/src/patches/readline/readline52-009 new file mode 100644 index 0000000000..af9e381742 --- /dev/null +++ b/src/patches/readline/readline52-009 @@ -0,0 +1,45 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-009 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under some circumstances, readline will incorrectly display a prompt string +containing invisible characters after the final newline. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400 +--- display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 392,396 **** + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! (int *)NULL, + &prompt_physical_chars); + c = *t; *t = '\0'; +--- 420,424 ---- + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! &prompt_invis_chars_first_line, + &prompt_physical_chars); + c = *t; *t = '\0'; +*************** +*** 399,403 **** + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! &prompt_invis_chars_first_line, + (int *)NULL); + *t = c; +--- 427,431 ---- + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! (int *)NULL, + (int *)NULL); + *t = c; diff --git a/src/patches/readline/readline52-010 b/src/patches/readline/readline52-010 new file mode 100644 index 0000000000..ee5c026f82 --- /dev/null +++ b/src/patches/readline/readline52-010 @@ -0,0 +1,47 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-010 + +Bug-Reported-by: Miroslav Lichvar +Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html + +Bug-Description: + +In certain cases when outputting characters at the end of the line, +e.g., when displaying the prompt string, readline positions the cursor +incorrectly if the prompt string contains invisible characters and the +text being drawn begins before the last invisible character in the line. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400 +--- display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 1566,1574 **** + else + { +- /* We have horizontal scrolling and we are not inserting at +- the end. We have invisible characters in this line. This +- is a dumb update. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; + return; + } +--- 1619,1632 ---- + else + { + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } + return; + } diff --git a/src/patches/readline/readline52-011 b/src/patches/readline/readline52-011 new file mode 100644 index 0000000000..a1197ede64 --- /dev/null +++ b/src/patches/readline/readline52-011 @@ -0,0 +1,32 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-011 + +Bug-Reported-by: Uwe Doering +Bug-Reference-ID: <46F3DD72.2090801@geminix.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html + +Bug-Description: + +There is an off-by-one error in the code that buffers characters received +very quickly in succession, causing characters to be dropped. + +Patch: + +*** ../readline-5.2-patched/input.c 2007-08-25 13:47:10.000000000 -0400 +--- input.c 2007-10-12 22:55:25.000000000 -0400 +*************** +*** 155,159 **** + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len - 1; + ibuffer[pop_index] = key; + return (1); +--- 155,159 ---- + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len; + ibuffer[pop_index] = key; + return (1); diff --git a/src/patches/readline/readline52-012 b/src/patches/readline/readline52-012 new file mode 100644 index 0000000000..7b370240c7 --- /dev/null +++ b/src/patches/readline/readline52-012 @@ -0,0 +1,150 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-012 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This updates the options required to create shared libraries on several +systems, including Mac OS X 10.5 (darwin9.x), FreeBSD, NetBSD, OpenBSD, +AIX, and HP/UX. + +Patch: + +*** ../readline-5.2-patched/support/shobj-conf 2006-04-11 09:15:43.000000000 -0400 +--- support/shobj-conf 2007-12-06 23:46:41.000000000 -0500 +*************** +*** 11,15 **** + # chet@po.cwru.edu + +! # Copyright (C) 1996-2002 Free Software Foundation, Inc. + # + # This program is free software; you can redistribute it and/or modify +--- 11,15 ---- + # chet@po.cwru.edu + +! # Copyright (C) 1996-2007 Free Software Foundation, Inc. + # + # This program is free software; you can redistribute it and/or modify +*************** +*** 115,119 **** + ;; + +! freebsd2* | netbsd*) + SHOBJ_CFLAGS=-fpic + SHOBJ_LD=ld +--- 115,119 ---- + ;; + +! freebsd2*) + SHOBJ_CFLAGS=-fpic + SHOBJ_LD=ld +*************** +*** 126,130 **** + # FreeBSD-3.x ELF + freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) +! SHOBJ_CFLAGS=-fpic + SHOBJ_LD='${CC}' + +--- 126,130 ---- + # FreeBSD-3.x ELF + freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*) +! SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' + +*************** +*** 143,147 **** + + # Darwin/MacOS X +! darwin8*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +--- 143,147 ---- + + # Darwin/MacOS X +! darwin[89]*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +*************** +*** 154,158 **** + SHLIB_LIBSUFF='dylib' + +! SHOBJ_LDFLAGS='-undefined dynamic_lookup' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + +--- 154,158 ---- + SHLIB_LIBSUFF='dylib' + +! SHOBJ_LDFLAGS='-dynamiclib -dynamic -undefined dynamic_lookup -arch_only `/usr/bin/arch`' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + +*************** +*** 172,176 **** + + case "${host_os}" in +! darwin[78]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +--- 172,176 ---- + + case "${host_os}" in +! darwin[789]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +*************** +*** 183,187 **** + ;; + +! openbsd*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +--- 183,187 ---- + ;; + +! openbsd*|netbsd*) + SHOBJ_CFLAGS=-fPIC + SHOBJ_LD='${CC}' +*************** +*** 248,252 **** + ;; + +! aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com + SHOBJ_CFLAGS=-fpic + SHOBJ_LD='ld' +--- 248,252 ---- + ;; + +! aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*) # lightly tested by jik@cisco.com + SHOBJ_CFLAGS=-fpic + SHOBJ_LD='ld' +*************** +*** 259,263 **** + ;; + +! aix4.[2-9]*) + SHOBJ_CFLAGS=-K + SHOBJ_LD='ld' +--- 259,263 ---- + ;; + +! aix4.[2-9]*|aix[5-9].*) + SHOBJ_CFLAGS=-K + SHOBJ_LD='ld' +*************** +*** 330,334 **** + # if you have problems linking here, moving the `-Wl,+h,$@' from + # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work +! SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s' + + SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' +--- 330,334 ---- + # if you have problems linking here, moving the `-Wl,+h,$@' from + # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work +! SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s' + + SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)' diff --git a/src/patches/readline/readline52-013 b/src/patches/readline/readline52-013 new file mode 100644 index 0000000000..82a18972ac --- /dev/null +++ b/src/patches/readline/readline52-013 @@ -0,0 +1,135 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-013 + +Bug-Reported-by: slinkp +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html + +Bug-Description: + +The presence of invisible characters in a prompt longer than the screenwidth +with invisible characters on the first and last prompt lines caused readline +to place the cursor in the wrong physical location. + +Patch: + +*** ../readline-5.2-patched/display.c 2007-12-14 21:12:40.000000000 -0500 +--- display.c 2008-10-23 09:39:46.000000000 -0400 +*************** +*** 911,914 **** +--- 944,951 ---- + OFFSET (which has already been calculated above). */ + ++ #define INVIS_FIRST() (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset) ++ #define WRAP_OFFSET(line, offset) ((line == 0) \ ++ ? (offset ? INVIS_FIRST() : 0) \ ++ : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0)) + #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) + #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) +*************** +*** 945,949 **** + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= wrap_offset; + + /* If this is the line with the prompt, we might need to +--- 982,992 ---- + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ +! else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth && +! (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && +! cpos_adjusted == 0 && +! _rl_last_c_pos != o_cpos && +! _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line)) +! _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line); + + /* If this is the line with the prompt, we might need to +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1264,1268 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, twidth, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1221,1225 **** + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +--- 1280,1284 ---- + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +*************** +*** 1587,1599 **** + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); +- #if 1 + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! #else +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff); +! #endif + } + } +--- 1648,1660 ---- + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! else +! twidth = temp - lendiff; +! _rl_last_c_pos += twidth; + } + } +*************** +*** 1789,1793 **** + int cpos, dpos; /* current and desired cursor positions */ + +! woff = W_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +--- 1850,1854 ---- + int cpos, dpos; /* current and desired cursor positions */ + +! woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +*************** +*** 1803,1807 **** + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1864,1872 ---- + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars > _rl_screenwidth && +! _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset != woff && +! new > (prompt_last_invisible-_rl_screenwidth-wrap_offset))) + { + dpos -= woff; diff --git a/src/patches/readline/readline52-014 b/src/patches/readline/readline52-014 new file mode 100644 index 0000000000..8dfaae45de --- /dev/null +++ b/src/patches/readline/readline52-014 @@ -0,0 +1,49 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.2 +Patch-ID: readline52-014 + +Bug-Reported-by: Len Lattanzi +Bug-Reference-ID: <52B1297F-6675-45CC-B63E-24745337D006@apple.com> +Bug-Reference-URL: + +Bug-Description: + +On systems where mbrtowc() returns -2 when passed a length argument with +value 0, when using a multibyte locale, Readline's emacs-mode forward-char +at the end of a line will leave the point beyond the end of the line. + +Patch: + +*** ../readline-5.2-patched/mbutil.c 2009-05-29 23:09:26.000000000 -0400 +--- mbutil.c 2009-05-29 23:10:12.000000000 -0400 +*************** +*** 78,82 **** + int seed, count, find_non_zero; + { +! size_t tmp; + mbstate_t ps; + int point; +--- 78,82 ---- + int seed, count, find_non_zero; + { +! size_t tmp, len; + mbstate_t ps; + int point; +*************** +*** 99,103 **** + while (count > 0) + { +! tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { +--- 99,106 ---- + while (count > 0) + { +! len = strlen (string + point); +! if (len == 0) +! break; +! tmp = mbrtowc (&wc, string+point, len, &ps); + if (MB_INVALIDCH ((size_t)tmp)) + { diff --git a/src/patches/readline/readline62-001 b/src/patches/readline/readline62-001 new file mode 100644 index 0000000000..d4563c3b11 --- /dev/null +++ b/src/patches/readline/readline62-001 @@ -0,0 +1,46 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-001 + +Bug-Reported-by: Clark J. Wang +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html + +Bug-Description: + +The readline vi-mode `cc', `dd', and `yy' commands failed to modify the +entire line. + +[This patch intentionally does not modify patchlevel] + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/vi_mode.c 2010-11-20 19:51:39.000000000 -0500 +--- vi_mode.c 2011-02-17 20:24:25.000000000 -0500 +*************** +*** 1115,1119 **** + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (0); + } + #if defined (READLINE_CALLBACKS) +--- 1115,1119 ---- + _rl_vi_last_motion = c; + RL_UNSETSTATE (RL_STATE_VIMOTION); +! return (vidomove_dispatch (m)); + } + #if defined (READLINE_CALLBACKS) +*** ../readline-6.2-patched/callback.c 2010-06-06 12:18:58.000000000 -0400 +--- callback.c 2011-02-17 20:43:28.000000000 -0500 +*************** +*** 149,152 **** +--- 149,155 ---- + /* Should handle everything, including cleanup, numeric arguments, + and turning off RL_STATE_VIMOTION */ ++ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) ++ _rl_internal_char_cleanup (); ++ + return; + } diff --git a/src/patches/readline/readline62-002 b/src/patches/readline/readline62-002 new file mode 100644 index 0000000000..3dc260400b --- /dev/null +++ b/src/patches/readline/readline62-002 @@ -0,0 +1,57 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-002 + +Bug-Reported-by: Vincent Sheffer +Bug-Reference-ID: +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html + +Bug-Description: + +The readline shared library helper script needs to be updated for Mac OS X +10.7 (Lion, darwin11). + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400 +--- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400 +*************** +*** 158,162 **** + + # Darwin/MacOS X +! darwin[89]*|darwin10*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +--- 172,176 ---- + + # Darwin/MacOS X +! darwin[89]*|darwin1[012]*) + SHOBJ_STATUS=supported + SHLIB_STATUS=supported +*************** +*** 187,191 **** + + case "${host_os}" in +! darwin[789]*|darwin10*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; +--- 201,205 ---- + + case "${host_os}" in +! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS='' + SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + ;; + +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 1 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 2 diff --git a/src/patches/readline/readline62-003 b/src/patches/readline/readline62-003 new file mode 100644 index 0000000000..0462242e0c --- /dev/null +++ b/src/patches/readline/readline62-003 @@ -0,0 +1,76 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-003 + +Bug-Reported-by: Max Horn +Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html + +Bug-Description: + +A change between readline-6.1 and readline-6.2 to prevent the readline input +hook from being called too frequently had the side effect of causing delays +when reading pasted input on systems such as Mac OS X. This patch fixes +those delays while retaining the readline-6.2 behavior. + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/input.c 2010-05-30 18:33:01.000000000 -0400 +--- input.c 2012-06-25 21:08:42.000000000 -0400 +*************** +*** 410,414 **** + rl_read_key () + { +! int c; + + rl_key_sequence_length++; +--- 412,416 ---- + rl_read_key () + { +! int c, r; + + rl_key_sequence_length++; +*************** +*** 430,441 **** + while (rl_event_hook) + { +! if (rl_gather_tyi () < 0) /* XXX - EIO */ + { + rl_done = 1; + return ('\n'); + } + RL_CHECK_SIGNALS (); +- if (rl_get_char (&c) != 0) +- break; + if (rl_done) /* XXX - experimental */ + return ('\n'); +--- 432,447 ---- + while (rl_event_hook) + { +! if (rl_get_char (&c) != 0) +! break; +! +! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ + { + rl_done = 1; + return ('\n'); + } ++ else if (r == 1) /* read something */ ++ continue; ++ + RL_CHECK_SIGNALS (); + if (rl_done) /* XXX - experimental */ + return ('\n'); +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 2 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 3 diff --git a/src/patches/readline/readline62-004 b/src/patches/readline/readline62-004 new file mode 100644 index 0000000000..5f3ba9bb32 --- /dev/null +++ b/src/patches/readline/readline62-004 @@ -0,0 +1,108 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 6.2 +Patch-ID: readline62-004 + +Bug-Reported-by: Jakub Filak +Bug-Reference-ID: +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=813289 + +Bug-Description: + +Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy' +commands leads to an infinite loop. + +Patch (apply with `patch -p0'): + +*** ../readline-6.2-patched/vi_mode.c 2011-02-25 11:17:02.000000000 -0500 +--- vi_mode.c 2012-06-02 12:24:47.000000000 -0400 +*************** +*** 1235,1243 **** + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing) + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +--- 1297,1313 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */ + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing) /* handle redoing `dd' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*************** +*** 1317,1325 **** + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing) + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +--- 1387,1403 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } +! else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */ + { + _rl_vimvcxt->motion = _rl_vi_last_motion; + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing) /* handle redoing `cc' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*************** +*** 1378,1381 **** +--- 1456,1472 ---- + r = rl_domove_motion_callback (_rl_vimvcxt); + } ++ else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ r = rl_domove_motion_callback (_rl_vimvcxt); ++ } ++ else if (vi_redoing) /* handle redoing `yy' here */ ++ { ++ _rl_vimvcxt->motion = _rl_vi_last_motion; ++ rl_mark = rl_end; ++ rl_beg_of_line (1, key); ++ RL_UNSETSTATE (RL_STATE_VIMOTION); ++ r = vidomove_dispatch (_rl_vimvcxt); ++ } + #if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) +*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500 +--- patchlevel 2011-11-17 11:09:35.000000000 -0500 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 3 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 4 diff --git a/src/patches/screen-4.0.3-stropts.patch b/src/patches/screen-4.0.3-stropts.patch new file mode 100644 index 0000000000..d6cbed74e3 --- /dev/null +++ b/src/patches/screen-4.0.3-stropts.patch @@ -0,0 +1,48 @@ +diff -up screen-4.0.3/tty.sh.stropts screen-4.0.3/tty.sh +--- screen-4.0.3/tty.sh.stropts 2003-09-08 16:24:25.000000000 +0200 ++++ screen-4.0.3/tty.sh 2008-04-07 11:28:34.000000000 +0200 +@@ -76,7 +76,7 @@ exit 0 + #endif + + #include "config.h" +-#ifdef SVR4 ++#if 0 + #include /* for I_POP */ + #endif + +diff -up screen-4.0.3/screen.c.stropts screen-4.0.3/screen.c +--- screen-4.0.3/screen.c.stropts 2008-04-07 11:25:21.000000000 +0200 ++++ screen-4.0.3/screen.c 2008-04-07 11:29:14.000000000 +0200 +@@ -50,7 +50,7 @@ + + #include "config.h" + +-#ifdef SVR4 ++#if 0 + # include + #endif + +diff -up screen-4.0.3/process.c.stropts screen-4.0.3/process.c +--- screen-4.0.3/process.c.stropts 2003-09-18 14:53:54.000000000 +0200 ++++ screen-4.0.3/process.c 2008-04-07 11:29:47.000000000 +0200 +@@ -37,7 +37,7 @@ + #include "config.h" + + /* for solaris 2.1, Unixware (SVR4.2) and possibly others: */ +-#ifdef SVR4 ++#if 0 + # include + #endif + +diff -up screen-4.0.3/pty.c.stropts screen-4.0.3/pty.c +--- screen-4.0.3/pty.c.stropts 2003-09-08 16:26:18.000000000 +0200 ++++ screen-4.0.3/pty.c 2008-04-07 11:30:07.000000000 +0200 +@@ -34,7 +34,7 @@ + #endif + + /* for solaris 2.1, Unixware (SVR4.2) and possibly others */ +-#ifdef HAVE_SVR4_PTYS ++#if 0 + # include + #endif + diff --git a/src/patches/slang-1.4.9-uclibc.patch b/src/patches/slang-1.4.9-uclibc.patch deleted file mode 100644 index 784714732d..0000000000 --- a/src/patches/slang-1.4.9-uclibc.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru slang-1.4.9.orig/src/slmisc.c slang-1.4.9/src/slmisc.c ---- slang-1.4.9.orig/src/slmisc.c 2003-03-23 07:06:40.000000000 +0000 -+++ slang-1.4.9/src/slmisc.c 2004-05-05 14:27:24.000000000 +0000 -@@ -565,7 +565,7 @@ - return (int) SLatol (s); - } - --#if !defined(HAVE_ISSETUGID) && defined(__GLIBC__) && (__GLIBC__ >= 2) -+#if 0 - extern int __libc_enable_secure; - # define HAVE___LIBC_ENABLE_SECURE 1 - #endif diff --git a/src/patches/texinfo-4.8-multibyte-1.patch b/src/patches/texinfo-4.8-multibyte-1.patch deleted file mode 100644 index 4676a792bc..0000000000 --- a/src/patches/texinfo-4.8-multibyte-1.patch +++ /dev/null @@ -1,44 +0,0 @@ -Submitted By: Alexander E. Patrakov -Date: 2005-07-12 -Initial Package Version: 4.8 -Upstream Status: Hack, won't submit -Origin: Alexander E. Patrakov -Description: Info assumes that a string width in character cells is the -same as its length in bytes. This patch avoids cases when this assumption -is not true. - -diff -ur texinfo-4.8/info/info.c texinfo-4.8.hacked/info/info.c ---- texinfo-4.8/info/info.c 2004-04-11 23:56:45.000000000 +0600 -+++ texinfo-4.8.hacked/info/info.c 2005-07-12 12:11:34.852485776 +0600 -@@ -154,6 +154,10 @@ - #ifdef HAVE_SETLOCALE - /* Set locale via LC_ALL. */ - setlocale (LC_ALL, ""); -+ /* But don't use translated messages in the case when -+ string width and length can differ */ -+ if (MB_CUR_MAX > 1) -+ setlocale(LC_MESSAGES, "C"); - #endif - - #ifdef ENABLE_NLS -diff -ur texinfo-4.8/info/man.c texinfo-4.8.hacked/info/man.c ---- texinfo-4.8/info/man.c 2004-04-11 23:56:46.000000000 +0600 -+++ texinfo-4.8.hacked/info/man.c 2005-07-12 12:08:40.267026800 +0600 -@@ -325,6 +325,17 @@ - freopen (NULL_DEVICE, "r", stdin); - dup2 (pipes[1], fileno (stdout)); - -+ if (MB_CUR_MAX > 1) -+ { -+ /* Info has trouble wrapping man output if it contains -+ multibyte characters */ -+ setenv("LANGUAGE", "C", 1); -+ setenv("LANG", "C", 1); -+ setenv("LC_MESSAGES", "C", 1); -+ setenv("LC_CTYPE", "C", 1); -+ setenv("LC_ALL", "C", 1); -+ } -+ - execv (formatter_args[0], formatter_args); - - /* If we get here, we couldn't exec, so close out the pipe and diff --git a/src/patches/texinfo-4.8-tempfile_fix-2.patch b/src/patches/texinfo-4.8-tempfile_fix-2.patch deleted file mode 100644 index 0d0b59424d..0000000000 --- a/src/patches/texinfo-4.8-tempfile_fix-2.patch +++ /dev/null @@ -1,80 +0,0 @@ -Updated By: Bruce Dubbs (bdubbs -aT- linuxfromscratch -DoT- org) -Date: 2005-12-12 -Submitted By: Archaic (archaic -aT- linuxfromscratch -DoT- org) -Date: 2005-10-08 -Initial Package Version: 4.8 -Origin: http://gentoo.kems.net/gentoo-portage/sys-apps/texinfo/files/texinfo-4.8-tempfile.patch -Upstream Status: A few patches are floating around in Debian BZ #328365 of which - upstream hasn't made a full commitment on yet. -Description: (CAN-2005-3011) texindex in texinfo 4.8 and earlier allows local - users to overwrite arbitrary files via a symlink attack on - temporary files. -Update: Changed to not pass a constant string to mktemp(). - -diff -Naur texinfo-4.8.orig/util/texindex.c texinfo-4.8/util/texindex.c ---- texinfo-4.8.orig/util/texindex.c 2005-12-11 23:29:08.000000000 -0600 -+++ texinfo-4.8/util/texindex.c 2005-12-11 23:33:31.000000000 -0600 -@@ -99,6 +99,9 @@ - /* Directory to use for temporary files. On Unix, it ends with a slash. */ - char *tempdir; - -+/* Basename for temp files inside of tempdir. */ -+char *tempbase; -+ - /* Number of last temporary file. */ - int tempcount; - -@@ -153,6 +156,7 @@ - main (int argc, char **argv) - { - int i; -+ char template[]="txidxXXXXXX"; - - tempcount = 0; - last_deleted_tempcount = 0; -@@ -190,6 +194,11 @@ - - decode_command (argc, argv); - -+ /* XXX mkstemp not appropriate, as we need to have somewhat predictable -+ * names. But race condition was fixed, see maketempname. -+ */ -+ tempbase = mktemp (template); -+ - /* Process input files completely, one by one. */ - - for (i = 0; i < num_infiles; i++) -@@ -389,21 +398,21 @@ - static char * - maketempname (int count) - { -- static char *tempbase = NULL; - char tempsuffix[10]; -- -- if (!tempbase) -- { -- int fd; -- tempbase = concat (tempdir, "txidxXXXXXX"); -- -- fd = mkstemp (tempbase); -- if (fd == -1) -- pfatal_with_name (tempbase); -- } -+ char *name, *tmp_name; -+ int fd; - - sprintf (tempsuffix, ".%d", count); -- return concat (tempbase, tempsuffix); -+ tmp_name = concat (tempdir, tempbase); -+ name = concat (tmp_name, tempsuffix); -+ free(tmp_name); -+ -+ fd = open (name, O_CREAT|O_EXCL|O_WRONLY, 0600); -+ if (fd == -1) -+ pfatal_with_name (name); -+ -+ close(fd); -+ return name; - } - - diff --git a/src/patches/uClibc-gcc4-genwctype.patch b/src/patches/uClibc-gcc4-genwctype.patch deleted file mode 100644 index 568e5bdb72..0000000000 --- a/src/patches/uClibc-gcc4-genwctype.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- uClibc-0.9.28/extra/locale/gen_wctype.c.orig 2005-08-18 00:49:41.000000000 +0200 -+++ uClibc-0.9.28/extra/locale/gen_wctype.c 2005-12-09 16:29:53.000000000 +0100 -@@ -796,6 +796,7 @@ - ti[i] = ut + j; - j += blocksize; - } -+ memset(uniqblock, 0, sizeof(uniqblock)); - - /* sort */ - nu_val = blocksize; - diff --git a/src/patches/udev-125-ext4_wo_journal.patch b/src/patches/udev-125-ext4_wo_journal.patch new file mode 100644 index 0000000000..77072cea60 --- /dev/null +++ b/src/patches/udev-125-ext4_wo_journal.patch @@ -0,0 +1,50 @@ +diff -Naur udev-125.org/extras/volume_id/lib/ext.c udev-125/extras/volume_id/lib/ext.c +--- udev-125.org/extras/volume_id/lib/ext.c 2008-07-18 16:26:55.000000000 +0200 ++++ udev-125/extras/volume_id/lib/ext.c 2012-06-25 00:52:40.976563010 +0200 +@@ -160,32 +160,31 @@ + goto found; + } + +- /* has journal */ +- if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) { +- /* "use on development code" is ext4dev */ +- if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) { +- id->type = "ext4dev"; +- goto found; +- } ++ /* "use on development code" is ext4dev */ ++ if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) { ++ id->type = "ext4dev"; ++ goto found; ++ } + +- /* incompatible ext3 features is ext4 */ +- if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 || +- (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) { +- id->type = "ext4"; +- goto found; +- } ++ /* incompatible ext3 features is ext4 */ ++ if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 || ++ (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) { ++ id->type = "ext4"; ++ goto found; ++ } + ++ /* has journal */ ++ if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) { + id->type = "ext3"; + goto found; + } else { +- /* no incompatible ext2 feature is ext2 */ ++ /* no incompatible ext2 feature is ext2 */ + if ((feature_ro_compat & EXT2_FEATURE_RO_COMPAT_UNSUPPORTED) == 0 && + (feature_incompat & EXT2_FEATURE_INCOMPAT_UNSUPPORTED) == 0) { + id->type = "ext2"; + goto found; + } + } +- + return -1; + + found: diff --git a/src/patches/udev-125-netif_rename.patch b/src/patches/udev-125-netif_rename.patch deleted file mode 100644 index c80b05afc3..0000000000 --- a/src/patches/udev-125-netif_rename.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff -Nur udev-125.vanilla/udev_device.c udev-125/udev_device.c ---- udev-125.vanilla/udev_device.c 2008-07-18 16:26:55.000000000 +0200 -+++ udev-125/udev_device.c 2010-07-25 18:15:12.289242450 +0200 -@@ -123,42 +123,7 @@ - if (retval == 0) - kernel_log(ifr); - else { -- int loop; -- -- /* see if the destination interface name already exists */ -- if (errno != EEXIST) { -- err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno)); -- goto exit; -- } -- -- /* free our own name, another process may wait for us */ -- strlcpy(ifr.ifr_newname, udev->dev->kernel, IFNAMSIZ); -- strlcat(ifr.ifr_newname, "_rename", IFNAMSIZ); -- retval = ioctl(sk, SIOCSIFNAME, &ifr); -- if (retval != 0) { -- err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno)); -- goto exit; -- } -- -- /* wait 30 seconds for our target to become available */ -- strlcpy(ifr.ifr_name, ifr.ifr_newname, IFNAMSIZ); -- strlcpy(ifr.ifr_newname, udev->name, IFNAMSIZ); -- loop = 30 * 20; -- while (loop--) { -- retval = ioctl(sk, SIOCSIFNAME, &ifr); -- if (retval == 0) { -- kernel_log(ifr); -- break; -- } -- -- if (errno != EEXIST) { -- err("error changing net interface name %s to %s: %s\n", -- ifr.ifr_name, ifr.ifr_newname, strerror(errno)); -- break; -- } -- dbg("wait for netif '%s' to become free, loop=%i\n", udev->name, (30 * 20) - loop); -- usleep(1000 * 1000 / 20); -- } -+ err("error changing netif name %s to %s: %s\n", ifr.ifr_name, ifr.ifr_newname, strerror(errno)); - } - - exit: diff --git a/src/patches/udev-141_no_netif_rename.patch b/src/patches/udev-141_no_netif_rename.patch new file mode 100644 index 0000000000..fcc5009dd5 --- /dev/null +++ b/src/patches/udev-141_no_netif_rename.patch @@ -0,0 +1,50 @@ +diff -Naur udev-141.org/udev/udev-event.c udev-141/udev/udev-event.c +--- udev-141.org/udev/udev-event.c 2009-02-24 15:08:35.000000000 +0100 ++++ udev-141/udev/udev-event.c 2012-10-30 12:27:00.262833136 +0100 +@@ -486,45 +486,8 @@ + if (err == 0) + rename_netif_kernel_log(ifr); + else { +- int loop; +- +- /* see if the destination interface name already exists */ +- if (errno != EEXIST) { +- err(event->udev, "error changing netif name %s to %s: %m\n", +- ifr.ifr_name, ifr.ifr_newname); +- goto exit; +- } +- +- /* free our own name, another process may wait for us */ +- util_strlcpy(ifr.ifr_newname, udev_device_get_sysname(dev), IFNAMSIZ); +- util_strlcat(ifr.ifr_newname, "_rename", IFNAMSIZ); +- err = ioctl(sk, SIOCSIFNAME, &ifr); +- if (err != 0) { +- err(event->udev, "error changing netif name %s to %s: %m\n", ++ err(event->udev, "error changing netif name %s to %s: %m\n", + ifr.ifr_name, ifr.ifr_newname); +- goto exit; +- } +- +- /* wait 90 seconds for our target to become available */ +- util_strlcpy(ifr.ifr_name, ifr.ifr_newname, IFNAMSIZ); +- util_strlcpy(ifr.ifr_newname, event->name, IFNAMSIZ); +- loop = 90 * 20; +- while (loop--) { +- err = ioctl(sk, SIOCSIFNAME, &ifr); +- if (err == 0) { +- rename_netif_kernel_log(ifr); +- break; +- } +- +- if (errno != EEXIST) { +- err(event->udev, "error changing net interface name %s to %s: %m\n", +- ifr.ifr_name, ifr.ifr_newname); +- break; +- } +- dbg(event->udev, "wait for netif '%s' to become free, loop=%i\n", +- event->name, (90 * 20) - loop); +- usleep(1000 * 1000 / 20); +- } + } + exit: + close(sk); diff --git a/src/patches/udev-config-6.2_persistent-storage-fix.patch b/src/patches/udev-config-6.2_persistent-storage-fix.patch deleted file mode 100644 index 172091a4db..0000000000 --- a/src/patches/udev-config-6.2_persistent-storage-fix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur udev-config-6.2.org/60-persistent-storage.rules udev-config-6.2/60-persistent-storage.rules ---- udev-config-6.2.org/60-persistent-storage.rules 2006-05-13 01:03:13.000000000 +0200 -+++ udev-config-6.2/60-persistent-storage.rules 2010-08-14 11:08:35.000000000 +0200 -@@ -9,7 +9,7 @@ - - # never access removable ide devices, the drivers are causing event loops on open() - KERNEL=="hd*[!0-9]", SYSFS{removable}=="1", DRIVER=="ide-cs|ide-floppy", GOTO="persistent_storage_end" --KERNEL=="hd*[0-9]", SYSFS{../removable}=="1", GOTO="persistent_storage_end" -+KERNEL=="hd*[0-9]", SYSFS{removable}=="1", GOTO="persistent_storage_end" - - # for partitions import parent information - KERNEL=="*[0-9]", IMPORT{parent}=="ID_*" diff --git a/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch b/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch deleted file mode 100644 index ef02bf789c..0000000000 --- a/src/patches/udev-config-6.2_remove-lfs-usb-rule.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur udev-config-6.2.org/25-lfs.rules udev-config-6.2/25-lfs.rules ---- udev-config-6.2.org/25-lfs.rules 2006-07-14 23:29:28.000000000 +0200 -+++ udev-config-6.2/25-lfs.rules 2010-12-21 18:55:40.375602794 +0100 -@@ -84,7 +84,6 @@ - - # USB devices go in their own subdirectory - --SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'X=%k; X=$${X#usbdev}; B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", NAME="%c" - KERNEL=="hiddev*", NAME="usb/%k" - KERNEL=="auer*", NAME="usb/%k" - KERNEL=="legousbtower*", NAME="usb/%k" diff --git a/src/patches/v4l-dvb_bestunar_us638x.patch b/src/patches/v4l-dvb_bestunar_us638x.patch new file mode 100644 index 0000000000..e3ac8d2614 --- /dev/null +++ b/src/patches/v4l-dvb_bestunar_us638x.patch @@ -0,0 +1,2810 @@ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Kconfig v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Kconfig +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Kconfig 2012-08-22 05:45:23.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Kconfig 2012-11-24 13:35:19.220030262 +0100 +@@ -200,6 +200,13 @@ + help + A DVB-S/S2 tuner module. Say Y when you want to support this frontend. + ++config DVB_M88DS3103 ++ tristate "Montage DS3103 based" ++ depends on DVB_CORE && I2C ++ default m if DVB_FE_CUSTOMISE ++ help ++ A DVB-S/S2 tuner module. Say Y when you want to support this frontend. ++ + config DVB_SI21XX + tristate "Silicon Labs SI21XX based" + depends on DVB_CORE && I2C +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.c v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.c +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.c 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.c 2012-11-24 13:34:43.713346302 +0100 +@@ -0,0 +1,1710 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ Copyright (C) 2011 Max nibble ++ Copyright (C) 2010 Montage Technology ++ Copyright (C) 2009 Konstantin Dimitrov. ++ ++ 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 2 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, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "dvb_frontend.h" ++#include "m88ds3103.h" ++#include "m88ds3103_priv.h" ++ ++static int debug; ++module_param(debug, int, 0644); ++MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); ++ ++#define dprintk(args...) \ ++ do { \ ++ if (debug) \ ++ printk(KERN_INFO "m88ds3103: " args); \ ++ } while (0) ++ ++/*demod register operations.*/ ++static int m88ds3103_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = state->config->demod_address, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ if (debug > 1) ++ printk("m88ds3103: %s: write reg 0x%02x, value 0x%02x\n", ++ __func__, reg, data); ++ ++ err = i2c_transfer(state->i2c, &msg, 1); ++ if (err != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ return 0; ++} ++ ++static int m88ds3103_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = state->config->demod_address, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = state->config->demod_address, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x (error=%d)\n", ++ __func__, reg, ret); ++ return ret; ++ } ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: read reg 0x%02x, value 0x%02x\n", ++ reg, b1[0]); ++ ++ return b1[0]; ++} ++ ++/*tuner register operations.*/ ++static int m88ds3103_tuner_writereg(struct m88ds3103_state *state, int reg, int data) ++{ ++ u8 buf[] = { reg, data }; ++ struct i2c_msg msg = { .addr = 0x60, ++ .flags = 0, .buf = buf, .len = 2 }; ++ int err; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ err = i2c_transfer(state->i2c, &msg, 1); ++ ++ if (err != 1) { ++ printk("%s: writereg error(err == %i, reg == 0x%02x," ++ " value == 0x%02x)\n", __func__, err, reg, data); ++ return -EREMOTEIO; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tuner_readreg(struct m88ds3103_state *state, u8 reg) ++{ ++ int ret; ++ u8 b0[] = { reg }; ++ u8 b1[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { .addr = 0x60, .flags = 0, ++ .buf = b0, .len = 1 }, ++ { .addr = 0x60, .flags = I2C_M_RD, ++ .buf = b1, .len = 1 } ++ }; ++ ++ m88ds3103_writereg(state, 0x03, 0x11); ++ ret = i2c_transfer(state->i2c, msg, 2); ++ ++ if (ret != 2) { ++ printk(KERN_ERR "%s: reg=0x%x(error=%d)\n", __func__, reg, ret); ++ return ret; ++ } ++ ++ return b1[0]; ++} ++ ++/* Bulk demod I2C write, for firmware download. */ ++static int m88ds3103_writeregN(struct m88ds3103_state *state, int reg, ++ const u8 *data, u16 len) ++{ ++ int ret = -EREMOTEIO; ++ struct i2c_msg msg; ++ u8 *buf; ++ ++ buf = kmalloc(len + 1, GFP_KERNEL); ++ if (buf == NULL) { ++ printk("Unable to kmalloc\n"); ++ ret = -ENOMEM; ++ goto error; ++ } ++ ++ *(buf) = reg; ++ memcpy(buf + 1, data, len); ++ ++ msg.addr = state->config->demod_address; ++ msg.flags = 0; ++ msg.buf = buf; ++ msg.len = len + 1; ++ ++ if (debug > 1) ++ printk(KERN_INFO "m88ds3103: %s: write regN 0x%02x, len = %d\n", ++ __func__, reg, len); ++ ++ ret = i2c_transfer(state->i2c, &msg, 1); ++ if (ret != 1) { ++ printk(KERN_ERR "%s: writereg error(err == %i, reg == 0x%02x\n", ++ __func__, ret, reg); ++ ret = -EREMOTEIO; ++ } ++ ++error: ++ kfree(buf); ++ ++ return ret; ++} ++ ++static int m88ds3103_load_firmware(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ const struct firmware *fw; ++ int i, ret = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ if (state->skip_fw_load) ++ return 0; ++ /* Load firmware */ ++ /* request the firmware, this will block until someone uploads it */ ++ if(state->demod_id == DS3000_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3000_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3000_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ }else if(state->demod_id == DS3103_ID){ ++ printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, ++ DS3103_DEFAULT_FIRMWARE); ++ ret = request_firmware(&fw, DS3103_DEFAULT_FIRMWARE, ++ state->i2c->dev.parent); ++ } ++ ++ printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", __func__); ++ if (ret) { ++ printk(KERN_ERR "%s: No firmware uploaded (timeout or file not " ++ "found?)\n", __func__); ++ return ret; ++ } ++ ++ /* Make sure we don't recurse back through here during loading */ ++ state->skip_fw_load = 1; ++ ++ dprintk("Firmware is %zu bytes (%02x %02x .. %02x %02x)\n", ++ fw->size, ++ fw->data[0], ++ fw->data[1], ++ fw->data[fw->size - 2], ++ fw->data[fw->size - 1]); ++ ++ /* stop internal mcu. */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* split firmware to download.*/ ++ for(i = 0; i < FW_DOWN_LOOP; i++){ ++ ret = m88ds3103_writeregN(state, 0xb0, &(fw->data[FW_DOWN_SIZE*i]), FW_DOWN_SIZE); ++ if(ret != 1) break; ++ } ++ /* start internal mcu. */ ++ if(ret == 1) ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ release_firmware(fw); ++ ++ dprintk("%s: Firmware upload %s\n", __func__, ++ ret == 1 ? "complete" : "failed"); ++ ++ if(ret == 1) ret = 0; ++ ++ /* Ensure firmware is always loaded if required */ ++ state->skip_fw_load = 0; ++ ++ return ret; ++} ++ ++ ++static int m88ds3103_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data; ++ ++ dprintk("%s(%d)\n", __func__, voltage); ++ ++ dprintk("m88ds3103:pin_ctrl = (%02x)\n", state->config->pin_ctrl); ++ ++ if(state->config->set_voltage) ++ state->config->set_voltage(fe, voltage); ++ ++ data = m88ds3103_readreg(state, 0xa2); ++ ++ if(state->config->pin_ctrl & 0x80){ /*If control pin is assigned.*/ ++ data &= ~0x03; /* bit0 V/H, bit1 off/on */ ++ if(state->config->pin_ctrl & 0x02) ++ data |= 0x02; ++ ++ switch (voltage) { ++ case SEC_VOLTAGE_18: ++ if((state->config->pin_ctrl & 0x01) == 0) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_13: ++ if(state->config->pin_ctrl & 0x01) ++ data |= 0x01; ++ break; ++ case SEC_VOLTAGE_OFF: ++ if(state->config->pin_ctrl & 0x02) ++ data &= ~0x02; ++ else ++ data |= 0x02; ++ break; ++ } ++ } ++ ++ m88ds3103_writereg(state, 0xa2, data); ++ ++ return 0; ++} ++ ++static int m88ds3103_read_status(struct dvb_frontend *fe, fe_status_t* status) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int lock = 0; ++ ++ *status = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ lock = m88ds3103_readreg(state, 0xd1); ++ dprintk("%s: SYS_DVBS status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x07) == 0x07){ ++ /*if((m88ds3103_readreg(state, 0x0d) & 0x07) == 0x07)*/ ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ } ++ break; ++ case SYS_DVBS2: ++ lock = m88ds3103_readreg(state, 0x0d); ++ dprintk("%s: SYS_DVBS2 status=%x.\n", __func__, lock); ++ ++ if ((lock & 0x8f) == 0x8f) ++ *status = FE_HAS_SIGNAL | FE_HAS_CARRIER ++ | FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK; ++ ++ break; ++ default: ++ break; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_read_ber(struct dvb_frontend *fe, u32* ber) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3; ++ u32 ldpc_frame_cnt, pre_err_packags, code_rate_fac = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ m88ds3103_writereg(state, 0xf9, 0x04); ++ tmp3 = m88ds3103_readreg(state, 0xf8); ++ if ((tmp3&0x10) == 0){ ++ tmp1 = m88ds3103_readreg(state, 0xf7); ++ tmp2 = m88ds3103_readreg(state, 0xf6); ++ tmp3 |= 0x10; ++ m88ds3103_writereg(state, 0xf8, tmp3); ++ state->preBer = (tmp1<<8) | tmp2; ++ } ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0x7e) & 0x0f; ++ switch(tmp1){ ++ case 0: code_rate_fac = 16008 - 80; break; ++ case 1: code_rate_fac = 21408 - 80; break; ++ case 2: code_rate_fac = 25728 - 80; break; ++ case 3: code_rate_fac = 32208 - 80; break; ++ case 4: code_rate_fac = 38688 - 80; break; ++ case 5: code_rate_fac = 43040 - 80; break; ++ case 6: code_rate_fac = 48408 - 80; break; ++ case 7: code_rate_fac = 51648 - 80; break; ++ case 8: code_rate_fac = 53840 - 80; break; ++ case 9: code_rate_fac = 57472 - 80; break; ++ case 10: code_rate_fac = 58192 - 80; break; ++ } ++ ++ tmp1 = m88ds3103_readreg(state, 0xd7) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xd6) & 0xff; ++ tmp3 = m88ds3103_readreg(state, 0xd5) & 0xff; ++ ldpc_frame_cnt = (tmp1 << 16) | (tmp2 << 8) | tmp3; ++ ++ tmp1 = m88ds3103_readreg(state, 0xf8) & 0xff; ++ tmp2 = m88ds3103_readreg(state, 0xf7) & 0xff; ++ pre_err_packags = tmp1<<8 | tmp2; ++ ++ if (ldpc_frame_cnt > 1000){ ++ m88ds3103_writereg(state, 0xd1, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x01); ++ m88ds3103_writereg(state, 0xf9, 0x00); ++ m88ds3103_writereg(state, 0xd1, 0x00); ++ state->preBer = pre_err_packags; ++ } ++ break; ++ default: ++ break; ++ } ++ *ber = state->preBer; ++ ++ return 0; ++} ++ ++static int m88ds3103_read_signal_strength(struct dvb_frontend *fe, ++ u16 *signal_strength) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u16 gain; ++ u8 gain1, gain2, gain3 = 0; ++ ++ dprintk("%s()\n", __func__); ++ ++ gain1 = m88ds3103_tuner_readreg(state, 0x3d) & 0x1f; ++ dprintk("%s: gain1 = 0x%02x \n", __func__, gain1); ++ ++ if (gain1 > 15) gain1 = 15; ++ gain2 = m88ds3103_tuner_readreg(state, 0x21) & 0x1f; ++ dprintk("%s: gain2 = 0x%02x \n", __func__, gain2); ++ ++ if(state->tuner_id == TS2022_ID){ ++ gain3 = (m88ds3103_tuner_readreg(state, 0x66)>>3) & 0x07; ++ dprintk("%s: gain3 = 0x%02x \n", __func__, gain3); ++ ++ if (gain2 > 16) gain2 = 16; ++ if (gain2 < 2) gain2 = 2; ++ if (gain3 > 6) gain3 = 6; ++ }else{ ++ if (gain2 > 13) gain2 = 13; ++ gain3 = 0; ++ } ++ ++ gain = gain1*23 + gain2*35 + gain3*29; ++ *signal_strength = 60000 - gain*55; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_snr(struct dvb_frontend *fe, u16 *p_snr) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, npow1, npow2, spow1, cnt; ++ u16 tmp, snr; ++ u32 npow, spow, snr_total; ++ static const u16 mes_log10[] ={ ++ 0, 3010, 4771, 6021, 6990, 7781, 8451, 9031, 9542, 10000, ++ 10414, 10792, 11139, 11461, 11761, 12041, 12304, 12553, 12788, 13010, ++ 13222, 13424, 13617, 13802, 13979, 14150, 14314, 14472, 14624, 14771, ++ 14914, 15052, 15185, 15315, 15441, 15563, 15682, 15798, 15911, 16021, ++ 16128, 16232, 16335, 16435, 16532, 16628, 16721, 16812, 16902, 16990, ++ 17076, 17160, 17243, 17324, 17404, 17482, 17559, 17634, 17709, 17782, ++ 17853, 17924, 17993, 18062, 18129, 18195, 18261, 18325, 18388, 18451, ++ 18513, 18573, 18633, 18692, 18751, 18808, 18865, 18921, 18976, 19031 ++ }; ++ static const u16 mes_loge[] ={ ++ 0, 6931, 10986, 13863, 16094, 17918, 19459, 20794, 21972, 23026, ++ 23979, 24849, 25649, 26391, 27081, 27726, 28332, 28904, 29444, 29957, ++ 30445, 30910, 31355, 31781, 32189, 32581, 32958, 33322, 33673, 34012, ++ 34340, 34657, ++ }; ++ ++ dprintk("%s()\n", __func__); ++ ++ snr = 0; ++ ++ switch (state->delivery_system){ ++ case SYS_DVBS: ++ cnt = 10; snr_total = 0; ++ while(cnt > 0){ ++ val = m88ds3103_readreg(state, 0xff); ++ snr_total += val; ++ cnt--; ++ } ++ tmp = (u16)(snr_total/80); ++ if(tmp > 0){ ++ if (tmp > 32) tmp = 32; ++ snr = (mes_loge[tmp - 1] * 100) / 45; ++ }else{ ++ snr = 0; ++ } ++ break; ++ case SYS_DVBS2: ++ cnt = 10; npow = 0; spow = 0; ++ while(cnt >0){ ++ npow1 = m88ds3103_readreg(state, 0x8c) & 0xff; ++ npow2 = m88ds3103_readreg(state, 0x8d) & 0xff; ++ npow += (((npow1 & 0x3f) + (u16)(npow2 << 6)) >> 2); ++ ++ spow1 = m88ds3103_readreg(state, 0x8e) & 0xff; ++ spow += ((spow1 * spow1) >> 1); ++ cnt--; ++ } ++ npow /= 10; spow /= 10; ++ if(spow == 0){ ++ snr = 0; ++ }else if(npow == 0){ ++ snr = 19; ++ }else{ ++ if(spow > npow){ ++ tmp = (u16)(spow / npow); ++ if (tmp > 80) tmp = 80; ++ snr = mes_log10[tmp - 1]*3; ++ }else{ ++ tmp = (u16)(npow / spow); ++ if (tmp > 80) tmp = 80; ++ snr = -(mes_log10[tmp - 1] / 1000); ++ } ++ } ++ break; ++ default: ++ break; ++ } ++ *p_snr = snr; ++ ++ return 0; ++} ++ ++ ++static int m88ds3103_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp1, tmp2, tmp3, data; ++ ++ dprintk("%s()\n", __func__); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ data = m88ds3103_readreg(state, 0xf8); ++ data |= 0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ tmp1 = m88ds3103_readreg(state, 0xf5); ++ tmp2 = m88ds3103_readreg(state, 0xf4); ++ *ucblocks = (tmp1 <<8) | tmp2; ++ data &= ~0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data |= 0x20; ++ m88ds3103_writereg(state, 0xf8, data); ++ data &= ~0x40; ++ m88ds3103_writereg(state, 0xf8, data); ++ break; ++ case SYS_DVBS2: ++ tmp1 = m88ds3103_readreg(state, 0xda); ++ tmp2 = m88ds3103_readreg(state, 0xd9); ++ tmp3 = m88ds3103_readreg(state, 0xd8); ++ *ucblocks = (tmp1 <<16)|(tmp2 <<8)|tmp3; ++ data = m88ds3103_readreg(state, 0xd1); ++ data |= 0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ data &= ~0x01; ++ m88ds3103_writereg(state, 0xd1, data); ++ break; ++ default: ++ break; ++ } ++ return 0; ++} ++ ++static int m88ds3103_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 data_a1, data_a2; ++ ++ dprintk("%s(%d)\n", __func__, tone); ++ if ((tone != SEC_TONE_ON) && (tone != SEC_TONE_OFF)) { ++ printk(KERN_ERR "%s: Invalid, tone=%d\n", __func__, tone); ++ return -EINVAL; ++ } ++ ++ data_a1 = m88ds3103_readreg(state, 0xa1); ++ data_a2 = m88ds3103_readreg(state, 0xa2); ++ if(state->demod_id == DS3103_ID) ++ data_a2 &= 0xdf; /* Normal mode */ ++ switch (tone) { ++ case SEC_TONE_ON: ++ dprintk("%s: SEC_TONE_ON\n", __func__); ++ data_a1 |= 0x04; ++ data_a1 &= ~0x03; ++ data_a1 &= ~0x40; ++ data_a2 &= ~0xc0; ++ break; ++ case SEC_TONE_OFF: ++ dprintk("%s: SEC_TONE_OFF\n", __func__); ++ data_a2 &= ~0xc0; ++ data_a2 |= 0x80; ++ break; ++ } ++ m88ds3103_writereg(state, 0xa2, data_a2); ++ m88ds3103_writereg(state, 0xa1, data_a1); ++ return 0; ++} ++ ++static int m88ds3103_send_diseqc_msg(struct dvb_frontend *fe, ++ struct dvb_diseqc_master_cmd *d) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int i, ret = 0; ++ u8 tmp, time_out; ++ ++ /* Dump DiSEqC message */ ++ if (debug) { ++ printk(KERN_INFO "m88ds3103: %s(", __func__); ++ for (i = 0 ; i < d->msg_len ;) { ++ printk(KERN_INFO "0x%02x", d->msg[i]); ++ if (++i < d->msg_len) ++ printk(KERN_INFO ", "); ++ } ++ } ++ ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ tmp &= ~0x20; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ ++ for (i = 0; i < d->msg_len; i ++) ++ m88ds3103_writereg(state, (0xa3+i), d->msg[i]); ++ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x38; ++ tmp &= ~0x40; ++ tmp |= ((d->msg_len-1) << 3) | 0x07; ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ /* 1.5 * 9 * 8 = 108ms */ ++ time_out = 150; ++ while (time_out > 0){ ++ msleep(10); ++ time_out -= 10; ++ tmp = m88ds3103_readreg(state, 0xa1); ++ if ((tmp & 0x40) == 0) ++ break; ++ } ++ if (time_out == 0){ ++ tmp = m88ds3103_readreg(state, 0xa1); ++ tmp &= ~0x80; ++ tmp |= 0x40; ++ m88ds3103_writereg(state, 0xa1, tmp); ++ ret = 1; ++ } ++ tmp = m88ds3103_readreg(state, 0xa2); ++ tmp &= ~0xc0; ++ tmp |= 0x80; ++ m88ds3103_writereg(state, 0xa2, tmp); ++ return ret; ++} ++ ++ ++static int m88ds3103_diseqc_send_burst(struct dvb_frontend *fe, ++ fe_sec_mini_cmd_t burst) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val, time_out; ++ ++ dprintk("%s()\n", __func__); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ if(state->demod_id == DS3103_ID) ++ val &= 0xdf; /* Normal mode */ ++ m88ds3103_writereg(state, 0xa2, val); ++ /* DiSEqC burst */ ++ if (burst == SEC_MINI_B) ++ m88ds3103_writereg(state, 0xa1, 0x01); ++ else ++ m88ds3103_writereg(state, 0xa1, 0x02); ++ ++ msleep(13); ++ ++ time_out = 5; ++ do{ ++ val = m88ds3103_readreg(state, 0xa1); ++ if ((val & 0x40) == 0) ++ break; ++ msleep(1); ++ time_out --; ++ } while (time_out > 0); ++ ++ val = m88ds3103_readreg(state, 0xa2); ++ val &= ~0xc0; ++ val |= 0x80; ++ m88ds3103_writereg(state, 0xa2, val); ++ ++ return 0; ++} ++ ++static void m88ds3103_release(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s\n", __func__); ++ kfree(state); ++} ++ ++static int m88ds3103_check_id(struct m88ds3103_state *state) ++{ ++ int val_00, val_01; ++ ++ /*check demod id*/ ++ val_01 = m88ds3103_readreg(state, 0x01); ++ printk(KERN_INFO "DS3000 chip version: %x attached.\n", val_01); ++ ++ if(val_01 == 0xD0) ++ state->demod_id = DS3103_ID; ++ else if(val_01 == 0xC0) ++ state->demod_id = DS3000_ID; ++ else ++ state->demod_id = UNKNOW_ID; ++ ++ /*check tuner id*/ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[1]: %x attached.\n", val_00); ++ val_00 &= 0x03; ++ if(val_00 == 0) ++ { ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(3); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(5); ++ ++ val_00 = m88ds3103_tuner_readreg(state, 0x00); ++ printk(KERN_INFO "TS202x chip version[2]: %x attached.\n", val_00); ++ val_00 &= 0xff; ++ if((val_00 == 0x01) || (val_00 == 0x41) || (val_00 == 0x81)) ++ state->tuner_id = TS2020_ID; ++ else if(((val_00 & 0xc0)== 0xc0) || (val_00 == 0x83)) ++ state->tuner_id = TS2022_ID; ++ else ++ state->tuner_id = UNKNOW_ID; ++ ++ return state->demod_id; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops; ++static int m88ds3103_initilaze(struct dvb_frontend *fe); ++ ++struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ struct m88ds3103_state *state = NULL; ++ ++ dprintk("%s\n", __func__); ++ ++ /* allocate memory for the internal state */ ++ state = kzalloc(sizeof(struct m88ds3103_state), GFP_KERNEL); ++ if (state == NULL) { ++ printk(KERN_ERR "Unable to kmalloc\n"); ++ goto error2; ++ } ++ ++ state->config = config; ++ state->i2c = i2c; ++ state->preBer = 0xffff; ++ state->delivery_system = SYS_DVBS; /*Default to DVB-S.*/ ++ ++ /* check demod id */ ++ if(m88ds3103_check_id(state) == UNKNOW_ID){ ++ printk(KERN_ERR "Unable to find Montage chip\n"); ++ goto error3; ++ } ++ ++ memcpy(&state->frontend.ops, &m88ds3103_ops, ++ sizeof(struct dvb_frontend_ops)); ++ state->frontend.demodulator_priv = state; ++ ++ m88ds3103_initilaze(&state->frontend); ++ ++ return &state->frontend; ++ ++error3: ++ kfree(state); ++error2: ++ return NULL; ++} ++EXPORT_SYMBOL(m88ds3103_attach); ++ ++static int m88ds3103_set_carrier_offset(struct dvb_frontend *fe, ++ s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ s32 tmp; ++ ++ tmp = carrier_offset_khz; ++ tmp *= 65536; ++ ++ tmp = (2*tmp + MT_FE_MCLK_KHZ) / (2*MT_FE_MCLK_KHZ); ++ ++ if (tmp < 0) ++ tmp += 65536; ++ ++ m88ds3103_writereg(state, 0x5f, tmp >> 8); ++ m88ds3103_writereg(state, 0x5e, tmp & 0xff); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_symrate(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ ++ value = (((c->symbol_rate / 1000) << 15) + (MT_FE_MCLK_KHZ / 4)) / (MT_FE_MCLK_KHZ / 2); ++ m88ds3103_writereg(state, 0x61, value & 0x00ff); ++ m88ds3103_writereg(state, 0x62, (value & 0xff00) >> 8); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_CCI(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 tmp; ++ ++ tmp = m88ds3103_readreg(state, 0x56); ++ tmp &= ~0x01; ++ m88ds3103_writereg(state, 0x56, tmp); ++ ++ tmp = m88ds3103_readreg(state, 0x76); ++ tmp &= ~0x80; ++ m88ds3103_writereg(state, 0x76, tmp); ++ ++ return 0; ++} ++ ++static int m88ds3103_init_reg(struct m88ds3103_state *state, const u8 *p_reg_tab, u32 size) ++{ ++ u32 i; ++ ++ for(i = 0; i < size; i+=2) ++ m88ds3103_writereg(state, p_reg_tab[i], p_reg_tab[i+1]); ++ ++ return 0; ++} ++ ++static int m88ds3103_get_locked_sym_rate(struct m88ds3103_state *state, u32 *sym_rate_KSs) ++{ ++ u16 tmp; ++ u32 sym_rate_tmp; ++ u8 val_0x6d, val_0x6e; ++ ++ val_0x6d = m88ds3103_readreg(state, 0x6d); ++ val_0x6e = m88ds3103_readreg(state, 0x6e); ++ ++ tmp = (u16)((val_0x6e<<8) | val_0x6d); ++ ++ sym_rate_tmp = (u32)(tmp * MT_FE_MCLK_KHZ); ++ sym_rate_tmp = (u32)(sym_rate_tmp / (1<<16)); ++ *sym_rate_KSs = sym_rate_tmp; ++ ++ return 0; ++} ++ ++static int m88ds3103_get_channel_info(struct m88ds3103_state *state, u8 *p_mode, u8 *p_coderate) ++{ ++ u8 tmp, val_0x7E; ++ ++ if(state->delivery_system == SYS_DVBS2){ ++ val_0x7E = m88ds3103_readreg(state, 0x7e); ++ tmp = (u8)((val_0x7E&0xC0) >> 6); ++ *p_mode = tmp; ++ tmp = (u8)(val_0x7E & 0x0f); ++ *p_coderate = tmp; ++ } else { ++ *p_mode = 0; ++ tmp = m88ds3103_readreg(state, 0xe6); ++ tmp = (u8)(tmp >> 5); ++ *p_coderate = tmp; ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_set_clock_ratio(struct m88ds3103_state *state) ++{ ++ u8 val, mod_fac, tmp1, tmp2; ++ u32 input_datarate, locked_sym_rate_KSs; ++ u32 MClk_KHz = 96000; ++ u8 mod_mode, code_rate, divid_ratio = 0; ++ ++ locked_sym_rate_KSs = 0; ++ m88ds3103_get_locked_sym_rate(state, &locked_sym_rate_KSs); ++ if(locked_sym_rate_KSs == 0) ++ return 0; ++ ++ m88ds3103_get_channel_info(state, &mod_mode, &code_rate); ++ ++ if (state->delivery_system == SYS_DVBS2) ++ { ++ switch(mod_mode) { ++ case 1: mod_fac = 3; break; ++ case 2: mod_fac = 4; break; ++ case 3: mod_fac = 5; break; ++ default: mod_fac = 2; break; ++ } ++ ++ switch(code_rate) { ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac/8/4; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac/8/3; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/5; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac/8/2; break; ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/5; break; ++ case 5: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ case 6: input_datarate = locked_sym_rate_KSs*mod_fac*3/8/4; break; ++ case 7: input_datarate = locked_sym_rate_KSs*mod_fac*4/8/5; break; ++ case 8: input_datarate = locked_sym_rate_KSs*mod_fac*5/8/6; break; ++ case 9: input_datarate = locked_sym_rate_KSs*mod_fac*8/8/9; break; ++ case 10: input_datarate = locked_sym_rate_KSs*mod_fac*9/8/10; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*2/8/3; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 4800) {tmp1 = 15;tmp2 = 15;} //4.8MHz TS clock ++ else if(input_datarate < 4966) {tmp1 = 14;tmp2 = 15;} //4.966MHz TS clock ++ else if(input_datarate < 5143) {tmp1 = 14;tmp2 = 14;} //5.143MHz TS clock ++ else if(input_datarate < 5333) {tmp1 = 13;tmp2 = 14;} //5.333MHz TS clock ++ else if(input_datarate < 5538) {tmp1 = 13;tmp2 = 13;} //5.538MHz TS clock ++ else if(input_datarate < 5760) {tmp1 = 12;tmp2 = 13;} //5.76MHz TS clock allan 0809 ++ else if(input_datarate < 6000) {tmp1 = 12;tmp2 = 12;} //6MHz TS clock ++ else if(input_datarate < 6260) {tmp1 = 11;tmp2 = 12;} //6.26MHz TS clock ++ else if(input_datarate < 6545) {tmp1 = 11;tmp2 = 11;} //6.545MHz TS clock ++ else if(input_datarate < 6857) {tmp1 = 10;tmp2 = 11;} //6.857MHz TS clock ++ else if(input_datarate < 7200) {tmp1 = 10;tmp2 = 10;} //7.2MHz TS clock ++ else if(input_datarate < 7578) {tmp1 = 9;tmp2 = 10;} //7.578MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 9;tmp2 = 9;} //8MHz TS clock ++ else if(input_datarate < 8470) {tmp1 = 8;tmp2 = 9;} //8.47MHz TS clock ++ else if(input_datarate < 9000) {tmp1 = 8;tmp2 = 8;} //9MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 7;tmp2 = 8;} //9.6MHz TS clock ++ else if(input_datarate < 10285) {tmp1 = 7;tmp2 = 7;} //10.285MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 6;tmp2 = 6;} //12MHz TS clock ++ else if(input_datarate < 14400) {tmp1 = 5;tmp2 = 5;} //14.4MHz TS clock ++ else if(input_datarate < 18000) {tmp1 = 4;tmp2 = 4;} //18MHz TS clock ++ else {tmp1 = 3;tmp2 = 3;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = (u8)((tmp1<<4) + tmp2); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ tmp1 = m88ds3103_readreg(state, 0x22); ++ tmp2 = m88ds3103_readreg(state, 0x24); ++ ++ tmp1 >>= 6; ++ tmp1 &= 0x03; ++ tmp2 >>= 6; ++ tmp2 &= 0x03; ++ ++ if((tmp1 == 0x00) && (tmp2 == 0x01)) ++ MClk_KHz = 144000; ++ else if((tmp1 == 0x00) && (tmp2 == 0x03)) ++ MClk_KHz = 72000; ++ else if((tmp1 == 0x01) && (tmp2 == 0x01)) ++ MClk_KHz = 115200; ++ else if((tmp1 == 0x02) && (tmp2 == 0x01)) ++ MClk_KHz = 96000; ++ else if((tmp1 == 0x03) && (tmp2 == 0x00)) ++ MClk_KHz = 192000; ++ else ++ return 0; ++ ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } else { ++ mod_fac = 2; ++ ++ switch(code_rate) { ++ case 4: input_datarate = locked_sym_rate_KSs*mod_fac/2/8; break; ++ case 3: input_datarate = locked_sym_rate_KSs*mod_fac*2/3/8; break; ++ case 2: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ case 1: input_datarate = locked_sym_rate_KSs*mod_fac*5/6/8; break; ++ case 0: input_datarate = locked_sym_rate_KSs*mod_fac*7/8/8; break; ++ default: input_datarate = locked_sym_rate_KSs*mod_fac*3/4/8; break; ++ } ++ ++ if(state->demod_id == DS3000_ID) ++ input_datarate = input_datarate * 115 / 100; ++ ++ if(input_datarate < 6857) {tmp1 = 7;tmp2 = 7;} //6.857MHz TS clock ++ else if(input_datarate < 7384) {tmp1 = 6;tmp2 = 7;} //7.384MHz TS clock ++ else if(input_datarate < 8000) {tmp1 = 6;tmp2 = 6;} //8MHz TS clock ++ else if(input_datarate < 8727) {tmp1 = 5;tmp2 = 6;} //8.727MHz TS clock ++ else if(input_datarate < 9600) {tmp1 = 5;tmp2 = 5;} //9.6MHz TS clock ++ else if(input_datarate < 10666) {tmp1 = 4;tmp2 = 5;} //10.666MHz TS clock ++ else if(input_datarate < 12000) {tmp1 = 4;tmp2 = 4;} //12MHz TS clock ++ else if(input_datarate < 13714) {tmp1 = 3;tmp2 = 4;} //13.714MHz TS clock ++ else if(input_datarate < 16000) {tmp1 = 3;tmp2 = 3;} //16MHz TS clock ++ else if(input_datarate < 19200) {tmp1 = 2;tmp2 = 3;} //19.2MHz TS clock ++ else {tmp1 = 2;tmp2 = 2;} //24MHz TS clock ++ ++ if(state->demod_id == DS3000_ID) { ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xc0; ++ val |= ((u8)((tmp1<<3) + tmp2)); ++ m88ds3103_writereg(state, 0xfe, val); ++ } else { ++ if(input_datarate < 5200) /*Max. 2011-12-23 11:55*/ ++ input_datarate = 5200; ++ ++ if(input_datarate != 0) ++ divid_ratio = (u8)(MClk_KHz / input_datarate); ++ else ++ divid_ratio = 0xFF; ++ ++ if(divid_ratio > 128) ++ divid_ratio = 128; ++ ++ if(divid_ratio < 2) ++ divid_ratio = 2; ++ ++ tmp1 = (u8)(divid_ratio / 2); ++ tmp2 = (u8)(divid_ratio / 2); ++ ++ if((divid_ratio % 2) != 0) ++ tmp2 += 1; ++ ++ tmp1 -= 1; ++ tmp2 -= 1; ++ ++ tmp1 &= 0x3f; ++ tmp2 &= 0x3f; ++ ++ val = m88ds3103_readreg(state, 0xfe); ++ val &= 0xF0; ++ val |= (tmp2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, val); ++ ++ val = (u8)((tmp2 & 0x03) << 6); ++ val |= tmp1; ++ m88ds3103_writereg(state, 0xea, val); ++ } ++ } ++ return 0; ++} ++ ++static int m88ds3103_demod_connect(struct dvb_frontend *fe, s32 carrier_offset_khz) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ u16 value; ++ u8 val1,val2,data; ++ ++ dprintk("connect delivery system = %d\n", state->delivery_system); ++ ++ /* ds3000 global reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ /* ds3000 build-in uC reset */ ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ /* ds3000 software reset */ ++ m88ds3103_writereg(state, 0x00, 0x01); ++ ++ switch (state->delivery_system) { ++ case SYS_DVBS: ++ /* initialise the demod in DVB-S mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs_init_tab, sizeof(ds3000_dvbs_init_tab)); ++ ++ value = m88ds3103_readreg(state, 0xfe); ++ value &= 0xc0; ++ value |= 0x1b; ++ m88ds3103_writereg(state, 0xfe, value); ++ ++ if(state->config->ci_mode) ++ val1 = 0x80; ++ else if(state->config->ts_mode) ++ val1 = 0x60; ++ else ++ val1 = 0x20; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs_init_tab, sizeof(ds3103_dvbs_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0) { ++ val1 = 3; val2 = 3; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ val1 |= 0x80; ++ val2 |= 0x40; ++ ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ } ++ break; ++ case SYS_DVBS2: ++ /* initialise the demod in DVB-S2 mode */ ++ if(state->demod_id == DS3000_ID){ ++ m88ds3103_init_reg(state, ds3000_dvbs2_init_tab, sizeof(ds3000_dvbs2_init_tab)); ++ ++ if (c->symbol_rate >= 30000000) ++ m88ds3103_writereg(state, 0xfe, 0x54); ++ else ++ m88ds3103_writereg(state, 0xfe, 0x98); ++ ++ }else if(state->demod_id == DS3103_ID){ ++ m88ds3103_init_reg(state, ds3103_dvbs2_init_tab, sizeof(ds3103_dvbs2_init_tab)); ++ ++ /* set ts clock */ ++ if(state->config->ci_mode == 2){ ++ val1 = 6; val2 = 6; ++ }else if(state->config->ts_mode == 0){ ++ val1 = 5; val2 = 4; ++ }else{ ++ val1 = 0; val2 = 0; ++ } ++ val1 -= 1; val2 -= 1; ++ val1 &= 0x3f; val2 &= 0x3f; ++ data = m88ds3103_readreg(state, 0xfe); ++ data &= 0xf0; ++ data |= (val2 >> 2) & 0x0f; ++ m88ds3103_writereg(state, 0xfe, data); ++ data = (val2 & 0x03) << 6; ++ data |= val1; ++ m88ds3103_writereg(state, 0xea, data); ++ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ ++ /* set master clock */ ++ val1 = m88ds3103_readreg(state, 0x22); ++ val2 = m88ds3103_readreg(state, 0x24); ++ ++ val1 &= 0x3f; ++ val2 &= 0x3f; ++ if((state->config->ci_mode == 2) || (state->config->ts_mode == 1)){ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ }else{ ++ if (c->symbol_rate >= 28000000){ ++ val1 |= 0xc0; ++ }else if (c->symbol_rate >= 18000000){ ++ val2 |= 0x40; ++ }else{ ++ val1 |= 0x80; ++ val2 |= 0x40; ++ } ++ } ++ m88ds3103_writereg(state, 0x22, val1); ++ m88ds3103_writereg(state, 0x24, val2); ++ } ++ ++ if(state->config->ci_mode) ++ val1 = 0x03; ++ else if(state->config->ts_mode) ++ val1 = 0x06; ++ else ++ val1 = 0x42; ++ m88ds3103_writereg(state, 0xfd, val1); ++ ++ break; ++ default: ++ return 1; ++ } ++ /* disable 27MHz clock output */ ++ m88ds3103_writereg(state, 0x29, 0x80); ++ /* enable ac coupling */ ++ m88ds3103_writereg(state, 0x25, 0x8a); ++ ++ if ((c->symbol_rate / 1000) <= 3000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 32 * 100 / 64 = 400*/ ++ m88ds3103_writereg(state, 0xc8, 0x20); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else if((c->symbol_rate / 1000) <= 10000){ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 16 * 100 / 64 = 200*/ ++ m88ds3103_writereg(state, 0xc8, 0x10); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ }else{ ++ m88ds3103_writereg(state, 0xc3, 0x08); /* 8 * 6 * 100 / 64 = 75*/ ++ m88ds3103_writereg(state, 0xc8, 0x06); ++ m88ds3103_writereg(state, 0xc4, 0x08); /* 8 * 0 * 100 / 128 = 0*/ ++ m88ds3103_writereg(state, 0xc7, 0x00); ++ } ++ ++ m88ds3103_set_symrate(fe); ++ ++ m88ds3103_set_CCI(fe); ++ ++ m88ds3103_set_carrier_offset(fe, carrier_offset_khz); ++ ++ /* ds3000 out of software reset */ ++ m88ds3103_writereg(state, 0x00, 0x00); ++ /* start ds3000 build-in uC */ ++ m88ds3103_writereg(state, 0xb2, 0x00); ++ ++ return 0; ++} ++ ++static int m88ds3103_set_frontend(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ ++ int i; ++ fe_status_t status; ++ u8 lpf_mxdiv, mlpf_max, mlpf_min, nlpf, div4, capCode, changePLL; ++ s32 offset_khz, lpf_offset_KHz; ++ u16 value, ndiv, lpf_coeff; ++ u32 f3db, gdiv28, realFreq; ++ u8 RFgain; ++ ++ dprintk("%s() ", __func__); ++ dprintk("c frequency = %d\n", c->frequency); ++ dprintk("symbol rate = %d\n", c->symbol_rate); ++ dprintk("delivery system = %d\n", c->delivery_system); ++ ++ realFreq = c->frequency; ++ lpf_offset_KHz = 0; ++ if(c->symbol_rate < 5000000){ ++ lpf_offset_KHz = FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ realFreq += FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz; ++ } ++ ++ if (state->config->set_ts_params) ++ state->config->set_ts_params(fe, 0); ++ ++ div4 = 0; ++ RFgain = 0; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x0a); ++ m88ds3103_tuner_writereg(state, 0x11, 0x40); ++ if (realFreq < 1103000) { ++ m88ds3103_tuner_writereg(state, 0x10, 0x1b); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ }else { ++ ndiv = (realFreq * (6 + 8) * 2)/MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ if(ndiv < 4095) ++ ndiv = ndiv - 1024; ++ else if (ndiv < 6143) ++ ndiv = ndiv + 1024; ++ else ++ ndiv = ndiv + 3072; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv & 0x3f00) >> 8); ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x00); ++ if (realFreq < 1146000){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4) / MT_FE_CRYSTAL_KHZ; ++ }else{ ++ m88ds3103_tuner_writereg(state, 0x10, 0x01); ++ ndiv = (realFreq * (6 + 8) * 2) / MT_FE_CRYSTAL_KHZ; ++ } ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8)&0x0f); ++ } ++ /* set pll */ ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0x00ff); ++ m88ds3103_tuner_writereg(state, 0x03, 0x06); ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ if(state->tuner_id == TS2022_ID){ ++ if(( realFreq >= 1650000 ) && (realFreq <= 1850000)){ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x7f; ++ if(value < 64){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x82); ++ m88ds3103_tuner_writereg(state, 0x11, 0x6f); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x14); ++ value &= 0x1f; ++ ++ if(value > 19){ ++ value = m88ds3103_tuner_readreg(state, 0x10); ++ value &= 0x1d; ++ m88ds3103_tuner_writereg(state, 0x10, value); ++ } ++ }else{ ++ msleep(5); ++ value = m88ds3103_tuner_readreg(state, 0x66); ++ changePLL = (((value & 0x80) >> 7) != div4); ++ ++ if(changePLL){ ++ m88ds3103_tuner_writereg(state, 0x10, 0x11); ++ div4 = 1; ++ ndiv = (realFreq * (6 + 8) * 4)/MT_FE_CRYSTAL_KHZ; ++ ndiv = ndiv + ndiv%2; ++ ndiv = ndiv - 1024; ++ ++ m88ds3103_tuner_writereg(state, 0x01, (ndiv>>8) & 0x0f); ++ m88ds3103_tuner_writereg(state, 0x02, ndiv & 0xff); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x0f); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x10); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ /*set the RF gain*/ ++ if(state->tuner_id == TS2020_ID) ++ m88ds3103_tuner_writereg(state, 0x60, 0x79); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2020_ID){ ++ RFgain = m88ds3103_tuner_readreg(state, 0x3d); ++ RFgain &= 0x0f; ++ if(RFgain < 15){ ++ if(RFgain < 4) ++ RFgain = 0; ++ else ++ RFgain = RFgain -3; ++ value = ((RFgain << 3) | 0x01) & 0x79; ++ m88ds3103_tuner_writereg(state, 0x60, value); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ ++ /* set the LPF */ ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x25, 0x00); ++ m88ds3103_tuner_writereg(state, 0x27, 0x70); ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ m88ds3103_tuner_writereg(state, 0x08, 0x0b); ++ } ++ ++ f3db = ((c->symbol_rate / 1000) *135) / 200 + 2000; ++ f3db += lpf_offset_KHz; ++ if (f3db < 7000) ++ f3db = 7000; ++ if (f3db > 40000) ++ f3db = 40000; ++ ++ gdiv28 = (MT_FE_CRYSTAL_KHZ / 1000 * 1694 + 500) / 1000; ++ m88ds3103_tuner_writereg(state, 0x04, gdiv28 & 0xff); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ if(state->tuner_id == TS2022_ID){ ++ m88ds3103_tuner_writereg(state, 0x41, 0x0d); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ } ++ else ++ value = capCode; ++ ++ gdiv28 = gdiv28 * 207 / (value * 2 + 151); ++ mlpf_max = gdiv28 * 135 / 100; ++ mlpf_min = gdiv28 * 78 / 100; ++ if (mlpf_max > 63) ++ mlpf_max = 63; ++ ++ if(state->tuner_id == TS2022_ID) ++ lpf_coeff = 3200; ++ else ++ lpf_coeff = 2766; ++ ++ nlpf = (f3db * gdiv28 * 2 / lpf_coeff / (MT_FE_CRYSTAL_KHZ / 1000) + 1) / 2 ; ++ if (nlpf > 23) nlpf = 23; ++ if (nlpf < 1) nlpf = 1; ++ ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ ++ if (lpf_mxdiv < mlpf_min){ ++ nlpf++; ++ lpf_mxdiv = (nlpf * (MT_FE_CRYSTAL_KHZ / 1000) * lpf_coeff * 2 / f3db + 1) / 2; ++ } ++ ++ if (lpf_mxdiv > mlpf_max) ++ lpf_mxdiv = mlpf_max; ++ ++ m88ds3103_tuner_writereg(state, 0x04, lpf_mxdiv); ++ m88ds3103_tuner_writereg(state, 0x06, nlpf); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ msleep(5); ++ ++ if(state->tuner_id == TS2022_ID){ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ capCode = value & 0x3f; ++ ++ m88ds3103_tuner_writereg(state, 0x41, 0x09); ++ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1b); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x04); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ ++ msleep(2); ++ value = m88ds3103_tuner_readreg(state, 0x26); ++ value &= 0x3f; ++ value = (capCode + value) / 2; ++ ++ value = value | 0x80; ++ m88ds3103_tuner_writereg(state, 0x25, value); ++ m88ds3103_tuner_writereg(state, 0x27, 0x30); ++ ++ m88ds3103_tuner_writereg(state, 0x08, 0x09); ++ } ++ ++ /* Set the BB gain */ ++ m88ds3103_tuner_writereg(state, 0x51, 0x1e); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x01); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ if(state->tuner_id == TS2020_ID){ ++ if(RFgain == 15){ ++ msleep(40); ++ value = m88ds3103_tuner_readreg(state, 0x21); ++ value &= 0x0f; ++ if(value < 3){ ++ m88ds3103_tuner_writereg(state, 0x60, 0x61); ++ m88ds3103_tuner_writereg(state, 0x51, 0x17); ++ m88ds3103_tuner_writereg(state, 0x51, 0x1f); ++ m88ds3103_tuner_writereg(state, 0x50, 0x08); ++ m88ds3103_tuner_writereg(state, 0x50, 0x00); ++ } ++ } ++ } ++ msleep(60); ++ ++ offset_khz = (ndiv - ndiv % 2 + 1024) * MT_FE_CRYSTAL_KHZ ++ / (6 + 8) / (div4 + 1) / 2 - realFreq; ++ ++ m88ds3103_demod_connect(fe, offset_khz+lpf_offset_KHz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ ++ if((status & FE_HAS_LOCK) == 0){ ++ state->delivery_system = (state->delivery_system == SYS_DVBS) ? SYS_DVBS2 : SYS_DVBS; ++ m88ds3103_demod_connect(fe, offset_khz); ++ ++ for (i = 0; i < 30 ; i++) { ++ m88ds3103_read_status(fe, &status); ++ if (status & FE_HAS_LOCK){ ++ break; ++ } ++ msleep(20); ++ } ++ } ++ ++ if (status & FE_HAS_LOCK){ ++ if(state->config->ci_mode == 2) ++ m88ds3103_set_clock_ratio(state); ++ if(state->config->start_ctrl){ ++ if(state->first_lock == 0){ ++ state->config->start_ctrl(fe); ++ state->first_lock = 1; ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++static int m88ds3103_tune(struct dvb_frontend *fe, ++ bool re_tune, ++ unsigned int mode_flags, ++ unsigned int *delay, ++ fe_status_t *status) ++{ ++ *delay = HZ / 5; ++ ++ dprintk("%s() ", __func__); ++ dprintk("re_tune = %d\n", re_tune); ++ ++ if (re_tune) { ++ int ret = m88ds3103_set_frontend(fe); ++ if (ret) ++ return ret; ++ } ++ ++ return m88ds3103_read_status(fe, status); ++} ++ ++static enum dvbfe_algo m88ds3103_get_algo(struct dvb_frontend *fe) ++{ ++ return DVBFE_ALGO_HW; ++} ++ ++ /* ++ * Power config will reset and load initial firmware if required ++ */ ++static int m88ds3103_initilaze(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ int ret; ++ ++ dprintk("%s()\n", __func__); ++ /* hard reset */ ++ m88ds3103_writereg(state, 0x07, 0x80); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ msleep(1); ++ ++ if(state->tuner_id == TS2020_ID){ ++ /* TS2020 init */ ++ m88ds3103_tuner_writereg(state, 0x42, 0x73); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x05, 0x01); ++ m88ds3103_tuner_writereg(state, 0x62, 0xb5); ++ m88ds3103_tuner_writereg(state, 0x07, 0x02); ++ m88ds3103_tuner_writereg(state, 0x08, 0x01); ++ } ++ else if(state->tuner_id == TS2022_ID){ ++ /* TS2022 init */ ++ m88ds3103_tuner_writereg(state, 0x62, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x42, 0x6c); ++ msleep(2); ++ m88ds3103_tuner_writereg(state, 0x7d, 0x9d); ++ m88ds3103_tuner_writereg(state, 0x7c, 0x9a); ++ m88ds3103_tuner_writereg(state, 0x7a, 0x76); ++ ++ m88ds3103_tuner_writereg(state, 0x3b, 0x01); ++ m88ds3103_tuner_writereg(state, 0x63, 0x88); ++ ++ m88ds3103_tuner_writereg(state, 0x61, 0x85); ++ m88ds3103_tuner_writereg(state, 0x22, 0x30); ++ m88ds3103_tuner_writereg(state, 0x30, 0x40); ++ m88ds3103_tuner_writereg(state, 0x20, 0x23); ++ m88ds3103_tuner_writereg(state, 0x24, 0x02); ++ m88ds3103_tuner_writereg(state, 0x12, 0xa0); ++ } ++ ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x07, 0xe0); ++ m88ds3103_writereg(state, 0x07, 0x00); ++ msleep(1); ++ } ++ m88ds3103_writereg(state, 0xb2, 0x01); ++ ++ /* Load the firmware if required */ ++ ret = m88ds3103_load_firmware(fe); ++ if (ret != 0){ ++ printk(KERN_ERR "%s: Unable initialize firmware\n", __func__); ++ return ret; ++ } ++ if(state->demod_id == DS3103_ID){ ++ m88ds3103_writereg(state, 0x4d, 0xfd & m88ds3103_readreg(state, 0x4d)); ++ m88ds3103_writereg(state, 0x30, 0xef & m88ds3103_readreg(state, 0x30)); ++ } ++ ++ return 0; ++} ++ ++/* ++ * Initialise or wake up device ++ */ ++static int m88ds3103_initfe(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ u8 val; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to wake up demod */ ++ m88ds3103_writereg(state, 0x08, 0x01 | m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0xfe & m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0xef & m88ds3103_readreg(state, 0x23)); ++ ++ /* 2nd step to wake up tuner */ ++ val = m88ds3103_tuner_readreg(state, 0x00) & 0xff; ++ if((val & 0x01) == 0){ ++ m88ds3103_tuner_writereg(state, 0x00, 0x01); ++ msleep(50); ++ } ++ m88ds3103_tuner_writereg(state, 0x00, 0x03); ++ msleep(50); ++ ++ return 0; ++} ++ ++/* Put device to sleep */ ++static int m88ds3103_sleep(struct dvb_frontend *fe) ++{ ++ struct m88ds3103_state *state = fe->demodulator_priv; ++ ++ dprintk("%s()\n", __func__); ++ ++ /* 1st step to sleep tuner */ ++ m88ds3103_tuner_writereg(state, 0x00, 0x00); ++ ++ /* 2nd step to sleep demod */ ++ m88ds3103_writereg(state, 0x08, 0xfe & m88ds3103_readreg(state, 0x08)); ++ m88ds3103_writereg(state, 0x04, 0x01 | m88ds3103_readreg(state, 0x04)); ++ m88ds3103_writereg(state, 0x23, 0x10 | m88ds3103_readreg(state, 0x23)); ++ ++ ++ return 0; ++} ++ ++static struct dvb_frontend_ops m88ds3103_ops = { ++ .delsys = { SYS_DVBS, SYS_DVBS2}, ++ .info = { ++ .name = "Montage DS3103/TS2022", ++ .type = FE_QPSK, ++ .frequency_min = 950000, ++ .frequency_max = 2150000, ++ .frequency_stepsize = 1011, /* kHz for QPSK frontends */ ++ .frequency_tolerance = 5000, ++ .symbol_rate_min = 1000000, ++ .symbol_rate_max = 45000000, ++ .caps = FE_CAN_INVERSION_AUTO | ++ FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | ++ FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | ++ FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | ++ FE_CAN_2G_MODULATION | ++ FE_CAN_QPSK | FE_CAN_RECOVER ++ }, ++ ++ .release = m88ds3103_release, ++ ++ .init = m88ds3103_initfe, ++ .sleep = m88ds3103_sleep, ++ .read_status = m88ds3103_read_status, ++ .read_ber = m88ds3103_read_ber, ++ .read_signal_strength = m88ds3103_read_signal_strength, ++ .read_snr = m88ds3103_read_snr, ++ .read_ucblocks = m88ds3103_read_ucblocks, ++ .set_tone = m88ds3103_set_tone, ++ .set_voltage = m88ds3103_set_voltage, ++ .diseqc_send_master_cmd = m88ds3103_send_diseqc_msg, ++ .diseqc_send_burst = m88ds3103_diseqc_send_burst, ++ .get_frontend_algo = m88ds3103_get_algo, ++ .tune = m88ds3103_tune, ++ .set_frontend = m88ds3103_set_frontend, ++}; ++ ++MODULE_DESCRIPTION("DVB Frontend module for Montage DS3103/TS2022 hardware"); ++MODULE_AUTHOR("Max nibble"); ++MODULE_LICENSE("GPL"); +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.h v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.h +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103.h 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103.h 2012-11-24 13:34:43.716679774 +0100 +@@ -0,0 +1,53 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ 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 2 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, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_H ++#define M88DS3103_H ++ ++#include ++ ++struct m88ds3103_config { ++ /* the demodulator's i2c address */ ++ u8 demod_address; ++ u8 ci_mode; ++ u8 pin_ctrl; ++ u8 ts_mode; /* 0: Parallel, 1: Serial */ ++ ++ /* Set device param to start dma */ ++ int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); ++ /* Start to transfer data */ ++ int (*start_ctrl)(struct dvb_frontend *fe); ++ /* Set LNB voltage */ ++ int (*set_voltage)(struct dvb_frontend* fe, fe_sec_voltage_t voltage); ++}; ++ ++#if defined(CONFIG_DVB_M88DS3103) || \ ++ (defined(CONFIG_DVB_M88DS3103_MODULE) && defined(MODULE)) ++extern struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c); ++#else ++static inline struct dvb_frontend *m88ds3103_attach( ++ const struct m88ds3103_config *config, ++ struct i2c_adapter *i2c) ++{ ++ printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); ++ return NULL; ++} ++#endif /* CONFIG_DVB_M88DS3103 */ ++#endif /* M88DS3103_H */ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103_priv.h v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103_priv.h +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/m88ds3103_priv.h 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/m88ds3103_priv.h 2012-11-24 13:34:43.716679774 +0100 +@@ -0,0 +1,403 @@ ++/* ++ Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver ++ ++ 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 2 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, write to the Free Software ++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ */ ++ ++#ifndef M88DS3103_PRIV_H ++#define M88DS3103_PRIV_H ++ ++#define FW_DOWN_SIZE 32 ++#define FW_DOWN_LOOP (8192/FW_DOWN_SIZE) ++#define DS3103_DEFAULT_FIRMWARE "dvb-fe-ds3103.fw" ++#define DS3000_DEFAULT_FIRMWARE "dvb-fe-ds300x.fw" ++#define MT_FE_MCLK_KHZ 96000 /* in kHz */ ++#define MT_FE_CRYSTAL_KHZ 27000 /* in kHz */ ++#define FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz 3000 ++#define DS3000_ID 0x3000 ++#define DS3103_ID 0x3103 ++#define TS2020_ID 0x2020 ++#define TS2022_ID 0x2022 ++#define UNKNOW_ID 0x0000 ++ ++struct m88ds3103_state { ++ struct i2c_adapter *i2c; ++ const struct m88ds3103_config *config; ++ ++ struct dvb_frontend frontend; ++ ++ u32 preBer; ++ u8 skip_fw_load; ++ u8 first_lock; /* The first time of signal lock */ ++ u16 demod_id; /* demod chip type */ ++ u16 tuner_id; /* tuner chip type */ ++ fe_delivery_system_t delivery_system; ++}; ++ ++/* For M88DS3103 demod dvbs mode.*/ ++static u8 ds3103_dvbs_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x7c, 0x00, ++ 0xae, 0x82, ++ 0x80, 0x64, ++ 0x81, 0x66, ++ 0x82, 0x44, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++/* For M88DS3103 demod dvbs2 mode.*/ ++static u8 ds3103_dvbs2_init_tab[] = { ++ 0x23, 0x07, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x0f, ++ 0x64, 0x10, ++ 0x65, 0x20, ++ 0x68, 0x46, ++ 0x69, 0xcd, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x38, ++ 0x77, 0xa6, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x14, ++ 0x85, 0x08, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0x86, 0x00, ++ 0x87, 0x0f, ++ 0x89, 0x00, ++ 0x8b, 0x44, ++ 0x8c, 0x66, ++ 0x9d, 0xc1, ++ 0x8a, 0x10, ++ 0xad, 0x40, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xff, ++ 0xc7, 0x00, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xcc, 0xf4, ++ 0xce, 0x74, ++ 0x00, 0x00, ++ 0xbd, 0x01, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs mode.*/ ++static u8 ds3000_dvbs_init_tab[] = { ++ 0x23, 0x05, ++ 0x08, 0x03, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x40, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x40, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0xc8, ++ 0x50, 0x77, ++ 0x51, 0x77, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x56, 0x01, ++ 0x63, 0x47, ++ 0x64, 0x30, ++ 0x65, 0x40, ++ 0x68, 0x26, ++ 0x69, 0x4c, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0x76, 0x00, ++ 0x77, 0xd1, ++ 0x78, 0x0c, ++ 0x79, 0x80, ++ 0x7f, 0x04, ++ 0x7c, 0x00, ++ 0x80, 0x86, ++ 0x81, 0xa6, ++ 0x85, 0x04, ++ 0xcd, 0xf4, ++ 0x90, 0x33, ++ 0xa0, 0x44, ++ 0xc0, 0x18, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0x80, ++ 0xc6, 0x80, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xfe, 0xb6, ++ 0xe0, 0xf8, ++ 0xe6, 0x8b, ++ 0xd0, 0x40, ++ 0xf8, 0x20, ++ 0xfa, 0x0f, ++ 0xad, 0x20, ++ 0xae, 0x07, ++ 0xb8, 0x00, ++}; ++ ++/* For M88DS3000 demod dvbs2 mode.*/ ++static u8 ds3000_dvbs2_init_tab[] = { ++ 0x23, 0x0f, ++ 0x08, 0x07, ++ 0x0c, 0x02, ++ 0x21, 0x54, ++ 0x25, 0x82, ++ 0x27, 0x31, ++ 0x30, 0x08, ++ 0x31, 0x32, ++ 0x32, 0x32, ++ 0x33, 0x35, ++ 0x35, 0xff, ++ 0x3a, 0x00, ++ 0x37, 0x10, ++ 0x38, 0x10, ++ 0x39, 0x02, ++ 0x42, 0x60, ++ 0x4a, 0x80, ++ 0x4b, 0x04, ++ 0x4d, 0x91, ++ 0x5d, 0x88, ++ 0x50, 0x36, ++ 0x51, 0x36, ++ 0x52, 0x36, ++ 0x53, 0x36, ++ 0x63, 0x60, ++ 0x64, 0x10, ++ 0x65, 0x10, ++ 0x68, 0x04, ++ 0x69, 0x29, ++ 0x70, 0x20, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x40, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x60, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x80, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0xa0, ++ 0x71, 0x70, ++ 0x72, 0x04, ++ 0x73, 0x00, ++ 0x70, 0x1f, ++ 0xa0, 0x44, ++ 0xc0, 0x08, ++ 0xc1, 0x10, ++ 0xc2, 0x08, ++ 0xc3, 0x10, ++ 0xc4, 0x08, ++ 0xc5, 0xf0, ++ 0xc6, 0xf0, ++ 0xc7, 0x0a, ++ 0xc8, 0x1a, ++ 0xc9, 0x80, ++ 0xca, 0x23, ++ 0xcb, 0x24, ++ 0xce, 0x74, ++ 0x56, 0x01, ++ 0x90, 0x03, ++ 0x76, 0x80, ++ 0x77, 0x42, ++ 0x78, 0x0a, ++ 0x79, 0x80, ++ 0xad, 0x40, ++ 0xae, 0x07, ++ 0x7f, 0xd4, ++ 0x7c, 0x00, ++ 0x80, 0xa8, ++ 0x81, 0xda, ++ 0x7c, 0x01, ++ 0x80, 0xda, ++ 0x81, 0xec, ++ 0x7c, 0x02, ++ 0x80, 0xca, ++ 0x81, 0xeb, ++ 0x7c, 0x03, ++ 0x80, 0xba, ++ 0x81, 0xdb, ++ 0x85, 0x08, ++ 0x86, 0x00, ++ 0x87, 0x02, ++ 0x89, 0x80, ++ 0x8b, 0x44, ++ 0x8c, 0xaa, ++ 0x8a, 0x10, ++ 0xba, 0x00, ++ 0xf5, 0x04, ++ 0xd2, 0x32, ++ 0xb8, 0x00, ++}; ++ ++#endif /* M88DS3103_PRIV_H */ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Makefile v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Makefile +--- v4l-dvb-20120916.ORG/linux/drivers/media/dvb-frontends/Makefile 2012-08-17 05:45:27.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/Makefile 2012-11-24 13:34:43.716679774 +0100 +@@ -102,4 +102,7 @@ + obj-$(CONFIG_DVB_RTL2832) += rtl2832.o + obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o + obj-$(CONFIG_DVB_AF9033) += af9033.o ++obj-$(CONFIG_DVB_M88DS3103) += m88ds3103.o ++ ++ + +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/Makefile v4l-dvb-20120916/linux/drivers/media/rc/keymaps/Makefile +--- v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/Makefile 2012-05-21 05:45:41.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/rc/keymaps/Makefile 2012-11-24 13:34:43.716679774 +0100 +@@ -27,6 +27,7 @@ + rc-dm1105-nec.o \ + rc-dntv-live-dvb-t.o \ + rc-dntv-live-dvbt-pro.o \ ++ rc-dvbsky.o \ + rc-em-terratec.o \ + rc-encore-enltv2.o \ + rc-encore-enltv.o \ +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/rc-dvbsky.c v4l-dvb-20120916/linux/drivers/media/rc/keymaps/rc-dvbsky.c +--- v4l-dvb-20120916.ORG/linux/drivers/media/rc/keymaps/rc-dvbsky.c 1970-01-01 01:00:00.000000000 +0100 ++++ v4l-dvb-20120916/linux/drivers/media/rc/keymaps/rc-dvbsky.c 2012-11-24 13:34:43.716679774 +0100 +@@ -0,0 +1,78 @@ ++/* rc-dvbsky.c - Keytable for Dvbsky Remote Controllers ++ * ++ * keymap imported from ir-keymaps.c ++ * ++ * ++ * Copyright (c) 2010-2011 by Mauro Carvalho Chehab ++ * ++ * 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 2 of the License, or ++ * (at your option) any later version. ++ */ ++ ++#include ++#include ++/* ++ * This table contains the complete RC5 code, instead of just the data part ++ */ ++ ++static struct rc_map_table rc5_dvbsky[] = { ++ { 0x0000, KEY_0 }, ++ { 0x0001, KEY_1 }, ++ { 0x0002, KEY_2 }, ++ { 0x0003, KEY_3 }, ++ { 0x0004, KEY_4 }, ++ { 0x0005, KEY_5 }, ++ { 0x0006, KEY_6 }, ++ { 0x0007, KEY_7 }, ++ { 0x0008, KEY_8 }, ++ { 0x0009, KEY_9 }, ++ { 0x000a, KEY_MUTE }, ++ { 0x000d, KEY_OK }, ++ { 0x000b, KEY_STOP }, ++ { 0x000c, KEY_EXIT }, ++ { 0x000e, KEY_CAMERA }, /*Snap shot*/ ++ { 0x000f, KEY_SUBTITLE }, /*PIP*/ ++ { 0x0010, KEY_VOLUMEUP }, ++ { 0x0011, KEY_VOLUMEDOWN }, ++ { 0x0012, KEY_FAVORITES }, ++ { 0x0013, KEY_LIST }, /*Info*/ ++ { 0x0016, KEY_PAUSE }, ++ { 0x0017, KEY_PLAY }, ++ { 0x001f, KEY_RECORD }, ++ { 0x0020, KEY_CHANNELDOWN }, ++ { 0x0021, KEY_CHANNELUP }, ++ { 0x0025, KEY_POWER2 }, ++ { 0x0026, KEY_REWIND }, ++ { 0x0027, KEY_FASTFORWARD }, ++ { 0x0029, KEY_LAST }, ++ { 0x002b, KEY_MENU }, ++ { 0x002c, KEY_EPG }, ++ { 0x002d, KEY_ZOOM }, ++}; ++ ++static struct rc_map_list rc5_dvbsky_map = { ++ .map = { ++ .scan = rc5_dvbsky, ++ .size = ARRAY_SIZE(rc5_dvbsky), ++ .rc_type = RC_TYPE_RC5, ++ .name = RC_MAP_DVBSKY, ++ } ++}; ++ ++static int __init init_rc_map_rc5_dvbsky(void) ++{ ++ return rc_map_register(&rc5_dvbsky_map); ++} ++ ++static void __exit exit_rc_map_rc5_dvbsky(void) ++{ ++ rc_map_unregister(&rc5_dvbsky_map); ++} ++ ++module_init(init_rc_map_rc5_dvbsky) ++module_exit(exit_rc_map_rc5_dvbsky) ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Mauro Carvalho Chehab "); +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/dw2102.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/dw2102.c +--- v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/dw2102.c 2012-08-14 05:45:22.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/dw2102.c 2012-11-24 15:44:13.269971182 +0100 +@@ -3,6 +3,7 @@ + * TeVii S600, S630, S650, S660, S480, + * Prof 1100, 7500, + * Geniatech SU3000 Cards ++ * Bestunar US683x HD, DVBsky S860, S960 USB + * Copyright (C) 2008-2011 Igor M. Liplianin (liplianin@me.by) + * + * This program is free software; you can redistribute it and/or modify it +@@ -19,6 +20,7 @@ + #include "stb6000.h" + #include "eds1547.h" + #include "cx24116.h" ++#include "m88ds3103.h" + #include "tda1002x.h" + #include "mt312.h" + #include "zl10039.h" +@@ -786,7 +788,7 @@ + struct su3000_state *state = (struct su3000_state *)d->priv; + u8 obuf[] = {0xde, 0}; + +- info("%s: %d, initialized %d\n", __func__, i, state->initialized); ++ info("%s: %d, initialized %d", __func__, i, state->initialized); + + if (i && !state->initialized) { + state->initialized = 1; +@@ -824,7 +826,40 @@ + else + mac[i] = ibuf[0]; + +- debug_dump(mac, 6, printk); ++ debug_dump(mac, 6, deb_xfer); ++ } ++ ++ return 0; ++} ++ ++static int dvbsky_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) ++{ ++ int i; ++ u8 obuf[] = { 0x1e, 0x00 }; ++ u8 ibuf[] = { 0 }; ++ struct i2c_msg msg[] = { ++ { ++ .addr = 0x51, ++ .flags = 0, ++ .buf = obuf, ++ .len = 2, ++ }, { ++ .addr = 0x51, ++ .flags = I2C_M_RD, ++ .buf = ibuf, ++ .len = 1, ++ ++ } ++ }; ++ ++ for (i = 0; i < 6; i++) { ++ obuf[1] = i; ++ if (i2c_transfer(&d->i2c_adap, msg, 2) != 2) ++ break; ++ else ++ mac[i] = ibuf[0]; ++ ++ debug_dump(mac, 6, deb_xfer); + } + + return 0; +@@ -835,7 +870,7 @@ + struct dvb_usb_device_description **desc, + int *cold) + { +- info("%s\n", __func__); ++ info("%s", __func__); + + *cold = 0; + return 0; +@@ -878,6 +913,43 @@ + return 0; + } + ++static int bstusb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) ++{ ++ ++ struct dvb_usb_adapter *udev_adap = ++ (struct dvb_usb_adapter *)(fe->dvb->priv); ++ ++ u8 obuf[3] = { 0xe, 0x80, 0 }; ++ u8 ibuf[] = { 0 }; ++ ++ //info("US6830: %s!", __func__); ++ ++ if (voltage == SEC_VOLTAGE_OFF) ++ obuf[2] = 0; ++ else ++ obuf[2] = 1; ++ ++ if (dvb_usb_generic_rw(udev_adap->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ return 0; ++} ++ ++static int bstusb_restart(struct dvb_frontend *fe) ++{ ++ ++ struct dvb_usb_adapter *udev_adap = ++ (struct dvb_usb_adapter *)(fe->dvb->priv); ++ ++ u8 obuf[3] = { 0x36, 3, 0 }; ++ u8 ibuf[] = { 0 }; ++ ++ if (dvb_usb_generic_rw(udev_adap->dev, obuf, 3, ibuf, 0, 0) < 0) ++ err("command 0x36 transfer failed."); ++ ++ return 0; ++} ++ + static void dw210x_led_ctrl(struct dvb_frontend *fe, int offon) + { + static u8 led_off[] = { 0 }; +@@ -983,6 +1055,24 @@ + .ci_mode = 1, + }; + ++static struct m88ds3103_config US6830_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 1, ++ .pin_ctrl = 0x83, ++ .ts_mode = 0, ++ .start_ctrl = bstusb_restart, ++ .set_voltage = bstusb_set_voltage, ++}; ++ ++static struct m88ds3103_config US6832_ds3103_config = { ++ .demod_address = 0x68, ++ .ci_mode = 1, ++ .pin_ctrl = 0x80, ++ .ts_mode = 0, ++ .start_ctrl = bstusb_restart, ++ .set_voltage = bstusb_set_voltage, ++}; ++ + static int dw2104_frontend_attach(struct dvb_usb_adapter *d) + { + struct dvb_tuner_ops *tuner_ops = NULL; +@@ -1000,7 +1090,7 @@ + tuner_ops->set_bandwidth = stb6100_set_bandw; + tuner_ops->get_bandwidth = stb6100_get_bandw; + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached STV0900+STB6100!\n"); ++ info("Attached STV0900+STB6100!"); + return 0; + } + } +@@ -1014,7 +1104,7 @@ + &dw2104_stv6110_config, + &d->dev->i2c_adap)) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached STV0900+STV6110A!\n"); ++ info("Attached STV0900+STV6110A!"); + return 0; + } + } +@@ -1025,7 +1115,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached cx24116!\n"); ++ info("Attached cx24116!"); + return 0; + } + } +@@ -1034,7 +1124,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached DS3000!\n"); ++ info("Attached DS3000!"); + return 0; + } + +@@ -1053,7 +1143,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached si21xx!\n"); ++ info("Attached si21xx!"); + return 0; + } + } +@@ -1065,7 +1155,7 @@ + if (dvb_attach(stb6000_attach, d->fe_adap[0].fe, 0x61, + &d->dev->i2c_adap)) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached stv0288!\n"); ++ info("Attached stv0288!"); + return 0; + } + } +@@ -1077,7 +1167,7 @@ + &d->dev->i2c_adap); + if (d->fe_adap[0].fe != NULL) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached stv0299!\n"); ++ info("Attached stv0299!"); + return 0; + } + } +@@ -1089,7 +1179,7 @@ + d->fe_adap[0].fe = dvb_attach(tda10023_attach, &dw3101_tda10023_config, + &d->dev->i2c_adap, 0x48); + if (d->fe_adap[0].fe != NULL) { +- info("Attached tda10023!\n"); ++ info("Attached tda10023!"); + return 0; + } + return -EIO; +@@ -1103,7 +1193,7 @@ + if (dvb_attach(zl10039_attach, d->fe_adap[0].fe, 0x60, + &d->dev->i2c_adap)) { + d->fe_adap[0].fe->ops.set_voltage = dw210x_set_voltage; +- info("Attached zl100313+zl10039!\n"); ++ info("Attached zl100313+zl10039!"); + return 0; + } + } +@@ -1128,7 +1218,7 @@ + + dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); + +- info("Attached stv0288+stb6000!\n"); ++ info("Attached stv0288+stb6000!"); + + return 0; + +@@ -1150,7 +1240,7 @@ + + dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); + +- info("Attached ds3000+ds2020!\n"); ++ info("Attached ds3000+ds2020!"); + + return 0; + } +@@ -1168,7 +1258,7 @@ + + dw210x_op_rw(d->dev->udev, 0x8a, 0, 0, obuf, 2, DW210X_WRITE_MSG); + +- info("Attached STV0900+STB6100A!\n"); ++ info("Attached STV0900+STB6100A!"); + + return 0; + } +@@ -1205,7 +1295,88 @@ + if (d->fe_adap[0].fe == NULL) + return -EIO; + +- info("Attached DS3000!\n"); ++ info("Attached DS3000!"); ++ ++ return 0; ++} ++ ++static int US6830_frontend_attach(struct dvb_usb_adapter *d) ++{ ++ u8 obuf[3] = { 0xe, 0x04, 1 }; ++ u8 ibuf[] = { 0 }; ++ ++ info("US6830: %s!\n", __func__); ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 0; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ msleep(20); ++ ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 1; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0x51; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0) ++ err("command 0x51 transfer failed."); ++ ++ d->fe_adap[0].fe = dvb_attach(m88ds3103_attach, &US6830_ds3103_config, ++ &d->dev->i2c_adap); ++ if (d->fe_adap[0].fe == NULL) ++ return -EIO; ++ ++ info("Attached M88DS3103!"); ++ ++ return 0; ++} ++ ++static int US6832_frontend_attach(struct dvb_usb_adapter *d) ++{ ++ u8 obuf[3] = { 0xe, 0x04, 1 }; ++ u8 ibuf[] = { 0 }; ++ ++ info("US6832: %s!", __func__); ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 0; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ msleep(20); ++ obuf[0] = 0xe; ++ obuf[1] = 0x83; ++ obuf[2] = 1; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) ++ err("command 0x0e transfer failed."); ++ ++ obuf[0] = 0x51; ++ ++ if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0) ++ err("command 0x51 transfer failed."); ++ ++ d->fe_adap[0].fe = dvb_attach(m88ds3103_attach, &US6832_ds3103_config, ++ &d->dev->i2c_adap); ++ if (d->fe_adap[0].fe == NULL) ++ return -EIO; ++ ++ info("Attached M88DS3103!"); + + return 0; + } +@@ -1447,6 +1618,9 @@ + TEVII_S480_1, + TEVII_S480_2, + X3M_SPC1400HD, ++ BST_US6830HD, ++ BST_US6831HD, ++ BST_US6832HD, + }; + + static struct usb_device_id dw2102_table[] = { +@@ -1465,6 +1639,9 @@ + [TEVII_S480_1] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_1)}, + [TEVII_S480_2] = {USB_DEVICE(0x9022, USB_PID_TEVII_S480_2)}, + [X3M_SPC1400HD] = {USB_DEVICE(0x1f4d, 0x3100)}, ++ [BST_US6830HD] = {USB_DEVICE(0x0572, 0x6830)}, ++ [BST_US6831HD] = {USB_DEVICE(0x0572, 0x6831)}, ++ [BST_US6832HD] = {USB_DEVICE(0x0572, 0x6832)}, + { } + }; + +@@ -1870,6 +2047,106 @@ + } + }; + ++static struct dvb_usb_device_properties US6830_properties = { ++ .caps = DVB_USB_IS_AN_I2C_ADAPTER, ++ .usb_ctrl = DEVICE_SPECIFIC, ++ .size_of_priv = sizeof(struct su3000_state), ++ .power_ctrl = su3000_power_ctrl, ++ .num_adapters = 1, ++ .identify_state = su3000_identify_state, ++ .i2c_algo = &su3000_i2c_algo, ++ ++ .rc.legacy = { ++ .rc_map_table = rc_map_su3000_table, ++ .rc_map_size = ARRAY_SIZE(rc_map_su3000_table), ++ .rc_interval = 150, ++ .rc_query = dw2102_rc_query, ++ }, ++ ++ .read_mac_address = dvbsky_read_mac_address, ++ ++ .generic_bulk_ctrl_endpoint = 0x01, ++ ++ .adapter = { ++ { ++ .num_frontends = 1, ++ .fe = {{ ++ .streaming_ctrl = su3000_streaming_ctrl, ++ .frontend_attach = US6830_frontend_attach, ++ .stream = { ++ .type = USB_BULK, ++ .count = 8, ++ .endpoint = 0x82, ++ .u = { ++ .bulk = { ++ .buffersize = 4096, ++ } ++ } ++ } ++ }}, ++ } ++ }, ++ .num_device_descs = 2, ++ .devices = { ++ { "Bestunar US6830 HD", ++ { &dw2102_table[BST_US6830HD], NULL }, ++ { NULL }, ++ }, ++ { "Bestunar US6831 HD", ++ { &dw2102_table[BST_US6831HD], NULL }, ++ { NULL }, ++ }, ++ } ++}; ++ ++static struct dvb_usb_device_properties US6832_properties = { ++ .caps = DVB_USB_IS_AN_I2C_ADAPTER, ++ .usb_ctrl = DEVICE_SPECIFIC, ++ .size_of_priv = sizeof(struct su3000_state), ++ .power_ctrl = su3000_power_ctrl, ++ .num_adapters = 1, ++ .identify_state = su3000_identify_state, ++ .i2c_algo = &su3000_i2c_algo, ++ ++ .rc.legacy = { ++ .rc_map_table = rc_map_su3000_table, ++ .rc_map_size = ARRAY_SIZE(rc_map_su3000_table), ++ .rc_interval = 150, ++ .rc_query = dw2102_rc_query, ++ }, ++ ++ .read_mac_address = dvbsky_read_mac_address, ++ ++ .generic_bulk_ctrl_endpoint = 0x01, ++ ++ .adapter = { ++ { ++ .num_frontends = 1, ++ .fe = {{ ++ .streaming_ctrl = su3000_streaming_ctrl, ++ .frontend_attach = US6832_frontend_attach, ++ .stream = { ++ .type = USB_BULK, ++ .count = 8, ++ .endpoint = 0x82, ++ .u = { ++ .bulk = { ++ .buffersize = 4096, ++ } ++ } ++ } ++ }}, ++ } ++ }, ++ .num_device_descs = 1, ++ .devices = { ++ { "Bestunar US6832 HD", ++ { &dw2102_table[BST_US6832HD], NULL }, ++ { NULL }, ++ }, ++ } ++}; ++ + static int dw2102_probe(struct usb_interface *intf, + const struct usb_device_id *id) + { +@@ -1926,6 +2203,10 @@ + 0 == dvb_usb_device_init(intf, p7500, + THIS_MODULE, NULL, adapter_nr) || + 0 == dvb_usb_device_init(intf, &su3000_properties, ++ THIS_MODULE, NULL, adapter_nr) || ++ 0 == dvb_usb_device_init(intf, &US6830_properties, ++ THIS_MODULE, NULL, adapter_nr) || ++ 0 == dvb_usb_device_init(intf, &US6832_properties, + THIS_MODULE, NULL, adapter_nr)) + return 0; + +diff -Naur v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/Kconfig v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/Kconfig +--- v4l-dvb-20120916.ORG/linux/drivers/media/usb/dvb-usb/Kconfig 2012-08-22 05:45:23.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb/Kconfig 2012-11-24 13:34:43.716679774 +0100 +@@ -1,3 +1,4 @@ +++ select DVB_M88DS3103 if !DVB_FE_CUSTOMISE + config DVB_USB + tristate "Support for various USB DVB devices" + depends on DVB_CORE && USB && I2C && RC_CORE +@@ -261,6 +262,7 @@ + select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT + select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_M88DS3103 if MEDIA_SUBDRV_AUTOSELECT + select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT + select DVB_SI21XX if MEDIA_SUBDRV_AUTOSELECT + select DVB_TDA10023 if MEDIA_SUBDRV_AUTOSELECT +diff -Naur v4l-dvb-20120916.ORG/linux/include/media/rc-map.h v4l-dvb-20120916/linux/include/media/rc-map.h +--- v4l-dvb-20120916.ORG/linux/include/media/rc-map.h 2012-05-21 05:45:41.000000000 +0200 ++++ v4l-dvb-20120916/linux/include/media/rc-map.h 2012-11-24 13:34:43.716679774 +0100 +@@ -86,6 +86,7 @@ + #define RC_MAP_DM1105_NEC "rc-dm1105-nec" + #define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro" + #define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t" ++#define RC_MAP_DVBSKY "rc-dvbsky" + #define RC_MAP_EMPTY "rc-empty" + #define RC_MAP_EM_TERRATEC "rc-em-terratec" + #define RC_MAP_ENCORE_ENLTV2 "rc-encore-enltv2" diff --git a/src/patches/v4l-dvb_fix_tua6034_pll.patch b/src/patches/v4l-dvb_fix_tua6034_pll.patch new file mode 100644 index 0000000000..a430983b8d --- /dev/null +++ b/src/patches/v4l-dvb_fix_tua6034_pll.patch @@ -0,0 +1,12 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/dvb-frontends/dvb-pll.c v4l-dvb-20120916/linux/drivers/media/dvb-frontends/dvb-pll.c +--- v4l-dvb-20120916.org/linux/drivers/media/dvb-frontends/dvb-pll.c 2012-08-14 05:45:22.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/dvb-frontends/dvb-pll.c 2012-10-25 14:06:42.123360189 +0200 +@@ -247,7 +247,7 @@ + static void tua6034_bw(struct dvb_frontend *fe, u8 *buf) + { + u32 bw = fe->dtv_property_cache.bandwidth_hz; +- if (bw == 7000000) ++ if (bw != 7000000) + buf[3] |= 0x08; + } + diff --git a/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch b/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch new file mode 100644 index 0000000000..1dd649a81a --- /dev/null +++ b/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch @@ -0,0 +1,14 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-16 05:46:03.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-19 20:03:04.538168193 +0200 +@@ -1228,6 +1228,10 @@ + &rtl2832u_props, "G-Tek Electronics Group Lifeview LV5TDLX DVB-T", NULL) }, + { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK, + &rtl2832u_props, "NOXON DAB/DAB+ USB dongle", NULL) }, ++ { DVB_USB_DEVICE(0x1d19, 0x1101, ++ &rtl2832u_props, "DK DVB-T USB dongle", NULL) }, ++ { DVB_USB_DEVICE(0x1f4d, 0xc803, ++ &rtl2832u_props, "Trekstor DVB-T DAB FM USB dongle", NULL) }, + { } + }; + MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table); diff --git a/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch b/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch new file mode 100644 index 0000000000..8fb8bc4e3b --- /dev/null +++ b/src/patches/v4l-dvb_rtl28xx_commented_usb_clear_halt.patch @@ -0,0 +1,12 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-16 05:46:03.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-10-24 13:48:13.113373414 +0200 +@@ -836,7 +836,7 @@ + if (onoff) { + buf[0] = 0x00; + buf[1] = 0x00; +- usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81)); ++// usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81)); + } else { + buf[0] = 0x10; /* stall EPA */ + buf[1] = 0x02; /* reset EPA */ diff --git a/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch b/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch new file mode 100644 index 0000000000..4b161255b3 --- /dev/null +++ b/src/patches/v4l-dvb_usbv2_dont_report_pidfilter_fail.patch @@ -0,0 +1,16 @@ +diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c +--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c 2012-08-16 05:45:24.000000000 +0200 ++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c 2012-10-24 13:53:35.636726448 +0200 +@@ -287,9 +287,9 @@ + ret = adap->props->pid_filter(adap, dvbdmxfeed->index, + dvbdmxfeed->pid, (count == 1) ? 1 : 0); + if (ret < 0) +- dev_err(&d->udev->dev, "%s: pid_filter() " \ +- "failed=%d\n", KBUILD_MODNAME, +- ret); ++// dev_err(&d->udev->dev, "%s: pid_filter() " \ ++// "failed=%d\n", KBUILD_MODNAME, ++// ret); + + /* start feeding if it is first pid */ + if (adap->feed_count == 1 && count == 1) { diff --git a/src/patches/vdr-1.6.0-gcc44-fixes.patch b/src/patches/vdr-1.6.0-gcc44-fixes.patch new file mode 100644 index 0000000000..d8841d8b08 --- /dev/null +++ b/src/patches/vdr-1.6.0-gcc44-fixes.patch @@ -0,0 +1,62 @@ +Index: vdr-1.6.0/recording.c +=================================================================== +--- vdr-1.6.0.orig/recording.c ++++ vdr-1.6.0/recording.c +@@ -509,8 +509,8 @@ cRecording::cRecording(cTimer *Timer, co + Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH); + Subtitle = SubtitleBuffer; + } +- char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE); +- char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE); ++ const char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE); ++ const char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE); + if (macroTITLE || macroEPISODE) { + name = strdup(Timer->File()); + name = strreplace(name, TIMERMACRO_TITLE, Title); +@@ -551,7 +551,7 @@ cRecording::cRecording(const char *FileN + sortBuffer = NULL; + fileName = strdup(FileName); + FileName += strlen(VideoDirectory) + 1; +- char *p = strrchr(FileName, '/'); ++ const char *p = strrchr(FileName, '/'); + + name = NULL; + info = new cRecordingInfo; +@@ -1022,7 +1022,8 @@ void cRecordings::DelByName(const char * + if (recording) { + cThreadLock DeletedRecordingsLock(&DeletedRecordings); + Del(recording, false); +- char *ext = strrchr(recording->FileName(), '.'); ++ // wtf? ++ char *ext = strrchr(const_cast(recording->FileName()), '.'); + if (ext) { + strncpy(ext, DELEXT, strlen(ext)); + recording->fileSizeMB = DirSizeMB(recording->FileName()); +Index: vdr-1.6.0/svdrp.c +=================================================================== +--- vdr-1.6.0.orig/svdrp.c ++++ vdr-1.6.0/svdrp.c +@@ -736,7 +736,7 @@ void cSVDRP::CmdGRAB(const char *Option) + char *strtok_next; + FileName = strtok_r(p, delim, &strtok_next); + // image type: +- char *Extension = strrchr(FileName, '.'); ++ const char *Extension = strrchr(FileName, '.'); + if (Extension) { + if (strcasecmp(Extension, ".jpg") == 0 || strcasecmp(Extension, ".jpeg") == 0) + Jpeg = true; +@@ -796,12 +796,12 @@ void cSVDRP::CmdGRAB(const char *Option) + if (FileName) { + if (grabImageDir) { + cString s; +- char *slash = strrchr(FileName, '/'); ++ char *slash = strrchr(const_cast(FileName), '/'); + if (!slash) { + s = AddDirectory(grabImageDir, FileName); + FileName = s; + } +- slash = strrchr(FileName, '/'); // there definitely is one ++ slash = strrchr(const_cast(FileName), '/'); // there definitely is one + *slash = 0; + char *r = realpath(FileName, RealFileName); + *slash = '/'; diff --git a/src/patches/vdr-plugin-epgsearch-gcc44.patch b/src/patches/vdr-plugin-epgsearch-gcc44.patch new file mode 100644 index 0000000000..2a92a3b178 --- /dev/null +++ b/src/patches/vdr-plugin-epgsearch-gcc44.patch @@ -0,0 +1,78 @@ +diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c +--- vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c 2008-04-13 20:53:44.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c 2009-10-26 20:27:07.000000000 +0100 +@@ -742,12 +742,13 @@ + { + if (*Option) + { +- char* pipePos = strchr(Option, '|'); ++ const char* pipePos = strchr(Option, '|'); + if (pipePos) + { +- *pipePos = 0; +- const char* oldName = Option; +- const char* newName = pipePos+1; ++ int index = pipePos - Option; ++ char* oldName = strdup(Option); ++ *(oldName + index) = 0; ++ const char* newName = oldName + index + 1; + if (strlen(oldName) > 0 && strlen(newName) > 0) + { + cChannelGroup *changrp = ChannelGroups.GetGroupByName(Option); +@@ -769,15 +770,18 @@ + } + ChannelGroups.Save(); + SearchExts.Save(); ++ free(oldName); + return cString::sprintf("renamed channel group '%s' to '%s'", oldName, newName); + + } + else + { ++ free(oldName); + ReplyCode = 901; + return cString::sprintf("channel group '%s' not defined", Option); + } + } ++ free(oldName); + } + ReplyCode = 901; + return cString("Error in channel group parameters"); +diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c vdr-plugin-epgsearch-0.9.24/epgsearchtools.c +--- vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c 2008-04-13 20:53:42.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/epgsearchtools.c 2009-10-26 20:27:07.000000000 +0100 +@@ -743,7 +743,7 @@ + while(tmp) + { + // extract a single line +- char* lf = strchr(tmp, '\n'); ++ const char* lf = strchr(tmp, '\n'); + char* line = NULL; + if (lf) + line = strndup(tmp, lf-tmp); +diff -urNad vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c vdr-plugin-epgsearch-0.9.24/menu_dirselect.c +--- vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c 2008-04-13 20:53:44.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/menu_dirselect.c 2009-10-26 20:27:07.000000000 +0100 +@@ -83,7 +83,7 @@ + return 1; + do + { +- char* pos = strchr(szDir, '~'); ++ const char* pos = strchr(szDir, '~'); + if (pos) + { + iLevel++; +diff -urNad vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c +--- vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c 2008-04-28 18:22:31.000000000 +0200 ++++ vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c 2009-10-26 20:27:28.000000000 +0100 +@@ -565,8 +565,8 @@ + if (!isempty(aux)) + { + tmpaux = strdup(aux); +- char* begin = strstr(aux, ""); +- char* end = strstr(aux, ""); ++ const char* begin = strstr(aux, ""); ++ const char* end = strstr(aux, ""); + if (begin && end) + { + if (begin == aux) strcpy(tmpaux, ""); else strn0cpy(tmpaux, aux, begin-aux+1); diff --git a/src/patches/w_scan-ipfire.patch b/src/patches/w_scan-ipfire.patch deleted file mode 100644 index 69ad3594aa..0000000000 --- a/src/patches/w_scan-ipfire.patch +++ /dev/null @@ -1,130 +0,0 @@ -diff -Naur w_scan_start.sh w_scan_start.sh ---- w_scan_start.sh 2008-01-05 19:58:44.000000000 +0100 -+++ w_scan_start.sh 2008-05-14 18:29:21.000000000 +0200 -@@ -6,11 +6,11 @@ - # - 20060812: first version - # - 20060822: many improvements - # cu@vdr-portal --# -+# - 20080514: patches for ipfire by arne_f@ipfire.org - ####################################################### - - umask 022 --export PATH="$(pwd):/bin:/usr/bin:/sbin:/usr/sbin" -+export PATH="$(pwd):/bin:/usr/bin:/sbin:/usr/sbin:/opt/vdr/bin" - DATE="$(date +%Y)$(date +%m)$(date +%d)" # $DATE == "YYYYMMDD", i.e. 20060710 - W_SCAN=$(which w_scan 2>/dev/null) - UDEVSTART=$(which udevstart) -@@ -224,7 +224,7 @@ - echo "Checking for ct-vdr style startscript.." - if [ -e /etc/init.d/vdr ]; then # c't-vdr - echo_yes -- $(/etc/init.d/vdr stop) -+ /etc/init.d/vdr stop - stopped=true - else - echo_no -@@ -375,7 +375,7 @@ - - # which generic dvb modules should be always loaded? - MODULES_TO_LOAD="videodev v4l1_compat \ -- v4l2_common video_buf dvb_core ves1820 \ -+ v4l2_common dvb_core ves1820 \ - dvb_ttpci \ - budget_ci budget_av budget_ci budget " - -@@ -661,9 +661,11 @@ - echo -e -n $NORMAL - echo -e -n "\\033[1;34m" - if [ ${WHAT_TO_SCAN:0:2} != 0 ]; then -+ echo ":->W_SCAN $DATE DVB-T" >> channels.conf-$DATE - $W_SCAN >> channels.conf-$DATE - fi -- if [ ${WHAT_TO_SCAN:3:2} != 0 ]; then -+ if [ ${WHAT_TO_SCAN:3:2} != 0 ]; then -+ echo ":->W_SCAN $DATE DVB-C" >> channels.conf-$DATE - $W_SCAN -fc >> channels.conf-$DATE - fi - echo -e -n $NORMAL -@@ -671,55 +673,34 @@ - - function CopyConf () - { -- if [ -s channels.conf-$DATE ]; then -- clear -- echo -e -n $SUCCESS -- echo "****************************************************************" -- echo "* *" -- echo "* w_scan is done. *" -- echo -e "* The output file is called "$FAILURE"channels.conf-$DATE"$SUCCESS". *" -- echo "* Should I copy this to default location for you? [y/n] *" -- echo "* *" -- echo "****************************************************************" -- echo -e -n $NORMAL && tput sgr0 -- read RESPONSE -- echo -e -n $NORMAL -- if [ "$RESPONSE" != "y" ]; then -- echo "Copying channels.conf skipped - okay." -- echo "The channels.conf generated can be found at" -- echo -n -e "\\033[1;34m" -- echo "$(pwd)/channels.conf-$DATE" -- echo "" -- echo -e -n $NORMAL -- else -- if [ -d /etc/vdr ]; then -- mv /etc/vdr/channels.conf /etc/vdr/channels.conf-backup$DATE -- cp channels.conf-$DATE /etc/vdr/channels.conf -- fi -- if [ -d /var/lib/vdr ]; then -- mv /var/lib/vdr/channels.conf /var/lib/vdr/channels.conf-backup$DATE -- cp channels.conf-$DATE /var/lib/vdr/channels.conf -- fi -- fi -- else -- clear -- echo -e -n $FAILURE -- echo "****************************************************************" -- echo "* *" -- echo "* Something went wrong. The channels.conf generated is *EMPTY*!*" -- echo "* To analyze your problem I recommend the command *" -- echo "* './w_scan 2>&1 | tee w_scan.log-dvbt && *" -- echo "* ./w_scan -fc 2>&1 | tee w_scan.log-dvbc' *" -- echo "* *" -- echo "* w_scan will report the problem into the logfiles *" -- echo "* w_scan.log-dvbt and w_scan.log-dvbc. *" -- echo "* *" -- echo "* PRESS ANY KEY TO CONTINUE *" -- echo "****************************************************************" -+ echo -e -n $SUCCESS -+ echo "****************************************************************" -+ echo "* *" -+ echo "* w_scan is done. *" -+ echo -e "* The output file is called "$FAILURE"channels.conf-$DATE"$SUCCESS". *" -+ echo "* Should I copy this to default location for you? [y/n] *" -+ echo "* *" -+ echo "****************************************************************" -+ echo -e -n $NORMAL && tput sgr0 -+ read RESPONSE -+ echo -e -n $NORMAL -+ if [ "$RESPONSE" != "y" ]; then -+ echo "Copying channels.conf skipped - okay." -+ echo "The channels.conf generated can be found at" -+ echo -n -e "\\033[1;34m" -+ echo "$(pwd)/channels.conf-$DATE" -+ echo "" - echo -e -n $NORMAL -- read -+ else -+ if [ -d /opt/vdr/etc ]; then -+ mv /opt/vdr/etc/channels.conf /opt/vdr/etc/channels.conf-backup$DATE -+ cp channels.conf-$DATE /opt/vdr/etc/channels.conf -+ fi -+ if [ -d /var/lib/vdr ]; then -+ mv /var/lib/vdr/channels.conf /var/lib/vdr/channels.conf-backup$DATE -+ cp channels.conf-$DATE /var/lib/vdr/channels.conf -+ fi - fi -- - } - - # the program itself. diff --git a/src/scripts/backupiso b/src/scripts/backupiso index 6bea85578b..30616a4a5a 100644 --- a/src/scripts/backupiso +++ b/src/scripts/backupiso @@ -1,11 +1,11 @@ #!/bin/sh -COREVER=`cat /opt/pakfire/db/core/mine` +COREVER=$(cat /opt/pakfire/db/core/mine) # FIXME: edit this lines before release -URL=http://download.ipfire.org/releases/ipfire-2.x/2.11-core$COREVER/ -ISO=ipfire-2.11.i586-full-core$COREVER.iso +URL="http://download.ipfire.org/releases/ipfire-2.x/2.13-core$COREVER/" +ISO="ipfire-2.13.i586-full-core$COREVER.iso" -if [ -z "$1" ]; then +if [ -z $1 ]; then echo usage: $0 backup-file exit fi @@ -15,22 +15,36 @@ TS=$1 mkdir -p /var/tmp/backupiso cd /var/tmp/backupiso -echo "Fetching ${URL}${ISO}" -wget --quiet -c ${URL}${ISO} -echo "Fetching ${URL}md5sums.txt" +if [ ! -e ${ISO} ] +then + echo "Fetching ${URL}${ISO}" + wget --quiet -c ${URL}${ISO} +fi + +echo "Fetching ${URL}${ISO}.md5" wget --quiet -O ${ISO}.md5 ${URL}${ISO}.md5 echo "Checking md5 of ${ISO}" md5sum --status -c ${ISO}.md5 -RETVAR="$?" -if [ $RETVAR -eq 0 -o $RETVAR -eq 24 ] - then - echo "md5 is OK" - else - echo "md5 mismatch" - echo "Fetching again ${URL}${ISO}" - wget --quiet -O ${ISO} ${URL}${ISO} +if [ $? -eq 0 -o $? -eq 24 ] +then + echo "md5 is OK" +else + echo "md5 mismatch" + echo "Fetching again ${URL}${ISO}" + wget --quiet -O ${ISO} ${URL}${ISO} + echo "Checking again md5 of ${ISO}" + md5sum --status -c ${ISO}.md5 + if [ $? -eq 0 -o $? -eq 24 ] + then + echo "md5 is OK" + else + echo "md5 mismatch" + echo "aborting backup because md5 mismatch" + exit 1 + fi fi +rm ${ISO}.md5 echo "Remastering iso" mkdir -p backupiso.tmp.${TS} @@ -45,7 +59,7 @@ cp /var/ipfire/backup/${TS}.ipf backupiso.${TS} echo "Running mkisofs" mkisofs -J -r -V "ipfire backup ${TS}" \ -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \ - -c boot/isolinux/boot.catalog backupiso.${TS} > `basename ${ISO} .iso`-${TS}.iso + -c boot/isolinux/boot.catalog backupiso.${TS} > $(basename ${ISO} .iso)-${TS}.iso echo "Cleaning up" rm -rf backupiso.${TS} diff --git a/src/scripts/makegraphs b/src/scripts/makegraphs index 7cdd2f9bc7..0b56b93250 100644 --- a/src/scripts/makegraphs +++ b/src/scripts/makegraphs @@ -3,7 +3,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2008-2011 IPFire Team # +# Copyright (C) 2008-2013 IPFire Team # # # # 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 # @@ -102,7 +102,7 @@ sub updatehdddata{ ## Update vnstat system ('/usr/bin/vnstat -u'); -my @disks = `ls -1 /sys/block | grep -E '^sd|^xvd|^vd|^md' | sort | uniq`; +my @disks = `ls -1 /sys/block | grep -E '^sd|^mmcblk|^xvd|^vd|^md' | sort | uniq`; system("unlink /var/run/hddstatus 2>/dev/null && touch /var/run/hddstatus"); foreach (@disks){ my $disk = $_; diff --git a/src/scripts/ovpn-ccd-convert b/src/scripts/ovpn-ccd-convert new file mode 100644 index 0000000000..7aa8cf13ea --- /dev/null +++ b/src/scripts/ovpn-ccd-convert @@ -0,0 +1,52 @@ +#!/usr/bin/perl +# Converter script for old openvpn clients +my %net=(); +my %ovpnconfig=(); +my @serverconf=(); +my $greennet; +my $greensubnet; +my $running='off'; + +require '/var/ipfire/general-functions.pl'; +unless (-d "${General::swroot}/ovpn/ccd") { system("mkdir ${General::swroot}/ovpn/ccd"); } +system ("chown nobody.nobody ${General::swroot}/ovpn/ccd"); +if ( -e "/var/run/openvpn.pid"){ + $running='on'; + system('/usr/local/bin/openvpnctrl', '-k'); +} + +&General::readhash("/var/ipfire/ethernet/settings", \%net); + $greennet=$net{'GREEN_NETADDRESS'}; + $greensubnet=$net{'GREEN_NETMASK'}; +open(FILE,"/var/ipfire/ovpn/server.conf"); + while () { + $_=~s/\s*$//g; + if ($_ ne "route $greennet $greensubnet"){ + push (@serverconf,$_."\n"); + }else{ + print"\nFound ROUTE >>route $greennet $greensubnet<< in server.conf.. Deleted!"; + } + } + +&General::readhasharray("/var/ipfire/ovpn/ovpnconfig", \%ovpnconfig); +foreach my $key (keys %ovpnconfig){ + if($ovpnconfig{$key}[32] eq '' && $ovpnconfig{$key}[3] eq 'host'){ + $ovpnconfig{$key}[2] =~ s/ /_/gi; + open ( CCDRWCONF,'>',"/var/ipfire/ovpn/ccd/$ovpnconfig{$key}[2]") or die "Unable to create clientconfigfile $!"; + print CCDRWCONF "# OpenVPN Clientconfig from CCD extension by Copymaster#\n\n"; + print CCDRWCONF "#This client uses the dynamic pool\n\n"; + print CCDRWCONF "\n#Client gets routes to these Networks (behind IPFIRE)\n"; + print CCDRWCONF "push \"route $greennet $greensubnet\"\n"; + close CCDRWCONF; + print"Client $ovpnconfig{$key}[2] converted! \n"; + }else{ + print "Client $ovpnconfig{$key}[2] NOT converted!\n"; + } + $ovpnconfig{$key}[32] = 'dynamic'; +} +&General::writehasharray("/var/ipfire/ovpn/ovpnconfig", \%ovpnconfig); +if ($running eq 'on') +{ + system('/usr/local/bin/openvpnctrl', '-s'); +} +system ("chown nobody:nobody /var/ipfire/ovpn/ccd/*"); diff --git a/src/scripts/readhash b/src/scripts/readhash index 8c187d51d1..bffc93fbd0 100644 --- a/src/scripts/readhash +++ b/src/scripts/readhash @@ -9,11 +9,11 @@ # shell variables must consist of alphanumeric characters and underscores, # and begin with an alphabetic character or underscore. -VARNAME='[A-Za-z_][A-zA-z0-9_]*' +VARNAME='[A-Za-z_][A-Za-z0-9_]*' # For the assigned value we only accept a limited number of characters - none # of which are shell metachars -VARCHARS='A-Za-z0-9=/,.:_@#+-' +VARCHARS='A-Za-z0-9=/,.:%_@#+-' VARVAL="[${VARCHARS}]*" sed -ne "s/\(${VARNAME}\)=\(${VARVAL}\)$/\1=\2/p" $1 diff --git a/src/scripts/scanhd b/src/scripts/scanhd index f46a630735..b208bbb1d1 100644 --- a/src/scripts/scanhd +++ b/src/scripts/scanhd @@ -11,7 +11,7 @@ case "$1" in done ;; partitions) - cat /proc/partitions | awk '{print $4 " " $3 }' | grep -v name | grep -v "^[:space:]*$" | \ + cat /proc/partitions | awk '{print $4 " " $3 }' | grep -v name | grep -v "^[[:space:]]*$" | \ while read device size; do [ -z "${device}" ] && continue echo "${device};${size};$(blkid -c /dev/null -s UUID -o value /dev/${device});" diff --git a/src/scripts/update-lang-cache b/src/scripts/update-lang-cache new file mode 100644 index 0000000000..971664ee23 --- /dev/null +++ b/src/scripts/update-lang-cache @@ -0,0 +1,3 @@ +#!/bin/sh +perl -e "require '//var/ipfire/lang.pl'; &Lang::BuildCacheLang" + diff --git a/src/scripts/vpn-watch b/src/scripts/vpn-watch deleted file mode 100755 index 7eae873cea..0000000000 --- a/src/scripts/vpn-watch +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/perl -################################################## -##### VPN-Watch.pl Version 0.7 ##### -################################################## -# # -# VPN-Watch is part of the IPFire Firewall # -# # -################################################## - -use strict; - -require '/var/ipfire/general-functions.pl'; -my @vpnsettings; -my $i = 0; -my $file = "/var/run/vpn-watch.pid"; -my $debug = 0; - -if ( -e $file ){ - logger("There my be another vpn-watch runnning because $file exists, vpn-watch will try kill the process."); - open(FILE, "<$file"); - my $PID = ; - close(FILE); - system("kill -9 $PID"); - } - -system("echo $$ > $file"); -my $round=0; -while ( $i == 0){ - if ($debug){logger("We will wait 60 seconds before next action.");} - sleep(60); - - $round++; - - # Reset roundcounter after 10 min. To do established check. - if ($round > 9) { $round=0; } - - if (open(FILE, "<${General::swroot}/vpn/config")) { @vpnsettings = ; - close(FILE); - unless(@vpnsettings) {exit 1;} - } - -my $status = `ipsec status`; -foreach (@vpnsettings){ - my @settings = split(/,/,$_); - - chomp($settings[30]); - if ($settings[27] ne 'RED'){next;} - if ($settings[4] ne 'net'){next;} - if ($settings[1] ne 'on'){next;}chomp($settings[29]); - if ($settings[29] ne 'on'){next;} - - my $remotehostname = $settings[11]; - - if ($debug){logger("Checking connection to $remotehostname.");} - - my $remoteip = `/usr/bin/ping -c 1 $remotehostname 2>/dev/null | head -n1 | awk '{print \$3}' | tr -d '()' | tr -d ':'`;chomp($remoteip); - if ($remoteip eq ""){next;if ($debug){logger("Unable to resolve $remotehostname.");}} - my $ipmatch= `echo "$status" | grep '$remoteip' | grep '$settings[2]'`; - my $established= `echo "$status" | grep '$settings[2]' | grep -e 'erouted;' -e 'INSTALLED'`; - my $known= `echo "$status" | grep '$settings[2]'`; - - if ( $ipmatch eq '' && $known ne '' ){ - logger("Remote IP for host $remotehostname($remoteip) has changed, restarting ipsec."); - system("/usr/local/bin/ipsecctrl S $settings[0]"); - $round=0; - } - - if ($debug){logger("Round=".$round." and established=".$established);} - - if ( ($round == 0) && ($established eq '')) { - logger("Connection to $remotehostname($remoteip) not erouted, restarting ipsec."); - system("/usr/local/bin/ipsecctrl S $settings[0]"); - $round=0; - - } - } - if ($debug){logger("All connections may be fine nothing was done.");} -} - -sub logger { - my $log = shift; - system("logger -t vpnwatch \"$log\""); -} diff --git a/src/stripper b/src/stripper new file mode 100755 index 0000000000..2b4feafe90 --- /dev/null +++ b/src/stripper @@ -0,0 +1,57 @@ +#!/tools/bin/bash + +dirs="" +excludes="/dev /proc /sys /run" + +while [ $# -gt 0 ]; do + case "${1}" in + --exclude=*) + excludes="${excludes} ${1#*=}" + ;; + *) + dirs="${dirs} ${1}" + ;; + esac + shift +done + +function _strip() { + local file=${1} + local cmd="${STRIP-strip}" + + local exclude l + for exclude in ${excludes}; do + l=${#exclude} + if [ "${file:0:${l}}" = "${exclude}" ]; then + return 0 + fi + done + + case "$(file -bi ${file})" in + application/x-sharedlib*|application/x-archive*) + cmd="${cmd} --strip-debug --remove-section=.comment --remove-section=.note" + ;; + *) + cmd="${cmd} --strip-unneeded" + ;; + esac + + echo "Stripping ${file}..." + ${cmd} ${file} +} + +for dir in ${dirs}; do + # Strip shared objects. + find ${dir} -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \ + | file -N -f - | sed -n -e 's/^\(.*\):[ ]*.*ELF.*, not stripped/\1/p' | + while read file; do + _strip ${file} + done + + # Strip static archives. + find ${dir} -name \*.a -a -exec file {} \; \ + | grep 'current ar archive' | sed -n -e 's/^\(.*\):[ ]*current ar archive/\1/p' | + while read file; do + _strip ${file} + done +done diff --git a/tools/make-functions b/tools/make-functions index 783b46e141..16352b4a2f 100644 --- a/tools/make-functions +++ b/tools/make-functions @@ -220,15 +220,17 @@ get_pkg_ver() if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then echo "`date -u '+%b %e %T'`: Machine is iX86 (or equivalent)" >> $LOGFILE MACHINE=i586 + CROSSTARGET=${MACHINE}-cross-linux-gnu BUILDTARGET=i586-pc-linux-gnu CFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer" C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer" -elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv7l' = $MACHINE ]; then +elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv6l' = $MACHINE -o 'armv7l' = $MACHINE ]; then echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE MACHINE=armv5tel MACHINE_TYPE=arm + CROSSTARGET=${MACHINE}-cross-linux-gnueabi BUILDTARGET=${MACHINE}-unknown-linux-gnueabi CFLAGS="-O2 -march=armv5te -mfloat-abi=soft -fomit-frame-pointer -pipe" CXXFLAGS="$CFLAGS" @@ -291,16 +293,17 @@ entershell() { fi echo "Entering to a shell inside LFS chroot, go out with exit" - $linux32 chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ + chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$CF2LAGS" CXXFLAGS="$CXX2FLAGS" \ CCACHE_DIR=/usr/src/ccache \ CCACHE_COMPRESS=1 \ - CCACHE_HASHDIR=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER \ BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ KGCC="ccache /usr/bin/gcc" \ @@ -382,13 +385,13 @@ lfsmake1() { local PKG_TIME_START=`date +%s` cd $BASEDIR/lfs && make -f $* BUILDTARGET=$BUILDTARGET \ + CROSSTARGET="${CROSSTARGET}" \ MACHINE=$MACHINE \ MACHINE_TYPE=$MACHINE_TYPE \ LFS_BASEDIR=$BASEDIR \ ROOT=$LFS \ KVER=$KVER \ MAKETUNING=$MAKETUNING \ - $(fake_environ) \ install >> $LOGFILE 2>&1 local COMPILE_SUCCESS=$? local PKG_TIME_END=`date +%s` @@ -408,16 +411,19 @@ lfsmake2() { [ $? == 1 ] && return 0 local PKG_TIME_START=`date +%s` - $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ + chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER MAKETUNING=$MAKETUNING \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ $(fake_environ) \ /tools/bin/bash -x -c "cd /usr/src/lfs && \ @@ -440,17 +446,20 @@ ipfiremake() { [ $? == 1 ] && return 0 local PKG_TIME_START=`date +%s` - $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ + chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ CORE=$CORE \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER MAKETUNING=$MAKETUNING \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ $(fake_environ) \ /bin/bash -x -c "cd /usr/src/lfs && \ @@ -475,14 +484,17 @@ ipfiredist() { local PKG_TIME_START=`date +%s` chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ - PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \ - CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ + CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \ + CCACHE_COMPILERCHECK="none" \ KVER=$KVER \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ $(fake_environ) \ /bin/bash -x -c "cd /usr/src/lfs && \ @@ -505,20 +517,22 @@ installmake() { [ $? == 1 ] && return 0 local PKG_TIME_START=`date +%s` - $linux32 chroot $LFS /tools/bin/env -i HOME=/root \ + chroot $LFS /tools/bin/env -i HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ - PATH=/opt/i586-uClibc/i586-linux-uclibc/bin:/opt/i586-uClibc/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \ + PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \ VERSION=$VERSION \ CONFIG_ROOT=$CONFIG_ROOT \ - LFS_PASS="install" \ NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \ CFLAGS="-Os" CXXFLAGS="-Os" \ CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \ KVER=$KVER \ - BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \ + BUILDTARGET="$BUILDTARGET" \ + CROSSTARGET="${CROSSTARGET}" \ + MACHINE="$MACHINE" \ MACHINE_TYPE="$MACHINE_TYPE" \ - /bin/bash -x -c "cd /usr/src/lfs && \ - make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1 + LD_LIBRARY_PATH=/tools/lib \ + /tools/bin/bash -x -c "cd /usr/src/lfs && \ + /tools/bin/make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1 local COMPILE_SUCCESS=$? local PKG_TIME_END=`date +%s` @@ -541,12 +555,14 @@ update_langs() { $BASEDIR/tools/sort_strings.pl es $BASEDIR/tools/sort_strings.pl pl $BASEDIR/tools/sort_strings.pl ru + $BASEDIR/tools/sort_strings.pl nl $BASEDIR/tools/check_strings.pl en > $BASEDIR/doc/language_issues.en $BASEDIR/tools/check_strings.pl de > $BASEDIR/doc/language_issues.de $BASEDIR/tools/check_strings.pl fr > $BASEDIR/doc/language_issues.fr $BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.es $BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.pl $BASEDIR/tools/check_strings.pl ru > $BASEDIR/doc/language_issues.ru + $BASEDIR/tools/check_strings.pl nl > $BASEDIR/doc/language_issues.nl $BASEDIR/tools/check_langs.sh > $BASEDIR/doc/language_missings beautify message DONE }