awffull-3.10.2/0000777000076400007640000000000011120617025010245 500000000000000awffull-3.10.2/sample.css0000644000076400007640000000634011120610145012153 00000000000000/* AWFFULL CSS File */ p {font-size: small} /* Default Paragraph */ div {margin-top: 1em;} /* Default div groups - simple separating */ td {text-align: right; font-size: small; font-weight: bold;} /* Default setting for ALL table data, everything else is the exception! */ td.text {text-align: left; font-weight: normal; white-space: nowrap;} /* Default text in tables */ td.percent {font-size: x-small; font-weight: normal;} /* Percent */ td.special_percent {font-size: small; font-weight: normal;} /* Special Percents */ td.front_val {font-weight: normal;} /* Values on the Main Index Page */ td.front_str {font-weight: normal;} /* Equiv to Val, used for Volume */ td.front_tot_val {} /* Setting totals - same as default */ td.front_tot_str {} /* ditto */ td.front_month {font-weight: normal; text-align: left; white-space: nowrap;} /* Link to the Month Page - intro text*/ td.front_year {text-align: left; white-space: nowrap;} /* Subtotal for a Year - intro text */ td.total {text-align: left; white-space: nowrap;} /* Total for the entire table - intro text */ th.front_monthhead {text-align: left; white-space: nowrap; background: #C0C0C0;} th.front_subhead {text-align: center; background: #C0C0C0;} th.index_key {text-align: center; background: #C0C0C0;} td.response_desc {text-align: left; font-weight: normal;} /* Response Code Section */ td.response_val {} td.response_pct {font-weight: normal;} td.summary_desc {text-align: left; font-weight: normal;} /* Monthly Summary Section */ td.summary_val {} td.index_count {text-align: center; font-weight: bold;} /* Index Counts - day of month, hour etc */ td.perday_desc {text-align: left; font-weight: normal;} /* XXX per Day Section */ td.perday_val {width: 65px;} td.perday_avg {width: 65px;} td.viewall {text-align: center; font-weight: normal;} /* Trailing ViewAll XXX line */ tr.viewall {background: #D0D0E0;} tr.subtotal {background: #C0C0C0;} tr.total {background: #C0C0C0;} tr.group_shade {background: #D0D0E0;} th {font-size: small; font-weight: bold; text-align: center;} /* All the table headers */ th.main {text-align: right; background: #C0C0C0;} th.hits {background: #00805C;} th.files {background: #0000FF;} th.pages {background: #00E0FF;} th.visits {background: #FFFF00;} th.sites {background: #FF8000;} th.transfer {background: #FF0000;} th.bookmarks {background: #FF00FF;} th.url {background: #FF8000;} th.agents {background: #FF8000;} th.search {background: #FF8000;} th.country {background: #00E0FF;} th.hostname {background: #FF8000;} th.referringurl {background: #0080FF;} th.stickiness {background: #FFC480;} th.popularity {background: #80FFC0;} img.flags {margin: 0; width: 25px; height: 15px; padding: 0 0.2em 0 0;} caption {text-align: center; font-weight: bold; background: #C0C0C0; border-width: 2;} /* Table Caption */ #navigation {font-size: small;} #monthTotal {font-size: small;} #response_code {text-align: center; font-size: small; font-weight: bold; background: #C0C0C0;} #summary_period {font-weight: bold;} #body {font-size: small; background: #E8E8E8; color: #000000;} #header {text-align: left;} #footer {text-align: left;} h2 {font-size: x-large;} a:link {color: #0000FF;} a:visited {color: #FF0000;} awffull-3.10.2/country-codes.txt0000644000076400007640000001035211120610145013515 00000000000000# This is an information file only. # The actual codes are stored in src/messages.c # 21-Dec-2005 aero Air-Transport Industry biz Businesses cat Catalan Linguistic and Cultural Community com Commercial coop Cooperative Associations info Information jobs Human Resource Managers mobi Mobile Products and Services museum Museums name Individuals net Network org Non-Profit Organisation pro Credentialed Professionals travel Travel Industry edu US Educational gov US Government mil US Military int International Treaty Organisations arpa Old style Arpanet (arpa) nato NATO # 29-Apr-2005 ac Ascension Island ad Andorra ae United Arab Emirates af Afghanistan ag Antigua and Barbuda ai Anguilla al Albania am Armenia an Netherlands Antilles ao Angola aq Antarctica ar Argentina as American Samoa at Austria au Australia aw Aruba az Azerbaijan ax Aland Islands ba Bosnia and Herzegovina bb Barbados bd Bangladesh be Belgium bf Burkina Faso bg Bulgaria bh Bahrain bi Burundi bj Benin bm Bermuda bn Brunei Darussalam bo Bolivia br Brazil bs Bahamas bt Bhutan bv Bouvet Island bw Botswana by Belarus bz Belize ca Canada cc Cocos (Keeling) Islands cd Congo, The Democratic Republic of the cf Central African Republic cg Congo, Republic of ch Switzerland ci Cote d'Ivoire ck Cook Islands cl Chile cm Cameroon cn China co Colombia cr Costa Rica cs Serbia and Montenegro cu Cuba cv Cape Verde cx Christmas Island cy Cyprus cz Czech Republic de Germany dj Djibouti dk Denmark dm Dominica do Dominican Republic dz Algeria ec Ecuador ee Estonia eg Egypt eh Western Sahara er Eritrea es Spain et Ethiopia eu European Union fi Finland fj Fiji fk Falkland Islands (Malvinas) fm Micronesia, Federal State of fo Faroe Islands fr France ga Gabon gb United Kingdom gd Grenada ge Georgia gf French Guiana gg Guernsey gh Ghana gi Gibraltar gl Greenland gm Gambia gn Guinea gp Guadeloupe gq Equatorial Guinea gr Greece gs South Georgia and the South Sandwich Islands gt Guatemala gu Guam gw Guinea-Bissau gy Guyana hk Hong Kong hm Heard and McDonald Islands hn Honduras hr Croatia/Hrvatska ht Haiti hu Hungary id Indonesia ie Ireland il Israel im Isle of Man in India io British Indian Ocean Territory iq Iraq ir Iran, Islamic Republic of is Iceland it Italy je Jersey jm Jamaica jo Jordan jp Japan ke Kenya kg Kyrgyzstan kh Cambodia ki Kiribati km Comoros kn Saint Kitts and Nevis kp Korea, Democratic People's Republic kr Korea, Republic of kw Kuwait ky Cayman Islands kz Kazakhstan la Lao People's Democratic Republic lb Lebanon lc Saint Lucia li Liechtenstein lk Sri Lanka lr Liberia ls Lesotho lt Lithuania lu Luxembourg lv Latvia ly Libyan Arab Jamahiriya ma Morocco mc Monaco md Moldova, Republic of mg Madagascar mh Marshall Islands mk Macedonia, The Former Yugoslav Republic of ml Mali mm Myanmar mn Mongolia mo Macau mp Northern Mariana Islands mq Martinique mr Mauritania ms Montserrat mt Malta mu Mauritius mv Maldives mw Malawi mx Mexico my Malaysia mz Mozambique na Namibia nc New Caledonia ne Niger nf Norfolk Island ng Nigeria ni Nicaragua nl Netherlands no Norway np Nepal nr Nauru nu Niue nz New Zealand om Oman pa Panama pe Peru pf French Polynesia pg Papua New Guinea ph Philippines pk Pakistan pl Poland pm Saint Pierre and Miquelon pn Pitcairn Island pr Puerto Rico ps Palestinian Territories pt Portugal pw Palau py Paraguay qa Qatar re Reunion Island ro Romania ru Russian Federation rw Rwanda sa Saudi Arabia sb Solomon Islands sc Seychelles sd Sudan se Sweden sg Singapore sh Saint Helena si Slovenia sj Svalbard and Jan Mayen Islands sk Slovak Republic sl Sierra Leone sm San Marino sn Senegal so Somalia sr Suriname st Sao Tome and Principe sv El Salvador sy Syrian Arab Republic sz Swaziland tc Turks and Caicos Islands td Chad tf French Southern Territories tg Togo th Thailand tj Tajikistan tk Tokelau tl Timor-Leste tm Turkmenistan tn Tunisia to Tonga tp East Timor tr Turkey tt Trinidad and Tobago tv Tuvalu tw Taiwan tz Tanzania ua Ukraine ug Uganda uk United Kingdom um United States Minor Outlying Islands us United States uy Uruguay uz Uzbekistan va Holy See (Vatican City State) vc Saint Vincent and the Grenadines ve Venezuela vg Virgin Islands, British vi Virgin Islands, U.S. vn Vietnam vu Vanuatu wf Wallis and Futuna Islands ws Samoa ye Yemen yt Mayotte yu Yugoslavia za South Africa zm Zambia zw Zimbabwe awffull-3.10.2/flags/0000777000076400007640000000000011120617025011341 500000000000000awffull-3.10.2/flags/tm.png0000644000076400007640000000215211120610145012377 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\dCї~|a{~d` Y`0ɷ ۟n@,wnm+v/Pb ǘ1dfd͏ 0KXp6!ʮ~+byޟ;Y?ҙw 0 a l  '?f7G `@|/Ï~ T RyW=?0S+8[`'M N7J²b#fYZk0 f2B "!'<7 3̰8Ï |` *#W-`rh\1A E % ;. 3{t)#'?O@ş~eabÙwH33<A|dP1 ? g1Ƞ( \LY~`x-+>` $`af`# 3aQ w_s18>h/HB q134B-O8@b|a^??0raZpjg" g@,N T+/0X07 0 XC ps+o"M2aQQ??<3 ?t:8EZ0 /;p%?0oQ? BngXu%60 77~ ]P/m  X3అ [ga:X$30X+p z]DM䓯_>~ĝ 8|`JƧO.\`  ^` A A恜 @, /:G@f=dbYە@f`m{'IENDB`awffull-3.10.2/flags/al.png0000644000076400007640000000125111120610145012352 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxbhC_>30@54 m@,^fԵ?.3lx X?7 =%l L@!,@6!2\ܯ? 2٘fzo~3s3A'߃L  X@.Th?@I333:J H[1Ă/X@y~2}??C7# B@}P|ebYO%bks Md|($ H M 9sfY pиbaag3 rq"'3`Z@`eś@ G<&v`F; `[(@%?0q3Բvp6 XݼrGŢ dC`~/ @l|?F#@{2ͶIENDB`awffull-3.10.2/flags/ms.png0000644000076400007640000000204611120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb{CnekN?S!^h0!>VC_ z~0=_@ eXGbJؒ6@]=\" #w3$Πc' s+sC ~BoX`8qÜ g`)0AݞA6ő;2<] XJ,x?1|6a s 1}a0%rc5Cb4csix' .O1`P /dZXAPWi ~@,O_`t"ÆG gu}d``bcXy5/& Ϗ_G2$0^ؒ练N(=#ß8  mm;>x8D &*ǎ$ oz °G: IH3HTI-%!1b0 ɰ}OÅ I Qw`x @Qp6daj] (32 (2%BPOY>~|ƔY @-w@RMG l-9qIENDB`awffull-3.10.2/flags/hk.png0000644000076400007640000000124211120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<4IDATxb|5eC>10@-h֯ޯ^ X?/_ϟSג?ϰGbq?^1w?Kn}@1  / *602!h_e g#a4xz2y{3ň `b"G_,*.gj Eb!A''k~?yoG2{y10011z~=ÇԶla|ޠ X3% /45}Δ|a @}-A@|| du g@ Xvv7|y@3 2Un.6uIENDB`awffull-3.10.2/flags/lv.png0000644000076400007640000000075111120610145012403 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<{IDATxb<=oC_0@E 7@,/\i˿^^p3byw៯o1|xh?YË Xh뿿@lТ X߾Sݒ?1 X,M~|  . ,o^<@@Pb2 3^#@11], K+3;0^Of~ rjb/_1 S׋@,l< y8n  ?183r'(5gff2 X^]{~2j f o^ӟ*q}04.. IENDB`awffull-3.10.2/flags/gf.png0000644000076400007640000000077411120610145012363 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?20π ~`.`(  #=ywrs?0(r-a >~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/sh.png0000644000076400007640000000202611120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxboC&9/X\|g^| '2ܲ`Xs? jr W 3l:l$ի~ ߅q[IfPbr/ 39J֞ѭ Ao$j3}Űc=O/1mp ϳ8ßz͠`C1< ;2h{E2tdbcp+o2a{l//nZ!r 10+ $@I? l~z d_@,~zdAXC:V[f`HOc`b`y;_\ ̿2{pFf !Gt3|'ۘ%2 C? Ӛ. Gmΰ1$>d;u9f)$=4p%J1˾gBD ý\ <"S m3d`uC.h1$g|/C/ߧp-'jH1ex#,pÃ7 ߩ1 *oϑ}Tam&o~C>cQދ_ aز>Æb dxp O320=5;;>'3y'@17w0OPpgL E?Π³APs>=OO^@P\Ā%@?,Ià /Xd0^`w^ba*?ÓG ܏~|-bb:'ÏZ@ A@,CTY X._~3 5-%` \+@+1|0-c+uIENDB`awffull-3.10.2/flags/ir.png0000644000076400007640000000115511120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\`C/0Bj3]cxq @<_o}{jy'ï;~OZ ?0 XX~ *HF&&`X:J}g@1~0 ??30 10C,\@G\pa8gv10}f`lLl DlS y~C EVYPw_ ut X D0&vooǏGJ_'@|b5ÿ[ F^^?60>⯿@,?}b=o [r˗fPOD*Z@AU[@rf=,IJÇ󆊅#`Bڭ*IENDB`awffull-3.10.2/flags/vc.png0000644000076400007640000000160711120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C/~1~0h>bp0 `h mO} wջo  | ?VAL@? ? feË/X~'P||: 4 *FKD30gz+ov`K ?o%c'ï?8u1a``pS}d .bh H\?4@`opE@\&/.e3% 0  ^32cXÇ/ 02 ?Õ7%,xW"rL rL@$3@ N@-aF6s%2ccbPdf``!" >pc`Udeǰ费l%@ , Qa F"A@DdgPg$!F 0]211e @1e 08* UA11hC|m @,2?p+Ā)F?B *??P͗BA@|' ]?2ܺaup ՠ$2 yYo>?/ |E-%B޾?F |T3IENDB`awffull-3.10.2/flags/lk.png0000644000076400007640000000212711120610145012367 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxڌ 0"=,[1`rۺ`Zb/p/'_fv}8@a:o L@Ǥwr2<| l@@ Ffdpzw0Hk32j00A@? 3'?8V`V&  BL(q02\ޥ? q\ Ocжae1cg` f?; [gg I~b".T6v&ee&3<we? @L $P<,dj}/Å+``fB pfn`l7 h#'#Ï.f8 -(ܸAӖٝA@! N?p~ @,0ÚAV+2d`ad ?P=0(h2Y˛ R ^ -AiA͔͟@7Д0 \9=H&`Y5;×w0<\$p2Y+0ϟ,O`@+_ɰ?Pñ??o_.*Jء7< ? _W@,vz)Xcw\1Ӎ? Y%8$2- | E_IENDB`awffull-3.10.2/flags/pw.png0000644000076400007640000000116711120610145012412 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbv?f`jdԃ @,7N0IF(&՟ZbȂ{a3'wY@.#㯲 ?~p00/аO.20>< XAj) 3nRe|9aε )a(G0>A)Czb* t! AQ iZB pEtY0Ī.ƓZ $f'5<%d@a_7?DZVOhJ w#P' ;x0,SkY 9Ă;31CBa`Wf]Och>[ '#ċh߇}ye3 ˵wZ >KA"_0jsk>˕w , x~K!D]`KwYuoά5G\IENDB`awffull-3.10.2/flags/gs.png0000644000076400007640000000224311120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<5IDATxbO~@,Ĵp|} CÓ? ?*3|8v?./ GMS};o09כ Mb`B3Gbg Pb|W_=``_߿0J0d?P/ PlO%O`*3(20p1Hd0ϰ ço^= X3pe< dxV:#× 3ǿ }p/r 0 2X{H2< }cx Xz2 2ps n?ck )-`geX}P0G&2)aPexz ÷<@L~̟P6CV)1 ac  i0b(dX{O+|H2be`/  _ո2Ǻӟ}OCex#ås|pC@=#'n}fK9od1Ɩ.7^>} mm>x7 F&3(*ؠ'40̄A " ߾dxGbLP~#YgbV$ L2|i;W=%Ubbc,s0p`'÷X81S<+37@Q`:&08Yf`%0b: ,~3߿@'Q[_01}]/ ˛ štbT| ϟe`(8 ^"OIENDB`awffull-3.10.2/flags/cl.png0000644000076400007640000000114711120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C ~f`ffbÿD9¼brpAOM gPgZB k׮e >aAC!6@A ?g %ŋ gϞ@L_PjPf?20R`g ~KaG ,,` r2as bB\ @O5;_ ex8wv/,\ ,T Xgû?88&bCfп1; X¿g`=PlATb~@wbd8R0?10Ց@)/^B X?0>R1قdHbwn#[4 ~c /޿]ן7*>"LOIENDB`awffull-3.10.2/flags/fm.png0000644000076400007640000000127411120610145012365 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<NIDATxbC20g HXo7A;?f: Nf WÛO?ԕge8r-Xt8Û'^? Xm x ea 6&<߿` Ѕ&F1tl2 X?Y_p3h?3nK% 3<d( `) d;+(ؗWi@1J,  1r`CK{B,d8Y >_} t׀@xg@6#çq p 0b/0X!q@B0_ވ5> ZY$c &b!()r31hHk&bΌ?|#P_LL [Da  ᄈx|<'*`qB`] %~IENDB`awffull-3.10.2/flags/hr.png0000644000076400007640000000155011120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|5eC>10@-h֯ޯ^ X?/_ϟ㵄@1NKe~<Yz=j`@ 3;#;+ϟ 1ǒ[@G_g`@, ~,,@Nɛ  $έX-*!o7Ğcada)"b _ ߾1?WP_Ϛ ??290-`Dh֬_ X88, gPys;/#+÷? <ٱkZ@,$~3p 3I*1d- x| (Kq %=_x k tӱ%bJ w"*UҿjgV7HF%rf΅B](jZ0^RT/ ϞS 6?}`Y;?F. 14Md`ca‘-9 o3˵[^p[e !%)` ן ^bx˭LqeG`\d@031!#+E,T=(ç ydO̠@,n>g903_W Ȁ O|O,Օ7Kؿ 7HoIENDB`awffull-3.10.2/flags/nc.png0000644000076400007640000000077411120610145012367 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?20π ~`.`(  #=ywrs?0(r-a >~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/hn.png0000644000076400007640000000127011120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<JIDATxbC_1g" @,Wnw߀Գ߿ oax @{ϛ>DUKg)O˯~oT /?3 XDyYY #+Ï_` v߿qɷ` ?|'`= 1Wc`'.^n횏~oV&@bkv`x^} Az@`x_9>P`89syyb"& {6$30b4Dyf@O<0Y ZJ zX,+N@f}@>٫8S 3;0|} N\@'>o^ g?/o~@@G220] M42Pt3# #_fFb~-ˇ7O|}AK w,?^q]o|3IENDB`awffull-3.10.2/flags/af.png0000644000076400007640000000135411120610145012350 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb2eCO>102(323fc.E 9Q>cX}vGb9߿?Y&X, 1NA1|,r?^bw?:ffĊ?@KdyqJbZ7^ 2GA dI"q촣a9ր!7hHFrRPr}f Fbd8P7.6_, L@|'Qx*?Of D@,Z7ӯ _Y13} V`0D'/6f,L @?Y r00%DВ@ eG> ~-򛁘 ",abyʂ )1fafy+8 qJ,y-G~v?La`t- bR_`>hw>A2?&@2"cˈbPIH_@LgFXDreϟ?tŹjb@~00<%`d R%L B@g" 0c^/ }pIENDB`awffull-3.10.2/flags/bz.png0000644000076400007640000000221411120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb9}C>10πdQgﵫ?T.=c`/3#3 ##Բ@P/ç`g o^) #Ў 0FǠ$ .'?2|򛁑L@;l o@ 1"P  t_5? A[Cѓ_ vb`<A 4 b?p3?@KB$4H3RmM1(}{3)_?30 c t4 84 6&&`CH33|ANOȷ??#+ÏO>g9%Npt⿠cH Ù$_Sci%ii?̠,! ( pU Yc~2pY@6h@b"C}0#/$7>3ܿ}!<"AKCყ 켬A133B bɂ\H%~cOׯ3 V>$? R8l N`@,4%H9՟0ܾA/[ R<^C_2:34*I'gCw Μg0d`gepCV.w~1|PG2B Xd<v33#O˟,D8 *1a>/^|' d 3 sN @%0̙y `dlz7`3 (p@s9oy/>}~7vH`W r Zz0Kw @,^}ß7 4 U @IENDB`awffull-3.10.2/flags/zm.png0000644000076400007640000000124411120610146012407 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxڌ @ @n7SX6h 'e);0o"Hep U[:cc^ oo ͷ7 ?~Pff/Dcx"ÂL,?﾿cx)H@{223lAG OF%" {n} X Ӥ@KgpCAG'OJ3  @<;3piPw}A/7#@ MIENDB`awffull-3.10.2/flags/md.png0000644000076400007640000000152211120610145012357 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C/~3 ߿ FU_30ff, a I?а0X#@\V߿ܯ}I#ß? rWU aŴh迏~y tTKes<ÖwYO~'>Z#CeIW} @>ad;σ D,В@/g@L@(C  }ǰm13÷O@!_ nad ._`f0DX;@R kװ1paw?\@K!D!gdcPffx×~ D`p|_%d>2ܾ/ o001 ?`< J12p 02pa;ç< r2  >)[v=' " ZR91Ħgx5Vf fV8yaK ?i/L jb ̕@?pyAʤG? y,da0 @,7c1/P.hus߀/L{?b91и'Xo>?Ϙܾ Ù_:&`7| Fk;yIENDB`awffull-3.10.2/flags/kn.png0000644000076400007640000000177511120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbreCO?1 j ^ 'O20>>N3f02E{R2ìE @ְ4w o008:10TT10|Q&""`aaC'O3EYYa,1PZ@ m?P4?4SGf0H1hcKS LSR?yv@wĒ@K0Zp|x῍ ᘘ2!bs%@3 Kv=В%v2p22|YXxIJJgddjIl41@ K!`T߸Yϝ;? ׯX 5[B adK2鿐?srr-g-$@b􀁡alL [neO B rrOں@<.$` >())a o`& @: Oqb`"2OhЗϟ?sr0r̀@<.GA $ _#p)U80؀e} ~M`c`,IENDB`awffull-3.10.2/flags/ad.png0000644000076400007640000000165511120610145012352 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxbCO_3feջķlL'çM 4##ЬO1|ݶ#@V|c@;[@6P0`P+#Ï3 HzcyöoX^p',`q>?d[ V -93##GeÕ˿g?b@Yo0<} &>$0a' 4@#VtP , 1r42o0 ,Po`}z* ^313_`0s,@1r›, _10c?+_`12|+0 [ I? B"bedxt02H>+AB7̔Pp&OoA򟁇 n _310b"'L  If *PzL5>wFB $,+E3<"ZM#v. b!d ;0q"% O0L ?x g| a0 2AJ78{/ZԀ3#p`;X>{9%?8n\{q+ 5X@?L{7? \,y?XSoޝ323>}S>`(|i\#@lLƎIENDB`awffull-3.10.2/flags/bn.png0000644000076400007640000000230211120610145012353 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<TIDATxbC?f``L @1d( r30|b`MeaZʄbb/PM "U Y@hwY?1=@123WCYE* 2LbSA@W9ܲ _fVg:?P ϞfzObOŁ]8N;s_0 0spQh!B+` 3zWUA l;L@G@/3\'@1a 3p2)3E011KK3=놣 ◀faFA*Ё-ïف@@3;M+?G?[1X X^\;t÷?dyh0Ⱥ0<9p$0=药@1}bq eaxro°v'1 *aa8.P ,͙-`BTo2ï5@ S@1-?S`% w~1>3Y! _}b Ȱ7 7C ?P.ےMigg2^#@?PB2) `àO >6W3eaaA7`p~?˰(: z BBǤ t@1 O?چ^psg~`nӛpx@\>ChH);#G? ?+5QfG20k0`673#o0b×ݻL< Z: I'o{/_e p22afbF8#GΝpb7[>2|=0ѰC#@1nͷoRLQuLπA|'Î_^~ ׮P|ro~3P0",/Ǐ>bH IENDB`awffull-3.10.2/flags/th.png0000644000076400007640000000075411120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<~IDATxb:eC>10@-h~^ X~?//ϩj L3l XmlԵ?[ 7^@, }²z5@|ٿc EW~wET?/n3 X> C] 4',LT @@,AmOd` ^_1rP?Nffab Ư?|ZOuk| .6fnv6Oy |a8nf Ь/^0v ~3muc  Xv#0e`Ň@IENDB`awffull-3.10.2/flags/sl.png0000644000076400007640000000100011120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bj3?o_~1? c >>_nw 1? \xaӺn /+/3@|j 0AfBbafbF*d6##@|L@_h|e2<}l<w_@`l7-/Ï? La,?`18Y@W,ʡnGڹIENDB`awffull-3.10.2/flags/ua.png0000644000076400007640000000066511120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<GIDATxbbxß~o 3 1p+1h 1_ 3s``e`9Ñ 2/(?N`z`8٘MT5@m"' _aPbƐ}$C[W3,޻O ߀gPdP`w!8X' 0 ;eT g(a ߽ˋ ]}&`l0A Ï gRc 6El, Wax;0qbϞ?v=6qg:  `Pdxzà , 3  d I  We%W?˥޾_fP,/ Fp= +p[ ؀RH| dx/040 b6#J*YJe 6(Knp@fR6@(fc`à _e+0   a?KN2pSG`0(0}3g`H]lA?a~A! FFo@CAtʯJD8Z8 ;lWdSfk`*/Ñ~ bj@DH (!Wy@~e$B#LF( {  ca>i퉷 X%dE'Dv<˰+ ȫ; GÁs^| vs2\(Ǡ$/ '/pk`&?@oQ 8ob,,o!*7P_Rlˌۋu3,M| on?2"`5J'!{EYX.=bf@, ̬?Yiy%&Π)ϟA h6l -@ I5#1W @)~ccɲfX4#!5ƄFp0 Kd@LTX`Vb`R T\S 0qfbF#8' /1@\ Ek 1l~׏`o`G%B-<Ȱg`H`b` |~zwwh e/(qhH1&LL?ʁcIENDB`awffull-3.10.2/flags/it.png0000644000076400007640000000077011120610145012377 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bd[1[SSO300|?߇~[ X~*?W?^aXXG%au(ç H2pa˻,˃?oex2> ,9rۏ ,H@Kp?b_0F?b,c$? &FFFZbb X@t b @%DSK` X`߿ + ?`>XGhrM?0~\!_~1\~sa͍-Srcؓ ,ȫ_~_X9/`N÷@tIENDB`awffull-3.10.2/flags/np.png0000644000076400007640000000143711120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbXt%ӗV ~}əy3 N@@,oȃWoZpџf7w%l[z' boH;n?%o&NNFee1w7;M60M~ڬZ@9$kk3|YAv{?yUԩ+G-, Bbabge~&ý K'/2\ß'/DĶͫLy3@_'u a~ Ûs)W`r)L 6TK1MC]wߐce 0R&$*a◤X@ZF*fplZ2o~F~_&PiIENDB`awffull-3.10.2/flags/mg.png0000644000076400007640000000074311120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<uIDATxbC~ f`da eÏu?H0sRC20h߿ .g# @,O~A% @Kp?"ShB@ #5 0'pF~b!F%|RDAKvX0,aa!1 30 DВҬ {ظH?~@-a'O%L. hj ### K12_`v *&HiYr ׯ3? \f7o$g?0 @[ʕ+~'ߞ0/_rC#@{1vm8IENDB`awffull-3.10.2/flags/nf.png0000644000076400007640000000152011120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbCO?1Bbkˠ+@ / ^ ?ÃV] X?:/_%e`0U6Ű矟 />`G;,wX|㵏,r?>bÿ a`p7Xʐ - é.޻ _of@L  [}>~зa홵 7^d(ACp:;}~ǰ2R@1pÅ " f8z(іQ|ୃ ~dx!Ýw^"b@e (セC'0|a$J  b"]V@ ?``/, >%3u O?>ex5ÅzwB ao @K [/mex0!|G[0 @-.8LL88XD,-pu&F (0(S,X/0s # /p UgV10pq1Q@0@\~z  /o]|ưo?KA^"%%9A韁 \2egMIM ~ \ ˏ/ X#@rb蒻IENDB`awffull-3.10.2/flags/pg.png0000644000076400007640000000151711120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\9eCc~Oxի?ˮm.P7T3! X9>>Ĵ߿ ϟg# @ܾ}ϫW޻ CPA x,IJ * n20> F$Kn} X m `##C,>CL,@uMX$z:GȈbȅ.8 #r@<TA{ ?@1qO`#DDE y@8A40ng`3h7H=,x KKKlll@@| 3㙀pfЇ׀ 衷 l- F[[/^{.(~YX~U1 y?a_@| Z`z` EDL|||` T*+*88P hr NZvA螿@8 "ʊASS,[ׯ3@J> F`R@rƍĠð@I{=o| Ɖ(4o qz@~&@= a A Q `ߑ1HqHsC-@ :%9994RG2b b`@ ˀ8Pp0 ĵЗNIENDB`awffull-3.10.2/flags/Makefile.am0000644000076400007640000000346011120610145013310 00000000000000EXTRA_DIST = README ad.png ad.woa.png ae.png af.png ag.png ai.png al.png am.png an.png ao.png aq.png ar.png ar.woa.png as.png at.png au.png aw.png az.png ba.png bb.png bd.png be.png bf.png bg.png bh.png bi.png bj.png bm.png bn.png bo.png br.png bs.png bt.png bv.png bw.png by.png bz.png ca.png cc.png cd.png cf.png cg.png ch.png ci.png ck.png cl.png cm.png cn.png co.png cr.png cr.woa.png cs.png cu.png cv.png cx.png cy.png cz.png de.png dj.png dk.png dm.png do.png dz.png ec.png ee.png eg.png eh.png er.png es.png et.png eu.png fi.png fj.png fk.png fm.png fo.png fr.png ga.png gb.png gd.png ge.png gf.png gh.png gi.png gl.png gm.png gn.png gp.png gq.png gr.png gs.png gt.png gu.png gw.png gy.png hk.png hm.png hn.png hr.png ht.png ht.woa.png hu.png id.png ie.png il.png in.png io.png iq.png ir.png is.png it.png jm.png jo.png jp.png ke.png kg.png kh.png ki.png km.png kn.png kp.png kr.png kw.png ky.png kz.png la.png lb.png lc.png li.png li.woa.png lk.png lr.png ls.png lt.png lu.png lv.png ly.png ma.png mc.png md.png mg.png mh.png mk.png ml.png mm.png mn.png mo.png mp.png mq.png mr.png ms.png mt.png mu.png mv.png mw.png mx.png my.png mz.png na.png nato.png nc.png ne.png nf.png ng.png ni.png ni.woa.png nl.png no.png np.png nr.png nu.png nz.png om.png pa.png pe.png pe.woa.png pf.png pg.png ph.png pk.png pl.png pm.png pn.png pr.png ps.png pt.png pw.png py.png qa.png re.png ro.png ru.png rw.png sa.png sb.png sc.png sd.png se.png sg.png sh.png si.png sj.png sk.png sl.png sm.png sn.png so.png sr.png st.png sv.png sv.woa.png sy.png sz.png tc.png td.png tf.png tg.png th.png tj.png tk.png tl.png tm.png tn.png to.png tr.png tt.png tv.png tw.png tz.png ua.png ug.png um.png un.png us.png uy.png uz.png va.png vc.png ve.png vg.png vi.png vn.png vu.png wf.png ws.png ye.png yt.png yu.png za.png zm.png zw.png ACLOCAL_AMFLAGS = -I m4 awffull-3.10.2/flags/sy.png0000644000076400007640000000127511120610145012417 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<OIDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @}ϿW޻?Yt8U/10  [@EK@&#??%LL 1323Q20 35+bd;ËoхKF~ . y.1po@,X]#N1\t!MZA#8>ʰ9&y>FNB pZ/62L˰V>;á{η0L 50@,,d0gdp0s2JAGAGPg˛o/j~ݕG›ճ ~B geg`f 5 ?dx /J|ϟ ˗K 6&v0Ͽ? &&f?Uwo_1|g dfnG r/ zp)L;o0|0 Ę aIENDB`awffull-3.10.2/flags/uz.png0000644000076400007640000000132411120610145012415 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxbC?B\ 2011iFFF fˣA_fxGbG7X@ ܜ ;+3X`10b ` wfx3[oY_eL Ϗi>scE,IENDB`awffull-3.10.2/flags/ps.png0000644000076400007640000000107111120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb<1g?~   &FF`, cb%cbv nb/c`e`񃢈!ÉSYd/ 2f00ʒm?`Ѓ" 6Xw'O2d`*@, 76* V3./c30-\|c@ [" KM0pl |"gp@0@/oaXS)@~b'@&3(33 dP2C ~Y-4TR~ [$XN`T, Gw7IENDB`awffull-3.10.2/flags/README0000644000076400007640000000047011120610145012132 00000000000000These images were extracted from http://flags.blogpotato.de/ from the world.zip collection. 2008-November-22nd The site owner (matthias@slovig.de) offers the images: Under a Creative Commons License. "Attribution-Share Alike 3.0" http://creativecommons.org/licenses/by-sa/3.0/deed.en_US awffull-3.10.2/flags/jm.png0000644000076400007640000000224111120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<3IDATxbaCfV#>1fF " "9.ig ܻ?˴Yٹ3<030B,#p $؀zLxƐY~ ݽ>|%CI0;&e``:_!KAa gxGbVUU m?o9fo@[?W>%eʐp |a/#ߟD߿d/ÑSn mƠ*_3z ^!Eƀ?0{~fhp/n.&ffؒ_r|( 3~1? Y@WJ22I ;WψARڧa-gO?-!% AFKف Vc`jJu`gOu)f1žaطw@}Hf @1LF #0MV~`Riʠz7 ccf0%@V3ngt? /?g(Kfhg4- Ɍ@or142ds3\M&0\AE!܁AWo0|&V`|12@!< d T,3Ű_@E@19Mԉaþ?Z'~f8}8YXq@`| e 34UYfÐ~El@p013&H?0ns? !ޚ!!?F@= dۇo?^xeH`JWp d_V0YBLo ~dGb,b/?@- JPb%*XX=D~뗯bܕ\yO;9EW^5 ` # #IENDB`awffull-3.10.2/flags/Makefile.in0000644000076400007640000002455411120611703013331 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = flags DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETCDIR = @ETCDIR@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ OPTS = @OPTS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README ad.png ad.woa.png ae.png af.png ag.png ai.png \ al.png am.png an.png ao.png aq.png ar.png ar.woa.png as.png \ at.png au.png aw.png az.png ba.png bb.png bd.png be.png bf.png \ bg.png bh.png bi.png bj.png bm.png bn.png bo.png br.png bs.png \ bt.png bv.png bw.png by.png bz.png ca.png cc.png cd.png cf.png \ cg.png ch.png ci.png ck.png cl.png cm.png cn.png co.png cr.png \ cr.woa.png cs.png cu.png cv.png cx.png cy.png cz.png de.png \ dj.png dk.png dm.png do.png dz.png ec.png ee.png eg.png eh.png \ er.png es.png et.png eu.png fi.png fj.png fk.png fm.png fo.png \ fr.png ga.png gb.png gd.png ge.png gf.png gh.png gi.png gl.png \ gm.png gn.png gp.png gq.png gr.png gs.png gt.png gu.png gw.png \ gy.png hk.png hm.png hn.png hr.png ht.png ht.woa.png hu.png \ id.png ie.png il.png in.png io.png iq.png ir.png is.png it.png \ jm.png jo.png jp.png ke.png kg.png kh.png ki.png km.png kn.png \ kp.png kr.png kw.png ky.png kz.png la.png lb.png lc.png li.png \ li.woa.png lk.png lr.png ls.png lt.png lu.png lv.png ly.png \ ma.png mc.png md.png mg.png mh.png mk.png ml.png mm.png mn.png \ mo.png mp.png mq.png mr.png ms.png mt.png mu.png mv.png mw.png \ mx.png my.png mz.png na.png nato.png nc.png ne.png nf.png \ ng.png ni.png ni.woa.png nl.png no.png np.png nr.png nu.png \ nz.png om.png pa.png pe.png pe.woa.png pf.png pg.png ph.png \ pk.png pl.png pm.png pn.png pr.png ps.png pt.png pw.png py.png \ qa.png re.png ro.png ru.png rw.png sa.png sb.png sc.png sd.png \ se.png sg.png sh.png si.png sj.png sk.png sl.png sm.png sn.png \ so.png sr.png st.png sv.png sv.woa.png sy.png sz.png tc.png \ td.png tf.png tg.png th.png tj.png tk.png tl.png tm.png tn.png \ to.png tr.png tt.png tv.png tw.png tz.png ua.png ug.png um.png \ un.png us.png uy.png uz.png va.png vc.png ve.png vg.png vi.png \ vn.png vu.png wf.png ws.png ye.png yt.png yu.png za.png zm.png \ zw.png ACLOCAL_AMFLAGS = -I m4 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign flags/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign flags/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # 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: awffull-3.10.2/flags/fj.png0000644000076400007640000000234711120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<yIDATxb|vC&Y;/^x {0ΝD(B $J!.wKْg7 84F 0%,k9FyVF_eL  6 ,!* 2Yv.# 2 ø)e(# 7%f s[cax)`j`Njp!w9Y G2zˠa`k _b`Zc  1&l @|`g.Ġ" L`d$pҙW[$@0򥀩 z& ,D}͠bMs  VM1 \&`*̿HI c5y0m2X= wn=ؿ ܷ10yN#1er&&wL?}cb Ro~{^ۋ7#3X@Qd DdއT2;' ' čϝ˭ɱ b\ < ? 2| @|͛ _ZL/*c^ #WO˱}ޞ?χo(8hfd$Ax *<>Yw[IENDB`awffull-3.10.2/flags/ml.png0000644000076400007640000000103511120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bd[fSQ& g`3!V  ՏW|Ah?| Z/ß @,<[G_1-C1 ¬@@?%du>/В@=3 ctK?4Xr2Pb%  .], X@t b @X X&\ M(ՉAX*J͏7Y>? @:ף_i Gp1U,,cZ~j yΒ! IENDB`awffull-3.10.2/flags/fk.png0000644000076400007640000000222311120610145012356 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<%IDATxb N?ax|J2]Qלa &_11 a,-ɰ>U31`gx-g?˞E-Y#TI1{Ž zG1|gz-Oaiy\ vd8w?1ŒE ?f* @ܗP AB7g/10lci ' {מf#+O!?#l6%{@1q%? ?~B\/o fb`d`>.6f& {~IA~123p~}|_-~``h Pߦ- F /b?~1|e; #ÏC\ ';0C7C gXr;S R` h&L,wncx˰8!\ e,̰W E{`P`Зe7>NFeG&C.3=daK ,?1d/a(Pja ~by#3?0ܼ!#D (w;  ?^rASsyn0E/8DdxSgֶË} ] ;8B!PC9AU4|J}t~]`w6/-] X ֙2e1V4aӃg r0p03|u @س+I?#-q1: 1ACF9><+ba`bfe| ۋ3 3x <  Jט@CϬ' 7ge=3 ߿d F^޼/?B`CXmbx X>̅F#@(ncIENDB`awffull-3.10.2/flags/pm.png0000644000076400007640000000077411120610145012403 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?20π ~`.`(  #=ywrs?0(r-a >~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/cm.png0000644000076400007640000000127311120610145012361 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb\twC/0Bd𓍑wk?~1`j&!fZh00 X~*?W?^aX򍃑Ag_pZ,?Fݒ@nx@,<[G_1-C13 g6?@%.^pܯ?蜒@ d_cVAem#Qbyvٕ**2bbddd 03A@L(O$3IDXdX9(-`D |LEApO#zdcDPmgK003/m@Dq$m:0I :b@/ ?}g`0A @mɿB'`0}"@,L{CK*e?8?hDʌ Xn~O~P-p/-@w\e0y}@ՑA F9 {`jKIENDB`awffull-3.10.2/flags/er.png0000644000076400007640000000217611120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|}|\_/ 320Y L?ÓoO= X8 ?.e8 %2g`Kp5_˯7ۧ 1X af`x&N7,@} ,^_烟 @, @e a`P%3 92\ðE KN [x` {CƒK7Ï Š]Vw R?Ylޱ0`g.vdx `_2C a7 #?@q?v@j ?21gg,C3??J>6`KAm %x`FV }h3o@ ? a ֪;c`4m/x|Ӈ1Z@,bbL ^3A|db&yb0D=cd?r2L >?ff'0`KJd Lo&V/,l d3zUb70Y1 FLLl~cx.pW6=9@"{V~ߌ~=c  􍑁/B6`Sï@ 10v1 X j1t`8-l4X'Hf|cO  ߯CE0p 93Se'npHcb` l!b O  @ 6?.21eͣS7NfkY 9eF`H g7X>}poHԖ-  }L`iM'y@,{ӟ7Yf? *xELIENDB`awffull-3.10.2/flags/lu.png0000644000076400007640000000073211120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<lIDATxb:}C?10@-h߇~[ X~_}[ hϟgE0vb@Af  ޲|x@q@ X^?sB g3IENDB`awffull-3.10.2/flags/gh.png0000644000076400007640000000120711120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbtC_> T@?}wa~ %1~aóW,?߽aT_K3@0J#$A;@d@0ȳ00110p2 fF43 #? ,HЪL V?+j683D֝ N@7hۥ ,faÇ !Ɉ?@f@L#3 G`HMpC&P]!̏ o* ,Cc`byh)Qߟ3꬟n<ō;Aqh Rzg&FV&^f Og`bğ~Z X@C8/|_ XCc?&"r<# eH o|x Fbϯ0 @:ף_F#@(ap =IENDB`awffull-3.10.2/flags/sa.png0000644000076400007640000000175711120610145012374 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0BB ɷ' ۞n@,W?\ /fbd `bfb\hfddË/Xp8(P\8 vb|~ *g{7[\C+/ q0&H.an2C .:8:Kv,><8@ $\g Ă\ fάÓ:+C`EHZog #{C N;ìLa͸G1 o~' ~d`p3o0|ǟ[s~ 9 K~KG101hk01@Ѐ受 ̌ `?d`cdc zafbffgx%þdxd8s23|폷 << 1 2hh0<   XГ'+' ù',p?00gfx=Ϗ?XYXܞ pu 2 ưa^xK] cbbb`cb=(A3o<X  b^V^{? Xe?0l(@Xf+ bfdfefXAĂ-"XՀ{PFQ :E~EF_~O|;~X CPX-88&K.V.LTyU7C/11}6QgΗ?p~0p9$J _p̓^ayWbyuۯG/9 &IENDB`awffull-3.10.2/flags/mh.png0000644000076400007640000000147611120610145012373 00000000000000PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<IDATxڜKSa3mt[40 $EE"/~ ܋s/NmӶާkn9AH<{YL3`dpuZm?]]-4܁@<;%O,z'dp!եsfʬ88j$~OR$f0)`Wһk[h@Uy˺RiZ=@ێ0&~$IENDB`awffull-3.10.2/flags/in.png0000644000076400007640000000121011120610145012357 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|7{C?3jhG>mX X~\(_?/_%eqÎX;~}%7cb}B%L`kI=@,j ,"" x-addd`eaa';_xԃd8|c`} X$&N@|ʵ[ gb0em /\`_ XYY '/2\_ _1{hn-adec``ff b#ݛ d~(?щ ddDى DWEǿ ?aPeTT%b\`# t fO3< e ~b>ÿF0Ge@pp2pp3m'03/L_Ǜ,~`7u HG,ȫ_~_gdrIENDB`awffull-3.10.2/flags/st.png0000644000076400007640000000161611120610145012411 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbaۣm`qj[00L%p5G_۷%CG WN& wPO_ 10pï  Y84C 2P-ÔxaW Lahdbf``_I(? @,Hj˩ /~1,b @bZ;P(T32&I/^g`d`Y*)@'s>]A^Yz ܌ lGF2ز0ȫ03 30 @LXS '1003-8/Ä M-Nbbr =3d|cxj? $ QASAX0p5b` FG+f&vFiaF99Fx2-^X|e`/dT?X+0, 9> APoCe7P //޽L 2 ``oDCZF߀GLTV @p|T03Xav `BO >G' bL@*['?&:3 2 ?~9wicqV_Sd?cé",πDR |08)D*IENDB`awffull-3.10.2/flags/uy.png0000644000076400007640000000232711120610145012420 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<iIDATxbCNNN1:?3~  Yܷnfx '77 TI33+FA ̬` ,`_vm@,l>}~l?1xG"Y.U:cჸ_@0k ?`:c/ ?qc79 j ~bxBA|ß O^c h, Foc~ab`bffu*ñ;> H7 0~2|ANQ$`bXr<Ռ ?AB!f<0~ ~baeebTgxP@װ0|-ʠ*(0kq x gpAafag`gLD ?a ??0:!VS̯_\7p _1Y. / '8(_ ^c8~tGby0e>P l | ` + ! JP /gxR X0zz?A00A#?40A,D@_Kp `A×ח%W; l#4DPj MRd @=J (~-Y+o] ¼  CD;9IENDB`awffull-3.10.2/flags/dm.png0000644000076400007640000000247211120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\tg _}aϠ&0w7o(7\//eAzx°ɶrUq`ٿ0822=̓ /2pspCC 7^cxu @3# Wxbe9 H|[/U 2KL/^1ܽ\1[i&Mb \pfc^o\޳00gҊ?`Ф  XW_6###B!P87U NcAo, /302AݿpQbVg7'$/2 +3;ýU JL YfX 3×n0pԌ \\\`Z-biׇJ ^ ss1h 7`Ɯ\`Hճ103fb;@01105rb!#⽆ 02d~dcPzaC+>`  /#0匿 ΁ɕ! pƓ$m.bxTgpܲ/PtD_@l o| ̿`kA9ٯ&m}p@?}1|V@{PQ?XïǾ!L.`u76o g`abf >zaIENDB`awffull-3.10.2/flags/nato.png0000644000076400007640000000143211120610145012720 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C/_2L ̌ ~c2Ȱ୏r+q~,O+7+?? f Oyg$7f3 3 ZR_`pe`0@,@p0p21HZo& 0ȧl llL B, }e`ea`dˣAa ;091 0^biSgxão8^I0S@0@.`2>r9ë "@, _?~b`gcc7?0 Xn__ '0~ee'8r~x,ٷ^^W"Ja@  IENDB`awffull-3.10.2/flags/ni.png0000644000076400007640000000222711120610145012370 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<)IDATxb\? gd?3 _16 e~EY1<|a'ʣw~? ,@ Y d(T Bl&41F?$A 0 yoZP$XalH6i?tGT(*,3jËn?o`n5u2yT_H aj>1լq&su1À$@XUy5hAm9S 1sz `# v&a.y.D>b? toF_ߞ2?0X~d: ߁~fad W!eeC+20-]ݗS r2jd'иc`/å< K_a N6Fn?̍-f IexÖRjXx1t %v&b/ %+nd] fFz O«'Ą66n kwmf|Mǯ _SYW 2R~x3222_ _38@/ 5xŬ_f2~"#g3p 3|8w1cG@ ho`~@)>ś h7`2_@YK J2|bdf`Nc|? ÇW~ t0@%эs :6"'o@/'.'PK4A28 %98 0A>aFࠌRAL~4"M8n䁓зaEVPhr (t3#ňW eYD #@Mxc\gIENDB`awffull-3.10.2/flags/bj.png0000644000076400007640000000102211120610145012345 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0BdJ2gV`d`b @ 00 X~*?W?^X TZ$D%z1 X|yϷ >bZWhO&0c?~2=@ /#[ A&32?@LB  &:b+ $#><P/ #@O}!T;@qÿ%?3 t߯ D\pi-2O  DSK` X`0@)pdF$iq!  Xn~O~3073lP1#_G˫#~=OQ a ( 9GIENDB`awffull-3.10.2/flags/ug.png0000644000076400007640000000145411120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb2eCO>1ZdփV^ XΟ?/_ϟS @>~@,6|}%fɿT%1\ X~@)F<@ ?@Y(ga8s?@?C `W,23H01}'FFfn? r7ß?~u- MM U2Ș094iJ￱;^} @Llؾ20ƎـG/ֹ FZ@002pHhqe ab9𕃃='',>7)+Í{Z|k0Ɔ@h-`* [[XLX0C3 p҅t{wPX>{<{] j ^^ F 7?`8wlPJ/ #IP%afgfxSAQ&wonȎ#00ܸaEQ7C1|1AyM&yV#ù vO~0y fxPʉPSv10| x˽ϟΊ+7ϟ=GC5IENDB`awffull-3.10.2/flags/cf.png0000644000076400007640000000163511120610145012354 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe</IDATxb\C_302e2 =ϓ ,y uq)3À ɋ/ @,Wo[V6=-5=c`e A3c`Qaf8'VKs[<{ Οf …Yeqr?ӟ x#p@Xc Ï 7'+ _OUh1qe 7_,@/-!+#7 8‹?_|@r@M=~᧍#|i} ,q9`?O.]~ڏ@ [/.`(23Dk o=8go3?n@dfx ÓoOpZTn02L )f3;.~;Ç{35~bx=NK~߬>y'_-Ͽ?_f@ nK3 = p[cd `&/d‘ 'hϿ?9100{_[ Ē5, ] /tfRagN̈g`[#@, oܸ͟` \}A$_ )?gx7YeoW?:г0K$r;[/'M>t`QIENDB`awffull-3.10.2/flags/nl.png0000644000076400007640000000077211120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @}ϿW޻?Yt8U/10  [@EK@&#??U-aa~f ˀ> qz|ǯ Rָ O}`GM)ûW3жO_~0#*/?0 #4Mqr+o2e?ˋ'~zsϟ?_h>糿A^IENDB`awffull-3.10.2/flags/fr.png0000644000076400007640000000077411120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?20π ~`.`(  #=ywrs?0(r-a >~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/gy.png0000644000076400007640000000225211120610145012377 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe< r,aGE 43F b``Bonpo2< Z8d8a;'G:CnMEPbq`exYa矅s2| 2%LP?t' M4%"r 1ysw~}Lyw?0Y8Y~0h!`R0-'/0~0s0×J 3| ?- L ,̰ C x =@30L)ageǖ+~Ko~s'/!~] 6qA@11R3emC]-MGOw?] __dx{WbTz/0bd)r?JIENDB`awffull-3.10.2/flags/ro.png0000644000076400007640000000105111120610145012374 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C/~1`6#m9 0 #;?~3"V wջo dwAP}guX+%2pa˻,ه?o?|gx?$Zr @]%X,ab 0,aZrK @߿P, h&DAÒ ]!4@11"$@11], X@t b @%@,3!.osԟ?@֟A4@|' @)d#^1{7 _AMO3˫~}~__0e7 ua)ſ>J) YIENDB`awffull-3.10.2/flags/sd.png0000644000076400007640000000120111120610145012357 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbslCj@>xcIJ]oo20Zy-?p^*C ?1-@K}s@o.\ _2h< ;1?j ٵ 38egx8l Sa X%c'P]ТP& to [B.1po@,蒼zva 9>Z@L#F_?1D c8$i :/..RRss- K33 nk0칽ʌwfx!@X_}Y0|"a_`v@pK9Ȭ;wn33ܦn02nŏ$yIENDB`awffull-3.10.2/flags/gr.png0000644000076400007640000000133711120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<qIDATxbC_10120p2|_ @To> w~ d0+3ã_aeaf4f2܉,?_f7;+XO?< ,ɾx"O (x~b0g`fbb g^ƽ o>~g A>v%>` cXqHBpcx#8TO g33C{x#fm $$DI .OΟ/@'0e\`?pdK}?b@K~ U̇ω+/!iѽ ^a P+ɠF78aԜ K8%A2?; %dɟ  rGށs'v0[6b4/,K+g8Σ,GNgxpvY 3ܸv X6om>|@  WIENDB`awffull-3.10.2/flags/eg.png0000644000076400007640000000115711120610145012356 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|hC_>3jh'>m X~\"_?^%h ?]f @zpϟo~?z,: ~@,fÿ?#(L _h AK/g  .# g! O}:A`Vba&>.eï?wx?Q]f D|Lf  aFVb!Z%0>x1hg`Q```%Z+@| >1A@A#'q2'0cHHȇׯ_?|E@o , \@w/`GbÇ޽{G7$ L ?g 4ϟ? DFV_0 F/?~GLn'@} X޿vZd`#IENDB`awffull-3.10.2/flags/pe.png0000644000076400007640000000172111120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<cIDATxb|dC >b`@$fibdeL@U/_0޸`=@LgÇ?s997В@Al6yus.6 a`a@G?ϰGbkct +5o*o7| o`* W #`?xP@3|bZhPG @}r  FF0P_CPzs>F>I9`0 6ԡ @A@L,PؠJ300|m odx*ËN:FfZF$1C}Hbb T!_@6'o{ "͠`p1vaO Pџ @,C a+ׯ ?NfQϙ 7527:B u0 /UR 9 ~cgx!)=NC1B13b* %?Dhk2ȱ2U\bLaPCJ4Ă0 @1YL[AD<`D`ij#ࢄ jP.̈$@,;3"1(A?3#Php&Xebu2˓{ o w*ƍG-9,A< Xv|v7˟7UKL|(デd _e$&^X,0It@IENDB`awffull-3.10.2/flags/mm.png0000644000076400007640000000124011120610145012365 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<2IDATxbrCO_3d1 VV?~300x`//~1zG~#X a/fVfFȒ?ϰGb՟W>3{,!""k'71<{ &fg",tu?1 A\D[ 2, "B GN_"?@_P_( @,p Ff&&vNSW3ܹACY @hg>}pevV- Pd207@?yރ o>```ㄪ`H% Wo^?~7g}/ 3XY`1- 77z]G rQ XPR (O:D%0 008ҩh?(eZb~2ϟËFY _>@n`v AtIENDB`awffull-3.10.2/flags/ie.png0000644000076400007640000000077611120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bfd`ec}f(EO~\ X~*?W?^Xc`dddc`iÿ~= 2,5-_˃/G`}A>A= Ь~2\z@ -}/'LHA $vbb X@t b @%DSK @2)`N1Gɣ o|xߐXe#0xӒϮ1|Qr|@bb_hk2 -IENDB`awffull-3.10.2/flags/cn.png0000644000076400007640000000117211120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbhC_>30πMh2#?6~ W/ 3K?؉OI_.1} X? =0  @~q0_}/ 2/x ?+?A_@!Piba`?Jl ,1l lL ?x. _30 &t' Lpzb`{ k@Y_?/_~p0Wl#@}dTv  Xs& ?@2bs2OnjVhӓ ,IJ1yKͲ|0 {KIENDB`awffull-3.10.2/flags/bv.png0000644000076400007640000000156411120610145012374 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:}C?10Xy8yD0?A_UI;׵kj Y>`nGb}0߿^FWQ\DD?Y/_2\@, $>fx /÷x9P&íg 藿ëw_<0]?_$[|yՅĒe/ s\fҖdud`de"}u?23chc9Mfl̠$i)p4љf3){ tW` #<ac u#T@"`nB iAr,"@I j>1 (3e۟>3ϋ`pA_o3ܹa Yg` >t` ?b8<' ?h/pIENDB`awffull-3.10.2/flags/mc.png0000644000076400007640000000064511120610145012363 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<7IDATxb:}C?10@-h߇~[ X~_|`` X@|/f;ːᶟa6\dvA[f`b`Rf`O',w20311Wvol^2 2.(`׾xaE-$H?121|ﭛ$dɿO}@,a7v0|yg vf^ Qo2„~`O`p-y/  t"p< L &.# K-@f'oߠ@_(K8qz0@|ikJj D-2+? _Ȥ%@x_gر XZ[f@g'f XEE]sן>1|0 ^^IENDB`awffull-3.10.2/flags/io.png0000644000076400007640000000246111120610145012371 00000000000000PNG  IHDRgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxLL&ܽ2 3#  LM6$ ĺ1K/   L ##VU *2=648 G28L~-& ź )̭Lno[<иڏ "ϮLH*)*̼FA6%2L.ðŎLCײhmf[3^+ٰ ((11" 12ɻL//ٺ(5+-  2G7$#-"+L %&( m;#H " L  %%&& Ѥ&)gLL'' $$ JL-61 L  $$  $ L      0H(0 qKk~:d .$?{C5G|ZT ze#hJ' cN!:cDneׯ^y** ]||߾Ma|0JHP믰07/w߀~ݝ{kB Ҝex؀矷o311@տxiivȏLVx2IENDB`awffull-3.10.2/flags/gp.png0000644000076400007640000000077411120610145012375 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?20π ~`.`(  #=ywrs?0(r-a >~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/gd.png0000644000076400007640000000223011120610145012346 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<*IDATxD1 0r6"-!KbΈV;ӸC fo֑QUWBv*iiEr_%"  ?n @ 94~?TKXDY84~/ç v}@,os=L 1" n@ ?#wPC! q4P (3C R7>3@0"q 98.?yP}ey:0VpbX!`1pf` tN|` vhNP2w-_~1<󏁃ba@ @?3}!7C/0R#? `}0O?0p-ZR}[ ((??2؀_3p0}dd6Yf^-bȀ ,2|F(;C'f*vv`} w*a7 |, |fHy=P'p@-D۞3PgPh"7ÛC)0P+P~;\@.Ő̄| o`QAOa0o~ h!'(a XP:Il\ l, @̡L@򰁱7Co ׀I P- %߀,@& 1X"8؀i'8 (,e`ϰ_1\=6 P L |b/KX2#H($10&0 oH~33`>`3&?a$&V yh0MÝo/LT_W̔_b]`}P}B #@r}gYIENDB`awffull-3.10.2/flags/nr.png0000644000076400007640000000117311120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbrCO_3@5<{˰zُr#s?h l>>@,g{O0JP_a`@r@Ħf h /l:l"%'??Q5yg?Ŵ~)W~ g0l( ]awh,| O^p}1H1Ȉ 2x!0"KO}| @|oOx Qa 6* n>b([3R a@K1X1;0ps1(Ii3l>paɓg fo f@Lؤ_p 0W _c apP🉑͇ ]%n?zp Gr  ym|~T"1Lg$=Wb[ww0 GUIENDB`awffull-3.10.2/flags/pa.png0000644000076400007640000000153411120610145012362 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC~$_/12_3|:q~xඏ 17/nmw .d``rp[/Ïv7߿XYlb`"vtߝh æS>u^ppd5*Ff  XCf>Οg@,<\l |?0pm>@ s/08ez0>̠L ޽d`Ufu -aχ~} ?3HWO' Fh_`؁@ٔ h)5Kz@ßo?J8,eL`˵oY>yLn/ |p?|OQjbj ܼ ֮bb'0<| uSzy/0y+K3I!RT|D%fPQfdd8 &sAd9 і–  xYx!(x.t,adz .b@'u^ui.ip1313|[ z. # 0>ѷG ~[h.jNI o{H-2 ,y17',,3Q3o:2F &Rߟ ,yny)SttvfvQN0 +r@ X#߿/0BL gH=PWàȭȰa;/|yw2zs` @1 r ׯ3ŒO2zh%qNqm~mp>wϯĸvڇ+W5ֲ J!r?rlXJdKIENDB`awffull-3.10.2/flags/bb.png0000644000076400007640000000160211120610145012341 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?00gI<,k#X6ܵa ɀ3<}aO~'X10!>UI bXTù 0hlgW7_o -hKe?l.fJfF%uaA| _gTQ Baj}WHhҞ.,Ũ4'}Ll@L 8 3#ãpO d`gcbù+p\b. }s^2< M?2|ޣ ٵ>ʆb'[ 1V n+_3H2H13hp2lAAņt@o݇?1p31}? iQ ɀ$m<2/CEsOi "}Mn4 X ߸Ȱy{-Uw{>p~b"ƒ?1Xr3f,O4@1A3 6 TE@ X@?Vʨ)ID샯@ !?0Ӂ1R)b3~} .Ћ/#]fp4ffJǗ ?b WtП?>b}[-cbxn;f )pqIENDB`awffull-3.10.2/flags/sm.png0000644000076400007640000000060511120610145012377 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC~ځ$V6] ZYpEg &ZY??ibb X@t X?( S=N}_bnw'?1OEf}ó+ /O_~2ʾ/?0 3?F/3###@4Vib P$h9u}h&(,a 6 .1?@ l WbXplAJ 4^0hʽb`M%Ą;"Yy8,Ù2W2 : inKf1232N? N* p2M!i>Ipq09! #/ 3@R LY@[eo0D+3&0l0c-P8K801&®c >e]o~Ù p[o28[3 3d8{]\X  @?P'Y91y yVDݍ o13 V X.yc *7-W ?DNysǑo?í[@3l-P[bdPx ?ßħIc8Y8Y9| y&{/"`!lM1>tIENDB`awffull-3.10.2/flags/lr.png0000644000076400007640000000126111120610145012374 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<CIDATxb\C3 3?8>xcro?s p000\AOKٶ000l X^h ßNpO2l @Ռd[rG  0h2icdÚW0|ZLB=bbÙ/^psO ne`#;N}"p6 h%7+C\f.NVf`&3~Sfg>@, ?|cx P3 ;ko_R\Lg%9p|?F9`tay!ûw > Pp}ǫW h 4?U00@Ԁj>(x\aز X>1}{˨e (ȁAh&@pWU0 i ·Nd 櫧 7={<O_Xq.'ÍF#@`VIENDB`awffull-3.10.2/flags/do.png0000644000076400007640000000135011120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<zIDATxbܽC0/ \# b``Īhÿ~\ X= 2gn!C?'20rc߿ _` @xϧ?^'?a`E>'_+3\ Xz ' jP  ?@I) PxZ>da7 {p_EJAe~0l0&84'1w?r3PVZ Yh  o o,HWf%6h؍o.]xƌ#/cwom/_0}x,i"6/K@̛y %>|+bLL LD )#7/ yp[+P@r&03e>x, 2e[?3jf*/86n:ً ,t1|W,ĸPO oNIHY].7Ͽ0033J\ I*k:IENDB`awffull-3.10.2/flags/zw.png0000644000076400007640000000137611120610146012427 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbӟf𗑁Z?>am_._?yY_&X_1<;+@002Ud𽹟ׇ l@gP|ɰ˯?@1~S[83H~b'_ɰz헏v/7n^Ϡi 0dg >o[򟓙;< 2MNg{ Pb; _$>p=.{ Ld.'1#@q0Va 1Ȳe2h0nĐoaGV2,,$ɰ͇2ظ90w l/ ߁ p021ș10 )2>{vIC ?H`bہ I??~F@.{wn:1z👼Rdɥ6 >arN72zT]+?86|a x>}s?, Q?x Pp}ٵq-w ET)!~ϯRTv斥>} :T \k6UIENDB`awffull-3.10.2/flags/cu.png0000644000076400007640000000142411120610145012367 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbpK/~030@-'/>3l;x#@-r{? ;fA*( Wfxv @| V2̕b8`ߟ?Y?00z X910H}P~}67 Bg2 3?-r"ÖM_,Ў  E '@ "_vN? Vbs;X{7_p,DdK^/X$ r_>c`ZPANîIk&ˇz5X \W2ܳs, ^0|S!Fma7_b k _b [&>d8*ΰR™#) #y>1abf`  %1’_#WeJd 9<'w@)/* |2K1|\p0@\'ÿK2 g`xh!e7ܹ@$=C "~Sd/cyL/@?D@,SIENDB`awffull-3.10.2/flags/mt.png0000644000076400007640000000107311120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC߿1OgSgY >`nG)b.2tÃSRw0:x%2pa˻,Ǐ?=bsín]Ġ5I)FF nbo#~K\?Ke{3\@aׅ /a'vmCб@ ͠('ǯ_%E4e%UHβ 'g27ae`bL < ,\<`>5@ % @!Ldb`h b @XV K ? (CiYr ׯ3?|{hÓ ,IJnݺ+Wkϝ`j [ɛYIENDB`awffull-3.10.2/flags/bo.png0000644000076400007640000000076211120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbtC_> T@?}wa~ %1~aóW,?߽aT_K3@0/J }r7@0p330`b` A`d  1 hwTx_c ./X01}r/7l6Fb_(fG  &:bac &&\FFbY+ן_>|̋ԋxP~;_?eo /|ex0z|Ob`l;#U-L_ Xn~O~-n˫#~=Oi> ybIENDB`awffull-3.10.2/flags/ma.png0000644000076400007640000000132011120610145012350 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<bIDATxb|5eC>10@-h֯ޯ^ X?/_ϟe 3BȒ?ϰGbq?^1w~ 5bE Kn}@1  /f0lax. : Y;el lHr@U l ?YmY= b߁?6 y.p0|T'3a^ϼ __a_?p`Ą@W ?(p[1]p_A͟XB(8cQB _90HP2 Xoq@/4c|aA ˯ 2&?DD<@13+#vW^ѷʧfp6mVV", b,y" C \3(=?-&  `c-^aHoP͖'2&όM />jF,xπ0ϟh>0,:_IENDB`awffull-3.10.2/flags/gq.png0000644000076400007640000000145411120610145012372 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\r|70gZ O=atGbqK/ 3 eYb} bywd?-?~ X@ Z3|`9S߿) /߿3 X"Y10~Q`` AMn33('dx t0@ z uյZW_?Œ ?_3`.ïN`c(YTF8g?@"Ŀb@-7C 0`f~AA `+Ï? r7FVտZN2輾*Z2bb9 !'1<63+ԝ+ cx @Xª?K?`_ T b $jkIENDB`awffull-3.10.2/flags/mw.png0000644000076400007640000000143011120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxtA 0 w{^O|A(6g9 3lGB;$$ bx5K~3C?˅ s A6 '32| Ӳ1\8/,hcac,#RZ&S nӝ5o1§Y !*^p@ބH8Z6BKoM,>H w:\LH>GI>\Xz"+u^D@-Ğ'1`!`#!sijG#hHW3b| 3 7+'?oh,؁>+} (wh A([~P;Lbߟ |:rndh*? |6` y,W@6E@"X"@eAx|N @, WbjP3A4@&$Xh` lby!+/lXK?bifx/?%ç_#`d L3RՒ_@>@ `cZ, @,7?d'"? @,z??Q;G= -g=" IENDB`awffull-3.10.2/flags/kw.png0000644000076400007640000000113611120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbfCM6l_@-'ߞ0l{#@~F#'ǯ |L SǢ2\p,r?Obx1{'oQfɿ~>?? 엸Sg/#1 ?|gf'?ھ|g XP$32!40҅K 럯g  Yhp2s2'@KXؘ "Jc NK31Qb$X}c#\|a` X-EI4 C`g3%7N _d %3І? ?1l%3߿1{M@N*@陁x6d@ @_>}NA?j+V\b X>|x+ߟR/MGcwkIENDB`awffull-3.10.2/flags/vi.png0000644000076400007640000000225511120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATx<;0 Cf&?BG`%mC{xi_4C1PPBEanޠԇ׽f'Ҷbfظm+ @1}ă޺Fab~d;ŋΟ; ~_Xy]u ~%h֕#^xß?4@1ga$ʰfzC]/Ó~dxóG/~ V[y% E=1]#bz#ׯ 뷏 ,˰ S3% L _B{ +W/bx1??^1|hb0m^Q>&O dXX+'27Ճ=!' kuEO2L;@,"ɐ$Csov #s|f3{,81zAXL!.^v~3/eeYAI]y\$|yp=l71>z!6e5A_ _gxå ,Ll~W"`Kg`gC ff)4Vcdӿ K_a `[Ƞ"`v-C'G; ڟ/3d2t͟pMo?>afehnea &N_`au)) P2X01qɳ ^Zӌ ';8AZK}x "(H 2 jB ll `t ,<f}Q`)s\'7/18AQÈݙ &Mf޸puArG`)p^e R[-\:qBM؊Fv Wq\NdjB0cl"z>m eX,M͇ zx{׻?>;Q:3_ukaivg8;G{`. *ORk*R4rUԲ;c;Ju1NƓ<{0|EK®_EDQ4 C,FbAU<歠32*d`›' `Q IENDB`awffull-3.10.2/flags/sk.png0000644000076400007640000000164111120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<3IDATxbC~ځ$߷o߿ ``dee`dc!k׮e %`߮]cO6ii0G0|=}P^,#Ah .^p?Ą,-Ϟ1z ⹹@a '߿ /`(g?"ΖA(.0D22Xde̛@K@f E ~f ӫS @, ߽gxxXВ o3'>|Wߙ~ 1[30 2xx0p3<= ?|g`O@Ϗ? Ĝq2|gfcx7}&×`x;u2ûa🕍?"b212 gdAvA@eutnb|t3_T8^@o_ TN0Z81ߊ z" ¿?0<`ah_UĸÏ?{̀X%=^ 0? E/v03&b<!0N X|`ïoA鎁`le Z, I/2D b`Y @?w |jN n2D= yȬ ~3}4WfVH,A IJ緻Ǣj0@nR=WVzIENDB`awffull-3.10.2/flags/ag.png0000644000076400007640000000201711120610145012346 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb<=oÓ~ 7 ço(36~ [}Ȉ2|!:La o~ũ߿ W/^bHe@,~aکk ~PCg(/F%;1||˳ 7b?2AN? @%~_tY ~+dbNv&/+.dAEYf L :Z 9Oa@F!.N&_0##/ 36Fe< bl$`Π?9ifV( x*!qc?C ll@V`Dw7aޟ n``ec`bde#6/rbAvrޛ0쒲edɠ,qa ˯a\) 2 3輽0\n ?3%Cu N:2{6 [40,٘827Fc ]/F&n,a?'7.$/C o3D[Πô30 mL oz}r 8Qb~r0a<`X*JX 00, O6.ppcĄhcf1`accN @6;&&q9<1 gG.`rLRr!I 7a`)e`f(R0@y懏 7kR'g/ ?e`ma` Z c bW/b^>u20}IGuSWIENDB`awffull-3.10.2/flags/tl.png0000644000076400007640000000136411120610145012402 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbܳdCn~;~g4ի?焏(|Π|(q/,y? R*lgc0@d_@1h_0'fHYӜ .HC2 . h@1122r Nq7mPޏ &Ęq6+Y@6^% L[@L!44a 00gHKedxh=Тu@ZMe`oo!??7+qJ^p @1-ef%Tq90ĉ \\\ ^^ @߿vDX#CC?ffN=?[}ZZZP׳bu9>]' :e`5e(?R@ 22L ȉZ? ,i (#0?FFLmF<`~?H_h F^^/b_,Eo.%,Wbg|(-(h>VsR"xIENDB`awffull-3.10.2/flags/hu.png0000644000076400007640000000071511120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxb|5eC>10@-h֯ޯ^ X?/_ϟSג?ϰGbq?^1w?Zr ?`?j Ȥ?P XyxOuKXg X׬a-% 60 77-#&`(13@%IJ2|?3 O?a@̿3ՏW g) ޿2z X8Y8YXSӒ_̿2}e o|xB? @,z??U0kuIENDB`awffull-3.10.2/flags/ng.png0000644000076400007640000000100711120610145012361 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bfd`ec~4 LL(|{°鶏rUq ###7N;p/0032#eË/X|#>é7>b Ȭ~2@8 [AOw8} Xb @11], X@t b @%@,L?f& 3ڟ?s:`SȠÁ /ax'&p?\?% 3Ⱦ00q30xv;ï,~fgxA7' ,~XD/3G6Ȱ>3g-n ",a/'Õo @6;oe@~ SN/ oϞ`h˰l l, 7c7CBC]N f ~0lyF9 w寖$o2|Aȋ8?o /XbX?v.%}}MD851101?+_?q2`Px N~??0Ffv`33<а0#QO r1 5 O ?(S1a` t0Y?'X 3m'TkA,&`Px ] ?0cpW`F<+@'0=- o O7x'@/D%ܬHz0O bŐ&qAؗ`=?`0l$F`^$5×_ QI䛳ba`& & @,>~gy'WU/xa'K˙>|̰  8h?g Gtt?>r${]WFdtIENDB`awffull-3.10.2/flags/sz.png0000644000076400007640000000165511120610145012422 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<?IDATxb\C/~3@5°rsxh lp{α?|d%Q^ado Z"2>@,3߻@a6< a?X8Yp F/AMHb0Sdxd gX1Q0@ @L Eh 񗃍ᐘ4+ 7yTk mdruaAcD1j1@`p&r0Ta' 4ExβS%{H >2pĄn V0|a/û_ l?1|? L0H 110}gX< F$@>_Q5o~1y)ÍH~vO>0~K ^?'/؜ ,320)2X 4'I0 !wɷ$`xyFQ!oerybN180D@,,\ $^H2IhnUDN#ÜA;%3,Y 1;`|gH`c@~`] 7 ߁.\g`X#@>m  >,VCr?:&&S)07>}ƒ (7}{Jղ ?^3|+@|ߏ@vgwIENDB`awffull-3.10.2/flags/bs.png0000644000076400007640000000125111120610145012362 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<;IDATxb6gCn )\ @?óv? X?%_  ~؎@Kn~zeb}W^1_CIA&ۅW_`א ~۝߿ ekׯa 6c7 ?3?@022z} d6fcd/Q7 Ă]óŇŐ!E ~a | ?zɐa8CB"73P-b Xѐ&$nDz? ",adkbeb$84@DR!#!:7×ɷ?~ef 0s31%[2ǰ0#=u} a /'t=X Ï?a"X?fbeDeJ!-X+6)2SPv1d<@1~h$PJGP 9E2q3q%R) "O0IENDB`awffull-3.10.2/flags/om.png0000644000076400007640000000117511120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:eC_20?## f  Gb}0p/^000310207X36] X޾߫W ?g(=Woɶŋ gϞ@, 1>ÿ߀ßg/ *F*4ϟ?` X6 ( o?}J@ALC_ _`/HA!5×/ /ܽl`F`02l o#@Â3P!L &: ǂ@>cF H .P 7,ΰך_Ҝݟ ?>e N`dK10 XAI//T/L˟˗Ynp(N71,8F`)Gܓeex#?٥0@'HIENDB`awffull-3.10.2/flags/mn.png0000644000076400007640000000136011120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:eC>10π ؁8 qnyFxػ@/@>xcya=6  ,@c Ò L <~2>=7d߿ Οg# @}ϿW޻ǎ˦ 8~g8 %~g~;2- %2bal?$_?0ƴd?^B4_4@1102BD=w&0 n#(\J][n?`4߇ % *&`,23y Xz2M]o##˛ ?f`~9@៷߿ ]cX@1@2 k?Ы LL L,L@Ȥ ?0#@10+؋ K?𣹆?lP9,gsqbYL˷_ ?r=򟅅!@A̒a)wXYI ϟ|` X/9g`~.v6z'-%dX$ƕG8I'+0 7;//~>% hps2Ȱv @7d#(c '5+[/Y>?p8O/0#L "Ġ) 9E_X޾L$d0`A@uEbIENDB`awffull-3.10.2/flags/mz.png0000644000076400007640000000135611120610145012412 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb10eOgйpΑɍOFr' _\d v S/˟n3rb?3Hq2{0W\a0ȓa~@,֟ _A( s_>"9w[.0 $%@Pcaafb`Z u4c 0`.` 8`@X3RoX"גA X\rW EdɃ'>e` m?nU:O  v-IENDB`awffull-3.10.2/flags/cr.woa.png0000644000076400007640000000073411120610145013154 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<nIDATxbCO_3Zd҃gV X_|!篿2P 篽f @XO?hÿT3\=@$3yտ.2 ׯ 03001la`oba a`x}-e``geϟ 2'?30|H% 3bb X@, Nf߿a.4pÆ  m2 #(eƛ _fxXo-y6õ `Ɨs3z ^fyWb[Og0L ŗoV"dIENDB`awffull-3.10.2/flags/gm.png0000644000076400007640000000102411120610145012357 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @}ϿW޻?Yt8U/10  [@EK@&!$7ÿ/n ? ?2˝n߿~3| 1ܾ}Ձ= һ$Û_x-@x}bop% %b/ÏCu?bsd'Ç/ߨYet#@Y[g|OE=[|@ >%>Fwb??FZl6@x P9u? @,z??e`I `:4IENDB`awffull-3.10.2/flags/nu.png0000644000076400007640000000154711120610145012410 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb{CnekN? !ŧJ09!>VC_ :%5002` ^ X:wm$!PW(}}c:í?3سcUa8Gaϊ[ u{/gX# @W; ަ 65 wchH|`SAof+C~0uv#@ g2 }} _d.ß`+!aة æI 2|`fIɠ?S66~F`0rjſ @hbl[`cqe-  e46gg.#û |g ɺh/B X22Hȫ33h{u7o 2Naج+eK0~pGk8 @,A \>}üB }`Ða㋯ s5r̟2=Ű&b@.ft,yGFB|e``c0d~76ޯ ?}fxe> s=x3e @1o31߿ Ϝa_^ / b @FF @, L2? 2ˍ_HPӒCbYە+~MP`JiNIENDB`awffull-3.10.2/flags/ls.png0000644000076400007640000000075111120610145012400 00000000000000PNG  IHDRgAMAOX2tEXtSoftwareAdobe ImageReadyqe<{IDATxڤNPOۛRc0`"&$:ko+(.`t#кD (P{+J~9ý/=9T:JSz}|"APLw:F/QTu*,C 8%.ef&* ÓSIVԋV,J&7w_.K? ^}`pLQ/U*,.?o 6ZYn0QSZWs8=7'swޮ$]& ~ ١jm1E"6iycPurs+P'(B!B1b-˚]2G cd|9IK[6kZ!Ն1֯|rFIENDB`awffull-3.10.2/flags/ca.png0000644000076400007640000000146511120610145012350 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbhC_>30?~00:20Z2 ~d6G m@,^fpK@%2;sXff0K ^e 5G@.2301eù_ n H _+2%,7 zAq:H\pw Y˖2j !@Le 8?3' }(%7&Y 3Nfw`$p@,w10oe`21 L߳'8]k @@ F6wo1~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/cs.png0000644000076400007640000000073211120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<lIDATxb\C_~2Zd'l Xn^}!?PՒ3fx< @<>z ~=@,cϟ%cG B8%;Ï, ৮/K֯_ X8h@pfcga &:%DKE _00|xɦԊY=g @9 wbz2@0pC? _j.P[~c W:0P3,y G߮4BJIENDB`awffull-3.10.2/flags/au.png0000644000076400007640000000227311120610145012370 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<MIDATxb}Ciio0\{o &Bcƪ#$/3$''ñ w}d`afb@g`dd_IJCaC<Vgq1(282~bxWaٯ aagaπ  "3ܺ ,"n| sx;ïW/<k1Ó `ñ/Xc`aHfo@O _{? @0AW癁:فa11Co]>bxß~o 3 1p+1h 1_ 3s``e`9Ñ 2/(?N`z`8٘MT5@m"' _aPbƐ}$C[W3,޻O ߀gPdP`w!8X' 0 ;eT g(a ߽ˋ ]}&`l0A Ï gRc 6El, Wax;0qbϞ?v=6qg:  `Pdxzà , 3  d I  We%W?˥޾_fP,/ Fp= +p[ ؀RH| dx/040 b6#J*YJe 6(Knp@fR6@(fc`à _e+0   a?KN2pSG`0(0bZ" AJ? Ѕ_.31l{@f|_ r'M@z 7h3p|gaaw W30p0c?PlȈ߁ 20(21d1l>2 ̿na;_}=3,!o-Шʠ#9}u'}A#÷_L Y2|0!i*V=*V4,P ~2͠(oL O3WC7d~СƠox bA*5VT%?@'|GoX^cgdc 51}_XY4ybda @-dr>ðY*0Q0񷟌 ן2)A^ @xo?Q}@lpF`-f𛁁/sy9 gn| -z  eL-JU3j(`d;p2ù ?~:D5CF?0]edX01S$z fDoq|A>j Նgy2T9^f`/;ȥ "22z X1z'@2@oCu(>`x`^Ȑ/~0̺L@} A@1lO~s'6wd8n}p3,YPyݟ_ՑWo刺 ] TB0`zxWIENDB`awffull-3.10.2/flags/li.png0000644000076400007640000000113111120610145012357 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC_~2H3P @f=zaöէ~ WN > 10ZHmgt)Y7޾;a <*cdl+^ ?YL2,p8U} 5_5a`bOE@= XQ߯ JAV_ XY]Dy ȥ 1103gd%o- l ')0|bΠ$1- ~0fd&7} 'ze~{O!aI  F2``x _o?K+ ?`.?D0RD v  o@? @|_@ @L tDSK`A@,*q4˗Y~p*@MK b .>,-N6IENDB`awffull-3.10.2/flags/de.png0000644000076400007640000000074211120610145012352 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<tIDATxb2eCO>1ZdփV^ XΟ?/_ϟS @>~@,o+{1@ X@CUK@022|2@o f ' Xf@hffY&Ђ@ @,|P^`P1R1@&BH/' K~C &:badb`3zE;$$?@p3);0S1Ns~@0r} I*h/Lv&bD`a/+V@ @,ey-߁^%dx' @loyV#@QEIENDB`awffull-3.10.2/flags/ge.png0000644000076400007640000000111211120610145012345 00000000000000PNG  IHDRgAMAOX2tEXtSoftwareAdobe ImageReadyqe<IDATxڬS?KA~AhH ڊ!44DChjh 48'.*RhK 2x7¡z8$CɐHdE[*!SfB\KQ@b1d2InnxY&gg(Bh)h( no*a,.++Ӵn)~5- 5\]ayY$F /` ~BXpׯSقtV.:cf n7q8j@gfV] <>>fQ13`qk q֋jS Qyc?=(z=A}̤ǃ;^~om'OA&[1yaۣ,r?GdX!=C9ֿ~̦1\_߿ fag=gª k-%~|?yZm}n5#{ V]*rR ^֛w"t & ?`wCZc*X1lɿo@ \l n YF 2 6\a=C Vlgh;ΠSX3|z 7Ch$Ћ vބdp(C+|80e`$ڒ1 X~}p2\ 2f(= L l h@} G>2ygebCU%l I L]+=pKL qI s@,ogC4~?.b`8 #}O~ax @1J>qGp@͒ >" IENDB`awffull-3.10.2/flags/id.png0000644000076400007640000000062011120610145012351 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<"IDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @}ϿW޻?Yt8U/10  [@EK@&@k@L t A1lbNLd ÿ署Xkh -?`"&aի.q@t hj #4{ JY/Ud\Yr ׯ%i`CbYnە+Wy5B#@r*IENDB`awffull-3.10.2/flags/pn.png0000644000076400007640000000246711120610145012405 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb;_'&vVUn^1lߟ ܬ 4y3|bXy9ï_?ÿ  |dX"@X{LSZ0 3O̙>29U |?ld|eغã/A20b AQP' O^<@,O`rCS-Ç] Pk hnŰ[㧮30~pO@Nfb`b AWTaW ?_1e\]     D=>5xd}'IB+)e*27춺@=&#$8Q" ae*LM#- 帽*+ =K/:G*' emxM, 0U/,U%J {H+ Ke *  _piUeSv/30Lܿ3<6d`@3p/3 L@> 38r cXÃ;J 74T,x0׎A^AR@0050!2fi&D>#ŋl 5 u>0|a ,Ë\ V=g X(׋ p9 *0ge (2L_'O LI?Tg k, 1<~A(K3QFE& R}@ZU?x yX GFf&`73'ߞ1˯?2 ܟY\A$`SHe/PlIENDB`awffull-3.10.2/flags/bi.png0000644000076400007640000000241411120610145012352 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|Cv>3;sU@=10(la'ˏ;a ^Yn6N_l .` 0@ ؜€dKZ :|Xpo??_p]`bKw>z l <,|0 fFfNfn߮0  oa(AOO Z Ć5 ,@p& N?~s|U  X- K~oKa'"N6Q)!(YeS6VvkOa5#V`'1HG321@S/ ),,P_`'*ϯ^gX`*OW?| +>~3CF#9Dׯ ld F`So3|_6kU*oƿ JZ \ ܲ 6b \L dx=×?cθB2RAI ҜpG9{Gsk!E fbXzed8Kآ3_~}0cw7k? 3Xp߹u?`!-<_AVf1BRf}}V8F)yY<`uhWb^b-ÿ1Rdfce`b`: ~0$r}IENDB`awffull-3.10.2/flags/ru.png0000644000076400007640000000071611120610145012411 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<`IDATxbC~ځ$V6] ZYpEg &ZY??ib7 T ?e  gxÿTh֯O=@,b'û? b@0311@?F/3#_&Fb1P'@3302 ?|c hˇ?/^w$ ;@,2/GԶTVq1@h_?@ R5~1Lbs2ϟnCmObۍ- Ka>@, A%cg0RpI/ <\x_p#Q! t~+>^9I>È ^b"Fџ?x5v>}/[ue @eɏMv310xNTR Z`!`Ȱj*`q2ܽCo[? ZpK=i=2|AWa 6z LL}@L#?;gW0\"Ͱs4ï_=t%ג?18(3rfX/3Ͽ 2V/geP8f& n $|t Orvs gI 933à a[ ϫ#\pcb 45+(Ad F_>~ L/%_f*v?hoEˣ_ro 9KIENDB`awffull-3.10.2/flags/mx.png0000644000076400007640000000147711120610145012414 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bfd`ec ~d:c  L (>|crUq ###7n;QO_es<ÖwY|#>/YrXā\?2`l '@;ؼe (1? P>|ph&i&3}zK|bALL ߿}gxÉ@aİyZs Z@-8N;'&6n!{2^Yf&f>2̛9 ~b``x Ó8Z%Ps3pp20UA l@00x- &BA/ +#3..G1 1|_ : k @߿~1x212(r2)+1JJ0DGD3H+*S/~K ?0e7f2f`aaawfnbeBa,4 0!?->J͏7Y>q IENDB`awffull-3.10.2/flags/az.png0000644000076400007640000000125411120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<>IDATxb\zC/?20@-2 ;/@,ן~?O?i_a@]@,|/o0- ?򛁉&@߀,c` ?~ a52t Po|_ !*ÿׯ?<h"l&; YȀ8IfGbh_['u@ ـ~@Lb tFf? `ۏp@920-cd ߂ѫ @u@> Ą'  X>S#_.Ff\uM e`{'[򉉑/Fb)fx~`<#~,Љ"7q,Ç_O@OX|'+@0`b4 rM?0~To_abyuۯG/GJ*ŻBIENDB`awffull-3.10.2/flags/gi.png0000644000076400007640000000136111120610145012357 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC3P]fXv- @1?ŋ gϞ@LD1||awZhwv~|Tib!Ǝ{2jg7gu07n)(3-cбapjW?@_T._bAA;k$}e hpr\ _FXx u"N3%LLL ?g``di 115 9 _93&῿c`a ׻7/ecce` g]x ߻3 'niy&euFo 0bgM ?>'#".fz cV?ÿ/= eL6F q$3BuQ fZX20c+%$'0NgL Тd?p2d` .z/ D0|ś ,O,y,(f` M~]ϛ?ĕOFp >1'{%IENDB`awffull-3.10.2/flags/jp.png0000644000076400007640000000107411120610145012372 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|C6661PӧOIF`۶m,?ŋ gϞ@Lh#~zAP-(uGo-3֓IQ~"lɟ *;;Т_V2{vwqVFq1ß3@ Nb Sg~[@Нג@Qi@#$=Lk \&>Ib\`D08#9I:@+(Ó Z¬g+3_5 , JœE Lr ?wn`GH,,^}?ܒ> Ocb_@eFy sƍ ׯ_gf! 2 ?f 6ݵkן7oФZ ѪUIKIENDB`awffull-3.10.2/flags/cg.png0000644000076400007640000000145111120610145012351 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\yeC?1XNA((ӂ~9Pq*ea`Zh9_ۯ2,i@,?+1BB_3_Xa+Ñ)l W~@,? 6>CP7$(@bz&'?f@KA e`g`"`<}ddxe/+#b!Ƃo d`Z΂}cdxe+3HA^K~Y mK) />qY3 JJ jP У taex&&. Z$#8@j8|𶗋k?@XDI9hGSy ;N.`d`O K@,L@8Hb`&H}L]@ cdg` nW@ M ~dǹ ogp2#+~a XUXcd`?߱8O^p3|`>iHA@,^]fyaI>fg~u#p)0= Xn}~zOJRد 1 F#@ΠGOTrIENDB`awffull-3.10.2/flags/gn.png0000644000076400007640000000103111120610145012356 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbtC_> ('+) LuO2jebDHɷ' ۞n@,_f 3c``ag`0ec`ǀ|ԛ? ,/õ^~@,f -8,N 90`Xr/P-?~ Xe_0/]A sЋ W2J0!( .], X@t b @Fh Hff3'22ψAz Xݺr?`Os o?71.a^ab՟~yK ,M``|Z?|0m'?LIENDB`awffull-3.10.2/flags/am.png0000644000076400007640000000102311120610145012350 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:}C?10@-h߇~[ X~_TM^p?u;| V?󛁁-a X5-ad _WYnp?p%gx? @-~GEPG*i>IENDB`awffull-3.10.2/flags/ph.png0000644000076400007640000000142511120610145012370 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbS?|򎁉* gذGbrz{Ã88X( ?exWbՇ7ecX,C} ~c`c̒|͏IAJZ!?݋a1~72_Vi  } Y0k~[.1023 bGbadD~<`m`m`aƒ }d`ZDnL(?0|ß>\$C3 { iFB ?]@p ?YX~~>? ?0l0;s"ÛGNy/ e %`?@10J ß2}Et:ob[.fh/f 3Po?ËiS>]Lb<, g40231~𢳓IU0l: 2|{u` >~d_,@] /gxUXAf 3 G>=LeP@,x/XeՌiouty! `t o2T4IENDB`awffull-3.10.2/flags/aw.png0000644000076400007640000000120611120610145012365 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|C?33 ##ß icxGb ?c۷ oȒO?2ܶ X, rs;xbx2eg.a_ȳhW\ }zI/Б- l11$20r @ ̿?Ȉp ˧ ߿B@,@72CH'1 ) N33/ @WQL+.Q \F`  X9?14,b ` fO ̌X~3gĽ3@ß~B%O |/[_3xbadL?1K=K-~1˓!,n`x|:8R'1|g,rt7BᒢIENDB`awffull-3.10.2/flags/gl.png0000644000076400007640000000117011120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbC~ځ$V6] ZYpEg Nb`غ@ Cd.A 0 @-4qYCO× lPq,c`kb`c``a%GĄՂK$ ż@C+P6 0-add`h``dcAx - }`P_/C|h?]`G4 ^@, +30y.P0x*'kgLq ğ Cxbo`ZX=%610]@e"`ʺ| Iu@ C3G?= _?p X3_XT;05fW/З㉺ tR@, w.xPWB~i`{ X=v;?Ю0tÆk? 7'+piy 31G30pⵄ X 卭 ϟ>fX}/QzXK89]`nǠNt@AL1,Tcc/o @> }`$d3 +;_~E8u}~ϟ~2|@@,Abd&#@\@G>gj[O޲g2;g3x4vIENDB`awffull-3.10.2/flags/kg.png0000644000076400007640000000131211120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @}ϿW޻?"1@K}@0 <0˲30r011{o n~ǩd_( @, ,1Za3jed}h_> 40" E8\gs;^3%L@w21002r28\qfAd b, /P930e/?'󟁑 ?~dX ?1}  @0) 8af~3(q2 }^bp6k^2|}-1y`& © ׹ af&6 ^px ʈ qɟß}$L /~}o|e۟?3܆No~3 bۍ@#2 |0̱ا!IENDB`awffull-3.10.2/flags/gw.png0000644000076400007640000000117611120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbhC_>30π~g`be`2ga`@" mK rÒ_30ʱ30$Zh5^w#C\@cx's ?@4K@FHg &FF@}@L00j{?$ ~eX7??43D Y%IQ ~[ tO?~Ơ4 h/0 mkX+6;3#@W|T,l/~bANHAܬ``x [c%ݒ,  O@sA[%Ăd1870 єFh* @#F?h4S$Oz*% XݼrG^rp_1|$f ޿]ן7X\T~2GEІ/IENDB`awffull-3.10.2/flags/dj.png0000644000076400007640000000132511120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<gIDATxb|C6./?1022202P|ŗ/ᯰ7>XϿ b _)/ Ͼ~g`YE]@2ܽ~K?7+  h 5@;ėd`cx /~|o. f ~}q!.v?,K%?e,#7XLAC/ od?2 ĂSbx6׌ zƈ !^%^COO3%>2e XLb`Va`Kd`GS2#GLSIENDB`awffull-3.10.2/flags/eh.png0000644000076400007640000000101111120610145012344 00000000000000PNG  IHDRgAMAOX2tEXtSoftwareAdobe ImageReadyqe<IDATxڤRMKQ=3J),$m+WhWj1irq"Ep&pJɅf8LOSa$.wλs} J[H0TJeQMqN?5~8DA }620GQV].A9EjEUvOQr&4md2x`˙MBEѷhBdR;;"Cy48a},- ho1kz)nx`j*I hmix().XqZ]ϵq!gxc,C{${l9|:] "WX_!p75[;7Qcc/ݥ>k+ : "6s0]IENDB`awffull-3.10.2/flags/um.png0000644000076400007640000000200711120610145012377 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb_2|p?yi/73|Sd`fb` ?r 6 _p} 2 _Y. %p' `Pd8s)6om;cb7$5G^1Jq0ܸAWa j@ɋ>B)/#L @0 01@1^却6;(0~5Љ?4+0/)a@ܷ \0afc@>p" A M  1e`ß|J3|}' )+W E@ 8pagg` X3pi30} FP\8 X8߭{ (5Ɂ߿|qU` [ @>|pܹrԄO o0a>`9[IENDB`awffull-3.10.2/flags/km.png0000644000076400007640000000141411120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbrkCs~O @f=e[o嶕Z k~d ۟ny34100DkSǒ3= X_?0\{Őa M z@ſAPן@5@0gd`fdfscPRbXymǗl}f(d2bF gb+m+ҌV3\}}Aє l;-^Hf` &  88 _P V]_pn A9k +$$8~yXyĸJL jwg~4dv?PjQ;/ ;)e`pzFFp?`̗.güy F ?bÉ ǁv#? (\6AI\OG-axz!SH/T3|d(@2_ 81ܹL;k.&3<ʰE ~@,_fQ/+ ߅ۨPYM!1 ~/ 4 _+XIENDB`awffull-3.10.2/flags/yt.png0000644000076400007640000000077411120610146012424 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?20π ~`.`(  #=ywrs?0(r-a >~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/cz.png0000644000076400007640000000106211120610145012372 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbgI @򃑕/0-|</W/0?cf@?r;7_ob;V* P?b`f J;g` Zf?3IENDB`awffull-3.10.2/flags/ly.png0000644000076400007640000000054211120610145012404 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bj3?lajZ  h  b @%DK.M-ebe1d͏7Y>RzpɌTIENDB`awffull-3.10.2/flags/an.png0000644000076400007640000000161211120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC~\/U~```b”37g`04d> bnJe`xffToZvZY3; ܧO VV8^:ٳ``-cfª߿ r `fl| #o6 8d``! 񏓁c1~-3wHއ?xh+5\F&F;?0#@1]1B9!* _`:/8XP\ @d&M& ! :`rfKAU70S#6VV/Gq1a3 悂 pF<30B_| yP4B\Lq_3b_ ~1 ?yv/ S F pCGN3z bQReck–J7~`s2g 7N`P^Y_cx@1?p L!A ?^b`o`ɽc`O@q5jp8cVfN`.dc&0 Lh1̌  ,7n`~:j3#`|RN?0qoF6,9 >d uֽ]rׯ_.=p0rP o^20) o>IENDB`awffull-3.10.2/flags/gu.png0000644000076400007640000000124211120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<4IDATxb|qO ?~🁚,?z @,w<_(w-`$ ~a0@|x׿ w^~bGF&5 zd^|@, ߿8-aB ߟ f>1\gfx   &b?.#12Kp2 #(K121bx°5 %_ο TKd~aPax%Π3_FFE%d!h@ Dg`&Op1(g8FD 5##ßř3|g8m7[D%03|A46k S>a8(K(K1lgc~! ?C]#Hb!&i#;; ߖp2lz/pEObʌ<!`dxZ3 ~3;K RjȒ>@,w^ ˷_R?# +ßIENDB`awffull-3.10.2/flags/ht.woa.png0000644000076400007640000000067011120610145013162 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<JIDATxb\C/_~2Bj3QՒ3\,r?~ax-ÿTh֟z X@S`?p##@117&vL>3q0cnpgbc@,A1|ͻ Gax _o%_0zLہ X@+bKM-bPT@,/_f3}5-y/Xeow30yOP`y;IENDB`awffull-3.10.2/flags/ga.png0000644000076400007640000000077611120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bj3?/O %@?ÿ  +vZh?fbj$v OR/F]b`X'@p@le/f XPy@ X 1˫B fqO1KX_~2 fDqF?`/,gUT@,ʁn6(!IENDB`awffull-3.10.2/flags/us.png0000644000076400007640000000200711120610145012405 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb_2|p?yi/73|Sd`fb` ?r 6 _p} 2 _Y. %p' `Pd8s)6om;cb7$5G^1Jq0ܸAWa j@ɋ>B)/#L @0 01@1^却6;(0~5Љ?4+0/)a@ܷ \0afc@>p" A M  1e`ß|J3|}' )+W E@ 8pagg` X3pi30} FP\8 X8߭{ (5Ɂ߿|qU` [ @>|pܹrԄO o0a>`9[IENDB`awffull-3.10.2/flags/bg.png0000644000076400007640000000072211120610145012350 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<dIDATxbC~ځ$V6] ZYpEg &ZY??ib -/b>'ߞPע ~gp@|O %b'@03230 # ?_ dddd ? Ŀ>2 X$?g`?ח|@,k~1{O~R_aㇿ 'Tpe@,  Pe%~ @,n]g͟@ ~e /޼]ǟ7Ѫ`Wvg֡IENDB`awffull-3.10.2/flags/kp.png0000644000076400007640000000123311120610145012370 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<-IDATxb\C/~1@5̰ȝr+szv0 ` X Gw#y/O KM?3~ @/ L a`f`de!ْ^2l~@,L+00x|.P\ÿ0zO2Cib ĜII <[20jh2pt2p/[ ,rr uu ?w`33pEG0 =Ytt~U30rp00m @a @C}}X=KnBc }:.6??q.^dp! ȶ 0%0~,/g`[+&+ ߀ c | '  a%\ΨH&f 2KG %Q-ǃ=3X>~OT@,ٷ?'l:pIENDB`awffull-3.10.2/flags/to.png0000644000076400007640000000106311120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC~ L L 0sV/2022}bn 8޺A,9y-?Ȓ? 1Ǐ c`cd3qr201~'PK@rK@ ᵒk1at)D qR?Pp1@|t-&8~>,%$!@ @`K@-t8^ 1{{3͘@-@LXedPRاY@,g ÿk/pEN -@|Z ?w#fd@1 X2I02P@Xh ("?0>RP,Ynmh3@lF`Av =IENDB`awffull-3.10.2/flags/cr.png0000644000076400007640000000141711120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbCO_2@52 v_@,??ן%G'9ûX%Gϯ_~ ?÷ a߿ٌHD"ϳ10}@,~@0Pb`u10fV !*W i_77g7߂ <0޾ ?$,-?2|z Xgo?b@K'2^;3?J /3g1 @,  #y1kS~|Š[? <@0 A"0&? g1D0A~ 3 p; J؀);Hd31O—.1ٰ#@0qsZLru@/}{#B|Ĉ%/7's`ͻO@0YOrogt cl@?1+@|z}0c߄n(ƅ0IENDB`awffull-3.10.2/flags/ki.png0000644000076400007640000000230711120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<YIDATxb:eC>10@-h~^ X~?//q[DA?3ߟc_?3l X޾߫W cvK3|Vc`ec`u=ǂ /`*ї `a`e +M?00m~ J ##Qa? 灎 Md Q@]B' w0>@LR "mp/N``a`{A*˷- X`(xJbOj ߪ0ȋ1=pE^W?0 8#+#جH ejk HD[_  QTWU 1 8 uc,Cĭ!$e4 D!  +"L.? 5-Ehs6  tи Buabh[qcf-'#[0,Lp vL }@P4#OY e*7%##0!B2eE2  H31*3 ;-!e QF0 &&"86-  J9P69`M)!prF/M&ꦋVq߶3iGsTd~ C x}b <RͩuIENDB`awffull-3.10.2/flags/tz.png0000644000076400007640000000127511120610145012421 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<OIDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @}ϿW޻?Yt8U/10  [@EK@&#??%LL 1323Q20 35+bd;ËoхKF~ . y.1po@,X]#N1\t!MZA#8>ʰ9&y>FNB pZ/62L˰V>;á{η0L 50@,,d0gdp0s2JAGAGPg˛o/j~ݕG›ճ ~B geg`f 5 ?dx /J|ϟ ˗K 6&v0Ͽ? &&f?Uwo_1|g dfnG r/ zp)L;o0|0 Ę aIENDB`awffull-3.10.2/flags/ec.png0000644000076400007640000000075111120610145012351 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<{IDATxbgC~_Y00 X]f`- 4 /X? %Qђ /d8{bg?Q oԍQlX0˚C _|b K] {pbՇ_ _`GEK0}cfba'7[,'3+O ߙRݒ@00 aPyqsߞ3KٍE ߼dM\~eX7@qO 7~nt?@,_x?o T lIENDB`awffull-3.10.2/flags/sb.png0000644000076400007640000000222511120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<'IDATxb\C/~1$?ddd`d /#gSG "7~@,Woa?Xc`eeeefx;& 3w_ >Oua͆g,ɻ? "< bC>,; c`cej, r̐tX%60e?Ɲ2{? " w~fxÌ%>~ 6(3S nwA a|/Î|@, y3=\ !z P= ÃxQwV) վm1#ô{6=66P (d8fxü ~30q23Z@Ci>C 9Л a8/+#/ 0Ρ - dh_p7 ech+v32gPzА| aX(QR)xG`1p33aadxCیc ^130fm񌁃70Xddha-O3p132pH;Ͽ0< 5W.?|f|60h+ob8= y &F/Yh/x XBߞe=gOUbbcxFf>2< X>^ewpXrw ~̘- g }_bR _03g`ta=W %/c9 -#;;;?>^? 91b`HL` ÆB- BPe`VVd` g``*7#2F;5 ޼f{#ÿ@ e`e`PUf c`J &Fal;0B EDXE$e<}_H %K1 0t"cb~ݸfy9ïބ{@qbY#û|oXe=)`f /. 7, Sbx+@1EMgGe |/rA4#FX[,-@U!ه*~t?h><IENDB`awffull-3.10.2/flags/dz.png0000644000076400007640000000152511120610145012377 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0B| 6 f¦ $rUq %~aPUb` kײ˃/G @˰*? Z@|le΁ӂ/2={@ /[_gX4' 3SC>0b߿ Ȉ%?YT_cXn ay LL ߾dĄK??x9_C  Ā@ÿ g XpZĜ3(𛓁a3_&o?b~!;^K+􉇑a6ǯ 3XQT d ] , &Bߗ 7T Í  EU%𝕑/`? <+0pz30 3 p)l3tbf`y/C_ 20h30MQ q\ %Ql -k~1$^f`/ N@,L4a+l@ozo , | LZ m3_3͏7Y>+33aV hɃ>|@,z??%0I0@ wUIENDB`awffull-3.10.2/flags/be.png0000644000076400007640000000076511120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb2eCO>1Zs1s30c`, |r?ywryr?%r@Kôgw+^f$_̰+b}W^1ܻwhA6@R h_>'h_ܯd0' jɿ@΂blh? 2/0d .], X@t b @X PFal Ѱ] KGΌ"@,/_f3NܸaFߟ~00|G- A_Y\>[`?[  5"CIENDB`awffull-3.10.2/flags/mr.png0000644000076400007640000000140111120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bj3Y2HpeQ` 𗁓"K(s^gP!0ŘD?4@1 BlX= 10} q 6@L|* ?rb'( e`m @# @]7t3;yC#9 &\19 ~AR#4>\@M4d`8 G_q610 104c`X ̲p  D~p[Abyw_~]͒O~3j2b8qd&FO@f}u;-E AzM_  ÑV .], X@t b @H pf|U 03ϟ?8P_hfdDɌrg0|d*j ,.ưUx; %OXŕCo?<Ϸ^p3=‰h Ow IENDB`awffull-3.10.2/flags/cx.png0000644000076400007640000000254711120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbß aFƿ, 3122p231(13}'PwX X|';: ,J˞``d @, L̐ .{s ~b [O?y Z30(g`["x?f@&10201l 023 Ϋ p@6@ tR"F`*f`-6f$V``(,rSX m3ҾB ʕHZH@eJ&:6V,!<?b%#8X' ϓ) 1Q9_ 8ba: \l@?5~1,ef? `t3111H0(fd}ς׮~gc2,6coPA_&+212af`?Co l0t1K3&$b S`Xed4ιp'kفvl"ŃhE wc'.'8X̀w?p0tfX~SO7b!n#g&Fvۿ}g8'C 3__: ٚl E71xpoV+ :ʢ Ѫ ݗ^4@Ù27C?G @b!IhO fp+pv> Px  | 7g;;/ g2p~cyp%7 ߿e8AË_, c`  Ռ+>e8x5@ ?f?W,`L|g8zG~GVdܒ;%O~-bb} X i0ce+'0Ŀm-c|`b Jwm03hP/31@1Ho^`rYmg(%@RX&@|f`bto`|gnogL裿 @ 0 ?GpQB|l fg؅A~ 9 ~u'F$c4X##K&֟ B, 8IENDB`awffull-3.10.2/flags/cv.png0000644000076400007640000000135711120610145012375 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC_~2Bj3@,w2GEKfd1.Kcd`b" Q@L~1H  @ALt1b0{ , X&O  ??P_f {ŁAIF& 0\Ps>_ Ç zPe 0]%`000Hݾpbwn× 0 l?_30G5 d f[ Ą3e4-ETr(\ (dzM @L?}>&`u;@1FLg{ (12XdxkN) 2N\d` ӗXB0~ X@? 102118eyGvVF, @ @2&U_>[ E/0HEOd G??^~ /aw (C0O"` iF1IENDB`awffull-3.10.2/flags/ar.woa.png0000644000076400007640000000071711120610145013153 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<aIDATxbxC10goCO~ ;~ T, lc '_~/Զ?ç>ݻ XĿ%c?|m #V&vfFbG?*Z..^x˰%@p01`@ ], LH847`bi:OP>M$ gw?1? m?~bagF&AI0100X^?]-Գ0 @<8c[V#@廙T؃IENDB`awffull-3.10.2/flags/cy.png0000644000076400007640000000117211120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe< IDATxbC~ځ$V6] b???1q/2={@77 %חS$dbok¡i?ג1x bab`6& vUFV_4;# Ԃ l@p&/ĄN-k!3 d31ŹEib!C0J __MƇp38b@H E@|x Z_G2\q+!Ξ;{{iif@%0<G |g8y8ÑcGN9a@-aeeeHcPW`ex>;>f-@1-(hM?2ppp0f͚7n0\~,A-2@?d uֽ]rׯ_Ӭ0U _IENDB`awffull-3.10.2/flags/vg.png0000644000076400007640000000241211120610145012372 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC!A/>ʠ'`{v#{,Z eax*oy3O30r200g / Y}xs[ bO{~Y2ܓ`A=O {eh_ fb#3' a efPu!>Wv1fTeV!4Û[o~|dg#o1A,6_?r1ۻ  gKax' 0=< ~l?ŅC!Ybd` 4Т X92 @ @,3=^H0hxd|}!+ܩS Z3~aíl 151dRYr7;7o00<ǧ^ K n 220$#B&? 992?W'L@b *nY L1ro'9N&@}@,j wv0D]3e8+Đᦨaj߿ TaYf< 903<ˠ`v: ǟ 3;Fp @@Mg. Q`C&}}FNjAz2M9a[)ør;T[2@LL ԁ1$à{$T>3hJ0H>dgL@L B3qSF 3Ouλ 3pg[C5` v+@00 x𗁑ÇG 2cC27* 1``G7wZNY@00~eZaG60h2';013d@13GoX^ 4.tUE?xyT/oXӭSo^n[?' : IENDB`awffull-3.10.2/flags/kr.png0000644000076400007640000000216611120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC~$cx8 "B <}b`, 4;bAfffhnP0/a?aȂ̬ '^|g0uATS !))Ν{ `bAO)bb(1<`fgx &` <_1̻h bB+8`WႬ811jՂ\ҏ'/^Ge`bxǐA')#, |egVZaE /_`gPRR @p"g"͛w|P[' .Hvbx$÷ ]{ @kÆ AǏ zzZ  k֬2 0,kf( PfevUeZ -%L\0},eUu -_S\)q@y.Ό_b022`K m%J ;Pruׯ^08qƖ23d ˍ7_ɝ,L w ~y0ٙ22\pAMUaǎ`@ÇYX=\r%ׯ@EǏDDD.?|̼l \0@xL|IENDB`awffull-3.10.2/flags/rw.png0000644000076400007640000000114511120610145012410 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C3P bF 32x,GbA(#P[c`b~񁁛3Wj 7s0< Xb37@#@WJ_cU`&wO>>`byd߿P~a`L4)xngw<b4Ç 1?~23@0P0110+ɰ/7J 3y` bw.P`(Ñ^ Bܯa`~Ob _Sel!7Ó.@,aN/.(0P  @L tDKeUm/$N \WO2˜ /}bA"C5[C{,# /lW?S2ZEGI ίIENDB`awffull-3.10.2/flags/bt.png0000644000076400007640000000220411120610145012362 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|hCV^1*x=a~i ##_Ꙙ t(#@%2=ΰe}b韟?2hb:;Ó{ _i3p 3qp1A@ _~_ O ~@, 4/>'3 V >} Ï?>~Y {P?@"\1|$Ï/XٙDąD1{g| hb!&  ?Y0{`a``gx0#w/2Axk \߿?d`aL2Ͽ ? @/Р?}]Ih! ? n]e ;'7? ?;73бr0\ /ϧ' lgacebt=0uffx'o~gas ,|`&?}̠¸; #? 쿷1&fx2 t |50~Tc`dk02gk?/+ ߇31r> @,)߿ ^50x2~ڗ  ,O2~AV /\ LB@_nds  |Q`*-0~U_~q3f``b~ex;*[x}w8032!01O od`6d8oU1 y(h3o\gbz!'77|b`x Xؘ~ ?@U}d` h110πvp3eb` o-@Ld`djoxC#9qo0ܒ_2],O]22tK~;0$?81Ř21HyX ¤ S7P T|gH8 L~3 w PH` /;P70~3n^[10 7_ Tv{ IJ}?0}[hQ` 0^e X>{ѯ~@# k߽DIENDB`awffull-3.10.2/flags/qa.png0000644000076400007640000000077511120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC~ׯ `xv.3 ?ëOm @?~1\;q ̬[_1~ @gKG2o ~_~~s3011X@?A] s5 %~a H%DF ߽[@-afaePף(%_?}b{20 @ 9(@0ǃ3!a "|X,L<3"߿OA qLEtfW@ KXnܸpuc1][#N0oo˺uޮ\ׯg?<LDG'}JuQIENDB`awffull-3.10.2/flags/ye.png0000644000076400007640000000065711120610146012405 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<AIDATxb:}C?10@-h߇~[ X~_a0_`:~ @L0!|b HR tOU?H@2B' ;@Y@-rG  7PU0<kf`b *8M^NB%ډKY{ , PlAV<Rbe1|ș $?DM/ o|xB X#NOK@3g` WG^z럿'| pD2#Ĵ/B R&ۚrIENDB`awffull-3.10.2/flags/aq.png0000644000076400007640000000160611120610145012363 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbuCF?@UK o3?|Ư?_YL ,L 5O_^J_Q gers^ ll ,LH1@ƻ޽:@,0[A0K T t-#X_~2jI'Ýp ןB L0 @L PSQ ?~c 䋯 P22s0h2dĈ0:H0 \+FE 1ygx-RN?q 䈌 0| Xn\Z͕,?nF̠gb$":>]!/<>zfIENDB`awffull-3.10.2/flags/lb.png0000644000076400007640000000131511120610145012354 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxb:}C?10@-h߇~[ X~_C3_FGe @R_ 2>u $pE 98@L?>{:{7eOX3g///@} /L Bńe2}}#ވ%If`*& ߾}e`)lzcS?מ~/^0\3Gϭ,?}f ɥ mz X~v??o3 |0>97<IENDB`awffull-3.10.2/flags/pe.woa.png0000644000076400007640000000073011120610145013150 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<jIDATxb:eC>10π8BCUUc`aa{6Ïի1H#@>^_ϟcl1{9aǏ,tɟ^1wrr ,r`a%?ÔZrK0 fA ,Ð Bibb`dd5 &:%DK.], X@49\\2#0#ŢPcp@1lyA4@| p< *~´ _7@Qbۍ@emN^01ˮ?C#@OIENDB`awffull-3.10.2/flags/ao.png0000644000076400007640000000145611120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|5eC>10@-h֯ޯ^ X?/_ϟSג?ϰGbq?^1w?DYy Px-tu?2$ v30qëЂ@@ &FF$#}w;0 2D"3~cdeß ,*l ̼DY@,@kXjᰄ//xl6 gcNd6P0qC NVO\l x?3;p1q0̚ W~2\> 3k`bbOF{?iWb`?CPC /Cy+V>ph v} X8@to } ^N\ ӺDpD_P7A32h3 13=6W3!T XI~hH '0~ڻ1,\V]-k?X@198|x%DAFA s~^M^A@KX/0N~ eDE|R0$&&DjX? FnVև@SpD s6CVIENDB`awffull-3.10.2/flags/ad.woa.png0000644000076400007640000000105011120610145013124 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbCO_3eap3`7&`d`&@Ih紐n X|+?o1A["X,a⯌ ?p3 K ^a ۏ?y;ýC3y[t0Ȓ ?3202!y_?0\@6 /̶S0/ J.}xiAJB^r &p &:%DK.], X@4;/0g  (gaˈ@Ҍ2#PH X.yc`Ӓ߬ .adQ|g`x7? \,y?XSoޝ3!zp:Ja7~ 4"|PGGD2IENDB`awffull-3.10.2/flags/mu.png0000644000076400007640000000104511120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @pܾW c`jp e9 ~+3GEዟ}@,^~g 2q Xd7[_~3˗ol a%T\ _~0KE?2| 쨙=zpcbz ďz PϟɰWbaTl/ 9@00-b% e̓? _a70@p_bsë?| ?Uן~@,OdۓTM]@a|?,ȫ_~_ԕIENDB`awffull-3.10.2/flags/ar.png0000644000076400007640000000115511120610145012363 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbxC10goCO~ ;~ T, lc '_~/Զ?ç>ݻ X~ -a? c i>6 lLDfoВw~s03K(8Ŀ?~};(έG׿.bX XX@  .01ANYAB M%@3YFӯ_o ?gؽÙyAt N*843іXKY9l|S1!/#?qb  ?zΝR##34$ ^0< X~/fOo%_0 }kpF=,O~,Ʌ_\WW2WIENDB`awffull-3.10.2/flags/ws.png0000644000076400007640000000117711120610146012417 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb2eCO3XX$%^o#023aa 2` <``X#@?Hϟ[4!)Ɇaǎ+ o|Z7C!eX_3 Xn~ի a7êU'nT!5 (a@,@h NK.}bb?ϟ@K2pr2 q7É>c`6Ř& 9YΝ{&׀|YĂ) {++e#Gn}A @Ll@̎YXE[x奀|f4yv@HK%  5C>߀/oAWE&zw I@* .M-ebg HVP  ˗Yn|p5کb xd,IJ+%kڅG­J 3IENDB`awffull-3.10.2/flags/ck.png0000644000076400007640000000210711120610145012354 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbv.|eu377C+gi0ZDa o~b```bի} Eυ}qj0)2l'=[1~!/C N=e`h #^Kpsϳ?xgpSz`aٿan*a)Z wf5~4% ^gy?*CT2]q9'0xؘzY3~sJ@(-A\@,_ybAho N30>P\80= Od73q10$!'_  XH3ȫ020?̰6/C5? 8`X Cqjf55!EEa/0p1HKs3zѣ w<[@, .o/9Ȑei`!\мC^CC̥bd`dddPVZ"°u-Aq,$Ġ"g f?uE۞q/=?>28aUvqAgW1`k+˰nMCS~L ߈10zu'@1*ݻ BXlE7o3\GJ tPGbC]ifF32|x 3ӧ_~@-NAJA\)b`cc 2-ag h..N`c ?D?"2ܿ]* "LoV#/oۗϟױ *) +'`ϟ n{  \,n@HN ^~0@o9u IENDB`awffull-3.10.2/flags/za.png0000644000076400007640000000213611120610146012374 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbjC2AEAOБ] Lw3%XH@=00Y X}%7@ a <ÿsf``f`b 73} X$9700AA[N܏k~<8 ho~c@W_~ʿw/@ l~Ou^CP  ַ3pϟRF?1F "01We<' ~ GY?e @1v)? & "ϟ~3_!p,#@נ 4sIENDB`awffull-3.10.2/flags/va.png0000644000076400007640000000142411120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbjC~202> ÷ r3~Nؒ@!$dڵ,?~ރ: \xٳl!lj6 h #9? ,`^UAY݊AVNj0 @, dg2ݱ_' @zu>;/2Hy013|# z@n \ J R2 j .`KSh$;?p["Ò , f _|b/0|ysaE6V Y. h3hg|{5@'bط /{w.30s3(0~uѓ , D%efJA3;7vA!?39y3lڸ˷ D%aK``dbҌ me8qCNA=0m01/5k0  1.Vy* ړ ?0` X_fq3P, OA9 >d u?]Ĥ,Py5I0@6~IENDB`awffull-3.10.2/flags/tr.png0000644000076400007640000000152111120610145012403 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|zC?~jhԟ X~޺.31BF0" em^˯0=#KFVv BGe7 ÿ@C2b0߾2j22K0|uY /3003e?gr6@110"Ђ@W%e1Hah)_.3*20JHu;@(;h}'00< d1#;0X8>aa`e9#;LB?8̭O1}I@/&!D&1q|@LAr (H@ L  + be e+Q@SqO_o^C@W! l: ?/a```%\Lpg;ÿcS)LL?|7Ç&1{d @̅&zs~߹>_H0210I00)2ZAAȈ/3??#3#;0ҟy0|;†ځ?DRbg ၮcdq:ËT8N!Ɍ恔ϻX>xp_LxDdOe O^˟wXm$NIENDB`awffull-3.10.2/flags/bh.png0000644000076400007640000000104711120610145012352 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb3011 ޼aw/ïǏz?a&66nF dz0k}N%2|?aǏ,. $*qV-u? &${O@_|ص?dYd &l x$$% gϨb @aޥVKS6w30Q'T%^RNi_>}AnFD=4q¦caHK3|r"a &00$dw7&h"R&(N7n0\~XA_>E}2 ^ uk׾]j՟ׯ_->1~LI]IENDB`awffull-3.10.2/flags/fi.png0000644000076400007640000000121211120610145012351 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC~4?'0 \ . d$]deڵkYdl K.#%mW| ? ߀ '!phR'@0 bbF<K A _@~dcgef`%'?"?8%~ (EL Ơ.KRyp-@zbUʄdAI _d RCbAxE]_((\d\Yr ׯ%`^_ ˭{?6? ɒ0<| Õ+W~# Jul *~b(7`gPaÜOX2hĞ @ÿL gzÛGXeX+t4?4L%.W0<mdȇo?NVse_Vv@'A?C!C;_ /`Wo>`O0ؘ1ˋD7)QW_1%؂E٤UJ~rq :Zg^3 INHX_Z6& i !T㨦Yc;6;ʎ { l f& Ѫ\ {f&`óa0DdbXy%ڇ}`wa ߁ ?3q0Dp6EL 㩳 {f^Pa΢ _0(3[32x2_f?p';3CU~02O\ Li?8H9+<}/ LgdbbdL!~3إL@,V?jP$~ TlVv\@)P TpB3%ƈHK\E}Yc|ƮDA Ujǂ*(s,k " Wrk沟Emz8 R 0]<A.c ȅL>HA#HcbbxÐ9Ф z  Q ZwkFŕsiHgioՇ'.,JK!ϦRL-x! _XQuޗs936‰1PgK =߻x>|Ò`)_ˀ` ]}8Q &QOy_V?_v[ & *w$/4I00pqc&b7КOtf4 - -̰2amw o0L5XAKN?&Yp+Р Vi- ߾3,_ 3|N`~-5\;˰J9Y>0xq>b2f h[@K ~I߀ßv<#^`X;Õ_ w2< A;c2X10h&]a 560Y - ]d&s!M)1@G6lwcVb1T``ɰ^! "xdV`e.^%mt?H"4°g >y4n3}bx(|0 SGVFfcb?͇ :XG)@ X@_pn?@EWV2f ?fFfVHce' &`02py 1bw:nRn1$?JO#ƒ ~e /޼]ǟ7-I >IENDB`awffull-3.10.2/flags/se.png0000644000076400007640000000152011120610145012364 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C/~132pfs:OVEL~be`bDR'/?3l;r#@\F߿ܯ}KL  TD*D00a X]hL|L` `&7 8q X1c#O(qOr96y۬ɣ =f @K^pgȩA+Cy6ޱƉ'n`"" Ϗ~fa +A;Zfb  e Ь_~2|a@,;\?(u0 3A惷,^?aJ?W&OϮ0|&bdo @1<__Հ3f`]bd$)0 TIENDB`awffull-3.10.2/flags/sg.png0000644000076400007640000000107511120610145012373 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:eC>1??( >xcya>fhm/_Rd?ϰGb{^1ZY1pgf2Ғ L*78hii -b`d##98 htba`dxoݽ /_\¸==XXC- 񥣃ŅkO?`BF@0Ý Hmld`f#B_ɋz @,sh00qC`Fh \;v0 -L߾10 1@Fh JY*P @ KXnܸpI jZX@>| X֭[vʕ^~MP`ӕ(rIENDB`awffull-3.10.2/flags/ky.png0000644000076400007640000000221311120610145012400 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|{C6 IC8A~S g 0200H|bp?;@ x bسGb0CX^oy?| }8 3G3hbQad8{Uaӊ >00!>@?f Cs?O10|AƄ~2`8xՍ? ~a8%|f Ȓoo1|c wE`S >}b`AJ(t=bϰ\CX~P~噁]'×@pn2g XS`_N~I.V`X?%6oFw3fbd t_~1931&aapꉟ X 2|AQ!% ÇG^>dpw/#g/`gXo `/,``йT?Uk13Hdh/$HIG7Ca$# [`(lo 7_eHCCnvot7  ̧3H]xa'E?@,B?.x̰z(' lL 3ypÇ  6 _3|`` 2H"EAKAAL`KeVV/^?#0E&;0rejD2|c`x! o   T t{`d¼ФNl@dZyj'$T`a /@w.s0LpXbb" E?0G1lȆ >>ggd XE?2} ʈbs;˻w~0OK,vz1,/g}IENDB`awffull-3.10.2/flags/vu.png0000644000076400007640000000157711120610146012424 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\;oC+?10 T@=`x{Gb+xEx齟ܲ18c@p<þ'YeU^3P7%FZ YrˋΟ "ڒU_10ċ100gH˟ XXY8NpGW&f1CP%3> P\3 ,?/d`P7b`0 fbt 11g @Ġ$i6 _ YL NP A܌ LD׭ ρa@,Pa_\afrcf?231W01pg b # O3ܿ@,,t!:AI'?ó۟޼##6 õ`pdD8,yo  /1Tc`xz5Y,0r- e%(N>hf+&~n` `MrIENDB`awffull-3.10.2/flags/wf.png0000644000076400007640000000103511120610146012373 00000000000000PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<IDATxڬK`ǟ--C()QxХdGy-(tBХnEptemM?:T=w{}1"S`)OM n7umL:$5wXx쬥|,|TQ8QTeTz,ªבgY%"+-0faՙX5m4*m2JyxeMX]mJr: X8TӾX;GjLV揽75 .ǹmY&d '#~?"V:=^sZ٨U. zY;zMUdz{M}ʶS^|V>mV*5HD=7fv{3H) P&9F>SI'lvȻJZ93u]6IENDB`awffull-3.10.2/flags/kz.png0000644000076400007640000000204011120610145012377 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\C^_beK? ϾeGb鯰Ŀܚ_O2%?z@ vÓ[X?^~r_^ZU#po~2dd`bM o2|s@ Oـ.`@q?&foofxz]AR~{*6  p-0 4@0=;_T21߃ 1غbep*÷ E0z" k2D ,@C90b?k1cfa` C_ >1|g0nn/r}X~` %\4U3 AAt 2\{#- o(1#Šaֽm @CZ@, >aLQ~`8{YtL3g7NK@20$Cd)ȖL /4>d`cEa.``T8m^sA;9f~w <f 6˿ 79MY30X`D3#AS/2 X23'I@/?#4Y 8Z00J12]`o܆ $ah<3 3~`8AJL*ጴ? d>20 Ze(3e,.00߾^<k`.D^>f @8K}y#_WP|0b[ꕍ#@DQ'1IENDB`awffull-3.10.2/flags/at.png0000644000076400007640000000071511120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<_IDATxb:}C?10@-h߇~[ X~_`nGb}0߿^FWQ\DD?Y/_2\@, $>fx /÷x9P&íg 藿ëw_<0]?_$[|yՅĒe/ s\fҖdud`de"}u?23chc9Mfl̠$i)p4љf3){ tW` #<ac u#T@"`nB iAr,"@I j>1 (3e۟>3ϋ`pA_o3ܹa Yg` >t` ?b8<' ?h/pIENDB`awffull-3.10.2/flags/bf.png0000644000076400007640000000123511120610145012347 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe</IDATxbhC_>30@54 m@,^fԵ?.3lx X?7 =􏊖pos~ 2f  0d@ &FF\L ly V\.)f% Jw"K10Ԙ8D/#vO XVڲ2|50qÚ20p1$(2p220r3ag8'8B~? IJؖOY ?e`Đ)?C? ͙Yq?w1bfb x^J q73#2;# xd?NK~?@y9־˰? `zȄ @DY} LXD`fb/8.39\\@ *@@x  5`Ŀ,ȫ_~zh>,8b5?IENDB`awffull-3.10.2/flags/no.png0000644000076400007640000000156411120610145012401 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:}C?10Xy8yD0?A_UI;׵kj Y>`nGb}0߿^FWQ\DD?Y/_2\@, $>fx /÷x9P&íg 藿ëw_<0]?_$[|yՅĒe/ s\fҖdud`de"}u?23chc9Mfl̠$i)p4љf3){ tW` #<ac u#T@"`nB iAr,"@I j>1 (3e۟>3ϋ`pA_o3ܹa Yg` >t` ?b8<' ?h/pIENDB`awffull-3.10.2/flags/mo.png0000644000076400007640000000144511120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbreCO?1Z?>a~9X`J030`0#ve8<Y^}p=@ 03B ݖ Kn10~Keb?0`&A[÷pv? ~@ۀ &F\7;կ`fPTfaa+06Y8Y@19An2 ?30dPcT0v:>×O  W/^ Lʌ'`)6f6?>eq- |>aȐPp=Ͽ>@tv6;2f0oBcQC%>%0[3 ;3; +@, 6`,by71XKZ3XY}f \ 2 >bŷ@~#%{G <<:8,ʻ+x' PFaW·;L r   K/x%IENDB`awffull-3.10.2/flags/es.png0000644000076400007640000000073711120610145012375 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<qIDATxb6C?1z?ÿ~l^ X\9/_^ũh߿ \` @{Ͽ7=U-å  M=K@&ь S- T?`~+@rj?,*oba/' ~?@11], f`3(M@,?C0(]S3N h 19ÿ/>O|o@Oo, /0e Xܾr'1Տ3˖7nϛ4K\ IENDB`awffull-3.10.2/flags/bm.png0000644000076400007640000000223111120610145012353 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<+IDATxb~p?ZǾbxRrZ M11}Ġ'~> D<``X#@y%+lw8:#Vg, \2axE!1 o]V b2\8H%20?ϰGbן z O3Ċ> ""r ^b ;>0>bxCM 1efb/e`c t/ gae` geɗ@E  '8LK _^e'WBY^3ezW? N^fX$pM!h; O?10H20H2uz; jj a ~f 9by ``q $1. -\L jl\na[/l 26wF7v @- ɓ}~ ǿ L LD`9 31p0| ĪmʠC B?TAϠ W&oa XX@ l?x"g`| #\1 ndataA$ K _g &2ϥ 23||p|e!K wE%maz9ayKnb(a+f\eeCta DOgha/ Қ~c`!Oř?}+P@Isg 7UYxc{ 1@yy:rSb+@Jh>; x_(IENDB`awffull-3.10.2/flags/ai.png0000644000076400007640000000201311120610145012344 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbxCf9y]>0\[!F  ״\\|`)`Ͱ ék3} )0*#æ-~|4%c81ǏXEY ·1(c03bؾŎ= 1 FD,uE_22MNkF12apua`T`dx×} Jb)#àedǐ&E,xs:u5UV~0:'õ/1083$0D30c`Pe`fZn @1i0Ti}b7!`/x`fpu Dme>a0L@_c`xvAďQ?OO3ˆx%ƫOfgdkӌ ̿L^xg [ jcigx7`!/W^B#b'w_3b7TPlE:{2QTɇ +E;p @F(~%SVX6Ccf8~9CG Ob  ^>ct5ó_"@[Vn@}i$@?K" G6?OY>hM)ЂwX6``nYXپ'~IENDB`awffull-3.10.2/flags/tt.png0000644000076400007640000000171711120610145012414 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<aIDATxb|sho :֬e2Pdp5d`>sw , $ =dxgGbaܳNX9ÌY޼xWvAn k20ܻA208ϰbxb`=? uq `ߌl" f2hN/bX\`dm8>gwr6VW700⿸?Fz K*x`CO˓O,`$ O>br! @_>K6/? @OE L x|/ o@,?Xo\ +1|gzq ٰ h,?@h$@2g`VK1dcȠϨw1C ޲o*j ;_f Ģ&AG*×wAFb7 գ j3pc6. ߲\2 [V^gc M@f ~Y_N o1{j#Y ?>X3pKfv &CGL@|4ço l,DE/00bP{/>HlwNV'/_3(gy􏏁U`|M@Iba DHHL0S!'óۉ ?1]ϛ?  L?noHIENDB`awffull-3.10.2/flags/jo.png0000644000076400007640000000161111120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|b@Հ(aA />X j/  T@ , Rb%H!0022d tF@7?0@} t׀ Sbfot&Н@_Ȃt4A.]bXa@aXen $s6{bb`MOg`f ,a`ggg &tIf11ի׮[m`)(`xqR@a0 -`h3TW3l @aX[/ LT7.NP΢b&-=?$pp_ ĂM 6c. ?-~20kf`h׃r۟=|@, s 20t0XI ?>` l𙕑arw~ ?-`c@)L 3^/O>枣ӆ-p+Xg`@>?.13%&c 5?rIENDB`awffull-3.10.2/flags/td.png0000644000076400007640000000103311120610145012363 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC_~2R/ 2&4ǃ V@,n<?ן3Z;K@0-?0l߿ _Οg# @}w_>}%p0h0LKX/?1- mgda D 0``HL@s@L tDK.], X@t hj ,w Ha?$#@@s:ʰ h9A4@\ ~4+õko6b-~= @ X?ׇi_&?2<}b>e@+ZQG~##kIENDB`awffull-3.10.2/flags/tn.png0000644000076400007640000000127211120610145012402 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<LIDATxb|rC6_?10@= @,L7 s9u-ym?Ƿ0{P>!001#~K.~pb 얀 @i^VvN@/? ? FFY %]`h )õ3 ˧s l &qAN CL!+д[Eڗ20}b" cS f30h#ճ  eI3Ăג@lph30:~|f`AIj  >3 lla`%| ,y q  >~ݫ!>E#0Ĥ쳐'% ޚ  w=CW.`J'B0炂d`L* ^ XB'n ` ?0#fA>tg:?2$ @,\f3u`G͢  ,IJ緻1y&hG{IENDB`awffull-3.10.2/flags/ke.png0000644000076400007640000000162011120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<"IDATxb2eCO>1ZdփV^ XΟ?/_ϟS @>~@ vvv444gaa'B`N= b?wewc0g(Se`dx%N=ȡ@KVW? 1 gx7q&Ï7X _?3c9(AzX_:bQ0f/qF<;33C fpz+ot 5 ߿gx!@܏Pc+ǟX#AW>Y{13``#-r)Û?e ~bxÿX?+&9W f{O8xN g8r ^a'@p03p1q20qmG$y%F^cXu##,Է_ _-j /_@:t|xX-&u 0x"p~ W^z럿W13+`c;xIENDB`awffull-3.10.2/flags/dk.png0000644000076400007640000000141411120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:}C?103:IR ߗ.d``b Ïu?9% ~AK>fuY/ß @,+1 h; pO~3aKg?å h0,adcf`T ?a;@&oF~@eϟȁ T ČPC0@j(2c`D 1Hf:_0 "  %ґ &&p0".1ٰ#@0@]J03C0,h(gZL< @@,+Kl0 (N&La`cs" #778ȅw ?c _GO2{ݻ2 os$E?{c]2;4! #( @K |tp}MD2(Θ@ʈ(ͨ  Zhhbs2OnCˋ  |{10ݸz T? @l _X-7ÿw!+q}0&+IENDB`awffull-3.10.2/flags/la.png0000644000076400007640000000137411120610145012360 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:}C?10@-h߇~[ X^8//ϩj L3l{ X>?|W <``F_&&Fv&F ̀]\Lޡ O_}a'3ARM {h ~{ 򞃏/v\lX-|!AGAA'Pl7 K/2 %c@,20˿?X-Y-01Z,~" ~3;Œ20@LxS,5[ u$9q?d ljUANx- 0?>#cx8FHs%A+ǯ125 XML $z&5'1q0i?P_@9 Xnb a\l gx;$/ Ca~~SI)E2|@A 6&)o Ǿ|@,װ%(Q$7Љ? @F޷Īgd`YIENDB`awffull-3.10.2/flags/tk.png0000644000076400007640000000142211120610145012374 00000000000000PNG  IHDRtEXtSoftwareAdobe ImageReadyqe<IDATxڌSMHTQ>jDiHYYHd E(!q%X$V6)*H#hmJ\T#-ltFM1'ƙiy~{HL:wEozE¡_S(syA "u'I s\T<~5U~fhĺǠ)rE|kjхoϓSf%K<g?O_VpҊ,.i*TeYQCD8"pN7K䔘C7[R.J(e&pEϠ,E} !u Q”Kn 1HFHmSh22S9ȣۃMy&Q?`ɔLtz_kf}5ޠYq(3iҶ9-QT@"wچv4A|Jk3ӛXL g"H1ێ@Lj#J$ Oѱʼn0j k)0?7EUu.ƺ*wu5sYb"]ov/+\Gy_IqXWz7&BMGXܐ;>r@~J02la+Nˢt~yV\]wrؠ jk)uM&=wIoHvFK0%@F&IENDB`awffull-3.10.2/flags/cd.png0000644000076400007640000000157411120610145012354 00000000000000PNG  IHDRgAMAOX2tEXtSoftwareAdobe ImageReadyqe<IDATxڌYLQN;TBD1HL *q ƒV D}Q>`DDq q @XMU#"2ek;]fwJq;KÔLtnҪn4g>1!u vWy.#KM')G*ϲqdBhRy2[!rl@Yۛ F#-]+N<~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/ve.png0000644000076400007640000000121311120610145012366 00000000000000PNG  IHDRfdgAMAOX2tEXtSoftwareAdobe ImageReadyqe<IDATxڴSMkQ=oBjmҘЂ TŪ؅܊Eᦊ+ !6M$LfޗMC5P0sL^(wmeZh;  Ǜzk' kxP @8 leyӫ`ml`%@_B*.*VF`jԄ1r[O< ~oH6E df@}?{;!dLJPQ J`j!x@Oc4=.D/18N$nWJG " +Kد\FDHN 8ֱ1Աb`~xo 419X [eNq.c4ì/=uRq );CO1@pVמuf92XB3=eH`s| ػg/q+-El^ +C/5 tz ?="EmW FFIrhG@,*JٺA iDO:;E )_ F)IENDB`awffull-3.10.2/flags/sv.woa.png0000644000076400007640000000072411120610145013177 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<fIDATxbC_1g" @,Wnw߀Գ߿ oax @{ϛ>DUKg)O?~T /?@fc ~6%B P @1~O]_0}p~ nVZ%ܜ @@t Xx LY~C\o`x@4L?7O?R=u; JϠLԴn8&*TFF ߲|x o @yx폗V#@šVIENDB`awffull-3.10.2/flags/ee.png0000644000076400007640000000071011120610145012346 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<ZIDATxb\tC/~3g?Óy X W~%g_a|`xq0 @a_2S=NobۇSy.]bذaGbI,e`ggg =jZ2d.@,aqש' e]p|fAЇ6Z𛉃Ab7kSw ?d؜+YQ<@ ŀ&-d0g X@3egʠsY,-0F?`fa + #0m1(kh1hi1? XL1g0Rf`()b`P6"):D2c`S aWCQ@L'2~{2x-p. n'>/Ov1)I0j2{zAFS(0S_J ۟a`[73Y1i3p"[Kpb}a={GVS/32X@_x+83edx p$â; kwe7ß_cb $ ]/Lظgfxõk~ f _(&/ E ,\Y\Ud=X >+7L-!Q,R@a y(AaW2^}`5akk-C+i?`TցC yy۾|@}Ajh7U !//`r+@UK | Bx>P6;IENDB`awffull-3.10.2/flags/yu.png0000644000076400007640000000073211120610146012417 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<lIDATxb\C_~2Zd'l Xn^}!?PՒ3fx< @<>z ~=@,cϟ%cG B8%;Ï, ৮/K֯_ X8h@pfcga &:%DKE _00|xɦԊY=g @9 wbz2@0pC? _j.P[~c W:0P3,y G߮4BJIENDB`awffull-3.10.2/flags/sr.png0000644000076400007640000000113011120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zoC/00@-~{ưΏrUq,A-_k3<9 X~}w =J%~<ޏ?xӭ'5n_ɰoĢ8_޽'.N@nabFB>9Íw9 ^`s.z.g &f&g3bbIeaï(&@fg`paf`bf+fa`a$:-і >g? E ?hpx<&4P 2 Xb w.Gte /%h T'.^dz5@Hgx-ӯO^}@,gޝey=ïǿXt? ?_` 7G^tӟ?2|0BIENDB`awffull-3.10.2/flags/gb.png0000644000076400007640000000272711120610145012357 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<iIDATxbsbCyn]{WFF&& cW`~q> nf`Z As e1 39 þ%  3V  3 @Je(.E1:@#aX+8$ž$L B*A"*'07/o1ypJNo Q Z 7dX27pv _oD3se0d`0 `ͩɰ}Mv1#`l$&x /!]V!ljsx{2Q@,||SHp+е?@$_@3Y:-eɉ ߾cx8?8,m.cx}!w$I= |A֐?1ϰ2ígXf`fw3ݫ/7'8 ,dԹ3|6ce/1D1++#Íf8 ~'Cн 3.+#÷^@,((`d($á 1,:;7×w_l} PRP}xaִ {v 18x0x%Z1_g'Q{xdb ]YU F3X7>_|of`ɯ l3|F_ Oex%ÿ^ѝ KT$ Oey! @1~{|3;?``bM5A\A0߻EQ`q  ~ Y} IENDB`awffull-3.10.2/flags/eu.png0000644000076400007640000000171211120610145012371 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<\IDATxb}: XnO{0f Ћrv08p"ICX^0{b̙7{aXCz0 bc8{Q[vڦ]-(UY?XD Ą-,g&i' =f`_`caaY sDE>e7Uhп *0~m< wH2|v56@ح/`'088?ë7 s{0p|3#"@aHf] AaXܜO1TĂ-W><Pr?W^``b KהA\=4aK |_80 Jb l 0ف % \ J &atbEʌ Lą?0| ({  Vp2 ,POE~F Ȭ@GbeD4_`D>|`(M`o~(/ r2/J)_> ;ϷçObs?f`a.Ko1|̉5!>y *V>0e?pLANQ(x(0bapajIENDB`awffull-3.10.2/flags/sc.png0000644000076400007640000000214011120610145012361 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbrCO_3π 11>c?#cf/30} W 7 ` T X?3dg`@, û b߿ ϟg# @~ϫw=}?$W21p˰+s Sh]73݉l _ڇf-@,]4PĆ nM4 ae`tN-ï_XC@J ###f`0mt&F`sZ103E0፛~2 02Ժ^fNفTNAގA(#A5Ȁ~2xƋ O޿`wɳg^^@,21(K?c(9pk멿XbRd)*guvfRр7O0s w|GĵLPWl/3 ++"Ua6O@ؘ7~cZ'3Ъ@K|z?"1}13cTexF? ?33I10faXw90 P߿@@1gdzh?[+`)?A^Nfke70vEQnAZFP@@ M, ?3+K2\y b| L\ B‚ ?}a+'+'Õǟؘ70vbE (L٘]LL ߾`cce`0F3|<]D_ /?`0ec: hΏ @8 @ ()23a`ed=gĹ~# l,7o e7+pb7 @AWEJa * R |l b`ffePq2Y/ b1:(Y.?p#-{/Aƿfb`Pax'049p_p͈`MO>b7$7cwU/$/v`a 6 @63(nfk6 ""`B Ҭ\ d  Z,[@,Brp6^f10wqAS?0?z_pX)8h5r;0UP_P\Pf R@՟o~@,oz?~}f@Ԇa`TIENDB`awffull-3.10.2/flags/ni.woa.png0000644000076400007640000000072711120610145013160 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<iIDATxb\C/0@5ΰr's,A-k>1~ X_ |cZF5K @,g_ :@q- JuKga@_SPp}p| .vfZ% X b @| i' A) Xcx'8wR=uCb ,N>}o[_1 E ̌fͧY>xc㿼W,ơ_GZ%p0BrIENDB`awffull-3.10.2/flags/ne.png0000644000076400007640000000117611120610145012366 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxboC߿00@-y̶Ua}x%2yta,?>(񏁊0\}қ_o~1,A-(?bac`Z#HFfFVv/R߿30c ̩}G_N1+0h'@^n=@0s 18OAx)n'-@LĆW~}g?D% \ l߾1p1hm @rϿ? ?$OR88դ>\'>bx@1FG_?<#8 L/ey~2|9#@|o_ }3  @%1Q1300g@x s> H`yYՑWo刺 4 &i0|IENDB`awffull-3.10.2/flags/fo.png0000644000076400007640000000144611120610145012370 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbCa À>z] ,ݕaPSc4` [@̍.cG^1|ive9K5k .ɏ0>U g1H8 ɂ/2;w p)~߿`?mib?P`ced#>?@e\`x'Ó'?.ebbd/ß`6..V; kW>ZF3|vG ÷?>y9880e1gdԺp?202cG_3w XU00g`yf`@~pi Y}b=@,ÇGB(>aC6 (2\{7>y%Ͽ嘄-[_ qoaxvC#6? Sn2\aPe:c[ 2O>09<$ CACE"Iyիo2@ 20MED߿ 3>l͛7][w2{aۋ' ܬp2ƍbD[Ǐ3?\իWˮ2̹?o!! IJ=ϝIENDB`awffull-3.10.2/flags/na.png0000644000076400007640000000232311120610145012355 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<eIDATxb\C66o~2Œ bPu`-3ATJA[GA5'b`س#@ ߽0? @C^cő3߿ n20Z46nW/` \6.a` 4CZ7#2{`12 ء}%V ??3ggb7+( /?B @OË8on&nLpc@,fb 2|AKKSAzY e@-*a5#o[>zt=' L| ц nV30 U.X38 l lLX:@-X03$h@.'pAa7y{S&'0hbϯT Tgк9\t$ÇL>ke3Q̌ @ 3X1 =``L ɑZth2Jg8e-ŰIۇ7 L '  {y bAA#%Ppوaݷ5 n \ P J~}9uFPneZoŒ8%0b`# R\ *2<\50IR 3|矯 L@I150~0wp$(IENDB`awffull-3.10.2/flags/tj.png0000644000076400007640000000111711120610145012374 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:}C?10@-h߇~[ X~_Z]!> ? ~.p߿?, 01Q]QK o@ic%_H}wo_( E6V\ [lFK+F~ ;|/Ɠ^j@1R:ᗁ'I'% @L ,؈- '`fb``A\P(@ q [ş4he`3@P a?ػ\0'p.蛿 gP1'E b [KZOo` &(>f"8>!P͹<j*.,* Kaf0@5'.IENDB`awffull-3.10.2/flags/il.png0000644000076400007640000000115211120610145012362 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbC3Pϟk0*Zh/>8@,O7  ?ÿ߯ X}wb W 2 e #' F2D?0 1' _b|ūO4T &R =dx3C8|f8q "..6uU /?2H121 qe @eO`pݽ˗ aO߉ Xp) ~VM;8(KY칋3Ć2r"' ?a7, ++pcj;=y@^?s<@2#`[?_1r#@\g ~% s?@, "o;Çw  >6Vw+IENDB`awffull-3.10.2/flags/ae.png0000644000076400007640000000112711120610145012345 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:}C?10π 00`8 U4ɷ' ۞n@,/fߋb`xpLiڇk /` wn AF _dɿ~>?(!c@ u0jNf7W6ep۴#!tX'!ᲂ,ba`dħA6-?bU*I.]İzb!OXxH KXؘAK( (I`+#3b@x-NX3a $xP|ï &Vg3b2? (#22#05ES K@s,?}foY,IJ1y{xG5!wIENDB`awffull-3.10.2/flags/by.png0000644000076400007640000000121411120610145012367 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb|C߿{+.17(gի? Fߏq 撒gr÷G)_3 X~߇ `` od`% XXE`` ,ZBibϛsFjb?)ח l2@_% fI?FQbb`db7Ïg~{LuKrȖf``g`(R0@30~x +uL 18)}{풥 '2L^|exp@01pk30e O2R3c?@2;_@ O 1W1f` ?YnܹpUoT>>zgfJ ObYm+Vy=͋ ?a70U0R+0WBݎIENDB`awffull-3.10.2/flags/tw.png0000644000076400007640000000130411120610145012407 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<VIDATxb\C/~1l,L J9P𓙕uww~1gÏի?ջo7@ a ^.._2ן`ߘ9$]a0yz%29aǏ,ه?o?|gx_,½e~pC?00|fb0v} ? X*ї?o])/;EfP_1|?L53C Bibb91 >}a0c#΃ }agg`XéKO^`b`f"b$&y1gp>?l NaZ@,a0|} Ai@.II5$Z@,aON0ݻX$PIt?7h*K&R | @,ʝF ?/64wR z OXeo7 E[IENDB`awffull-3.10.2/flags/ci.png0000644000076400007640000000101211120610145012344 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbzdC?00π nhʀ a e`bdBmO} O 3+ K-fUd`cɗ?_N9Kp5_7G@;Z#> FЬ~2@}D0 ? @$pjFZbb X@t b @%DSK! XdBPnX?1Ag:1Q3#<  ?o~ ˮ_ \/3p|ۈӒ_0|b9f W^x럷b@,/00y#>aYIENDB`awffull-3.10.2/flags/mp.png0000644000076400007640000000201411120610145012370 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxbCOg @rlfg>G 1p? h(74Ï33x/P %@3f3| Xnd=Pf򟁗q7 ± ^30k+&F^4bI@BQZC kL ^nex[s 5?3hU1|°>W!t?` XxhCVo1e! K,eHa?՜au6@L /0,bXtJAM!C7<ü1bx1feEHՒ z0H1̾c+=@ec`kg,9Aik ?c~XA\LAH\ږ!} L%xE" LK@)3ݟu ~aHÚ exE g3=7 6Ka8sB!+D>ߟ . dCYe {Y0;-v oG1hde;#Íkw1hbm+_9X  TpC`o8+p+PC'd8aOSw AP3#o/_2\Fˈcz[@-&\%$Pӗb+@128}po%?ÏׄUA<`pI$/IENDB`awffull-3.10.2/flags/tc.png0000644000076400007640000000224411120610145012367 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<6IDATxb|w?o z: >003pSf [[Ê=|Ā ի| OJrKZ2 ߀p0-#@  WY7b8sF1Bdİ ?b: @'3gt^~л?CB8s},R wfg }?,11H@3l>0xßyd4?87qՙa; / 1f`dhϗ/ fؾGbyk5ë " ;!,7O^K0hЇzV _1f`ҽ 'CKs13; = Ĕ"pު >`8x6?0ޱGC l&p0rŠ%٤Eo`p iO~2KѲ .0ܾ Nϐ, W~] u3l(ǠSׇ@ùV3 bw>r0ܜ#`g7 G21˙?M) 7o` M!/A1 ƿ~eغ0 B}cesS5S`BvA#Ce9 60d_pa6, ga&y0E!?9ne8vQ,v?@βD fi0<{+3_ _S&ng *XkL \_?3|ѩL  h~2lܬ)ac(-2gr7 0GN*`b Lʌ ߿@WƸ30=g`@؏/23PIENDB`awffull-3.10.2/flags/re.png0000644000076400007640000000077411120610145012375 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\zC/?20π ~`.`(  #=ywrs?0(r-a >~`w8āLHe /^7 l7>{ǎ@Ȅ ~@,-"i Ȁ?P ,~B @1%DK.], X@4?HX k#+Df̌!b ~}ͧH$мt!ob3+ xFF_Gˋ+~yϟo0 5^p1=P`.ŝ {IENDB`awffull-3.10.2/flags/pt.png0000644000076400007640000000231011120610145012376 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<ZIDATxb\zsC/ 0c9 _f@,?DP P_?1X#@\Uܯ*AX ;A@p`-1y߳G @FR,p1۟ـCь@6e$/ }?2` bƔPA[b 82ue`)kAf_Vf@L`aff?_"ve`e 1|po~2ၹ$1L`o?#,nP##02rD3cdHdg`e8oE /1&q1pt@ 1_H|#G%@޿w 3}?U *wXiCZ&` A _@2 h1@$ yN?:1/3+^If70}2/3F%, ,0 Y_VĿ 5_ &  l>101`Leah (9#8f_ /  2d<`A @ӟXf 2yra&<@LPe`́af̈́ Wo`xO;P{)IiAl #4BRGL!|Bpy>aAO~2 ܊L <\@Ox?1 88EAc?3#8^ +8?H&6(*yACÏ 1r0(3 ʊ 2((Q/y ˭7Y?o 5 P8%/  1/>h4_@>F$@8_|j7I!$> QIENDB`awffull-3.10.2/flags/bd.png0000644000076400007640000000137111120610145012346 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb\twC/0Bta(FL%X|{°鶏rUq ?Y10p?7&̌ 30 >\cxq @<۟o}} ;'#͙ ~>3(> ]vμ y8~;O_w d+, CK3/\~1`vP s1(8g(Ah/%_A@~ ǡ/` ];㱯 >'2P;1[@J030(=MYO V?`#bb 0e``$R-@m ) 0,ao.e 8ʜa ǯ M9.)1c$ۖ70 0,a Ĝ@$8 X P1pPRӒ_ X~]r'3b '@c` ?wR I:IENDB`awffull-3.10.2/flags/vn.png0000644000076400007640000000115211120610146012402 00000000000000PNG  IHDRfdgAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb:eC>10@-h~^ X~?//ϩk߿ Οg# @}ϿW޻?Yt8U/10  [@&v{_ǀ5ȤP v# W$3808H@1T 2l( )6fŽ B X,' 2?g+4 ##G- yfAK~,񟁷h(Ph!01|[?x-"h 7/K0}Ap+t+#>#'| bd '& Q#῎cXӏdL L@MX?@&AFF/bçI LLCAR?ۚ_ !>o!A4@| gE00ϟn&· 4 3ܮEIENDB`awffull-3.10.2/ChangeLog0000644000076400007640000005321311120616240011735 00000000000000******************************************************* 13-Dec-2008 Steve McInerney awffull-3.10.2.tar.gz ------------------------------------------------------- Fixes: * Was losing the start day, and hence the avg day counts were incorrect * Incorrect dumping of Agents and SearchStrings. Was finishing early ******************************************************* 24-Nov-2008 Steve McInerney awffull-3.10.1.tar.gz ------------------------------------------------------- Changes: * Migrate to GPLv3+ * Some new flags ******************************************************* 19-Nov-2008 Steve McInerney awffull-3.9.1.tar.gz ------------------------------------------------------- Fixes: * Last day was being set invalidly, allowing for a nice smash * Was automatically setting the 'previous time' regardless of the validity of the previous time record. Created some interesting effects with poor data. ******************************************************* 09-Nov-2008 Steve McInerney awffull-3.9.1-beta3.tar.gz ------------------------------------------------------- Changes: * Change the default font to be "sans" vs "Helvetica" gets around an issue with bitmap fonts on Ubuntu 8.10 Hopefully relevant elsewhere? * Revisit gettextisation - modify as per: http://www.gnu.org/software/libc/manual/html_node/Using-gettextized-software.html NOW to override use: Eg. $ LC_ALL=de_DE-UTF-8 LANGUAGE=de_DE awffull.... LC_ALL may be skipped - it depends. Fixes: * Spell Check the ChangeLog :-) * Variable Initialises missing allowed creation of usage_000001.html files * Clean-up in graphs.h * Various font woes fixes - better catching of same * Remove an unnecessary check that would cause a crash at output * Clean-up the use of fday/f_day in the code ******************************************************* 27-Oct-2008 Steve McInerney awffull-3.9.1-beta2.tar.gz ------------------------------------------------------- Fixes: * Busted/Emptied translation files - replaced ******************************************************* 26-Oct-2008 Steve McInerney awffull-3.9.1-beta1.tar.gz ------------------------------------------------------- Changes: * Deprecate Bookmark Colour override * Convert Documentation to DocBook XML * Split out the sole man page to awffull.1 and awffull.conf.5 * Alter documentation to refer Bugs to Launchpad vs email me directly Fixes: * Incremental processing code oddness * Minor corrections to the awffull_history_regen.pl script * Fix a broken pointer assignment with user mappings * Heaps of Documentation updates, corrections and oversights ******************************************************* 30-Mar-2008 Steve McInerney awffull-3.9.1-alpha.tar.gz ------------------------------------------------------- Changes: * Add Segmenting --seg_country - Segment by Country --seg_referer - Segment by Referring Host * FS#4 - ./configure override to the "Generated By" footer --with-generated-by='some html text' * FS#19 - Add --with-pcre & --with-pcrelib to ./configure * FS#16 - Convert to SI Units for Volume * FS#14 - deactivate index_alias via "IgnoreIndexAlias" Fixes: * FS#13 - Translation woes with short/long dates * FS#20 - Fix for --with-gd & --with-gdlib to ./configure * Broken date/times, now added to bad count and ignored * Issue with localised libc strptime() revert to webalizer style date/time extraction * Invalid tables appearing in Squid reports (User Agents) (?) ******************************************************* 14-Nov-2007 Steve McInerney awffull-3.8.2.tar.gz ------------------------------------------------------- Fixes: * Updated Finish Translation * Couple of localisation fixes Both thanks to Jani Ollikainen * Fix for the Daily (hours) Graph Thanks to Anders * Fix for resized graphs not displaying Legends in non-TTF mode. ******************************************************* 07-Nov-2007 Steve McInerney awffull-3.8.1.tar.gz ------------------------------------------------------- Fixes: * -t was being ignored. Thanks to Benoit Dejean for the patch Minor modifications only to Benoit's patch ******************************************************* 01-Sep-2007 Steve McInerney awffull-3.8.1-beta3.tar.gz ------------------------------------------------------- Fixes: * Ignore's were being (very) incorrectly counted ******************************************************* 15-Aug-2007 Steve McInerney awffull-3.8.1-beta2.tar.gz ------------------------------------------------------- Changes: * Dump of all config settings now at Verbose 2. * Add a new grouping logic in the processing This can cause massive speed improvements if lots of groups are used. * Default pick-up of the config file in the current directory has been removed. If you *must* use this, use '-c ./awffull.conf' * Display the LANG/LC_ALL/LANGUAGE and setlocale() settings at -vv Assist with troubleshooting language issues * Clean-up the put_hnode code Possible template for the others? (FIXME!) * Switch to using the OpenBSD strlcpy function vs the one from linux-2.6.15.4/lib/string.c * Minor Documentation Updates Fixes: * All_Sites and All_URLs were always shown, regardless of config * Updated Swedish Translations thanks to Oden Eriksson * Remove unnecessary inclusion of config.h from tarball thanks to Benoit Dejean * 'static' functions which can be static'd thanks to Benoit Dejean for some of the patches/work and idea! * Clean-up internal use of the default config file * Remove 'Visits' from the hourly graph legend * Counting woes with Entry/Exit Pages; Visits; Sites thanks to Robert Leftwich for the testing * FTP Date/Time overflow * FTP Pattern match for hostnames, not just IP Addresses ******************************************************* 04-Jun-2007 Steve McInerney awffull-3.8.1-beta1.tar.gz ------------------------------------------------------- Changes: * Deprecate the Quiet and VeryQuiet options * Major internal changes to use of Global Variables Improve code readability * Add ratio Entry:Exit URL to display. ~ Popularity * Add "Single Access" to Entry Pages table. * Add "Stickiness" to Entry Pages table. * Draw Daily (by hour) graph similar to Monthly (by day) graph Actually same code - so is nice simplification. * Put "Sites" on the Daily (by hour) graph and table. * Put "Sites Per Day" on the Monthly Summary Report. * Functionise the percentage macros Fixes: * Missing '$' as a valid URL Character * Functionise large chunks of the main loop * Tidy up ChangeLog. :-) 2006-12-29 gettextize * m4/inttypes-h.m4: New file, from gettext-0.15. * m4/lock.m4: New file, from gettext-0.15. * m4/visibility.m4: New file, from gettext-0.15. * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.15. ******************************************************* 19-May-2007 Steve McInerney awffull-3.7.5.tar.gz ------------------------------------------------------- Fixes: * Fix up All Sites report Is sorted by #Pages, but no Page Count appears on the report Also clean-up spacing Changes: * Add translation for Brazilian Portuguese, thanks to Jose Carlos Medeiros * Move the history_regen.pl scripts to a new subdir 'contrib' * Add awffull_history_regen_german.pl, thanks to Andreas Schoenberg For migrating old webalizer (German) installs Issues: * Problem with Long vs Short form of Months. Eg 'May' See http://www.stedee.id.au/flyspray/task/13 ******************************************************* 07-May-2007 Steve McInerney awffull-3.7.4.tar.gz ------------------------------------------------------- Fixes: * Security: HTML tags were not being stripped from the All Search Engine Referral Reports * ./configure override for setting TrueType Fonts used on graphs: --with-font-default=FILE --with-font-label=FILE * Updated German Translation thanks to Andreas Schoenberg * sample.conf entry for MSIE7 Detection, again thanks to Andreas Schoenberg ******************************************************* 15-Apr-2007 Steve McInerney awffull-3.7.4-beta3.tar.gz ------------------------------------------------------- Fixes: * Complete the prior issue with Japanese fonts and TrueType in graphs * Some more bounds checking for Agent Mangling ******************************************************* 01-Apr-2007 Steve McInerney awffull-3.7.4-beta2.tar.gz ------------------------------------------------------- Fixes: * Some additional checking for TrueType capability Will fall back to original if not found Basic fonts are hardcoded - for now See src/graphs.h to change * Couple of man page fixes thanks to Jose Carlos Medeiros * Month & Country names wouldn't load without NLS capability * Add bounds checking for Agent Mangling Issues: * Japanese Fonts still fall off the edges of graphs Fix expected in beta3 ******************************************************* 11-Feb-2007 Steve McInerney awffull-3.7.4-beta1.tar.gz ------------------------------------------------------- Changes: * 1st attempt at using TrueType fonts on all graphs. Allows for graphs to display UTF-8 ok. This is arguably a fix, not change. Fixes: * Country name translations have been automated-done via kbabel. Left as 'fuzzy' for now. * Move some warnings that would always be shown to a higher verbosity level. * Hopefully all pie chart filling is now filling everywhere ******************************************************* 02-Feb-2007 Steve McInerney awffull-3.7.3.tar.gz ------------------------------------------------------- Fixes: * Remove practically all country translations. Several were discovered to be incorrect. Assume worst, and remove all. * The Malay translation has been completely removed. Cannot find it's source so can't vouch for it's accuracy. ******************************************************* 19-Jan-2007 Steve McInerney awffull-3.7.2.tar.gz ------------------------------------------------------- Fixes: * Remove several segfaults and potential overflows Mainly with Internationalisation Oden Eriksson's patch principally One backport from 3.8.1 (not yet released) * Fix woes with actually using i18n * Update translations for uk.op, fi.po and sv.po Serhiy Dubyk, Jani Ollikainen and Oden Eriksson * Fix cosmetic fix with the "CSS File Exists" message always being displayed ******************************************************* 11-Oct-2006 Steve McInerney awffull-3.7.1.tar.gz ------------------------------------------------------- No Significant Code Changes. Fixes: * Several Documentation updates and corrections. ******************************************************* 13-Sep-2006 Steve McInerney awffull-3.7.1-beta3.tar.gz ------------------------------------------------------- Fixes: * Fix Broken Country handling - missing null terminator ******************************************************* 12-Sep-2006 Steve McInerney awffull-3.7.1-beta2.tar.gz ------------------------------------------------------- Changes: * Hide silly warning generating the CSS file in a fresh & long run * Updates to the German translation Fixes: * Fix seg fault with country codes * Fix poor handling of Domino log detection * Fixes to autoconf - Correct compile options. ~ 13% speed improvement with max optimisation * Include buffer overflow patches from Debian * Minor fix for compilation woes on RH7 Linux * Fix GeoIP usage - was calling a deprecated function ******************************************************* 27-Aug-2006 Steve McInerney awffull-3.7.1-beta1.tar.gz ------------------------------------------------------- Changes: * Add flags to the country table display * Integrate maxmind.com GeoIP capability Fixes: * Fix issue with country counts being ignored under certain conditions * Update help output to reflect all log types ******************************************************* 16-Aug-2006 Steve McInerney awffull-3.6.1.tar.gz ------------------------------------------------------- No Changes. Purely a version number increment no longer a beta release. ******************************************************* 02-Aug-2006 Steve McInerney awffull-3.6.1-beta1.tar.gz ------------------------------------------------------- Changes: * Include GNU gettext, and remove old translation method Thanks to DEBIAN for previous work with webalizer! Most translation work therefore pre-done * Include John Heaton's patch for Volume on the hourly graph * Deprecate the Debug option * Various code and output text clean-ups * Update country codes: Correct as at 29-Apr-2005 from http://www.iana.org/cctld/cctld-whois.htm * Update TLD codes: Correct as at 21-Dec-2005 from http://www.iana.org/gtld/gtld.htm * Update configure/automake configuration ******************************************************* 24-Jun-2006 Steve McInerney awffull-3.5.1.tar.gz ------------------------------------------------------- Fixes: * Minor fix for Domino User ID detection ******************************************************* 17-Jun-2006 Steve McInerney awffull-3.5.1-beta2.tar.gz ------------------------------------------------------- Changes: * Include support for Lotus Domino v6 logs Fixes: * The userid field was misplaced * Fix for out of sequence records not handled correctly * Fix for "IgnoreURL *" type of config causing segfault & incorrectly matching all records * Minor corrections to sample.conf - mismatched with code and manpage ******************************************************* 09-Jun-2006 Steve McInerney awffull-3.5.1-beta1.tar.gz ------------------------------------------------------- Changes: * Auto detection of Log File type * Handle CLF and Combined logs * New option: TrackPartialRequests to track 206 requests * Improve handling of funky lines, will try a more complete RegEx if necessary Fixes: * Minor code tidy ups * MAX_404_RECORDS hard coded limit on the number of 404's to report * FTP Log analysis is working again * Squid Log analysis is working again * Additional filters for bookmark counting * Timing issues with newer systems ******************************************************* 02-Jun-2006 Steve McInerney awffull-3.4.3.tar.gz ------------------------------------------------------- Fixes: * Seg Faults with Error Reporting * Memory leak with Error Reporting ******************************************************* 30-May-2006 Steve McInerney awffull-3.4.2.tar.gz ------------------------------------------------------- Fixes: * Fix Error URL reporting - was missing multiple referrers * Increase length of reporting period from 5 years to 20 * Variable declaration order fixes to allow compiles on gcc2.96 for RH 7.2 * Fix hour graph - from 0 to 23, not 1 to 24 ******************************************************* 23-Mar-2006 Steve McInerney awffull-3.4.1.tar.gz ------------------------------------------------------- Fixes: * Pie Charts have a default Y axis that was too big * Minor output display corrections * CSS file exists warning cleaned up * A single run over multiple months only produces a single CSS File exists warning. ******************************************************* 15-Mar-2006 Steve McInerney awffull-3.4.1-beta2.tar.gz ------------------------------------------------------- Fixes: * Fix up bug from 3.3.1 ignoring HTMLxxx elements * DNS.README was missing from the tarball. * Country Page Count not being reset between months in a single run. * Similar, Response Code header was not displaying beyond first month. ******************************************************* 09-Mar-2006 Steve McInerney awffull-3.4.1-beta1.tar.gz ------------------------------------------------------- Changes: * Massive simplification to HTML generation. * Initial steps to CSS integration. * Add "CSSFilename" option to set the name of the CSS File to use. * Add "AssignToCountry" to the config, to force addresses to a given country. * Add GroupAndHideXXXX options to combine Individual Group and Hide options. * Add "--match_counts" cmd line option to help with config file optimisation. * Add "DumpCountries" option to dump the country data. * Add "DumpEntryPages" option to dump the entry page data. * Add "DumpExitPages" option to dump the exit page data. * Add "YearlySubtotals" option to show subtotals for each year on the main index page. Fixes: * sample.conf clean-up/additions. * Remove the "Hits" columns from Entry/Exit pages - very confusing and misleading! * Long names in pie charts were interfering with slice fill. * Add exceptions to the generation of Bookmark numbers - Opera was incorrectly being included. * Country percentages are now calculated by Page Views, not Hits. * Fix 404 Error counts - history was ignored from run to run ******************************************************* 07-Feb-2006 Steve McInerney awffull-3.3.1.tar.gz ------------------------------------------------------- No Changes. Purely a version number increment. ******************************************************* 31-Jan-2006 Steve McInerney awffull-3.3.1-beta2.tar.gz ------------------------------------------------------- Fixes: * Failure to read in old awffull.current files ******************************************************* 27-Jan-2006 Steve McInerney awffull-3.3.1-beta1.tar.gz ------------------------------------------------------- Changes: * Change the version numbering method. 3.3.1 == 3.03-01 * Split out the command line options from main(). * Consolidate options, add a few long options. * Tidy up the PCRE errors handling/display. * '-v' is now for verboseness, not version information * Implement Boyer-Moore-Horspool for pattern matching (vs strstr). Approx. 50% faster overall from 3.02, depending on the GroupXXX complexity! * Add some ability for user specified colours. * Add "NotPageType" option - inverse of PageType. * Add 404 URL and Referral tracking options. * Add a Performance Tips document. * Group & Hide options can be quoted to include spaces in the pattern match. Double Quotes only. * Minor update to the hashing algorithm. Very marginal improvement. Fixes: * Man page clean-up & updates * 'current' header entry change from 'Webalizer' to 'AWFFull' * Simplifications in the linklist management/coding * Fix for older gcc compilers (v2.96 was the target) ******************************************************* 13-Jan-2006 Steve McInerney awffull-3.02.tar.gz ------------------------------------------------------- Fixes: * RegEx not properly escaped for bookmark checks * Handle "null" log entries (408 errors) in the main pcre ******************************************************* 11-Jan-2006 Steve McInerney awffull-3.02-beta2.tar.gz ------------------------------------------------------- Fixes: * Fix up time conversion woes - problems with Daylight Savings Time * Minor fix to main PCRE to handle null agents ******************************************************* 12-Dec-2005 Steve McInerney awffull-3.02-beta1.tar.gz ------------------------------------------------------- Changes: * Convert all volume calculations to use unsigned long long vs double * Remove all DNS capability - simplify to log analysis only * PCRE the log lines parser - code simplification * Replace manual date/time conversion with strptime - code simplification * Some performance enhancements around date/time calculations * Add bookmark tracking. This an ESTIMATE! * PCRE the "is a page" facility * Minor performance enhancements around page tracking (linklist) Fixes: * -Z option was very broken. ******************************************************* 27-Oct-2005 Steve McInerney awffull-3.01.tar.gz ------------------------------------------------------- Changes: * Referrals and Agents now count via Pages, not Hits * Cosmetic alterations to highlight this change * Add "% of Hits" to Hourly, and Daily lists for Page counts * User Agents pie chart Fixes: * Remove lots of warnings ******************************************************* 18-Sep-2005 Steve McInerney awffull-3.00.tar.gz ------------------------------------------------------- Changes: from webalizer-2.01 * Add front page history > 12 months * Modify front page graph - separate out pages * All graphs are config file resizable * Add Stanislaw Pusep's Volume/Size fixes * Smarter horizontal grid lines - Algorithm from RRDTool * Add more Y Axis value indicators * % breakdown for "Hits by Response Code" * Add "pages" to Top Sites tables * Add pie charts to most of the Top XYZ tables * Include more Search Engines and Browser types from http://griho.udl.es/webalizer * Include "awffull_history_regen.pl" to assist with migration from v2.01 * Man page updates * Update configure and uniform options * Split out src and doc sub-directories - de-clutter * Various documentation clean-up and simplification Fixes: * Correct graph TR and BL corners * Include various Redhat/Fedora Patches * Minor man page fixes * configure fixes for dependencies ******************************************************* ***** END OF FILE ******************************************************* awffull-3.10.2/contrib/0000777000076400007640000000000011120617025011705 500000000000000awffull-3.10.2/contrib/Makefile.am0000644000076400007640000000025511120610145013653 00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in EXTRA_DIST = awffull_history_regen.pl awffull_history_regen_german.pl ACLOCAL_AMFLAGS = -I m4 awffull-3.10.2/contrib/Makefile.in0000644000076400007640000002110711120611703013664 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = contrib DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETCDIR = @ETCDIR@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ OPTS = @OPTS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = awffull_history_regen.pl awffull_history_regen_german.pl ACLOCAL_AMFLAGS = -I m4 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign contrib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # 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: awffull-3.10.2/contrib/awffull_history_regen_german.pl0000644000076400007640000003207711120610145020115 00000000000000#!/usr/bin/perl #**************************************************************************** #**************************************************************************** # # AWFFull - A Webalizer Fork, Full o' features # # awffull_history_regen_german.pl # Pre-processing an old webalizer install prior to an upgrade # to AWFFull. # # Copyright (C) 2005, 2008 by Stephen McInerney (spm@stedee.id.au) # Copyright (C) 2007 by Andreas Schoenberg (asg@ftpproxy.org) # # This file is part of AWFFull. # # AWFFull 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. # # AWFFull 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 AWFFull. If not, see . # #**************************************************************************** #**************************************************************************** # # awffull_history_regen_german.pl # # DESCRIPTION # -------------- # Given a directory, this script will parse all old weblizer html (per month) # files and spit out a complete history file (via STDOUT). # This new history file will contain all years/months from all the # webalizer html files. # # Designed for pre-processing an old webalizer install prior to an # upgrade to AWFFull. # #**************************************************************************** #**************************************************************************** # Modification History # 11-Sep-2005 steve Initial Creation # 17-Sep-2005 steve major tidy and functionalise # 10-May-2007 asg Patched to work with german version of webalizer #**************************************************************************** #**************************************************************************** # ### *** Sample text to parse for # # Monats-Statistik für July 2005 # # Summe Anfragen # 12217843 # Summe Dateien # 5384438 # Summe Seiten # 1031846 # Summe Besuche # 226836 # Summe kb # 39965939 # # Summe unterschiedlicher Rechner (IP-Adressen) # 120135 # Summe unterschiedlicher URLs #**************************************************************************** use strict; # die on all bad programming use Getopt::Long 2.33; # Command Line Option Processing use Pod::Usage; # For inline documentation ########################### ## Global Variables ########################### my $DATE = '/bin/date'; # Location of the GNU Date Command - default my $exit_status = 0; # Script Return. 0 = success! ## Options my $opt_UsageDir = "."; # Directory to look for webalizer usage files my $opt_DateCommand = $DATE; # Location of the GNU Date Command ########################### ########################### ## MAIN ########################### ########################### ProcessCommandLine(); $exit_status = RegenerateHistory(); if ($exit_status == 2) { printf(STDERR "Failed to find any Webalizer usage_YYYYMM.html files.\n"); } exit($exit_status); ########################################################################## ########################################################################## #### END OF MAIN ########################################################################## ########################################################################## #### SUBROUTINES ########################################################################## ########################################################################## ## ProcessCommandLine ## Parse the Commandline Arguments ########################################################################## sub ProcessCommandLine { my $result; # result from Calling GetOptions my $opt_Help; # Local options my $opt_Man; # use for man page, or help screen Getopt::Long::Configure("gnu_getopt"); # Configure to use GNU style Options $result = GetOptions("dir|d:s" => \$opt_UsageDir, "help|\?" => \$opt_Help, "man" => \$opt_Man, "date:s" => \$opt_DateCommand, ) || pod2usage(-verbose => 0); if ($opt_Help) { pod2usage(-verbose => 1); } if ($opt_Man) { pod2usage(-verbose => 2); } if (!-x $opt_DateCommand) { printf("Invalid Date command: %s\n", $opt_DateCommand); exit(1); } } ## end sub ProcessCommandLine ########################################################################## ########################################################################## ## RegenerateHistory ## Do the hard work - process the data, generate the output ########################################################################## sub RegenerateHistory { my $usagefile; # The current file we're processing # Up to Flags my $in_MonthlyStats = 0; # We are currently in the right place for monthly stats in the page my $in_HitsStats = 0; # Now in Hits Stats my $in_FilesStats = 0; # Now in File Stats my $in_PageStats = 0; # Now in Page Stats my $in_VisitStats = 0; # Now in Visit Stats my $in_KByteStats = 0; # Now in KByte Stats my $in_SiteStats = 0; # Now in Site Stats my @line = (); # The current input line my %History; # The hash holding all the ripped data my $cur_month = ""; # The current month my $cur_year = 0; # The current year my $nofiles = 2; # Return the value 2 if no files are found ### Month stuff my @MoY = qw(Januar Februar Maerz April Mai Juni Juli August September Oktober November Dezember); my %MoY; @MoY{@MoY} = (0 .. 11); my @DinM = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); opendir(DIR, $opt_UsageDir) or die "Cannot open directory $opt_UsageDir"; while ($usagefile = readdir DIR) { if ($usagefile =~ /^usage_[0-9]{6}\.html$/) { open(FILE, "<$opt_UsageDir/$usagefile") or die "Cannot open file $usagefile"; FILELINE: while () { if (/>Monats-Statistik für /) { $in_MonthlyStats = 1; @line = split /( |<)/; $cur_month = $line[14]; $cur_year = $line[16]; $nofiles = 0; } ## end if (/>Monats-Statistik für /) next FILELINE if (!$in_MonthlyStats); if ($in_MonthlyStats) { # Exit this file, end of useful info last FILELINE if (/>Summe unterschiedlicher URLs)/; $History{$cur_year}{@MoY{$cur_month} + 1}{HITS} = $line[12]; $in_HitsStats = 0; } # FILES - set value elsif ($in_FilesStats) { @line = split /(<|>)/; $History{$cur_year}{@MoY{$cur_month} + 1}{FILES} = $line[12]; $in_FilesStats = 0; } # PAGES - set value elsif ($in_PageStats) { @line = split /(<|>)/; $History{$cur_year}{@MoY{$cur_month} + 1}{PAGES} = $line[12]; $in_PageStats = 0; } # VISITS - set value elsif ($in_VisitStats) { @line = split /(<|>)/; $History{$cur_year}{@MoY{$cur_month} + 1}{VISITS} = $line[12]; $in_VisitStats = 0; } # KBYTES - set value elsif ($in_KByteStats) { @line = split /(<|>)/; $History{$cur_year}{@MoY{$cur_month} + 1}{KBYTES} = $line[12]; $in_KByteStats = 0; } # SITES - set value elsif ($in_SiteStats) { @line = split /(<|>)/; $History{$cur_year}{@MoY{$cur_month} + 1}{SITES} = $line[12]; $in_SiteStats = 0; } # Else, all the checks for a next section elsif (/>Summe AnfragenSumme DateienSumme SeitenSumme BesucheSumme kbSumme unterschiedlicher Rechner/) { $in_SiteStats = 1; } } ## if ($in_MonthlyStats) { } ## while () { close(FILE); } ## if ($usagefile =~ /^usage_[0-9]{6}\.html$/) { } ## while (DIR) { closedir(DIR); my $key_year; my $key_month; foreach $key_year (sort (keys %History)) { foreach $key_month (sort numerically (keys %{$History{$key_year}})) { my $DaysInMonth = $DinM[$key_month - 1]; if ($key_month == 2) { my $testmonth = `$opt_DateCommand "+%m" --date="29 feb $key_year"`; if ($testmonth == 2) { $DaysInMonth = 29; } } ## end if ($key_month == 2) printf("%d %d %d %d %d %d 1 %d %d %d\n", $key_month, $key_year, $History{$key_year}{$key_month}{HITS}, $History{$key_year}{$key_month}{FILES}, $History{$key_year}{$key_month}{SITES}, $History{$key_year}{$key_month}{KBYTES}, $DaysInMonth, $History{$key_year}{$key_month}{PAGES}, $History{$key_year}{$key_month}{VISITS} ); } ## foreach $key_month } ## foreach $key_year return ($nofiles); } ## end sub RegenerateHistory ########################################################################## ########################################################################## ## numerically ## Do a numerical sort ########################################################################## sub numerically { $a <=> $b } ########################################################################## ########################################################################## ########################################################################## __END__ =pod =head1 NAME awffull_history_regen.pl - Generate a history file from old Webalizer usage files =head1 SYNOPSIS awffull_history_regen.pl [options] NB! Must have the GNU Date command! =head1 OPTIONS =over 8 =item B<--help> Print a brief help message and exit. =item B<--man> Print the manual page and exit. =item B<--dir directory> The directory to use, looking for old webalizer usage_YYYYMM.html files. If not present will use the current directory. =item B<--date gnu-date-location> This program requires the GNU date command, use this option, if it's in a non-standard place. =head1 DESCRIPTION Generate a history file from old Webalizer usage files. The resulting history file is sent only to STDOUT. =cut awffull-3.10.2/contrib/awffull_history_regen.pl0000755000076400007640000003163311120610145016564 00000000000000#!/usr/bin/perl #**************************************************************************** #**************************************************************************** # # AWFFull - A Webalizer Fork, Full o' features # # awffull_history_regen.pl # Pre-processing an old webalizer install prior to an upgrade # to AWFFull. # # Copyright (C) 2005, 2008 by Stephen McInerney # (spm@stedee.id.au) # # This file is part of AWFFull. # # AWFFull 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. # # AWFFull 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 AWFFull. If not, see . # #**************************************************************************** #**************************************************************************** # # awffull_history_regen.pl # # DESCRIPTION # -------------- # Given a directory, this script will parse all old weblizer html (per month) # files and spit out a complete history file (via STDOUT). # This new history file will contain all years/months from all the # webalizer html files. # # Designed for pre-processing an old webalizer install prior to an # upgrade to AWFFull. # #**************************************************************************** #**************************************************************************** # Modification History # 11-Sep-2005 steve Initial Creation # 17-Sep-2005 steve major tidy and functionalise #**************************************************************************** #**************************************************************************** # ### *** Sample text to parse for # # Monthly Statistics for July 2005 # # Total Hits # 12217843 # Total Files # 5384438 # Total Pages # 1031846 # Total Visits # 226836 # Total KBytes # 39965939 # # Total Unique Sites # 120135 # Total Unique URLs #**************************************************************************** use strict; # die on all bad programming use Getopt::Long 2.33; # Command Line Option Processing use Pod::Usage; # For inline documentation ########################### ## Global Variables ########################### my $DATE = '/bin/date'; # Location of the GNU Date Command - default my $exit_status = 0; # Script Return. 0 = success! ## Options my $opt_UsageDir = "."; # Directory to look for webalizer usage files my $opt_DateCommand = $DATE; # Location of the GNU Date Command ########################### ########################### ## MAIN ########################### ########################### ProcessCommandLine(); $exit_status = RegenerateHistory(); if ($exit_status == 2) { printf(STDERR "Failed to find any Webalizer usage_YYYYMM.html files.\n"); } exit($exit_status); ########################################################################## ########################################################################## #### END OF MAIN ########################################################################## ########################################################################## #### SUBROUTINES ########################################################################## ########################################################################## ## ProcessCommandLine ## Parse the Commandline Arguments ########################################################################## sub ProcessCommandLine { my $result; # result from Calling GetOptions my $opt_Help; # Local options my $opt_Man; # use for man page, or help screen Getopt::Long::Configure("gnu_getopt"); # Configure to use GNU style Options $result = GetOptions("dir|d:s" => \$opt_UsageDir, "help|\?" => \$opt_Help, "man" => \$opt_Man, "date:s" => \$opt_DateCommand, ) || pod2usage(-verbose => 0); if ($opt_Help) { pod2usage(-verbose => 1); } if ($opt_Man) { pod2usage(-verbose => 2); } if (!-x $opt_DateCommand) { printf("Invalid Date command: %s\n", $opt_DateCommand); exit(1); } } ## end sub ProcessCommandLine ########################################################################## ########################################################################## ## RegenerateHistory ## Do the hard work - process the data, generate the output ########################################################################## sub RegenerateHistory { my $usagefile; # The current file we're processing # Up to Flags my $in_MonthlyStats = 0; # We are currently in the right place for monthly stats in the page my $in_HitsStats = 0; # Now in Hits Stats my $in_FilesStats = 0; # Now in File Stats my $in_PageStats = 0; # Now in Page Stats my $in_VisitStats = 0; # Now in Visit Stats my $in_KByteStats = 0; # Now in KByte Stats my $in_SiteStats = 0; # Now in Site Stats my @line = (); # The current input line my %History; # The hash holding all the ripped data my $cur_month = ""; # The current month my $cur_year = 0; # The current year my $nofiles = 2; # Return the value 2 if no files are found ### Month stuff my @DinM = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); opendir(DIR, $opt_UsageDir) or die "Cannot open directory $opt_UsageDir"; while ($usagefile = readdir DIR) { if ($usagefile =~ /^usage_[0-9]{6}\.html$/) { open(FILE, "<$opt_UsageDir/$usagefile") or die "Cannot open file $usagefile"; ($cur_year, $cur_month) = $usagefile =~ /^usage_(....)(..)\.html$/; FILELINE: while () { if (/>(Monthly Statistics for|Monats-Statistik für|Maandoverzicht ) /) { $in_MonthlyStats = 1; $nofiles = 0; } ## end if (/>Monthly Statistics for /) next FILELINE if (!$in_MonthlyStats); if ($in_MonthlyStats) { # Exit this file, end of useful info last FILELINE if (/>(Total Unique URLs|Summe unterschiedlicher URLs|Totaal verschillende URL\'s))/; $History{$cur_year}{$cur_month}{HITS} = $line[12]; $in_HitsStats = 0; } # FILES - set value elsif ($in_FilesStats) { @line = split /(<|>)/; $History{$cur_year}{$cur_month}{FILES} = $line[12]; $in_FilesStats = 0; } # PAGES - set value elsif ($in_PageStats) { @line = split /(<|>)/; $History{$cur_year}{$cur_month}{PAGES} = $line[12]; $in_PageStats = 0; } # VISITS - set value elsif ($in_VisitStats) { @line = split /(<|>)/; $History{$cur_year}{$cur_month}{VISITS} = $line[12]; $in_VisitStats = 0; } # KBYTES - set value elsif ($in_KByteStats) { @line = split /(<|>)/; $History{$cur_year}{$cur_month}{KBYTES} = $line[12]; $in_KByteStats = 0; } # SITES - set value elsif ($in_SiteStats) { @line = split /(<|>)/; $History{$cur_year}{$cur_month}{SITES} = $line[12]; $in_SiteStats = 0; } # Else, all the checks for a next section elsif (/>(Total Hits|Summe Anfragen|Totaal hits)(Total Files|Summe Dateien|Totaal bestanden)(Total Pages|Summe Seiten|Totaal Pagina\'s)(Total Visits|Summe Besuche|Totaal Bezoeken)(Total KBytes|Summe kb|Total kB Files)(Total Unique Sites|Summe unterschiedlicher Rechner|Totaal verschillende hosts)) { close(FILE); } ## if ($usagefile =~ /^usage_[0-9]{6}\.html$/) { } ## while (DIR) { closedir(DIR); my $key_year; my $key_month; foreach $key_year (sort (keys %History)) { foreach $key_month (sort numerically (keys %{$History{$key_year}})) { my $DaysInMonth = $DinM[$key_month - 1]; if ($key_month == 2) { my $testmonth = `$opt_DateCommand "+%m" --date="29 feb $key_year" > /dev/null 2>&1`; if ($testmonth == 2) { $DaysInMonth = 29; } } ## end if ($key_month == 2) printf("%d %d %d %d %d %d 1 %d %d %d\n", $key_month, $key_year, $History{$key_year}{$key_month}{HITS}, $History{$key_year}{$key_month}{FILES}, $History{$key_year}{$key_month}{SITES}, $History{$key_year}{$key_month}{KBYTES}, $DaysInMonth, $History{$key_year}{$key_month}{PAGES}, $History{$key_year}{$key_month}{VISITS} ); } ## foreach $key_month } ## foreach $key_year return ($nofiles); } ## end sub RegenerateHistory ########################################################################## ########################################################################## ## numerically ## Do a numerical sort ########################################################################## sub numerically { $a <=> $b } ########################################################################## ########################################################################## ########################################################################## __END__ =pod =head1 NAME awffull_history_regen.pl - Generate a history file from old Webalizer usage files =head1 SYNOPSIS awffull_history_regen.pl [options] NB! Must have the GNU Date command! =head1 OPTIONS =over 8 =item B<--help> Print a brief help message and exit. =item B<--man> Print the manual page and exit. =item B<--dir directory> The directory to use, looking for old webalizer usage_YYYYMM.html files. If not present will use the current directory. =item B<--date gnu-date-location> This program requires the GNU date command, use this option, if it's in a non-standard place. =head1 DESCRIPTION Generate a history file from old Webalizer usage files. The resulting history file is sent only to STDOUT. =cut awffull-3.10.2/install-sh0000644000076400007640000001272111120610145012161 00000000000000#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 awffull-3.10.2/Makefile.am0000644000076400007640000000046711120610145012220 00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in SUBDIRS = src doc po flags contrib EXTRA_DIST = m4/ChangeLog bootstrap sample.conf sample.minimal.conf README.FIRST country-codes.txt TODO README.webalizer PERFORMANCE_TIPS.txt DNS.README sample.css ACLOCAL_AMFLAGS = -I m4 awffull-3.10.2/README0000644000076400007640000001664711120616217011061 00000000000000 Welcome to AWFFull! A Webalizer Fork, Full o' Features! Webalizer is a great weblog analysis program but hasn't been going anywhere in recent years. AWFFull takes that base and starts to fix the niggles and annoyances and hopefully become a useful enhancement. As a base, webalizer has a stated goal of producing web server analysis. AWFFull on the other hand, will gradually focus more on the business intelligence contained within those logs - and not specifically limited just to web server logs. I have an interest in whole of site statistics, and that is rarely contained solely in webserver log files. If you're keen to see where I would like to take awffull, check out the TODO file. Latest News 13-Dec-2008 ------------------------ This release announces v3.10.2 v3.10.2 fixes a couple of critical bugs. See the ChangeLog for details. v3.10.1 is principally an upgrade of the proect license from GPLv2+ to GPLv3+. Plus some new flags have been imported. See the ChangeLog for more info, but briefly and in English, v3.9.1 has the following notable changes: * The documentation has had a major rewrite and reorganisation. Is now split into two man pages: awffull.1 and awffull.conf.5 * The documentation source is now in DocBook XML * The big feature add has been Segmentation. At this stage, purely by Country and/or Referring Host * Various minor fixes * Revisited Internationalisation - now use LANGUAGE to override - typically * The default font used for the graphs has changed to "sans" from "Helvetica" With AWFFull v3.9.1, the project managing infrastructure has moved to Launchpad. Probably the most obvious change will be the (gradual) migration of bugs from the existing 'flyspray' system into Launchpad's bug tracker. Support, Questions, Bugs ------------------------ With AWFFull v3.9.1 some of the project management infrastructure has been migrated to Launchpad (launchpad.net). There are multiple reasons, and a brief discussion was held on the maillist in early August 2008: http://www.stedee.id.au/pipermail/awffull/2008-August/000760.html This is not to suggest that the existing maillist and it's various uses are being dismantled. From from it! Rather, processes like Bug Tracking; Questions/Answers; Translations; and Source Code Control are now all hosted via Launchpad. NB! TrueType Fonts and Graphs with no text ------------------------------------------ This is largely a configuration of system problem. Make sure you are linked against fontconfig and friends. Some distro's will link awffull against cut-down GD libraries, and hence fonts don't work. YMMV! See the INSTALL file for more details. So what additions does AWFFull provide vs Webalizer? ----------------------------------------------------------------------------- * GeoIP IP Address lookup capability for greater accuracy with Countries. * The front page history can now cover more than 12 months. An included tool (awffull_history_regen.pl) should assist with the initial changeover. * Subtotals for each year can be displayed if requested. * The Top Right and Bottom Left corners not joining correctly have bugged me for a long time. That's now fixed. * All graphs are now resizable, rather than being a fixed size. The sizes are controlled within the config file. * Borrowing the algorithm from RRDTool, the Y-Axis grid lines are now more intuitive and far easier to read. * Added a few more pie charts. * There's been a few minor fixes to the overall look, including Stanislaw Pusep's Geolizer fixes for generating Volume listings in other than raw KBytes. * Much of the pattern matching has been moved to using the Perl-Compatible Regular Expression Library (PCRE). This has enormously simplified the code base, as well as enhancing the ability to deal with additional log file formats in the future. * Likewise, the date-time conversions are now handled by standard library calls. Various performance optimisations have meant a near zero impact on overall speed. Again the code is significantly simplified. * In addition to these back end changes, AWFFull now estimates the number of bookmarkings made within a site. This is calculated based on the known actions of Microsoft's Internet Explorer browser, and hence is only a rough guide. * Pattern Matching improvements can results in speed increases of around 50%. YMMV. * A Performance Tips document has been added to the tarball: PERFORMANCE_TIPS.txt * 404 Errors and the Referring URL can be displayed (off by default). This also includes an all 404 errors option, to display a separate page of all these errors. * CSS Style sheets have been incorporated to ease the use of personalisation. * With CSS incorporation, have been able to reduce and clean-up the HTML output. WARNING!!!! ----------- With version 3.01 of Awffull, the method for counting Referrals and User Agents has significantly detoured from webalizer. Both are now counted via Pages and not via Hits. This gives, IMHO, a far more accurate representation of the breakdown between Agents and Referrals. With version 3.4.1 of AWFFull, this also includes Countries. Agents gets skewed by Spiders *only* accessing pages, vs regular browsers which access everything. Likewise, Referrals get skewed by search engine referrals via cached copies. What this means is that any analysis part way through a month will be VERY inaccurate. It is strongly recommended that for accurate representation the current month is re-analysed. For my own systems, I've reverted to the beginning of 2005 and re-analysed the lot. To assist with this change, a warning message will be displayed when any older versions of the current state file (webalizer.current, awffull.current) are used. Also the header colours for those tables has also changed as a visual clue. LICENSING ----------- As of v 3.10.1 AWFFull is release under the GPLv3+. However there are gotchas to be aware of: * The file: src/strlcpy.c is BSD license (via OpenBSD) * The contents of the 'flags' directory are released under a Creative Commons license. See flags/README for details. * AWFFull uses the GD Graphics library which has it's own requirements THANKS ----------- Some people have been most helpful with releasing AWFFull: * Benoît Dejean for a slew of patches, advice and ideas. * Robert Leftwich for much of the fiddly detail in cross verifying numbers generated. * Alexander Lazic who has provided a number of patches and ideas. * Patrick Ben Koetter for his assistance & patches with CSS, HTML simplification and ideas for XML'ing AWFFull output. * Benoit Rouits who provided the config colour selection patch. * John Heaton for various patches, bug reports and such. * Tobias Fonsmark for assistance with getting Domino support happening. * Serhiy Dubyk and Jani Ollikainen for translations. * Oden Eriksson for various patches, bug reports, translations and such. * Tony Breeds gets a big thanks for the awful name, and some patches. * Denise Callander for great help in steering many of the concepts that have and will wind up in AWFFull from a pure ownership/non-technical perspective. * And of course Bradford L. Barrett, and Stanislaw Yurievich Pusep for their original work with Webalizer and Geolizer. Humble apologies to anyone if I've neglected to add you. Drop me an email and I'll update ASAP! Feedback, Comments and Criticisms all three are most welcome. Cheers! - Steve spm@stedee.id.au awffull-3.10.2/Makefile.in0000644000076400007640000004566611120611703012244 00000000000000# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure ABOUT-NLS \ AUTHORS COPYING ChangeLog INSTALL NEWS TODO \ config/config.guess config/config.rpath config/config.sub \ config/depcomp config/install-sh config/missing install-sh \ missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETCDIR = @ETCDIR@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ OPTS = @OPTS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = src doc po flags contrib EXTRA_DIST = m4/ChangeLog bootstrap sample.conf sample.minimal.conf README.FIRST country-codes.txt TODO README.webalizer PERFORMANCE_TIPS.txt DNS.README sample.css ACLOCAL_AMFLAGS = -I m4 all: all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d $(distdir) || mkdir $(distdir) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ am__remove_distdir=: \ am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-exec-am: install-html: install-html-recursive install-info: install-info-recursive install-man: install-pdf: install-pdf-recursive install-ps: install-ps-recursive installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ install-strip .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ tags-recursive uninstall uninstall-am # 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: awffull-3.10.2/sample.conf0000644000076400007640000010573711120610145012322 00000000000000/* # AWFFull - A Webalizer Fork, Full o' features # # sample.conf # Sample configuration file # # Copyright 1997-2000 by Bradford L. Barrett (brad@mrunix.net) # Copyright (C) 2004- 2008 by Stephen McInerney # (spm@stedee.id.au) # # This file is part of AWFFull. # # AWFFull 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. # # AWFFull 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 AWFFull. If not, see . # */ # Sample AWFFull configuration file # # This is a sample configuration file for AWFFull (v3.8.1) # Lines starting with pound signs '#' are comment lines and are # ignored. Blank lines are skipped as well. Other lines are considered # as configuration lines, and have the form "ConfigOption Value" where # ConfigOption is a valid configuration keyword, and Value is the value # to assign that configuration option. Invalid keyword/values are # ignored, with appropriate warnings being displayed. There must be # at least one space or tab between the keyword and its value. # # AWFFull will look for a 'default' configuration file # "/usr/local/etc/awffull.conf", and if found, use that. # the '-c config.file' option can also be used to specify an alternate # configuration file. Or multiple configuration files, with multiple -c's. # LogFile defines the web server log file to use. If not specified # here or on on the command line, input will default to STDIN. If # the log filename ends in '.gz' (ie: a gzip compressed file), it will # be decompressed on the fly as it is being read. #LogFile /var/lib/httpd/logs/access_log # LogType defines the log type being processed. Normally, AWFFull # expects a CLF or Combined web server log as input. Using this option, # you can process ftp logs as well (xferlog as produced by wu-ftp and # others), or Squid native logs. # Values can be 'auto' 'clf', 'combined', 'ftp', 'domino' or 'squid', with # 'auto' the default. # The 'auto' value means that AWFFull will try and work out what log format # you are sending to it. If no joy, AWFFull will immediately exit. #LogType auto # OutputDir is where you want to put the output files. This should # should be a full path name, however relative ones might work as well. # If no output directory is specified, the current directory will be used. #OutputDir . # HistoryName allows you to specify the name of the history file produced # by AWFFull. The history file keeps the data for up to 12 months # worth of logs, used for generating the main HTML page (index.html). # The default is a file named "awffull.hist", stored in the specified # output directory. If you specify just the filename (without a path), # it will be kept in the specified output directory. Otherwise, the path # is relative to the output directory, unless absolute (leading /). #HistoryName awffull.hist # Incremental processing allows multiple partial log files to be used # instead of one huge one. Useful for large sites that have to rotate # their log files more than once a month. AWFFull will save its # internal state before exiting, and restore it the next time run, in # order to continue processing where it left off. This mode also causes # AWFFull to scan for and ignore duplicate records (records already # processed by a previous run). See the README file for additional # information. The value may be 'yes' or 'no', with a default of 'no'. # The file 'awffull.current' is used to store the current state data, # and is located in the output directory of the program (unless changed # with the IncrementalName option below). Please read at least the section # on Incremental processing in the README file before you enable this option. #Incremental no # IncrementalName allows you to specify the filename for saving the # incremental data in. It is similar to the HistoryName option where the # name is relative to the specified output directory, unless an absolute # filename is specified. The default is a file named "awffull.current" # kept in the normal output directory. If you don't specify "Incremental" # as 'yes' then this option has no meaning. #IncrementalName awffull.current # ReportTitle is the text to display as the title. The hostname # (unless blank) is appended to the end of this string (separated with # a space) to generate the final full title string. # Default is (for English) "Usage Statistics for". #ReportTitle Usage Statistics for # HostName defines the hostname for the report. This is used in # the title, and is prepended to the URL table items. This allows # clicking on URL's in the report to go to the proper location in # the event you are running the report on a 'virtual' web server, # or for a server different than the one the report resides on. # If not specified here, or on the command line, awffull will # try to get the hostname via a uname system call. If that fails, # it will default to "localhost". #HostName localhost # HTMLExtension allows you to specify the filename extension to use # for generated HTML pages. Normally, this defaults to "html", but # can be changed for sites who need it (like for PHP embedded pages). #HTMLExtension html # PageType lets you tell AWFFull what types of URL's you # consider a 'page'. Most people consider html and cgi documents # as pages, while not images and audio files. If no types are # specified, defaults will be used ('htm', 'html', 'cgi' and HTMLExtension # if different for web logs, 'txt' for ftp logs). # Putting the more likely page types first in the list should increase the # speed of a run. # Do Not Use Wildcards Here. It will not work. PageType htm PageType html PageType php #PageType pl #PageType cfm #PageType pdf #PageType txt #PageType cgi # NotPageType is the direct and incompatible opposite of PageType. # You can use one set or the other, but not both. # PageType specifies what *is* a Page, NotPageType specifies what # *isn't*, and hence by implication, everything else is a page. # Neither method is more or lessor correct than the other. It's more # what is more accurate for *your* site. # Do not add the "." or use any wildcards. As a general rule. # There are some assumed internal optimisations that may otherwise # break. # Those who understand pcre's would do well to examine the source # of parser.c if they wish to extract greater flexibility from the # below. #NotPageType gif #NotPageType css #NotPageType js #NotPageType jpg #NotPageType ico #NotPageType png # CSSFilename is used to set the name of the CSS file to use in conjunction # with the generated html. An existing file is *not* overwritten, so feel free # to make you own changes to the default file. #CSSFilename awffull.css # UseHTTPS should be used if the analysis is being run on a # secure server, and links to urls should use 'https://' instead # of the default 'http://'. If you need this, set it to 'yes'. # Default is 'no'. This only changes the behaviour of the 'Top # URL's' table. #UseHTTPS no # HTMLPre defines HTML code to insert at the very beginning of the # file. Default is the DOCTYPE line shown below. Max line length # is 80 characters, so use multiple HTMLPre lines if you need more. #HTMLPre # HTMLHead defines HTML code to insert within the # block, immediately after the line. Maximum line length # is 80 characters, so use multiple lines if needed. #HTMLHead <META NAME="author" CONTENT="AWFFull"> # HTMLBody defined the HTML code to be inserted, starting with the # <BODY> tag. If not specified, the default is shown below. If # used, you MUST include your own <BODY> tag as the first line. # Maximum line length is 80 char, use multiple lines if needed. #HTMLBody <BODY BGCOLOR="#E8E8E8" TEXT="#000000" LINK="#0000FF" VLINK="#FF0000"> # HTMLPost defines the HTML code to insert immediately before the # first <HR> on the document, which is just after the title and # "summary period"-"Generated on:" lines. If anything, this should # be used to clean up in case an image was inserted with HTMLBody. # As with HTMLHead, you can define as many of these as you want and # they will be inserted in the output stream in order of appearance. # Max string size is 80 characters. Use multiple lines if you need to. #HTMLPost <BR CLEAR="all"> # HTMLTail defines the HTML code to insert at the bottom of each # HTML document, usually to include a link back to your home # page or insert a small graphic. It is inserted as a table # data element (ie: <TD> your code here </TD>) and is right # aligned with the page. Max string size is 80 characters. #HTMLTail <IMG SRC="yourlogo.png" ALT="Company XYZ!"> # HTMLEnd defines the HTML code to add at the very end of the # generated files. It defaults to what is shown below. If # used, you MUST specify the </BODY> and </HTML> closing tags # as the last lines. Max string length is 80 characters. #HTMLEnd </BODY></HTML> # TimeMe allows you to force the display of timing information # at the end of processing. A value of 'yes' will force the # timing information to be displayed. A value of 'no' has no # effect. #TimeMe no # GMTTime allows reports to show GMT (UTC) time instead of local # time. Default is to display the time the report was generated # in the timezone of the local machine, such as EDT or PST. This # keyword allows you to have times displayed in UTC instead. Use # only if you really have a good reason, since it will probably # screw up the reporting periods by however many hours your local # time zone is off of GMT. #GMTTime no # FoldSeqErr forces AWFFull to ignore sequence errors. # This is useful for Netscape and other web servers that cache # the writing of log records and do not guarantee that they # will be in chronological order. The use of the FoldSeqErr # option will cause out of sequence log records to be treated # as if they had the same time stamp as the last valid record. # Default is to ignore out of sequence log records. #FoldSeqErr no # VisitTimeout allows you to set the default timeout for a visit # (sometimes called a 'session'). The default is 30 minutes, # which should be fine for most sites. # Visits are determined by looking at the time of the current # request, and the time of the last request from the site. If # the time difference is greater than the VisitTimeout value, it # is considered a new visit, and visit totals are incremented. # Value is the number of seconds to timeout (default=1800=30min) #VisitTimeout 1800 # IgnoreHist shouldn't be used in a config file, but it is here # just because it might be useful in certain situations. If the # history file is ignored, the main "index.html" file will only # report on the current log files contents. Useful only when you # want to reproduce the reports from scratch. USE WITH CAUTION! # Valid values are "yes" or "no". Default is "no". #IgnoreHist no # TrackPartialRequests is used to track 206 codes. This gives two # additional columns in the Top URLs tables. # The first to "Hits" counts the number of partial requests # The second to "Volume" counts the volume in partial requests # This option is more of use to those with lots of PDF's. #TrackPartialRequests no # CountryGraph allows the usage by country graph to be disabled. # Values can be 'yes' or 'no', default is 'yes'. #CountryGraph yes # GeoIP enables or disables the use of the GeoIP capability for more # accurate detection of countries. Default is 'no'. # NOTE! Do not enable GeoIP if you analyse files that have had the IP Address # translated to a Fully Qualified Host Name. # Use either raw IP Addresses and GeoIP, or Names and disable GeoIP. # ie. Don't use GeoIP AND DNSHistory. #GeoIP no # GeoIPDatabase is the location of the GeoIP database file. Default is # '/usr/local/share/GeoIP/GeoIP.dat', which is where a default GeoIP # install will put it. Note that the database is updated monthly. # For the details see: http://www.maxmind.com/app/geoip_country #GeoIPDatabase /usr/local/share/GeoIP/GeoIP.dat # FlagsLocation will enable the display of country flags in the country # table. The path is that for a webserver, not file system. Can be # relative or complete. The trailing slash is not necessary. #FlagsLocation flags # DailyGraph and DailyStats allows the daily statistics graph # and statistics table to be disabled (not displayed). Values # may be "yes" or "no". Default is "yes". #DailyGraph yes #DailyStats yes # HourlyGraph and HourlyStats allows the hourly statistics graph # and statistics table to be disabled (not displayed). Values # may be "yes" or "no". Default is "yes". #HourlyGraph yes #HourlyStats yes # TopURLsbyHITsGraph - Display a pie chart of the top URLs by HITS #TopURLsbyHitsGraph yes #TopURLsbyVolGraph yes # TopExitPagesGraph - Display Top Exit Pages Pie Chart # no for don't display # hits for by hits # visits for by visits #TopExitPagesGraph visits # TopEntryPagesGraph - Display Top Entry Pages Pie Chart # no for don't display # hits for by hits # visits for by visits #TopEntryPagesGraph visits # TopSitesbyPagesGraph - Display a pie chart of the Top Sites by Page Impressions #TopSitesbyPagesGraph yes # TopSitesbyVolGraph - Display a pie chart of the Top Sites by Page Impressions #TopSitesbyVolGraph yes # TopAgentsGraph - Display a pie chart of the Top User Agents (by pages) #TopAgentsGraph yes # GraphLegend allows the color coded legends to be turned on or off # in the graphs. The default is for them to be displayed. This only # toggles the color coded legends, the other legends are not changed. # If you think they are hideous and ugly, say 'no' here :) #GraphLegend yes # GraphLines allows you to have index lines drawn behind the graphs. # Anything other than "no" will enable the lines. #GraphLines yes # YearlySubtotals will display the subtotal for a given year in the main # page. This is in addition to the Grand Total of all years. #YearlySubtotals no # The "Top" options below define the number of entries for each table. # Defaults are Sites=30, URL's=30, Referrers=30 and Agents=15, and # Countries=30. TopKSites and TopKURLs (by KByte tables) both default # to 10, as do the top entry/exit tables (TopEntry/TopExit). The top # search strings and user names default to 20. Tables may be disabled # by using zero (0) for the value. # Top404Errors, displays a table of error requests, and the corresponding # referring URL. #TopSites 30 #TopKSites 10 #TopURLs 30 #TopKURLs 10 #TopReferrers 30 #TopAgents 15 #TopCountries 30 #TopEntry 10 #TopExit 10 #TopSearch 20 #TopUsers 20 #Top404Errors 0 # The All* keywords allow the display of all URL's, Sites, Referrers # User Agents, Search Strings and User names. If enabled, a separate # HTML page will be created, and a link will be added to the bottom # of the appropriate "Top" table. There are a couple of conditions # for this to occur.. First, there must be more items than will fit # in the "Top" table (otherwise it would just be duplicating what is # already displayed). Second, the listing will only show those items # that are normally visible, which means it will not show any hidden # items. Grouped entries will be listed first, followed by individual # items. The value for these keywords can be either 'yes' or 'no', # with the default being 'no'. Please be aware that these pages can # be quite large in size, particularly the sites page, and separate # pages are generated for each month, which can consume quite a lot # of disk space depending on the traffic to your site. # All404Errors displays a table of error requests, and the corresponding # referring URL. #AllSites no #AllURLs no #AllReferrers no #AllAgents no #AllSearchStr no #AllUsers no #All404Errors no # AWFFull normally strips the string 'index.' off the end of # URL's in order to consolidate URL totals. For example, the URL # /somedir/index.html is turned into /somedir/ which is really the # same URL. This option allows you to specify additional strings # to treat in the same way. You don't need to specify 'index.' as # it is always scanned for by AWFFull, this option is just to # specify _additional_ strings if needed. If you don't need any, # don't specify any as each string will be scanned for in EVERY # log record... A bunch of them will degrade performance. Also, # the string is scanned for anywhere in the URL, so a string of # 'home' would turn the URL /somedir/homepages/brad/home.html into # just /somedir/ which is probably not what was intended. #IndexAlias home.htm #IndexAlias homepage.htm # The opposite (in a way) of IndexAlias is IgnoreIndexAlias. # This will STOP any URL variable stripping, as well as ignoring the # default "index." setting, or any that you set above. #IgnoreIndexAlias no # The Hide*, Group* and Ignore* and Include* keywords allow you to # change the way Sites, URL's, Referrers, User Agents and User names # are manipulated. The Ignore* keywords will cause AWFFull to # completely ignore records as if they didn't exist (and thus not # counted in the main site totals). The Hide* keywords will prevent # things from being displayed in the 'Top' tables, but will still be # counted in the main totals. The Group* keywords allow grouping # similar objects as if they were one. Grouped records are displayed # in the 'Top' tables and can optionally be displayed in BOLD and/or # shaded. Groups cannot be hidden, and are not counted in the main # totals. The Group* options do not, by default, hide all the items # that it matches. If you want to hide the records that match (so just # the grouping record is displayed), follow with an identical Hide* # keyword with the same value. (see example below) In addition, # Group* keywords may have an optional label which will be displayed # instead of the keywords value. The label should be separated from # the value by at least one 'white-space' character, such as a space # or tab. # # The value can have either a leading or trailing '*' wildcard # character. If no wildcard is found, a match can occur anywhere # in the string. Given a string "www.yourmama.com", the values "your", # "*mama.com" and "www.your*" will all match. # Your own site should be hidden #HideSite *mrunix.net #HideSite localhost # Your own site gives most referrals #HideReferrer mrunix.net/ # This one hides non-referrers ("-" Direct requests) #HideReferrer Direct Request # Usually you want to hide these HideURL *.gif HideURL *.GIF HideURL *.jpg HideURL *.JPG HideURL *.png HideURL *.PNG HideURL *.ra # Hiding agents is kind of futile #HideAgent RealPlayer # You can also hide based on authenticated user name #HideUser root #HideUser admin # Grouping options #GroupURL /cgi-bin/* CGI Scripts #GroupURL /images/* Images #GroupSite *.aol.com #GroupSite *.compuserve.com #GroupReferrer yahoo.com/ Yahoo! #GroupReferrer excite.com/ Excite #GroupReferrer infoseek.com/ InfoSeek #GroupReferrer webcrawler.com/ WebCrawler #GroupUser root Admin users #GroupUser admin Admin users #GroupUser wheel Admin users # The following is a great way to get an overall total # for browsers, and not display all the detail records. # (You should use MangleAgent to refine further...) # # Simplified browser list for Webalizer. Copy & paste in awffull.conf, # replacing the original list. # # Longer version in http://griho.udl.es/webalizer/groupagent.txt # Full version in http://griho.udl.es/webalizer/webalizer.conf.txt # # Version: 1.1 14/May/2005 # # GroupAndHideAgent is equivalent to the two lines of a GroupAgent, then a HideAgent GroupAndHideAgent Googlebot Spider: Googlebot GroupAndHideAgent msnbot* Spider: MSNBot GroupAndHideAgent AppleWebKit/ Browser: Safari (OSX) GroupAndHideAgent Camino Browser: Camino (OSX) GroupAndHideAgent Epiphany Browser: Epiphany (Gentoo) GroupAndHideAgent Firebird/ Browser: Firebird GroupAndHideAgent Firefox/ Browser: Firefox GroupAndHideAgent Galeon/ Browser: Galeon GroupAndHideAgent Konqueror/ Browser: Konqueror GroupAndHideAgent Netscape6/ Browser: Netscape 6 GroupAndHideAgent Netscape/7 Browser: Netscape 7 GroupAndHideAgent Netscape/8 Browser: Netscape 8 GroupAndHideAgent rv:1. Browser: Mozilla 1.x GroupAndHideAgent Opera Browser: Opera GroupAndHideAgent Mozilla/1 Browser: Netscape v1.xx GroupAndHideAgent Mozilla/2 Browser: Netscape v2.xx GroupAndHideAgent Mozilla/3.04Gold Browser: Netscape 3.04 Gold GroupAndHideAgent Mozilla/3 Browser: Netscape v3.xx GroupAndHideAgent Mozilla/4.03 Browser: Netscape 4.03 GroupAndHideAgent Mozilla/4.04 Browser: Netscape 4.04 GroupAndHideAgent Mozilla/4.05 Browser: Netscape 4.05 GroupAndHideAgent Mozilla/4.06 Browser: Netscape 4.06 GroupAndHideAgent Mozilla/4.08 Browser: Netscape 4.08 GroupAndHideAgent Mozilla/4.5 Browser: Netscape 4.5 GroupAndHideAgent Mozilla/4.61 Browser: Netscape 4.6 (Mac/WinNT) GroupAndHideAgent Mozilla/4.6 Browser: Netscape 4.6 (Win95/Win98) GroupAndHideAgent Mozilla/4.72 Browser: Netscape 4.72 GroupAndHideAgent Mozilla/4.73 Browser: Netscape 4.73 GroupAndHideAgent Mozilla/4.75 Browser: Netscape 4.75 GroupAndHideAgent Mozilla/4.76 Browser: Netscape 4.76 GroupAndHideAgent Mozilla/4.77 Browser: Netscape 4.77 GroupAndHideAgent Mozilla/4.78 Browser: Netscape 4.78 GroupAndHideAgent Mozilla/4.79 Browser: Netscape 4.79 GroupAndHideAgent Mozilla/4.7 Browser: Netscape 4.7 GroupAndHideAgent Mozilla/4.8 Browser: Netscape 4.8 GroupAndHideAgent Mozilla/5.0 Browser: Netscape 4.8 GroupAndHideAgent "compatible; MSIE 6.0" Browser: Internet Explorer 6.0 (Win) GroupAndHideAgent "compatible; MSIE 7.01" Spambot: Pretends to be MSIE 7.01 GroupAndHideAgent "compatible; MSIE 7.0" Browser: Internet Explorer 7.0 (Win) GroupAndHideAgent "compatible; MSIE 5.5" Browser: Internet Explorer 5.5 (Win) GroupAndHideAgent "compatible; MSIE 5.01" Browser: Internet Explorer 5.01 # this 4.0 entry is matching Mozilla/4.0 which applies for every MSIE in the net, leave it commented ##GroupAgent 4.0 Browser: Internet Explorer 4.0 ##HideAgent 4.0 GroupAndHideAgent 4.5 Browser: Internet Explorer 4.5 GroupAndHideAgent 5.0 Browser: Internet Explorer 5.0 GroupAndHideAgent 5.12 Browser: Internet Explorer 5.12 (Mac) GroupAndHideAgent 5.13 Browser: Internet Explorer 5.13 (Mac) GroupAndHideAgent 5.14 Browser: Internet Explorer 5.14 (Mac) GroupAndHideAgent 5.15 Browser: Internet Explorer 5.15 (Mac) GroupAndHideAgent 5.16 Browser: Internet Explorer 5.16 (Mac) GroupAndHideAgent 5.17 Browser: Internet Explorer 5.17 (Mac) GroupAndHideAgent 5.21 Browser: Internet Explorer 5.21 (Mac) GroupAndHideAgent 5.22 Browser: Internet Explorer 5.22 (Mac) GroupAndHideAgent 5.23 Browser: Internet Explorer 5.23 (Mac) GroupAndHideAgent "compatible; MSIE 5.0" Browser: Internet Explorer 5.0 GroupAndHideAgent "compatible; MSIE 4.5" Browser: Internet Explorer 4.5 GroupAndHideAgent 3.0 Browser: Internet Explorer 3.0 (win95) GroupAndHideAgent 3.0B Browser: Internet Explorer 3.0B (win95) GroupAndHideAgent 3.01 Browser: Internet Explorer 3.01 (win95) GroupAndHideAgent 4.01 Browser: Internet Explorer 4.01 # we comment MSIE because many agents use it in their name to disguise as Internet Explorer #####GroupAgent MSIE Browser: Internet Explorer (unknown version) #####HideAgent MSIE # HideAllSites allows forcing individual sites to be hidden in the # report. This is particularly useful when used in conjunction # with the "GroupDomain" feature, but could be useful in other # situations as well, such as when you only want to display grouped # sites (with the GroupSite keywords...). The value for this # keyword can be either 'yes' or 'no', with 'no' the default, # allowing individual sites to be displayed. #HideAllSites no # The GroupDomains keyword allows you to group individual host names # into their respective domains. The value specifies the level of # grouping to perform, and can be thought of as 'the number of dots' # that will be displayed. For example, if a visiting host is named # cust1.tnt.mia.uu.net, a domain grouping of 1 will result in just # "uu.net" being displayed, while a 2 will result in "mia.uu.net". # The default value of zero disable this feature. Domains will only # be grouped if they do not match any existing "GroupSite" records, # which allows overriding this feature with your own if desired. #GroupDomains 0 # The GroupShading allows grouped rows to be shaded in the report. # Useful if you have lots of groups and individual records that # intermingle in the report, and you want to differentiate the group # records a little more. Value can be 'yes' or 'no', with 'yes' # being the default. #GroupShading yes # GroupHighlight allows the group record to be displayed in BOLD. # Can be either 'yes' or 'no' with the default 'yes'. #GroupHighlight yes # Segmenting - segXXX # Segmenting is a bit like the Ignore* and Include* keywords. Where it # differs is in "remembering". Such that, as a "session" moves away from # the original condition, that session is still tracked. # So if you segment on a referral from Google, only sessions that were # referred to the site from Google will be tracked. Even as they access # other pages within the site. # eg. Google -> Site Page 1 -> Site Page 2 -> Site Page 3 # Whereas Ignore/Include would only filter the first interaction. # eg. Google -> Site Page 1 # # By "session" it is meant that the time limitation of a session (typically # 30 minutes timeout) will impact. So in the above example from Google, if # the last step (from Page 2 to Page 3) occurred 31+ minutes after the Page 1 # to Page 2 transition, then this final step would NOT be included. The trail # would be: # Google -> Site Page 1 -> Site Page 2 # # Please do be aware that currently AWFFull uses IP Addresses to determine # the continuation of a given session. This will be most flawed if you have # a user population that sits behind corporate firewalls, or ISP Proxies. # To mention two major problem areas. # # Why do Segmenting? # http://judah.webanalyticsdemystified.com/2007/11/a-few-tips-on-web-analytics-segmentation.html # "Segment analysis will tell you different things about your audience than # you will realize from studying overall population metrics." # "The goal of segmentation is to maximize future value of that segment by # optimizing your marketing mix." # With apologies to Judah for mixing his phrase order around. :-) # Segment by Country # Only track sessions that come from the following countries. # This will be determined by: # 1. Use of AssignToCountry overrides # 2. GeoIP lookups if so configured and enabled # 3. Hostname TLD. eg .au # The third option is generally going to be the worst for accuracy. # We have plenty of Australian IP addresses that are .com or .net etc. # It is strongly advised to enable GeoIP if you wish to use this option. #SegCountry AU #SegCountry US #SegCountry BR # Segment by Referer # Only track sessions that originated from the following referrers. # NOTE!!!! SegReferer only works against the HOST name. Not the full URL. #SegReferer *google.com.au #SegReferer *yahoo.com.au #SegReferer ninemsn # The Ignore* keywords allow you to completely ignore log records based # on hostname, URL, user agent, referrer or user name. I hesitated in # adding these, since the Webalizer was designed to generate _accurate_ # statistics about a web servers performance. By choosing to ignore # records, the accuracy of reports become skewed, negating why I wrote # this program in the first place. However, due to popular demand, here # they are. Use the same as the Hide* keywords, where the value can have # a leading or trailing wildcard '*'. Use at your own risk ;) #IgnoreSite bad.site.net #IgnoreURL /test* #IgnoreReferrer file:/* #IgnoreAgent RealPlayer #IgnoreUser root # The Include* keywords allow you to force the inclusion of log records # based on hostname, URL, user agent, referrer or user name. They take # precedence over the Ignore* keywords. Note: Using Ignore/Include # combinations to selectively process parts of a web site is _extremely # inefficient_!!! Avoid doing so if possible (ie: grep the records to a # separate file if you really want that kind of report). # Example: Only show stats on Joe User's pages... #IgnoreURL * #IncludeURL ~joeuser* # Or based on an authenticated user name #IgnoreUser * #IncludeUser someuser # The MangleAgents allows you to specify how much, if any, AWFFull # should mangle user agent names. This allows several levels of detail # to be produced when reporting user agent statistics. There are six # levels that can be specified, which define different levels of detail # suppression. Level 5 shows only the browser name (MSIE or Mozilla) # and the major version number. Level 4 adds the minor version number # (single decimal place). Level 3 displays the minor version to two # decimal places. Level 2 will add any sub-level designation (such # as Mozilla/3.01Gold or MSIE 3.0b). Level 1 will attempt to also add # the system type if it is specified. The default Level 0 displays the # full user agent field without modification and produces the greatest # amount of detail. User agent names that can't be mangled will be # left unmodified. #MangleAgents 0 # The SearchEngine keywords allow specification of search engines and # their query strings on the URL. These are used to locate and report # what search strings are used to find your site. The first word is # a substring to match in the referrer field that identifies the search # engine, and the second is the URL variable used by that search engine # to define it's search terms. SearchEngine google. q= SearchEngine yahoo. p= SearchEngine msn. q= SearchEngine search.aol query= SearchEngine altavista. q= SearchEngine lycos. query= SearchEngine hotbot. query= SearchEngine alltheweb. query= SearchEngine infoseek. qt= SearchEngine webcrawler searchText= SearchEngine excite search= SearchEngine netscape. query= SearchEngine ask.com q= SearchEngine webwombat. ix= SearchEngine earthlink. q= SearchEngine search.comcast. q= SearchEngine search.mywebsearch. searchfor= SearchEngine reference.com q= SearchEngine mamma.com query= # Last attempt catch all SearchEngine search. q= # AssignToCountry allows a form of override to force given domains # to a specified country. Use the standard 2 letter country codes. # Can also use org, com, net and so on, if more appropriate. # With judicious use of the AllSites, GroupSite and 'whois', this # can fairly easily cover all your majority users with not too much # effort. #AssignToCountry *.bigpond.com au #AssignToCountry *.internode.on.net au #AssignToCountry 203.36.* au #AssignToCountry *.ntli.net uk #AssignToCountry *.btcentralplus.com uk # The Dump* keywords allow the dumping of Sites, URL's, Referrers # User Agents, User names and Search strings to separate tab delimited # text files, suitable for import into most database or spreadsheet # programs. # DumpPath specifies the path to dump the files. If not specified, # it will default to the current output directory. Do not use a # trailing slash ('/'). #DumpPath /var/lib/httpd/logs # The DumpHeader keyword specifies if a header record should be # written to the file. A header record is the first record of the # file, and contains the labels for each field written. Normally, # files that are intended to be imported into a database system # will not need a header record, while spreadsheets usually do. # Value can be either 'yes' or 'no', with 'no' being the default. #DumpHeader no # DumpExtension allow you to specify the dump filename extension # to use. The default is "tab", but some programs are picky about # the filenames they use, so you may change it here (for example, # some people may prefer to use "csv"). #DumpExtension tab # These control the dumping of each individual table. The value # can be either 'yes' or 'no'.. the default is 'no'. #DumpSites no #DumpURLs no #DumpReferrers no #DumpAgents no #DumpUsers no #DumpSearchStr no #DumpEntryPages no #DumpExitPages no #DumpCountries no # This option controls how many years worth of data to display on the # front summary page. In months. # eg: Display the last 5 years: 5 x 12 = 60 # IndexMonths 60 # The following Graph????X or Y options are used to modify the sizes of the # created charts. # The default settings are shown. The defaults are also the minimum settings. # The main chart on the front page. Summary of all Months. #GraphIndexX 512 #GraphIndexY 256 # The Day by Day Summary graph at the start of each Months Summary. #GraphDailyX 512 #GraphDailyY 400 # The Hourly Average graph within each Months Summary. #GraphHourlyX 512 #GraphHourlyY 256 # All pie charts are the same size. #GraphPieX 512 #GraphPieY 300 # The custom bar graph and pie Colors are defined here. # Declare them in the standard hexadecimal way (as HTML, but without the '#') # If none are given, you will get the standard Webalizer colors. #ColorHit 00805c #ColorFile 0000ff #ColorSite ff8000 #ColorKbyte ff0000 #ColorPage 00c0ff #ColorVisit ffff00 #PieColor1 800080 #PieColor2 80ffc0 #PieColor3 ff00ff #PieColor4 ffc480 # End of configuration file... Have a nice day! ���������������������������������awffull-3.10.2/AUTHORS������������������������������������������������������������������������������0000644�0000764�0000764�00000000000�11120610145�011213� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/DNS.README���������������������������������������������������������������������������0000644�0000764�0000764�00000002114�11120610145�011456� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������AWFFull -- DNS information As some have noticed, AWFFull didn't exactly maintain the pre-existing DNS lookup capability of webalizer. As of version 3.02 of AWFFull, that capability has been removed entirely. Why? The existing DNS lookup capability had a number of problems. Mostly around a inability to maintain meaningful lookups over periods of years. In my experience it is rare for web logs to be analysed once, and even more rarely with only the one program. Thus an external "filtering" IP lookup facility for those logs makes more sense. This lead to the birth of a program which I called "DNSHistory". Which can be retrieved from here: http://www.stedee.id.au/dnshistory I also feel quite strongly that AWFFull is better served by focusing on just log analysis, and that DNS issues are better handled elsewhere. A simplification if you will. Using awffull and DNSHistory is quite simple. Assume you have a logfile to process: accesslog.log $ dnshistory -d dns.db -f accesslog.log $ dnshistory -T -d dns.db -f accesslog.log | awffull -c awffull.conf - Steve McInerney 22-Nov-2005 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/m4/����������������������������������������������������������������������������������0000777�0000764�0000764�00000000000�11120617022�010562� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/m4/ChangeLog�������������������������������������������������������������������������0000644�0000764�0000764�00000002553�11120610146�012255� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������2006-12-29 gettextize <bug-gnu-gettext@gnu.org> * codeset.m4: New file, from gettext-0.15. * gettext.m4: New file, from gettext-0.15. * glibc2.m4: New file, from gettext-0.15. * glibc21.m4: New file, from gettext-0.15. * iconv.m4: New file, from gettext-0.15. * intdiv0.m4: New file, from gettext-0.15. * intmax.m4: New file, from gettext-0.15. * inttypes_h.m4: New file, from gettext-0.15. * inttypes-h.m4: New file, from gettext-0.15. * inttypes-pri.m4: New file, from gettext-0.15. * lcmessage.m4: New file, from gettext-0.15. * lib-ld.m4: New file, from gettext-0.15. * lib-link.m4: New file, from gettext-0.15. * lib-prefix.m4: New file, from gettext-0.15. * lock.m4: New file, from gettext-0.15. * longdouble.m4: New file, from gettext-0.15. * longlong.m4: New file, from gettext-0.15. * nls.m4: New file, from gettext-0.15. * po.m4: New file, from gettext-0.15. * printf-posix.m4: New file, from gettext-0.15. * progtest.m4: New file, from gettext-0.15. * signed.m4: New file, from gettext-0.15. * size_max.m4: New file, from gettext-0.15. * stdint_h.m4: New file, from gettext-0.15. * uintmax_t.m4: New file, from gettext-0.15. * ulonglong.m4: New file, from gettext-0.15. * visibility.m4: New file, from gettext-0.15. * wchar_t.m4: New file, from gettext-0.15. * wint_t.m4: New file, from gettext-0.15. * xsize.m4: New file, from gettext-0.15. �����������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/missing������������������������������������������������������������������������������0000755�0000764�0000764�00000024533�11120610145�011563� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2004-09-07.08 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # 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. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to <bug-automake@gnu.org>." exit 0 ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit 0 ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/INSTALL������������������������������������������������������������������������������0000644�0000764�0000764�00000014477�11120610145�011223� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������####################################################################### # Copyright (C) 2005, 2006, 2007 by Stephen McInerney (spm@stedee.id.au) ####################################################################### Installation instructions for AWFFull Requirements: ------------- AWFFull is dependant on several external libraries, most should be on a standard *nix system anyway, some are more specific. The main additional libraries being: * PNG for creating the various images http://www.libpng.org/pub/png/ * GD for creating the graphs as png images http://www.boutell.com/gd/ * ZLIB for reading compressed log files http://www.gzip.org/zlib/ * PCRE for simplifying the matching of log entries http://www.pcre.org/ If you require more accurate Country tracking, you can make use of GeoIP. http://www.maxmind.com/app/geoip_country * To get TrueType Fonts working, you will need some truetype fonts. I'd suggest the urw-fonts package as a starting point. Basic Installation: ------------------- * Untar the source file * cd into the newly created source directory * ./configure * make * make install Eg: $ tar zxf awffull-3.7.1.tar.gz $ cd awffull-3.7.1 $ ./configure $ make $ make install The "make install" may need to be performed as a privileged user (root). Basic Usage and Running of AWFFull: ----------------------------------- AWFFull comes with two sample configuration files: sample.minimal.conf - being an absolute minimal config to get started sample.conf - being the all configuration options, with explanations. You don't require either to run AWFFull, but it is recommended to gradually reconfigure the defaults to fine tune against your needs. A normal run would be similar to: awffull -c awffull.mywebsite.conf logfile.lastmonth.log.gz AWFFull generates several HTML files and png images in a designated output directory. Either open directly with a local web browser, or access via a web server configured to allow access to that directory. NB! AWFFull will attemp to load a default configuration file. So you may be picking up configuration that you had not intended to. Advanced Installation: ---------------------- Assumes that you are already familiar with GNU autobuilding. Additional configure options are: --with-gd=DIR Where to additionally look for gd header files --with-gdlib=DIR Alternate location for libgd library --with-z=DIR Alternate location for libz header files --with-zlib=DIR Alternate location for libz library --with-png=DIR Alternate location of png header files --with-pnglib=DIR Alternate location for libpng library --with-geoip=DIR Alternate location of geoip header files --with-geoiplib=DIR Alternate location for libGeoIP library --with-font-default=FILE Where to look for the Default TrueType Font --with-font-label=FILE Where to look for the Default Label TrueType Font --disable-geoip Disable GeoIP (default=no) --disable-ttf Disable TrueType Fonts (default=no) These all assist with locating libraries and headers in non standard locations. "--with-font-default" will override the otherwise hardcoded TrueType Font to use. See src/graph.h "--with-font-label" is similar to --with-font-default, but changes the font used for labels. "--disable-geoip" will stop automatic inclusion of GeoIP capabilities if otherwise found. "--disable-ttf" will stop the automatic inclusion of the GD Truetype Font libraries, if otherwise found. The default font family that AWFFull will attempt to use is 'Helvetica'. See your fontconfig (/etc/fonts/...) for more detail. Graphs With No Text! -------------------- Please do be aware that the above strongly imples that you have a working fontconfig setup on your machine. You'll get graphs with no text otherwise. A quick check with "ldd" can easily verify this one. See: http://www.stedee.id.au/pipermail/awffull/2007-November/000581.html for a long winded look at trying to resolve this. You can also use the afore mentioned --with-font-* overrides to force a particular file to be loaded instead. --enable-debug Turn on compiler debugging information (default=no) --enable-developer Turn on developer warnings and debugging (default=no) These two enable additional levels of error checking in the compiled code. Developer mode additionally adds a lot more compile time warnings and enables profiling mode for use with gprof. This *really* slows down normal run speeds, and is recommended only for those keen to help with coding/debugging/performance issues. --with-generated-by=HTML Override HTML for the "Generated By" footer. Enables a packager, or whomever, to override the default 'Generated by' footer text. This would typically be a single line of raw HTML. eg: $ ./configure --with-generated-by='<p>Generated by STEVE!!!</p>\n' Would replace the default: <hr><p>Generated by <a href="http://www.stedee.id.au/awffull/"><b>awffull Version 3.9.1-alpha1</b></a> </p> with: <p>Generated by STEVE!!!</p> The override is still contained within the footer div. While not even remotely necessary, it would be great if you could leave a link for end users to click on for the AWFFull home page. You'd be amazed how many click throughs from people's stats pages I see. It all helps spread the word! :-) Country Flags: -------------- With version 3.7.1 of AWFFull, a set of country flags from http://flags.blogpotato.de/ can be included and displayed in the country table. These are all stored in the "flags" subdirectory, and need to be manually copied to a web server or similar for access. The location can be specified within the config file, and can be a complete URL, vs relative position from a web root. Thus multiple awffull reports could access a single set of flag picture files. See 'FlagsLocation' for more details. By default the flags will not display. GeoIP: ------ With version 3.7.1 of AWFFull, the GeoIP API can be called. By default, if they exist on the system where AWFFull is being built, then the resulting binary will enable access to GeoIP. Do be aware that the default state of AWFFull is to *NOT* actually use GeoIP. Mainly to maintain existing backwards compatibility. This can be controlled at both build time (configure --disable-geoip) and at run time (awffull --use_geoip). �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/doc/���������������������������������������������������������������������������������0000777�0000764�0000764�00000000000�11120617022�011007� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/doc/Makefile.am����������������������������������������������������������������������0000644�0000764�0000764�00000000263�11120610145�012757� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Makefile.am -- Process this file with automake to produce Makefile.in man_MANS = awffull.1 awffull.conf.5 EXTRA_DIST = $(man_MANS) awffull.1.xml awffull.conf.5.xml ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/doc/Makefile.in����������������������������������������������������������������������0000644�0000764�0000764�00000027546�11120611703�013006� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.10.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/src/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" man5dir = $(mandir)/man5 NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETCDIR = @ETCDIR@ EXEEXT = @EXEEXT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ OPTS = @OPTS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POSUB = @POSUB@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ man_MANS = awffull.1 awffull.conf.5 EXTRA_DIST = $(man_MANS) awffull.1.xml awffull.conf.5.xml all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done install-man5: $(man5_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)" @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.5*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 5*) ;; \ *) ext='5' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \ done uninstall-man5: @$(NORMAL_UNINSTALL) @list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.5*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 5*) ;; \ *) ext='5' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man5dir)/$$inst"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-exec-am: install-html: install-html-am install-info: install-info-am install-man: install-man1 install-man5 install-pdf: install-pdf-am install-ps: install-ps-am installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 uninstall-man5 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-man5 install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-man \ uninstall-man1 uninstall-man5 # 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: ����������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/doc/awffull.conf.5.xml���������������������������������������������������������������0000644�0000764�0000764�00000165335�11120616315�014215� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> <refentry> <refentryinfo> <date>2008-Dec-13</date> <author> <firstname>Steve</firstname> <surname>McInerney</surname> <email>steve@stedee.id.au</email> </author> <author> <firstname>Bradford</firstname> <surname>L. Barrett</surname> <email>brad@mrunix.net</email> </author> </refentryinfo> <refmeta> <refentrytitle>awffull.conf</refentrytitle> <manvolnum>5</manvolnum> </refmeta> <refnamediv> <refname>AWFFull</refname> <refpurpose>A Webalizer Fork, Full o' features</refpurpose> </refnamediv> <refsect1 id="description"> <title>Description awffull.conf is the configuration file for awffull(1). awffull.conf is a standard ASCII(7) text files that may be created or edited using any standard editor. Blank lines and lines that begin with a pound sign ('#') are ignored. Any other lines are considered to be configuration lines, and have the form Keyword Value, where the Keyword is one of the currently available configuration keywords, and Value is the value to assign to that particular option. Any text found after the keyword up to the end of the line is considered the keyword's value, so you should not include anything after the actual value on the line that is not actually part of the value being assigned. The file sample.conf provided with the distribution contains lots of useful documentation and examples as well. Some Keywords will accept a 2nd value. In those situations, the first value may be enclosed in double quotes (") to allow for whitespace. Keywords are Case Insensitive. Values are Case Sensitive, with some gotchas: See Ignore* for details. Wildcards Wildcards within AWFFull are a little non standard and may cause some confusion. Wildcards are only valid within the Value of certain keywords A Value can have either a leading or trailing '*' to signify a wildcard character. If no wildcard is found, a match can occur anywhere in the string. Given a string www.yourmama.com, the values your, *mama.com and www.your* will all match. Thus the use of the wildcard signifies that the other end of the Value is anchored at the Beginning or End of a field to be searched against. eg. A Value of Bot* implies that the field (probably UserAgent in this case) MUST start with the letters Bot. Or in the case of a Hostname *.gov.au implies a match ONLY against Australian Government hostnames. Run Options The Run Options are the generic ones that tell AWFFull where stuff is and how to generally operate. Some of these can modify the results that AWFFull will produce. OutputDir OutputDir is where you want to put the output files. This should should be a full path name, however relative ones might work as well. If no output directory is specified, the current directory will be used. LogFile LogFile defines the web server log file to use. If not specified here or on on the command line, input will default to STDIN. If the log filename ends in '.gz' (ie: a gzip compressed file), it will be decompressed on the fly as it is being read. LogType LogType defines the log type being processed. Normally, AWFFull expects a CLF or Combined web server log as input. Using this option, you can process ftp logs as well (xferlog as produced by wu-ftpd and others), or Squid native logs. Values can be 'auto' 'clf', 'combined', 'ftp', 'domino' or 'squid', with 'auto' the default. The 'auto' value means that AWFFull will try and work out what log format you are sending to it. If no joy, AWFFull will immediately exit. GeoIP GeoIP enables or disables the use of the GeoIP capability for more accurate detection of countries. Default is no. NOTE! Do not enable GeoIP if you analyse files that have had the IP Address translated to a Fully Qualified Host Name. Use either raw IP Addresses and GeoIP, or Names and disable GeoIP. ie. Don't use GeoIP AND DNShistory. GeoIPDatabase GeoIPDatabase is the location of the GeoIP database file. Default is /usr/local/share/GeoIP/GeoIP.dat, which is where a default GeoIP install will put it. Note that the database is updated monthly. For the details see: http://www.maxmind.com/app/geoip_country Incremental Incremental processing allows multiple partial log files to be used instead of one huge one. Useful for large sites that have to rotate their log files more than once a month. AWFFull will save its internal state before exiting, and restore it the next time run, in order to continue processing where it left off. This mode also causes AWFFull to scan for and ignore duplicate records (records already processed by a previous run). See the README file for additional information. The value may be 'yes' or 'no', with a default of 'no'. The file awffull.current is used to store the current state data, and is located in the output directory of the program (unless changed with the IncrementalName option below). Please read at least the section on Incremental processing in the README file before you enable this option. TimeMe TimeMe allows you to force the display of timing information at the end of processing. A value of 'yes' will force the timing information to be displayed. A value of 'no' has no effect. IgnoreHist IgnoreHist should not be used in a standard configuration, but it is here because it is useful in certain analysis situations. If the history file is ignored, the main index.html file will only report on the current log files contents. Incremental data (if present) is still processed. Useful when you want to reproduce the reports from scratch, for example. USE WITH CAUTION! Valid values are yes or no. Default is no. IncrementalName IncrementalName allows you to specify the filename for saving the incremental data in. It is similar to the HistoryName option where the name is relative to the specified output directory, unless an absolute filename is specified. The default is a file named awffull.current kept in the normal output directory. If you don't specify Incremental as 'yes' then this option has no meaning. HistoryName HistoryName allows you to specify the name of the history file produced by AWFFull. The history file keeps the data for up to 12 months worth of logs, used for generating the main HTML page (index.html). The default is a file named awffull.hist, stored in the specified output directory. If you specify just the filename (without a path), it will be kept in the specified output directory. Otherwise, the path is relative to the output directory, unless absolute (leading /). Analysis Options These are the basic analysis options that one can and should modify to start fine tuning AWFFull against a given website. PageType PageType lets you tell AWFFull what types of URL's you consider a 'page'. Most people consider html and cgi documents as pages, while not images and audio files. If no types are specified, defaults will be used ('htm', 'html', 'cgi' and HTMLExtension if different for web logs, 'txt' for ftp logs). Putting the more likely page types first in the list should increase the speed of a run. Do Not Use Wildcards Here. It will not work. NotPageType NotPageType is the direct and incompatible opposite of PageType. You can use one set or the other, but not both. PageType specifies what *is* a Page, NotPageType specifies what *isn't*, and hence by implication, everything else is a page. Neither method is more or lessor correct than the other. It's more what is more accurate for *your* site. Do not add the "." or use any wildcards. As a general rule. There are some assumed internal optimisations that may otherwise break. Those who understand pcre's would do well to examine the source of parser.c if they wish to extract greater flexibility from the below. FoldSeqErr FoldSeqErr forces AWFFull to ignore sequence errors. This is useful for Netscape and other web servers that cache the writing of log records and do not guarantee that they will be in chronological order. The use of the FoldSeqErr option will cause out of sequence log records to be treated as if they had the same time stamp as the last valid record. The default action is to ignore out of sequence log records. SearchEngine The SearchEngine keywords allow specification of search engines and their query strings on the URL. These are used to locate and report what search strings are used to find your site. The first word is a substring to match in the referrer field that identifies the search engine, and the second is the URL variable used by that search engine to define it's search terms. VisitTimeout VisitTimeout allows you to set the default timeout for a visit (sometimes called a 'session'). The default is 30 minutes, which should be fine for most sites. Visits are determined by looking at the time of the current request, and the time of the last request from the site. If the time difference is greater than the VisitTimeout value, it is considered a new visit, and visit totals are incremented. Value is the number of seconds to timeout (default=1800=30min) TrackPartialRequests TrackPartialRequests is used to track 206 codes. This gives two additional columns in the Top URLs tables. The first to "Hits" counts the number of partial requests The second to "Volume" counts the volume in partial requests This option is more of use to those with lots of PDF's. MangleAgents The MangleAgents allows you to specify how much, if any, AWFFull should mangle user agent names. This allows several levels of detail to be produced when reporting user agent statistics. There are six levels that can be specified, which define different levels of detail suppression. Level 5 shows only the browser name (MSIE or Mozilla) and the major version number. Level 4 adds the minor version number (single decimal place). Level 3 displays the minor version to two decimal places. Level 2 will add any sub-level designation (such as Mozilla/3.01Gold or MSIE 3.0b). Level 1 will attempt to also add the system type if it is specified. The default Level 0 displays the full user agent field without modification and produces the greatest amount of detail. User agent names that can't be mangled will be left unmodified. AssignToCountry AssignToCountry allows a form of override to force given domains to a specified country. Use the standard 2 letter country codes. Can also use org, com, net and so on, if more appropriate. With judicious use of AllSites, GroupSite and 'whois', this can cover the majority of your users without too much effort. IndexAlias AWFFull normally strips the string 'index.' off the end of URL's in order to consolidate URL totals. For example, the URL /somedir/index.html is turned into /somedir/ which is really the same URL. This option allows you to specify additional strings to treat in the same way. You don't need to specify 'index.' as it is always scanned for by AWFFull, this option is just to specify _additional_ strings if needed. If you don't need any, don't specify any as each string will be scanned for in EVERY log record... A bunch of them will degrade performance. Also, the string is scanned for anywhere in the URL, so a string of 'home' would turn the URL /somedir/homepages/brad/home.html into just /somedir/ which is probably not what was intended. IgnoreIndexAlias The opposite (in a way) of IndexAlias is IgnoreIndexAlias. This will STOP any URL variable stripping, as well as ignoring the default "index." setting, or any that you set above. Ignore* Options The Ignore* keywords allow you to completely ignore, or filter away, log records based on hostname, URL, user agent, referrer or user name. Use the same syntax as the Hide* keywords, where the value can have a leading or trailing wildcard '*'. IgnoreURL Filters out traffic accessing certain URLs. eg You may wish to avoid seeing traffic that accesses administration functions, thus "IgnoreURL /admin*". URLs are case sensitive. IgnoreSite Ignore sites that visit this website. Ignore by what is presented to awffull - name or IP Address. Sites are lowercased prior to filtering, so if Ignore'ing by name, do use a lowercased Value. IgnoreReferrer Ignore specified referrers. Very useful for filtering away SPAM Referrers. Referrers are partially case sensitive. \o/ The host portion is lowercased; the URI is case sensitive. IgnoreUser Ignore specified users. User names are lowercased prior to filtering. IgnoreAgent Agents are case sensitive. Include* Options The Include* keywords allow you to force the inclusion of log records based on hostname, URL, user agent, referrer or user name. The Include* keywords take precedence over the Ignore* keywords. Note: Using Ignore/Include combinations to selectively process parts of a web site is _extremely inefficient_!!! Avoid doing so if possible ie: grep or gawk the records to a separate file if you really want that kind of report. IncludeURL IncludeSite IncludeReferrer IncludeUser IncludeAgent Segmenting Options Segmenting is a bit like the Ignore* and Include* keywords. Where it differs is in "remembering". Such that, as a session (or visit) moves away from the original entry condition, that session is still tracked. So if you segment on a referal from Google, only sessions that were refered to the analysed website, from Google, will be tracked. Even as that same session accesses other pages within the website. eg. Google -> Site Page 1 -> Site Page 2 -> Site Page 3 Whereas Ignore/Include would only filter the first interaction. eg. Google -> Site Page 1 By "session" (or visit) it is meant that the time limitation of a session (typically 30 minutes timeout) will impact. So in the above example from Google, if the last step (from Page 2 to Page 3) occured 31+ minutes after the Page 1 to Page 2 transition, then this final step would NOT be included. The trail would be: Google -> Site Page 1 -> Site Page 2 Please do be aware that currently AWFFull uses IP Addresses to determine the continuation of a given session. This will be most flawed if you have a user population that sits behind corporate firewalls, or ISP Proxies. To mention two major problem areas. Why do Segmenting? http://judah.webanalyticsdemystified.com/2007/11/a-few-tips-on-web-analytics-segmentation.html Segment analysis will tell you different things about your audience than you will realize from studying overall population metrics. The goal of segmentation is to maximize future value of that segment by optimizing your marketing mix. With apologies to Judah for mixing his phrase order around. :-) SegCountry Segment by Country: Only track sessions that come from the following countries. This will be determined by: Use of AssignToCountry overrides GeoIP lookups if so configured and enabled Hostname TLD. eg .au The third option is generally going to be the worst for accuracy. eg. We have plenty of Australian IP addresses that otherwise resolve to .com or .net etc. It is strongly advised to enable GeoIP if you wish to use this option. SegReferer Segment by Referer: Only track sessions that originated from the following referers. NOTE!!!! SegReferer only works against the HOST name. Not the full URL. Display Options The Display Options modify the resulting output that AWFFull produces. Things like HTML Headers and Footers to add on every page. These options don't change the numbers that AWFFull will calculate, but may change which ones appear, giving the illusion of a numerical change. ReportTitle ReportTitle is the text to display as the title. The hostname (unless blank) is appended to the end of this string (separated with a space) to generate the final full title string. Default is (for English) Usage Statistics for. HostName HostName defines the hostname for the report. This is used in the title, and is prepended to the URL table items. This allows clicking on URL's in the report to go to the proper location in the event you are running the report on a 'virtual' web server, or for a server different than the one the report resides on. If not specified here, or on the command line, AWFFull will try to get the hostname via a uname system call. If that fails, it will default to localhost. IndexMonths This option controls how many years worth of data to display on the front summary page. In months. eg: Display the last 5 years: 5 x 12 = 60 DailyStats DailyStats allows the daily statistics table to be disabled - not displayed. Values may be yes or no. Default is yes - do display the Daily Statistics table. HourlyStats HourlyGraph and HourlyStats allows the hourly statistics graph and statistics table to be disabled (not displayed). Values may be "yes" or "no". Default is "yes". CSSFilename CSSFilename is used to set the name of the CSS file to use in conjunction with the generated html. An existing file is not overwritten, so feel free to make you own changes to the default file. The default is awffull.css. FlagsLocation FlagsLocation will enable the display of country flag pictures in the country table. The path is that for a webserver, not file system. Can be relative or complete. The trailing slash is not necessary. The default location is not set and hence will not be used. YearlySubtotals YearlySubtotals will display the subtotal for a given year in the main page. This is in addition to the Grand Total of all years. GroupShading The GroupShading allows grouped rows to be shaded in the report. Useful if you have lots of groups and individual records that intermingle in the report, and you want to differentiate the group records a little more. Value can be yes or no, with yes being the default. GroupHighlight GroupHighlight allows the group record to be displayed in BOLD. Can be either yes or no with the default being yes. HTMLExtension HTMLExtension allows you to specify the filename extension to use for generated HTML pages. Normally, this defaults to "html", but can be changed for sites who need it (like for PHP embedded pages). UseHTTPS UseHTTPS should be used if the analysis is being run on a secure server, and links to urls should use https:// instead of the default http://. If you need this, set it to yes. Default is no. This only changes the behaviour of the Top URLs table. Top* The various Top options below define the number of entries for each table. Tables may be disabled by using zero (0) for the value. TopURLs The most accessed URLs or Resources by number of requests (hits). Includes both Pages and Images, for example. Defaults to 30 URLs. TopKURLs The greatest volume generating URLs. Defaults to 10 URL's. TopEntry The most accessed initial URLs within a complete Visit. Will also display Single Access counts, Stickiness ration and Popularity ratio. Defaults to 10 URLs. TopExit The most accessed last URLs within a complete Visit. ie: The last page recorded of a Visit. Also displays the Popularity ratio. Defaults to 10 URLs. Top404Errors The most seen error requests and a corresponding referring URL. Defaults to 0, ie not shown. TopSites Those Sites that have accessed the most Pages. Default is 30 Sites. TopKSites Those Sites that have downloaded the greatest Volume. Default is 10 Sites. TopReferrers Those local and remote URLs that refer the most requests. Default is 30 Referrers. TopSearch Those words and phrases used at remote Search Engines to direct traffic here. Default is 20 Phrases. TopUsers Those logged in users who most use the site. Default is 20 Users. TopAgents The Browser Agents that are busiest against this site. Default is 15 Agents. TopCountries A view of all traffic against this site via country. All* The All* keywords allow the display of all the below measures. If enabled, a separate HTML page will be created, and a link will be added to the bottom of the appropriate "Top" table. There are a couple of conditions for this to occur. First, there must be more items than will fit in the "Top" table (otherwise it would just be duplicating what is already displayed). Second, the listing will only show those items that are normally visible, which means it will not show any hidden items. Grouped entries will be listed first, followed by individual items. The value for these keywords can be either 'yes' or 'no', with the default being 'no'. Please be aware that these pages can be quite large in size, particularly the sites page, and separate pages are generated for each month, which can consume quite a lot of disk space depending on the traffic to your site. AllURLs All accessed URLs AllEntryPages All Pages that initialised a Visit AllExitPages All the last or exit pages in all Visits. All404Errors All ErrorRequests and the corresponding referral URLs. AllSites All remote sites that accessed this website. AllReferrers All local and remote referring URLs AllSearchStr All Remote Search Engine words and Phrases used to refer traffic here. AllUsers All users who logged into this website. AllAgents All Browser Agents used to access this site. Useful for identifying robots. GMTTime GMTTime allows reports to show GMT (UTC) time instead of local time. Default is to display the time the report was generated in the timezone of the local machine, such as EDT or PST. This keyword allows you to have times displayed in UTC instead. Use only if you really have a good reason, since it will probably screw up the reporting periods by however many hours your local time zone is off of GMT. HTMLPre HTMLPre defines HTML code to insert at the very beginning of the file. Default is the DOCTYPE line shown below. Max line length is 80 characters, so use multiple HTMLPre lines if you need more. HTMLHead HTMLHead defines HTML code to insert within the <HEAD></HEAD> block, immediately after the <TITLE> line. Maximum line length is 80 characters, so use multiple lines if needed. HTMLBody HTMLBody defined the HTML code to be inserted, starting with the <BODY> tag. If not specified, the default is shown below. If used, you MUST include your own <BODY> tag as the first line. Maximum line length is 80 char, use multiple lines if needed. HTMLPost HTMLPost defines the HTML code to insert immediately before the first <HR> on the document, which is just after the title and "summary period"-"Generated on:" lines. If anything, this should be used to clean up in case an image was inserted with HTMLBody. As with HTMLHead, you can define as many of these as you want and they will be inserted in the output stream in order of appearance. Max string size is 80 characters. Use multiple lines if you need to. HTMLTail HTMLTail defines the HTML code to insert at the bottom of each HTML document, usually to include a link back to your home page or insert a small graphic. It is inserted as a table data element (ie: <TD> your code here </TD>) and is right aligned with the page. The maximum string size is 80 characters. HTMLEnd HTMLEnd defines the HTML code to add at the very end of the generated files. It defaults to what is shown below. If used, you MUST specify the </BODY> and </HTML> closing tags as the last lines. The maximum string length is 80 characters. Graphing Options As distinct from the general Display Options, the Graphing Options focus on manipulating the various graphs produced. CountryGraph CountryGraph allows the usage by country graph to be disabled. Values can be 'yes' or 'no', default is 'yes'. DailyGraph DailyGraph determines if the daily statistics graph will be displayed or not. Values may be "yes" or "no". Default is "yes" - do display the daily graph. HourlyGraph HourlyGraph determines if the daily statistics graph will be displayed or not. Values may be "yes" or "no". Default is "yes" - do display the hourly graph. TopURLsbyHitsGraph Display a pie chart of the top URLs by HITS TopURLsbyVolGraph Display a pie chart of the top URLs by HITS TopExitPagesGraph Display Top Exit Pages Pie Chart. Values may be hits or visits or "no". Default is "no" hits means order the graph by hits visits means order the graph by visits TopEntryPagesGraph Display Top Entry Pages Pie Chart. Values may be hits or visits or "no". Default is "no" hits means order the graph by hits visits means order the graph by visits TopSitesbyPagesGraph Display a pie chart of the Top Sites by Page Impressions TopSitesbyVolGraph Display a pie chart of the Top Sites by Page Impressions TopAgentsGraph Display a pie chart of the Top User Agents (by pages) GraphLegend GraphLegend allows the color coded legends to be turned on or off in the graphs. The default is for them to be displayed. This only toggles the color coded legends, the other legends are not changed. If you think they are hideous and ugly, say 'no' here :) GraphLines GraphLines allows you to have index lines drawn behind the graphs. Anything other than "no" will enable the lines. Graph*X and Graph*Y The following Graph*X and Graph*Y options are used to modify the sizes of the created charts. The default settings are shown. The defaults are also the minimum settings. #define GRAPH_INDEX_X 512 /* px. Default X size (512) */ #define GRAPH_INDEX_Y 256 /* px. Default Y size (256) */ #define GRAPH_DAILY_X 512 /* px. Daily X size (512) */ #define GRAPH_DAILY_Y 400 /* px. Daily Y size (400) */ #define GRAPH_HOURLY_X 512 /* px. Daily X size (512) */ #define GRAPH_HOURLY_Y 400 /* px. Daily Y size (400) */ #define GRAPH_PIE_X 512 /* px. Pie X size (512) */ #define GRAPH_PIE_Y 300 /* px. Pie Y size (300) */ GraphIndexX The main chart on the front page. Summary of all Months. Default is 512 pixels. GraphIndexY Default is 256 pixels. GraphDailyX The Day by Day Summary graph at the start of each Months Summary. Default is 512 pixels. GraphDailyY Default is 400 pixels. GraphHourlyX The Hourly Average graph within each Months Summary. Default is 512 pixels. GraphHourlyY Default is 400 pixels. GraphPieX All pie charts are the same size. Default is 512 pixels. GraphPieY Default is 300 pixels. Graph and Table Colours The custom bar graph and pie Colours can be overridden with these options. Declare them in the standard hexadecimal way - as per HTML but without the '#'. If none are given, you will get the default AWFFull colors. ColorHit Default value is 00805C (dark green) ColorFile Default value is 0000FF (blue) ColorSite Default value is FF8000 (orange) ColorKbyte Default value is FF0000 (red) ColorPage Default value is 00E0FF (cyan) ColorVisit Default value is FFFF00 (yellow) PieColor1 Default value is 00805C (dark green) PieColor2 Default value is 0000FF (blue) PieColor3 Default value is FF8000 (orange) PieColor4 Default value is FF0000 (red) Group* Options The Group* keywords permit the grouping of similar objects as if they were one. Grouped records are displayed in the Top tables and can optionally be displayed in bold and/or shaded. Groups cannot be hidden, and are not counted in the main totals. The Group* options do not hide the individual items that are members of the Group. If you wish to hide the records that match - so just the grouping record is displayed - follow with an identical Hide* keyword with the same value. Or use the single GroupAndHide* keyword that matches, instead of the Group* and Hide* combination. Group* keywords may have an optional label which will be displayed instead of the keywords value. The label should be separated from the value by at least one white-space character, such as a space or tab. The Hide*, Group* and Ignore* and Include* keywords allow you to change the way Sites, URL's, Referrers, User Agents and User names are manipulated. The Ignore* keywords will cause AWFFull to completely ignore records as if they didn't exist (and thus not counted in the main site totals). The Hide* keywords will prevent things from being displayed in the 'Top' tables, but will still be counted in the main totals. The Group* keywords allow grouping similar objects as if they were one. Grouped records are displayed in the 'Top' tables and can optionally be displayed in BOLD and/or shaded. Groups cannot be hidden, and are not counted in the main totals. The Group* options do not, by default, hide all the items that it matches. If you want to hide the records that match (so just the grouping record is displayed), follow with an identical Hide* keyword with the same value. (see example below) In addition, Group* keywords may have an optional label which will be displayed instead of the keywords value. The label should be separated from the value by at least one 'white-space' character, such as a space or tab. The value can have either a leading or trailing '*' wildcard character. If no wildcard is found, a match can occur anywhere in the string. Given a string www.yourmama.com, the values your, *mama.com and www.your* will all match. GroupURL GroupSite GroupReferrer GroupUser GroupAgent GroupDomains The GroupDomains keyword allows you to group individual host names into their respective domains. The value specifies the level of grouping to perform, and can be thought of as 'the number of dots' that will be displayed. For example, if a visiting host is named cust1.tnt.mia.uu.net, a domain grouping of 1 will result in just "uu.net" being displayed, while a 2 will result in "mia.uu.net". The default value of zero disable this feature. Domains will only be grouped if they do not match any existing "GroupSite" records, which allows overriding this feature with your own if desired. Hide* Options The Hide* keywords will prevent things from being displayed in the 'Top' tables. The hidden items will still be counted in the main totals. HideURL Hide URL matching name. HideSite Hide site matching name. HideReferrer Hide referrer matching name. HideUser HideAgent Hide user agents matching name. HideAllSites HideAllSites allows forcing individual sites to be hidden in the report. This is particularly useful when used in conjunction with the "GroupDomain" feature, but could be useful in other situations as well, such as when you only want to display grouped sites (with the GroupSite keywords...). The value for this keyword can be either 'yes' or 'no', with 'no' the default, allowing individual sites to be displayed. GroupAndHide* Options All the Hide and Group "name" options can be combined in a single config line. eg GroupAndHideURL. If you start using the Group* options you will find that you tend to match every Group* option with a corresponding Hide* option. The GroupAndHide* options simply short circuit this unnecessary duplication. GroupAndHideURL GroupAndHideSite GroupAndHideReferrer GroupAndHideUser GroupAndHideAgent Data Dump Options The Dump* keywords allow the dumping of Sites, URL's, Referrers User Agents, User names and Search strings to separate tab delimited text files, suitable for import into most database or spreadsheet programs. DumpPath DumpPath specifies the path to dump the files. If not specified, it will default to the current output directory. Do not use a trailing slash ('/'). DumpHeader The DumpHeader keyword specifies if a header record should be written to the file. A header record is the first record of the file, and contains the labels for each field written. Normally, files that are intended to be imported into a database system will not need a header record, while spreadsheets usually do. Value can be either 'yes' or 'no', with 'no' being the default. DumpExtension DumpExtension allow you to specify the dump filename extension to use. The default is "tab", but some programs are picky about the filenames they use, so you may change it here (for example, some people may prefer to use "csv"). DumpURLs DumpEntryPages DumpExitPages DumpSites DumpReferrers DumpSearchStr DumpUsers DumpAgents DumpCountries Examples Sample Extract of a configuration file: # The 'auto' value means that AWFFull will try and work out what log format # you are sending to it. If no joy, AWFFull will immediately exit. LogType auto # OutputDir is where you want to put the output files. This should # should be a full path name, however relative ones might work as well. # If no output directory is specified, the current directory will be used. OutputDir . Minimal configuration file: # Sample *MINIMAL* AWFFull configuration file # # The below settings are the only ones you *really* need to worry about # when configuring AWFFull. See the sample.conf file for all options if # the below only serves to whet your appetite. # # See awfful(1) or sample.conf for full explanations. # We can do a little bit each day, or hour... Incremental yes # Your server name to display HostName www.my_example.site ##--------------------------- # Use PageType OR NotPageType # I personally prefer NotPageType - YMMV! PageType htm PageType html PageType php #PageType pl #PageType cfm #PageType pdf #PageType txt #PageType cgi ### OR! --------------------- #NotPageType gif #NotPageType css #NotPageType js #NotPageType jpg #NotPageType ico #NotPageType png ##--------------------------- # Should always fold in Sequence Errors. Logs can be messy... FoldSeqErr yes # If you want to see the country flags, uncomment the following. # This is the, possibly relative, URL where the flag flies are located. #FlagsLocation flags See Also awffull(1) Bugs None currently known. YMMV.... Report bugs to https://bugs.launchpad.net/awffull, or use the email discussion list: awffull@stedee.id.au Notes In case it is not obvious: AWFFull is a play/pun on the word awful, and is pronounced the same way. Yes it was deliberate. References [1] Web Site Measurement Hacks. Eric T. Peterson (and others). O'Reilly. ISBN 0-596-00988-7. awffull-3.10.2/doc/awffull.10000644000076400007640000004461111120616405012457 00000000000000'\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH awffull 1 2008-Dec-13 "" "" .SH NAME AWFFull \- A Webalizer Fork, Full o' features .SH SYNOPSIS 'nh .fi .ad l \fBawffull\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [...] [log-file] 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION AWFFull is a web server log analysis program based on The Webalizer. AWFFull produces usage statistics in HTML format for viewing with a browser. The results are presented in both columnar and graphical format, which facilitates interpretation. Yearly, monthly, daily and hourly usage statistics are presented, along with the ability to display usage by site, URL, referrer, user agent (browser), user name, search strings, entry/exit pages, and country (some information may not be available if not present in the log file being processed). .PP AWFFull supports the following log formats shown in the following variable list: .TP CLF (common log format) log files .TP Combined log formats as defined by NCSA and others, and variations of these which it attempts to handle intelligently .TP xferlog wu-ftpd formatted log files allowing analysis of ftp servers, and squid proxy logs. .RS \fBNote\fR .PP Logs may also be compressed, via \fBgzip\fR. If a compressed log file is detected, it will be automatically uncompressed while it is read. Compressed logs must have the standard \fBgzip\fR extension of \*(T<\fI\fI\&.gz\fR\fR\*(T>. .RE .PP This documentation applies to AWFFull Version 3.8.2 .SH "CHANGES FROM WEBALIZER" AWFFull is based on The Webalizer code and has a number of large and small changes. These include: .TP 0.2i \(bu Beyond the raw statistics: Making use of published formulae to provide additional insights into site usage .TP 0.2i \(bu GeoIP IP Address look-ups for more accurate country detection .TP 0.2i \(bu Resizable graphs .TP 0.2i \(bu Integration with GNU gettext allowing for ease of translations. Currently 32 languages are supported. .TP 0.2i \(bu Display more than 12 months of the site history on the front page. .TP 0.2i \(bu Additional page count tracking and sort by same. .TP 0.2i \(bu Some minor visual tweaks, including Geolizer's use of Kb, Mb etc for Volumes .TP 0.2i \(bu Additional Pie Charts for URL counts, Entry and Exit Pages, and Sites .TP 0.2i \(bu Horizontal lines on graphs that are more sensible and easier to read .TP 0.2i \(bu User Agent and Referral tracking is now calculated via PAGES not HITS .TP 0.2i \(bu GNU style long command line options are now supported (eg \*(T<\fB\-\-help\fR\*(T>) .TP 0.2i \(bu Can choose what is a page by excluding \(oqwhat isn't\(cq vs the original \(oqwhat is\(cq method .TP 0.2i \(bu Requests to the site being analysed are displayed with the matching referring URL .TP 0.2i \(bu A Table of 404 Errors, and the referring URL can be generated .TP 0.2i \(bu An external CSS file can be used with the generated html .TP 0.2i \(bu Manual performance optimisation of the config file is now easier with a post analysis summary output .TP 0.2i \(bu Specified IP Addresses can be assigned to a given country .TP 0.2i \(bu Additional Dump options for detailed analysis with other tools .TP 0.2i \(bu Lotus Domino v6 logs are now detected and processed .PP Additional changes and improvements are planned and undergoing implementation. See the TODO file for details. .SH "NEW REPORT MEASUREMENTS" With version 3.8.1 of AWFFull, several new measured results have been added to the detailed report monthly page. .TP Single Access Single Access Pages - the only page seen within a given visit .TP Stickiness How useful a given entry page is to draw Visitors deeper into your site .TP Popularity The Ratio of Page Entries to Page Exits .PP These metrics can help towards improving insight in the usage of the processed web site. And hence allow the site owner to make positive change to make the site more useful to site visitors. All three metrics appear in the \(oqEntry Pages\(cq Report. \(oqPopularity\(cq is also on the \(oqExit Pages\(cq Report. Single Access More completely: \(oqSingle Access Pages\(cq. This is a report on the number of times that a given page was the only page viewed within a Visit. Or in English, Someone came to your website. They only viewed one page. The number is the cumulative count of people who did this for that particular page. Why is this useful? Identifying those entry pages that don't draw visitors deeper into your site. Or seeing entry pages that shouldn't be entry pages. It's also a reality check against the next two values which are calculated from this number. The number generated should be a subset of the \(oqEntry Page Views\(cq and/or \(oqExit Page Views\(cq metric. If it isn't? Let me know, we have a bug. :-) Stickiness Is calculated as 1 - (Single Access / Entry Page Views) expressed as a percentage. In essence Stickiness describes how useful a given entry page is to draw Visitors deeper into your site. The stickier the page, the more folk are caught by it. :-) The closer to 100% the better. Generally. Certain pages within YOUR website may not make sense to have a high stickiness or even > 5%. This measurement is a clue to understanding how your site is used, it is not a rule. How is this useful? How and where are people entering your web site. Does that make sense? Should it be here or there? What can you change to fix this and hence improve their use of your website. Popularity Popularity is the Ratio of Page Entries to Page Exits. o If it equals 1.0? Then the number of visitors to your site who started with that page, equals the number who left at that page. o If greater then 1.0, then more people entered here then left. o If less then 0? More people left from here then entered. I personally find this metric one of the more useful "At a Glance: How are Pages Performing" metrics. One of the difficulties with using this particular metric is that certain numbers will NOT make sense for YOUR site. In that a natural exit page would expect to have a very low Popularity. It's an exit page, not an entry page. So if an exit page has a high popularity, then you have a real problem. Likewise, a low Popularity for an entry page is unlikely to be a Good Thing(tm). .PP "Where & Why?" All three of these metrics are covered very nicely in Hack #58 from "Web Site Measurement Hacks" [1]. Which is where, credit where credit due, the inspiration to add these metrics came from. .SH "RUNNING AWFFULL" AWFFull is designed to be run from a Unix command line prompt or as a crond(8) job. There is no need to run with super-user privleges, and indeed, is preferable NOT to. .PP Once executed, the general flow of the program is: .PP A default configuration file is scanned for, \*(T<\fI/usr/local/etc/awffull.conf\fR\*(T> and, if found, is used. .PP Any command line arguments given to the program are parsed. This may include the specification of one or more configuration files, which are processed at the time it is encountered. .PP It can be useful to have multiple config files. A master used for multiple sites, and individualised config files. Do be aware that last option set wins. So last config file, or if after a config file, command line options. Useful if you desire to send the output to an alternate directory. .PP If a log file was specified, it is opened and made ready for processing. If no log file was given, STDIN is used for input. If the log filename '-' is specified, STDIN will be forced. .PP If an output directory was specified, AWFFull changes to that directory in preparation for generating output. If no output directory was given, the current directory is used. .PP If no hostname was given, the program attempts to get the hostname using a uname(2) system call. If that fails, localhost is used. .PP A history file is searched for in the current directory (output directory) and read if found. This file keeps totals for previous months, which is used in the main index.html HTML document. Note: The file location can now be specified with the HistoryName configuration option. .PP If incremental processing was specified, a data file is searched for and loaded if found, containing the 'internal state' data of the program at the end of a previous run. Note: The file location can now be specified with the IncrementalName configuration option. .PP Main processing begins on the log file. If the log spans multiple months, a separate HTML document is created for each month. After main processing, the main index.html page is created, which has totals by month and links to each months HTML document. .PP A new history file is saved to disk, which includes totals generated by AWFFull during the current run. .PP If incremental processing was specified, a data file is written that contains the 'internal state' data at the end of this run. .SH "INCREMENTAL PROCESSING" Version 1.2x of The Webalizer added incremental run capability. Simply put, this allows processing large log files by breaking them up into smaller pieces, and processing these pieces instead. What this means in real terms is that you can now rotate your log files as often as you want, and still be able to produce monthly usage statistics without the loss of any detail. Basically, AWFFull saves and restores all internal data in a file named \*(T<\fIawffull.current\fR\*(T>. This allows the program to 'start where it left off' so to speak, and allows the preservation of detail from one run to the next. The data file is placed in the current output directory, and is a plain ASCII text file that can be viewed with any standard text editor. It's location and name may be changed using the IncrementalName configuration keyword. .PP Some special precautions need to be taken when using the incremental run capability of AWFFull. Configuration options should not be changed between runs, as that could cause corruption of the internal data stored. For example, changing the MangleAgents level will cause different representations of user agents to be stored, producing invalid results in the user agents section of the report. If you need to change configuration options, do it at the end of the month after normal processing of the previous month and before processing the current month. You may also want to delete the awffull.current file as well. .PP AWFFull also attempts to prevent data duplication by keeping track of the timestamp of the last record processed. This timestamp is then compared to current records being processed, and any records that were logged previous to that timestamp are ignored. This, in theory, should allow you to re-process logs that have already been processed, or process logs that contain a mix of processed/not yet processed records, and not produce duplication of statistics. .PP The only time this may break is if you have duplicate timestamps in two separate log files. Any records in the second log file that do have the same timestamp as the last record in the previous log file processed, will be discarded as if they had already been processed. There are lots of ways to prevent this however, for example, stopping the web server before rotating logs will prevent this situation, or using a tool such as cronolog (\(lahttp://cronolog.org/\(ra). This setup also necessitates that you always process logs in chronological order, otherwise data loss will occur as a result of the timestamp compare. .SH "REVERSE DNS LOOKUPS" AWFFull no longer supports DNS lookups. Please use an external program such as DNShistory or DNSTran instead. .TP 0.2i \(bu \(lahttp://www.summary.net/soft/dnstran.html\(ra .TP 0.2i \(bu \(lahttp://www.stedee.id.au/dnshistory\(ra .PP With version 3.7.1 of AWFFull, GeoIP capability can be used for improved country detection. .SH "COMMAND LINE OPTIONS" AWFFull supports many different configuration options that will alter the way the program behaves and generates output. Most of these can be specified on the command line, while some can only be specified in a configuration file. The command line options are listed below, with references to the corresponding configuration file keywords. See also awffull.conf(5). General Options .TP \*(T<\fB\-h\fR\*(T>, \*(T<\fB\-\-help\fR\*(T> Display all available command line options and exit program .TP \*(T<\fB\-V\fR\*(T>, \*(T<\fB\-\-version\fR\*(T> Display program version and exit program .TP -v --verbose \*(T<\fBVerbosity\fR\*(T> Display debugging information for errors and warnings. Multiple v's will increase the amount of information displayed. .TP --match_counts Display optimisation useful information pertaining to the number of matches against various Group, Hide and Ignore options. .TP -i --ignore_history \*(T<\fBIgnoreHist\fR\*(T> Ignore history. USE WITH CAUTION. This will cause AWFFull to ignore any previous monthly history file only. Incremental data (if present) is still processed. .TP -p --preserve_state \*(T<\fBIncremental\fR\*(T> Preserve internal data between runs. .TP -T --timing \*(T<\fBTimeMe\fR\*(T>. Force display of timing information at end of processing. .TP -c --config=FILE Use configuration file FILE .TP -n NAME \*(T<\fBHostName\fR\*(T>. Use the hostname NAME. .TP -o --output=DIR \*(T<\fBOutputDir\fR\*(T>. Use output directory DIR. .TP -t NAME \*(T<\fBReportTitle\fR\*(T>. Use NAME for report title. .TP F --logtype=TYPE \*(T<\fBLogType\fR\*(T>. Specify log type to be processed. Value can be one of: auto, clf, combined, domino, ftp or squid format. If not specified, will default to auto format. FTP logs must be in standard wu-ftpd xferlog format. A value of \(oqauto\(cq states that the log format automatically ascertained. .TP -f --fold \*(T<\fBFoldSeqErr\fR\*(T>. Fold out of sequence log records back into analysis, by treating as if they were the same date/time as the last good record. Normally, out of sequence log records are simply ignored. .TP -Y \*(T<\fBCountryGraph\fR\*(T>. Suppress country graph. .TP -G \*(T<\fBHourlyGraph\fR\*(T>. Suppress hourly graph. .TP -x NAME \*(T<\fBHTMLExtension\fR\*(T>. Defines the HTML file extension to use on the created report files. If not specified, defaults to html. Do not include the leading period. .TP -H \*(T<\fBHourlyStats\fR\*(T>. Suppress hourly statistics. .TP -L \*(T<\fBGraphLegend\fR\*(T>. Suppress color coded graph legends. .TP -l NUM \*(T<\fBGraphLines\fR\*(T>. Use background lines. The number of lines and where to place are automatically calculated. For backwards compatibility, any number > 0 enables. Use zero ('0') to disable the lines. .TP -P NAME" \*(T<\fBPageType\fR\*(T>. Specify file extensions that are considered pages. Sometimes referred to as pageviews. .TP -m NUM \*(T<\fBVisitTimeout\fR\*(T>. Specify the Visit timeout period. Specified in number of seconds. Default is 1800 seconds (30 minutes). Sometimes referred to as sessions. .TP -I NAME \*(T<\fBIndexAlias\fR\*(T>. Use the filename name as an additional alias for index. .TP -M NUM \*(T<\fBMangleAgents\fR\*(T>. Mangle user agent names according to the mangle level specified by num. Mangle levels are: 5 - Browser name and major version 4 - Browser name, major and minor version 3 - Browser name, major version, minor version to two decimal places 2 - Browser name, major and minor versions and sub-version 1 - Browser name, version and machine type if possible 0 - All information (left unchanged). .TP -g NUM GroupDomains. Automatically group sites by domain. The grouping level specified by num can be thought of as 'the number of dots' to display in the grouping. The default value of 0 disables any domain grouping. .PP Hide Options .TP -a NAME \*(T<\fBHideAgent\fR\*(T>. Hide user agents matching name. .TP -r NAME \*(T<\fBHideReferrer\fR\*(T>. Hide referrer matching name. .TP -s NAME \*(T<\fBHideSite\fR\*(T>. Hide site matching name. .TP -X NAME \*(T<\fBHideAllSites\fR\*(T>. Hide all individual sites (only display groups). .TP -u NAME \*(T<\fBHideURL\fR\*(T>. Hide URL matching name. .PP Table size options .TP -A --top_agents=NUM \*(T<\fBTopAgents\fR\*(T>. Display the top num user agents table. .TP -R --top_refers=NUM \*(T<\fBTopReferrers\fR\*(T>. Display the top num referrers table. .TP -S --top_sites=NUM \*(T<\fBTopSites\fR\*(T>. Display the top num sites table. .TP -U --top_urls=NUM \*(T<\fBTopURLs\fR\*(T>. Display the top num URL's table. .TP -C --top_countries=NUM \*(T<\fBTopCountries\fR\*(T>. Display the top num countries table. .TP -e --top_entry=NUM \*(T<\fBTopEntry\fR\*(T>. Display the top num entry pages table. .TP -E --top_exit=NUM \*(T<\fBTopExit\fR\*(T>. Display the top num exit pages table. .PP Other Options .TP --use_geoip Enables the use of the Maxmind GeoIP capability for more accurate detection of countries. \fINOTE! Do not enable GeoIP if you analyse files that have had the IP Address translated to a Fully Qualified Host Name. Use either raw IP Addresses and GeoIP, or Names and disable GeoIP. ie. Don't use GeoIP AND DNShistory.\fR .TP --match_counts Display the various Group/Hide etc Match Counts. This option is ideal for optimisation of the awffull.conf file. Just be careful with optimising Agents in particular, as the order is typically important. .SH "CONFIGURATION FILES" See the awffull.conf(5) man page for complete details of all configuration options. .PP Configuration files are standard ASCII(7) text files that may be created or edited using any standard editor. .PP Blank lines and lines that begin with a pound sign ('#') are ignored. .PP Any other lines are considered to be configuration lines, and have the form \(oqKeyword Value\(cq, where the \(oqKeyword\(cq is one of the currently available configuration keywords (see awffull.conf(5)), and \(oqValue\(cq is the value to assign to that particular option. .PP Any text found after the keyword up to the end of the line is considered the keyword's value, so you should not include anything after the actual value on the line that is not actually part of the value being assigned. The file \*(T<\fIsample.conf\fR\*(T> provided with the distribution contains lots of useful documentation and examples as well. .PP Certain "Keywords" will accept a 2nd value. In those situations, the first value may be enclosed in double quotes (") to allow for whitespace. .SH "SEE ALSO" awffull.conf(5) .SH BUGS None currently known. YMMV.... .PP Report bugs to \(lahttps://bugs.launchpad.net/awffull\(ra, or use the email discussion list: <\*(T> .SH NOTES In case it is not obvious: AWFFull is a play/pun on the word \(oqawful\(cq, and is pronounced the same way. Yes it was deliberate. .SH REFERENCES [1] Web Site Measurement Hacks. Eric T. Peterson (and others). O'Reilly. ISBN 0-596-00988-7. .PP awffull-3.10.2/doc/awffull.conf.50000644000076400007640000010433211120616405013404 00000000000000'\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH awffull.conf 5 2008-Dec-13 "" "" .SH NAME AWFFull \- A Webalizer Fork, Full o' features .SH DESCRIPTION awffull.conf is the configuration file for awffull(1). awffull.conf is a standard ASCII(7) text files that may be created or edited using any standard editor. .PP Blank lines and lines that begin with a pound sign ('#') are ignored. .PP Any other lines are considered to be configuration lines, and have the form \(oqKeyword Value\(cq, where the \(oqKeyword\(cq is one of the currently available configuration keywords, and \(oqValue\(cq is the value to assign to that particular option. .PP Any text found after the keyword up to the end of the line is considered the keyword's value, so you should not include anything after the actual value on the line that is not actually part of the value being assigned. The file \*(T<\fIsample.conf\fR\*(T> provided with the distribution contains lots of useful documentation and examples as well. .PP Some \(oqKeywords\(cq will accept a 2^nd value. In those situations, the first value may be enclosed in double quotes (") to allow for whitespace. .PP Keywords are Case Insensitive. Values are Case Sensitive, with some gotchas: See Ignore* for details. .SH WILDCARDS Wildcards within AWFFull are a little non standard and may cause some confusion. .PP Wildcards are only valid within the Value of certain keywords .PP A Value can have either a leading or trailing '*' to signify a wildcard character. If no wildcard is found, a match can occur anywhere in the string. Given a string \(oqwww.yourmama.com\(cq, the values \(oqyour\(cq, \(oq*mama.com\(cq and \(oqwww.your*\(cq will all match. .PP Thus the use of the wildcard signifies that the other end of the Value is anchored at the Beginning or End of a field to be searched against. .PP eg. A Value of \(oqBot*\(cq implies that the field (probably UserAgent in this case) MUST start with the letters Bot. Or in the case of a Hostname \(oq*.gov.au\(cq implies a match ONLY against Australian Government hostnames. .SH "RUN OPTIONS" The Run Options are the generic ones that tell AWFFull where stuff is and how to generally operate. Some of these can modify the results that AWFFull will produce. .TP OutputDir OutputDir is where you want to put the output files. This should should be a full path name, however relative ones might work as well. If no output directory is specified, the current directory will be used. .TP LogFile LogFile defines the web server log file to use. If not specified here or on on the command line, input will default to STDIN. If the log filename ends in '.gz' (ie: a gzip compressed file), it will be decompressed on the fly as it is being read. .TP LogType LogType defines the log type being processed. Normally, AWFFull expects a CLF or Combined web server log as input. Using this option, you can process ftp logs as well (\*(T<\fIxferlog\fR\*(T> as produced by wu-ftpd and others), or Squid native logs. Values can be 'auto' \&'clf', 'combined', 'ftp', 'domino' or 'squid', with 'auto' the default. The 'auto' value means that AWFFull will try and work out what log format you are sending to it. If no joy, AWFFull will immediately exit. .TP GeoIP GeoIP enables or disables the use of the GeoIP capability for more accurate detection of countries. Default is \(oqno\(cq. NOTE! Do not enable GeoIP if you analyse files that have had the IP Address translated to a Fully Qualified Host Name. Use either raw IP Addresses and GeoIP, or Names and disable GeoIP. ie. Don't use GeoIP AND DNShistory. .TP GeoIPDatabase GeoIPDatabase is the location of the GeoIP database file. Default is \*(T<\fI/usr/local/share/GeoIP/GeoIP.dat\fR\*(T>, which is where a default GeoIP install will put it. Note that the database is updated monthly. For the details see: \(lahttp://www.maxmind.com/app/geoip_country\(ra .TP Incremental Incremental processing allows multiple partial log files to be used instead of one huge one. Useful for large sites that have to rotate their log files more than once a month. AWFFull will save its internal state before exiting, and restore it the next time run, in order to continue processing where it left off. This mode also causes AWFFull to scan for and ignore duplicate records (records already processed by a previous run). See the \*(T<\fIREADME\fR\*(T> file for additional information. The value may be 'yes' or 'no', with a default of 'no'. The file \*(T<\fIawffull.current\fR\*(T> is used to store the current state data, and is located in the output directory of the program (unless changed with the IncrementalName option below). Please read at least the section on Incremental processing in the \*(T<\fIREADME\fR\*(T> file before you enable this option. .TP TimeMe TimeMe allows you to force the display of timing information at the end of processing. A value of 'yes' will force the timing information to be displayed. A value of 'no' has no effect. .TP IgnoreHist IgnoreHist should not be used in a standard configuration, but it is here because it is useful in certain analysis situations. If the history file is ignored, the main \(oq\*(T<\fIindex.html\fR\*(T>\(cq file will only report on the current log files contents. Incremental data (if present) is still processed. Useful when you want to reproduce the reports from scratch, for example. USE WITH CAUTION! Valid values are \(oqyes\(cq or \(oqno\(cq. Default is \(oqno\(cq. .TP IncrementalName IncrementalName allows you to specify the filename for saving the incremental data in. It is similar to the HistoryName option where the name is relative to the specified output directory, unless an absolute filename is specified. The default is a file named \(oq\*(T<\fIawffull.current\fR\*(T>\(cq kept in the normal output directory. If you don't specify Incremental as 'yes' then this option has no meaning. .TP HistoryName HistoryName allows you to specify the name of the history file produced by AWFFull. The history file keeps the data for up to 12 months worth of logs, used for generating the main HTML page (\*(T<\fIindex.html\fR\*(T>). The default is a file named \*(T<\fIawffull.hist\fR\*(T>, stored in the specified output directory. If you specify just the filename (without a path), it will be kept in the specified output directory. Otherwise, the path is relative to the output directory, unless absolute (leading /). .SH "ANALYSIS OPTIONS" These are the basic analysis options that one can and should modify to start fine tuning AWFFull against a given website. .TP PageType PageType lets you tell AWFFull what types of URL's you consider a 'page'. Most people consider html and cgi documents as pages, while not images and audio files. If no types are specified, defaults will be used ('htm', 'html', 'cgi' and HTMLExtension if different for web logs, 'txt' for ftp logs). Putting the more likely page types first in the list should increase the speed of a run. Do Not Use Wildcards Here. It will not work. .TP NotPageType NotPageType is the direct and incompatible opposite of PageType. You can use one set or the other, but not both. PageType specifies what *is* a Page, NotPageType specifies what *isn't*, and hence by implication, everything else is a page. Neither method is more or lessor correct than the other. It's more what is more accurate for *your* site. Do not add the "." or use any wildcards. As a general rule. There are some assumed internal optimisations that may otherwise break. Those who understand pcre's would do well to examine the source of parser.c if they wish to extract greater flexibility from the below. .TP FoldSeqErr FoldSeqErr forces AWFFull to ignore sequence errors. This is useful for Netscape and other web servers that cache the writing of log records and do not guarantee that they will be in chronological order. The use of the FoldSeqErr option will cause out of sequence log records to be treated as if they had the same time stamp as the last valid record. The default action is to ignore out of sequence log records. .TP SearchEngine The SearchEngine keywords allow specification of search engines and their query strings on the URL. These are used to locate and report what search strings are used to find your site. The first word is a substring to match in the referrer field that identifies the search engine, and the second is the URL variable used by that search engine to define it's search terms. .TP VisitTimeout VisitTimeout allows you to set the default timeout for a visit (sometimes called a 'session'). The default is 30 minutes, which should be fine for most sites. Visits are determined by looking at the time of the current request, and the time of the last request from the site. If the time difference is greater than the VisitTimeout value, it is considered a new visit, and visit totals are incremented. Value is the number of seconds to timeout (default=1800=30min) .TP TrackPartialRequests TrackPartialRequests is used to track 206 codes. This gives two additional columns in the Top URLs tables. The first to "Hits" counts the number of partial requests The second to "Volume" counts the volume in partial requests This option is more of use to those with lots of PDF's. .TP MangleAgents The MangleAgents allows you to specify how much, if any, AWFFull should mangle user agent names. This allows several levels of detail to be produced when reporting user agent statistics. There are six levels that can be specified, which define different levels of detail suppression. Level 5 shows only the browser name (MSIE or Mozilla) and the major version number. Level 4 adds the minor version number (single decimal place). Level 3 displays the minor version to two decimal places. Level 2 will add any sub-level designation (such as Mozilla/3.01Gold or MSIE 3.0b). Level 1 will attempt to also add the system type if it is specified. The default Level 0 displays the full user agent field without modification and produces the greatest amount of detail. User agent names that can't be mangled will be left unmodified. .TP AssignToCountry AssignToCountry allows a form of override to force given domains to a specified country. Use the standard 2 letter country codes. Can also use org, com, net and so on, if more appropriate. With judicious use of AllSites, GroupSite and 'whois', this can cover the majority of your users without too much effort. .TP IndexAlias AWFFull normally strips the string 'index.' off the end of URL's in order to consolidate URL totals. For example, the URL /somedir/index.html is turned into /somedir/ which is really the same URL. This option allows you to specify additional strings to treat in the same way. You don't need to specify 'index.' as it is always scanned for by AWFFull, this option is just to specify _additional_ strings if needed. If you don't need any, don't specify any as each string will be scanned for in EVERY log record... A bunch of them will degrade performance. Also, the string is scanned for anywhere in the URL, so a string of 'home' would turn the URL /somedir/homepages/brad/home.html into just /somedir/ which is probably not what was intended. .TP IgnoreIndexAlias The opposite (in a way) of IndexAlias is IgnoreIndexAlias. This will STOP any URL variable stripping, as well as ignoring the default "index." setting, or any that you set above. .SH "IGNORE* OPTIONS" The Ignore* keywords allow you to completely ignore, or filter away, log records based on hostname, URL, user agent, referrer or user name. Use the same syntax as the Hide* keywords, where the value can have a leading or trailing wildcard '*'. .TP IgnoreURL Filters out traffic accessing certain URLs. eg You may wish to avoid seeing traffic that accesses administration functions, thus "IgnoreURL /admin*". URLs are case sensitive. .TP IgnoreSite Ignore sites that visit this website. Ignore by what is presented to awffull - name or IP Address. Sites are lowercased prior to filtering, so if Ignore'ing by name, do use a lowercased Value. .TP IgnoreReferrer Ignore specified referrers. Very useful for filtering away SPAM Referrers. Referrers are partially case sensitive. \eo/ The host portion is lowercased; the URI is case sensitive. .TP IgnoreUser Ignore specified users. User names are lowercased prior to filtering. .TP IgnoreAgent Agents are case sensitive. .SH "INCLUDE* OPTIONS" The Include* keywords allow you to force the inclusion of log records based on hostname, URL, user agent, referrer or user name. The Include* keywords take precedence over the Ignore* keywords. .PP Note: Using Ignore/Include combinations to selectively process parts of a web site is _extremely inefficient_!!! Avoid doing so if possible ie: grep or gawk the records to a separate file if you really want that kind of report. .TP IncludeURL .TP IncludeSite .TP IncludeReferrer .TP IncludeUser .TP IncludeAgent .SH "SEGMENTING OPTIONS" Segmenting is a bit like the Ignore* and Include* keywords. Where it differs is in "remembering". Such that, as a \(oqsession\(cq (or \(oqvisit\(cq) moves away from the original entry condition, that session is still tracked. So if you segment on a referal from Google, only sessions that were refered to the analysed website, from Google, will be tracked. Even as that same session accesses other pages within the website. .PP eg. Google -> Site Page 1 -> Site Page 2 -> Site Page 3 .PP Whereas Ignore/Include would only filter the first interaction. eg. Google -> Site Page 1 .PP By "session" (or \(oqvisit\(cq) it is meant that the time limitation of a session (typically 30 minutes timeout) will impact. So in the above example from Google, if the last step (from Page 2 to Page 3) occured 31+ minutes after the Page 1 to Page 2 transition, then this final step would NOT be included. The trail would be: .PP Google -> Site Page 1 -> Site Page 2 .PP Please do be aware that currently AWFFull uses IP Addresses to determine the continuation of a given session. This will be most flawed if you have a user population that sits behind corporate firewalls, or ISP Proxies. To mention two major problem areas. Why do Segmenting? \(lahttp://judah.webanalyticsdemystified.com/2007/11/a-few-tips-on-web-analytics-segmentation.html\(ra .PP \(oqSegment analysis will tell you different things about your audience than you will realize from studying overall population metrics.\(cq .PP \(oqThe goal of segmentation is to maximize future value of that segment by optimizing your marketing mix.\(cq .PP With apologies to Judah for mixing his phrase order around. :-) .TP SegCountry Segment by Country: Only track sessions that come from the following countries. This will be determined by: .RS .TP 0.4i 1. Use of AssignToCountry overrides .TP 0.4i 2. GeoIP lookups if so configured and enabled .TP 0.4i 3. Hostname TLD. eg .au .RE The third option is generally going to be the worst for accuracy. eg. We have plenty of Australian IP addresses that otherwise resolve to .com or .net etc. It is strongly advised to enable GeoIP if you wish to use this option. .TP SegReferer Segment by Referer: Only track sessions that originated from the following referers. NOTE!!!! SegReferer only works against the HOST name. Not the full URL. .SH "DISPLAY OPTIONS" The Display Options modify the resulting output that AWFFull produces. Things like HTML Headers and Footers to add on every page. These options don't change the numbers that AWFFull will calculate, but may change which ones appear, giving the illusion of a numerical change. .TP ReportTitle ReportTitle is the text to display as the title. The hostname (unless blank) is appended to the end of this string (separated with a space) to generate the final full title string. Default is (for English) \(oqUsage Statistics for\(cq. .TP HostName HostName defines the hostname for the report. This is used in the title, and is prepended to the URL table items. This allows clicking on URL's in the report to go to the proper location in the event you are running the report on a 'virtual' web server, or for a server different than the one the report resides on. If not specified here, or on the command line, AWFFull will try to get the hostname via a uname system call. If that fails, it will default to \(oqlocalhost\(cq. .TP IndexMonths This option controls how many years worth of data to display on the front summary page. In months. eg: Display the last 5 years: 5 x 12 = 60 .TP DailyStats DailyStats allows the daily statistics table to be disabled - not displayed. Values may be \(oqyes\(cq or \(oqno\(cq. Default is \(oqyes\(cq - do display the Daily Statistics table. .TP HourlyStats HourlyGraph and HourlyStats allows the hourly statistics graph and statistics table to be disabled (not displayed). Values may be "yes" or "no". Default is "yes". .TP CSSFilename CSSFilename is used to set the name of the CSS file to use in conjunction with the generated html. An existing file is not overwritten, so feel free to make you own changes to the default file. The default is \*(T<\fIawffull.css\fR\*(T>. .TP FlagsLocation FlagsLocation will enable the display of country flag pictures in the country table. The path is that for a webserver, not file system. Can be relative or complete. The trailing slash is not necessary. The default location is not set and hence will not be used. .TP YearlySubtotals YearlySubtotals will display the subtotal for a given year in the main page. This is in addition to the Grand Total of all years. .TP GroupShading The GroupShading allows grouped rows to be shaded in the report. Useful if you have lots of groups and individual records that intermingle in the report, and you want to differentiate the group records a little more. Value can be \(oqyes\(cq or \(oqno\(cq, with \(oqyes\(cq being the default. .TP GroupHighlight GroupHighlight allows the group record to be displayed in BOLD. Can be either \(oqyes\(cq or \(oqno\(cq with the default being \(oqyes\(cq. .TP HTMLExtension HTMLExtension allows you to specify the filename extension to use for generated HTML pages. Normally, this defaults to "html", but can be changed for sites who need it (like for PHP embedded pages). .TP UseHTTPS UseHTTPS should be used if the analysis is being run on a secure server, and links to urls should use \(oqhttps://\(cq instead of the default \(oqhttp://\(cq. If you need this, set it to \(oqyes\(cq. Default is \(oqno\(cq. This only changes the behaviour of the \(oqTop URLs\(cq table. .TP Top* The various \(oqTop\(cq options below define the number of entries for each table. Tables may be disabled by using zero (0) for the value. .TP TopURLs The most accessed URLs or Resources by number of requests (hits). Includes both Pages and Images, for example. Defaults to 30 URLs. .TP TopKURLs The greatest volume generating URLs. Defaults to 10 URL's. .TP TopEntry The most accessed initial URLs within a complete Visit. Will also display Single Access counts, Stickiness ration and Popularity ratio. Defaults to 10 URLs. .TP TopExit The most accessed last URLs within a complete Visit. ie: The last page recorded of a Visit. Also displays the Popularity ratio. Defaults to 10 URLs. .TP Top404Errors The most seen error requests and a corresponding referring URL. Defaults to 0, ie not shown. .TP TopSites Those Sites that have accessed the most Pages. Default is 30 Sites. .TP TopKSites Those Sites that have downloaded the greatest Volume. Default is 10 Sites. .TP TopReferrers Those local and remote URLs that refer the most requests. Default is 30 Referrers. .TP TopSearch Those words and phrases used at remote Search Engines to direct traffic here. Default is 20 Phrases. .TP TopUsers Those logged in users who most use the site. Default is 20 Users. .TP TopAgents The Browser Agents that are busiest against this site. Default is 15 Agents. .TP TopCountries A view of all traffic against this site via country. .TP All* The All* keywords allow the display of all the below measures. If enabled, a separate HTML page will be created, and a link will be added to the bottom of the appropriate "Top" table. There are a couple of conditions for this to occur. First, there must be more items than will fit in the "Top" table (otherwise it would just be duplicating what is already displayed). Second, the listing will only show those items that are normally visible, which means it will not show any hidden items. Grouped entries will be listed first, followed by individual items. The value for these keywords can be either 'yes' or 'no', with the default being 'no'. Please be aware that these pages can be quite large in size, particularly the sites page, and separate pages are generated for each month, which can consume quite a lot of disk space depending on the traffic to your site. .TP AllURLs All accessed URLs .TP AllEntryPages All Pages that initialised a Visit .TP AllExitPages All the last or exit pages in all Visits. .TP All404Errors All ErrorRequests and the corresponding referral URLs. .TP AllSites All remote sites that accessed this website. .TP AllReferrers All local and remote referring URLs .TP AllSearchStr All Remote Search Engine words and Phrases used to refer traffic here. .TP AllUsers All users who logged into this website. .TP AllAgents All Browser Agents used to access this site. Useful for identifying robots. .TP GMTTime GMTTime allows reports to show GMT (UTC) time instead of local time. Default is to display the time the report was generated in the timezone of the local machine, such as EDT or PST. This keyword allows you to have times displayed in UTC instead. Use only if you really have a good reason, since it will probably screw up the reporting periods by however many hours your local time zone is off of GMT. .TP HTMLPre HTMLPre defines HTML code to insert at the very beginning of the file. Default is the DOCTYPE line shown below. Max line length is 80 characters, so use multiple HTMLPre lines if you need more. .TP HTMLHead HTMLHead defines HTML code to insert within the \*(T<\*(T> block, immediately after the \*(T<\*(T> line. Maximum line length is 80 characters, so use multiple lines if needed. .TP HTMLBody HTMLBody defined the HTML code to be inserted, starting with the <BODY> tag. If not specified, the default is shown below. If used, you MUST include your own <BODY> tag as the first line. Maximum line length is 80 char, use multiple lines if needed. .TP HTMLPost HTMLPost defines the HTML code to insert immediately before the first <HR> on the document, which is just after the title and "summary period"-"Generated on:" lines. If anything, this should be used to clean up in case an image was inserted with HTMLBody. As with HTMLHead, you can define as many of these as you want and they will be inserted in the output stream in order of appearance. Max string size is 80 characters. Use multiple lines if you need to. .TP HTMLTail HTMLTail defines the HTML code to insert at the bottom of each HTML document, usually to include a link back to your home page or insert a small graphic. It is inserted as a table data element (ie: <TD> your code here </TD>) and is right aligned with the page. The maximum string size is 80 characters. .TP HTMLEnd HTMLEnd defines the HTML code to add at the very end of the generated files. It defaults to what is shown below. If used, you MUST specify the </BODY> and </HTML> closing tags as the last lines. The maximum string length is 80 characters. .SH "GRAPHING OPTIONS" As distinct from the general Display Options, the Graphing Options focus on manipulating the various graphs produced. .TP CountryGraph CountryGraph allows the usage by country graph to be disabled. Values can be 'yes' or 'no', default is 'yes'. .TP DailyGraph DailyGraph determines if the daily statistics graph will be displayed or not. Values may be "yes" or "no". Default is "yes" - do display the daily graph. .TP HourlyGraph HourlyGraph determines if the daily statistics graph will be displayed or not. Values may be "yes" or "no". Default is "yes" - do display the hourly graph. .TP TopURLsbyHitsGraph Display a pie chart of the top URLs by HITS .TP TopURLsbyVolGraph Display a pie chart of the top URLs by HITS .TP TopExitPagesGraph Display Top Exit Pages Pie Chart. Values may be \(oqhits\(cq or \(oqvisits\(cq or "no". Default is "no" \(oqhits\(cq means order the graph by hits \(oqvisits\(cq means order the graph by visits .TP TopEntryPagesGraph Display Top Entry Pages Pie Chart. Values may be \(oqhits\(cq or \(oqvisits\(cq or "no". Default is "no" \(oqhits\(cq means order the graph by hits \(oqvisits\(cq means order the graph by visits .TP TopSitesbyPagesGraph Display a pie chart of the Top Sites by Page Impressions .TP TopSitesbyVolGraph Display a pie chart of the Top Sites by Page Impressions .TP TopAgentsGraph Display a pie chart of the Top User Agents (by pages) .TP GraphLegend GraphLegend allows the color coded legends to be turned on or off in the graphs. The default is for them to be displayed. This only toggles the color coded legends, the other legends are not changed. If you think they are hideous and ugly, say 'no' here :) .TP GraphLines GraphLines allows you to have index lines drawn behind the graphs. Anything other than "no" will enable the lines. .TP Graph*X and Graph*Y The following Graph*X and Graph*Y options are used to modify the sizes of the created charts. The default settings are shown. The defaults are also the minimum settings. #define GRAPH_INDEX_X 512 /* px. Default X size (512) */ #define GRAPH_INDEX_Y 256 /* px. Default Y size (256) */ #define GRAPH_DAILY_X 512 /* px. Daily X size (512) */ #define GRAPH_DAILY_Y 400 /* px. Daily Y size (400) */ #define GRAPH_HOURLY_X 512 /* px. Daily X size (512) */ #define GRAPH_HOURLY_Y 400 /* px. Daily Y size (400) */ #define GRAPH_PIE_X 512 /* px. Pie X size (512) */ #define GRAPH_PIE_Y 300 /* px. Pie Y size (300) */ .TP GraphIndexX The main chart on the front page. Summary of all Months. Default is 512 pixels. .TP GraphIndexY Default is 256 pixels. .TP GraphDailyX The Day by Day Summary graph at the start of each Months Summary. Default is 512 pixels. .TP GraphDailyY Default is 400 pixels. .TP GraphHourlyX The Hourly Average graph within each Months Summary. Default is 512 pixels. .TP GraphHourlyY Default is 400 pixels. .TP GraphPieX All pie charts are the same size. Default is 512 pixels. .TP GraphPieY Default is 300 pixels. .TP Graph and Table Colours The custom bar graph and pie Colours can be overridden with these options. Declare them in the standard hexadecimal way - as per HTML but without the '#'. If none are given, you will get the default AWFFull colors. .TP ColorHit Default value is \(oq00805C\(cq (dark green) .TP ColorFile Default value is \(oq0000FF\(cq (blue) .TP ColorSite Default value is \(oqFF8000\(cq (orange) .TP ColorKbyte Default value is \(oqFF0000\(cq (red) .TP ColorPage Default value is \(oq00E0FF\(cq (cyan) .TP ColorVisit Default value is \(oqFFFF00\(cq (yellow) .TP PieColor1 Default value is \(oq00805C\(cq (dark green) .TP PieColor2 Default value is \(oq0000FF\(cq (blue) .TP PieColor3 Default value is \(oqFF8000\(cq (orange) .TP PieColor4 Default value is \(oqFF0000\(cq (red) .SH "GROUP* OPTIONS" The Group* keywords permit the grouping of similar objects as if they were one. Grouped records are displayed in the \(oqTop\(cq tables and can optionally be displayed in bold and/or shaded. Groups cannot be hidden, and are not counted in the main totals. The Group* options do not hide the individual items that are members of the Group. If you wish to hide the records that match - so just the grouping record is displayed - follow with an identical Hide* keyword with the same value. Or use the single GroupAndHide* keyword that matches, instead of the Group* and Hide* combination. .PP Group* keywords may have an optional label which will be displayed instead of the keywords value. The label should be separated from the value by at least one white-space character, such as a space or tab. .PP The Hide*, Group* and Ignore* and Include* keywords allow you to change the way Sites, URL's, Referrers, User Agents and User names are manipulated. The Ignore* keywords will cause AWFFull to completely ignore records as if they didn't exist (and thus not counted in the main site totals). The Hide* keywords will prevent things from being displayed in the 'Top' tables, but will still be counted in the main totals. The Group* keywords allow grouping similar objects as if they were one. Grouped records are displayed in the 'Top' tables and can optionally be displayed in BOLD and/or shaded. Groups cannot be hidden, and are not counted in the main totals. The Group* options do not, by default, hide all the items that it matches. If you want to hide the records that match (so just the grouping record is displayed), follow with an identical Hide* keyword with the same value. (see example below) In addition, Group* keywords may have an optional label which will be displayed instead of the keywords value. The label should be separated from the value by at least one 'white-space' character, such as a space or tab. .PP The value can have either a leading or trailing '*' wildcard character. If no wildcard is found, a match can occur anywhere in the string. Given a string \(oqwww.yourmama.com\(cq, the values \(oqyour\(cq, \(oq*mama.com\(cq and \(oqwww.your*\(cq will all match. .TP GroupURL .TP GroupSite .TP GroupReferrer .TP GroupUser .TP GroupAgent .TP GroupDomains The GroupDomains keyword allows you to group individual host names into their respective domains. The value specifies the level of grouping to perform, and can be thought of as 'the number of dots' that will be displayed. For example, if a visiting host is named cust1.tnt.mia.uu.net, a domain grouping of 1 will result in just "uu.net" being displayed, while a 2 will result in "mia.uu.net". The default value of zero disable this feature. Domains will only be grouped if they do not match any existing "GroupSite" records, which allows overriding this feature with your own if desired. .SH "HIDE* OPTIONS" The Hide* keywords will prevent things from being displayed in the \&'Top' tables. The hidden items will still be counted in the main totals. .TP HideURL Hide URL matching name. .TP HideSite Hide site matching name. .TP HideReferrer Hide referrer matching name. .TP HideUser .TP HideAgent Hide user agents matching name. .TP HideAllSites HideAllSites allows forcing individual sites to be hidden in the report. This is particularly useful when used in conjunction with the "GroupDomain" feature, but could be useful in other situations as well, such as when you only want to display grouped sites (with the GroupSite keywords...). The value for this keyword can be either 'yes' or 'no', with 'no' the default, allowing individual sites to be displayed. .SH "GROUPANDHIDE* OPTIONS" All the Hide and Group "name" options can be combined in a single config line. eg GroupAndHideURL. If you start using the Group* options you will find that you tend to match every Group* option with a corresponding Hide* option. The GroupAndHide* options simply short circuit this unnecessary duplication. .TP GroupAndHideURL .TP GroupAndHideSite .TP GroupAndHideReferrer .TP GroupAndHideUser .TP GroupAndHideAgent .SH "DATA DUMP OPTIONS" The Dump* keywords allow the dumping of Sites, URL's, Referrers User Agents, User names and Search strings to separate tab delimited text files, suitable for import into most database or spreadsheet programs. .TP DumpPath DumpPath specifies the path to dump the files. If not specified, it will default to the current output directory. Do not use a trailing slash ('/'). .TP DumpHeader The DumpHeader keyword specifies if a header record should be written to the file. A header record is the first record of the file, and contains the labels for each field written. Normally, files that are intended to be imported into a database system will not need a header record, while spreadsheets usually do. Value can be either 'yes' or 'no', with 'no' being the default. .TP DumpExtension DumpExtension allow you to specify the dump filename extension to use. The default is "tab", but some programs are picky about the filenames they use, so you may change it here (for example, some people may prefer to use "csv"). .TP DumpURLs .TP DumpEntryPages .TP DumpExitPages .TP DumpSites .TP DumpReferrers .TP DumpSearchStr .TP DumpUsers .TP DumpAgents .TP DumpCountries .SH EXAMPLES Sample Extract of a configuration file: .nf \*(T<# The 'auto' value means that AWFFull will try and work out what log format # you are sending to it. If no joy, AWFFull will immediately exit. LogType auto # OutputDir is where you want to put the output files. This should # should be a full path name, however relative ones might work as well. # If no output directory is specified, the current directory will be used. OutputDir .\*(T> .fi Minimal configuration file: .nf \*(T<# Sample *MINIMAL* AWFFull configuration file # # The below settings are the only ones you *really* need to worry about # when configuring AWFFull. See the sample.conf file for all options if # the below only serves to whet your appetite. # # See awfful(1) or sample.conf for full explanations. # We can do a little bit each day, or hour... Incremental yes # Your server name to display HostName www.my_example.site ##\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- # Use PageType OR NotPageType # I personally prefer NotPageType \- YMMV! PageType htm PageType html PageType php #PageType pl #PageType cfm #PageType pdf #PageType txt #PageType cgi ### OR! \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- #NotPageType gif #NotPageType css #NotPageType js #NotPageType jpg #NotPageType ico #NotPageType png ##\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- # Should always fold in Sequence Errors. Logs can be messy... FoldSeqErr yes # If you want to see the country flags, uncomment the following. # This is the, possibly relative, URL where the flag flies are located. #FlagsLocation flags \*(T>.fi .SH "SEE ALSO" awffull(1) .SH BUGS None currently known. YMMV.... .PP Report bugs to \(lahttps://bugs.launchpad.net/awffull\(ra, or use the email discussion list: <\*(T<awffull@stedee.id.au\*(T>> .SH NOTES In case it is not obvious: AWFFull is a play/pun on the word \(oqawful\(cq, and is pronounced the same way. Yes it was deliberate. .SH REFERENCES [1] Web Site Measurement Hacks. Eric T. Peterson (and others). O'Reilly. ISBN 0-596-00988-7. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������awffull-3.10.2/doc/awffull.1.xml��������������������������������������������������������������������0000644�0000764�0000764�00000077571�11120616301�013264� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> <refentry> <refentryinfo> <date>2008-Dec-13</date> <author> <firstname>Steve</firstname> <surname>McInerney</surname> <email>steve@stedee.id.au</email> </author> <author> <firstname>Alexander</firstname> <surname>Lazic</surname> <email>al-awffull@none.at</email> </author> <author> <firstname>Patrick</firstname> <surname>Ben Koetter</surname> <email>p@state-of-mind.de</email> </author> <author> <firstname>Benoit</firstname> <surname>Rouits</surname> <email>brouits@free.fr</email> </author> <author> <firstname>Stanislaw</firstname> <surname>Yurievich Pusep</surname> </author> <author> <firstname>Bradford</firstname> <surname>L. Barrett</surname> <email>brad@mrunix.net</email> </author> </refentryinfo> <refmeta> <refentrytitle>awffull</refentrytitle> <manvolnum>1</manvolnum> </refmeta> <refnamediv> <refname>AWFFull</refname> <refpurpose>A Webalizer Fork, Full o' features</refpurpose> </refnamediv> <refsynopsisdiv> <cmdsynopsis> <command>awffull</command> <arg>...</arg> <arg>log-file</arg> </cmdsynopsis> </refsynopsisdiv> <refsect1 id="description"> <title>Description AWFFull is a web server log analysis program based on The Webalizer. AWFFull produces usage statistics in HTML format for viewing with a browser. The results are presented in both columnar and graphical format, which facilitates interpretation. Yearly, monthly, daily and hourly usage statistics are presented, along with the ability to display usage by site, URL, referrer, user agent (browser), user name, search strings, entry/exit pages, and country (some information may not be available if not present in the log file being processed). AWFFull supports the following log formats shown in the following variable list: CLF (common log format) log files Combined log formats as defined by NCSA and others, and variations of these which it attempts to handle intelligently xferlog wu-ftpd formatted log files allowing analysis of ftp servers, and squid proxy logs. Logs may also be compressed, via gzip. If a compressed log file is detected, it will be automatically uncompressed while it is read. Compressed logs must have the standard gzip extension of .gz. This documentation applies to AWFFull Version 3.8.2 Changes From WEBALIZER AWFFull is based on The Webalizer code and has a number of large and small changes. These include: Beyond the raw statistics: Making use of published formulae to provide additional insights into site usage GeoIP IP Address look-ups for more accurate country detection Resizable graphs Integration with GNU gettext allowing for ease of translations. Currently 32 languages are supported. Display more than 12 months of the site history on the front page. Additional page count tracking and sort by same. Some minor visual tweaks, including Geolizer's use of Kb, Mb etc for Volumes Additional Pie Charts for URL counts, Entry and Exit Pages, and Sites Horizontal lines on graphs that are more sensible and easier to read User Agent and Referral tracking is now calculated via PAGES not HITS GNU style long command line options are now supported (eg ) Can choose what is a page by excluding what isn't vs the original what is method Requests to the site being analysed are displayed with the matching referring URL A Table of 404 Errors, and the referring URL can be generated An external CSS file can be used with the generated html Manual performance optimisation of the config file is now easier with a post analysis summary output Specified IP Addresses can be assigned to a given country Additional Dump options for detailed analysis with other tools Lotus Domino v6 logs are now detected and processed Additional changes and improvements are planned and undergoing implementation. See the TODO file for details. New Report Measurements With version 3.8.1 of AWFFull, several new measured results have been added to the detailed report monthly page. Single Access Single Access Pages - the only page seen within a given visit Stickiness How useful a given entry page is to draw Visitors deeper into your site Popularity The Ratio of Page Entries to Page Exits These metrics can help towards improving insight in the usage of the processed web site. And hence allow the site owner to make positive change to make the site more useful to site visitors. All three metrics appear in the Entry Pages Report. Popularity is also on the Exit Pages Report. Single Access More completely: Single Access Pages. This is a report on the number of times that a given page was the only page viewed within a Visit. Or in English, Someone came to your website. They only viewed one page. The number is the cumulative count of people who did this for that particular page. Why is this useful? Identifying those entry pages that don't draw visitors deeper into your site. Or seeing entry pages that shouldn't be entry pages. It's also a reality check against the next two values which are calculated from this number. The number generated should be a subset of the Entry Page Views and/or Exit Page Views metric. If it isn't? Let me know, we have a bug. :-) Stickiness Is calculated as 1 - (Single Access / Entry Page Views) expressed as a percentage. In essence Stickiness describes how useful a given entry page is to draw Visitors deeper into your site. The stickier the page, the more folk are caught by it. :-) The closer to 100% the better. Generally. Certain pages within YOUR website may not make sense to have a high stickiness or even > 5%. This measurement is a clue to understanding how your site is used, it is not a rule. How is this useful? How and where are people entering your web site. Does that make sense? Should it be here or there? What can you change to fix this and hence improve their use of your website. Popularity Popularity is the Ratio of Page Entries to Page Exits. o If it equals 1.0? Then the number of visitors to your site who started with that page, equals the number who left at that page. o If greater then 1.0, then more people entered here then left. o If less then 0? More people left from here then entered. I personally find this metric one of the more useful "At a Glance: How are Pages Performing" metrics. One of the difficulties with using this particular metric is that certain numbers will NOT make sense for YOUR site. In that a natural exit page would expect to have a very low Popularity. It's an exit page, not an entry page. So if an exit page has a high popularity, then you have a real problem. Likewise, a low Popularity for an entry page is unlikely to be a Good Thing(tm). "Where & Why?" All three of these metrics are covered very nicely in Hack #58 from "Web Site Measurement Hacks" [1]. Which is where, credit where credit due, the inspiration to add these metrics came from. Running AWFFull AWFFull is designed to be run from a Unix command line prompt or as a crond(8) job. There is no need to run with super-user privleges, and indeed, is preferable NOT to. Once executed, the general flow of the program is: A default configuration file is scanned for, /usr/local/etc/awffull.conf and, if found, is used. Any command line arguments given to the program are parsed. This may include the specification of one or more configuration files, which are processed at the time it is encountered. It can be useful to have multiple config files. A master used for multiple sites, and individualised config files. Do be aware that last option set wins. So last config file, or if after a config file, command line options. Useful if you desire to send the output to an alternate directory. If a log file was specified, it is opened and made ready for processing. If no log file was given, STDIN is used for input. If the log filename '-' is specified, STDIN will be forced. If an output directory was specified, AWFFull changes to that directory in preparation for generating output. If no output directory was given, the current directory is used. If no hostname was given, the program attempts to get the hostname using a uname(2) system call. If that fails, localhost is used. A history file is searched for in the current directory (output directory) and read if found. This file keeps totals for previous months, which is used in the main index.html HTML document. Note: The file location can now be specified with the HistoryName configuration option. If incremental processing was specified, a data file is searched for and loaded if found, containing the 'internal state' data of the program at the end of a previous run. Note: The file location can now be specified with the IncrementalName configuration option. Main processing begins on the log file. If the log spans multiple months, a separate HTML document is created for each month. After main processing, the main index.html page is created, which has totals by month and links to each months HTML document. A new history file is saved to disk, which includes totals generated by AWFFull during the current run. If incremental processing was specified, a data file is written that contains the 'internal state' data at the end of this run. Incremental Processing Version 1.2x of The Webalizer added incremental run capability. Simply put, this allows processing large log files by breaking them up into smaller pieces, and processing these pieces instead. What this means in real terms is that you can now rotate your log files as often as you want, and still be able to produce monthly usage statistics without the loss of any detail. Basically, AWFFull saves and restores all internal data in a file named awffull.current. This allows the program to 'start where it left off' so to speak, and allows the preservation of detail from one run to the next. The data file is placed in the current output directory, and is a plain ASCII text file that can be viewed with any standard text editor. It's location and name may be changed using the IncrementalName configuration keyword. Some special precautions need to be taken when using the incremental run capability of AWFFull. Configuration options should not be changed between runs, as that could cause corruption of the internal data stored. For example, changing the MangleAgents level will cause different representations of user agents to be stored, producing invalid results in the user agents section of the report. If you need to change configuration options, do it at the end of the month after normal processing of the previous month and before processing the current month. You may also want to delete the awffull.current file as well. AWFFull also attempts to prevent data duplication by keeping track of the timestamp of the last record processed. This timestamp is then compared to current records being processed, and any records that were logged previous to that timestamp are ignored. This, in theory, should allow you to re-process logs that have already been processed, or process logs that contain a mix of processed/not yet processed records, and not produce duplication of statistics. The only time this may break is if you have duplicate timestamps in two separate log files. Any records in the second log file that do have the same timestamp as the last record in the previous log file processed, will be discarded as if they had already been processed. There are lots of ways to prevent this however, for example, stopping the web server before rotating logs will prevent this situation, or using a tool such as cronolog (http://cronolog.org/). This setup also necessitates that you always process logs in chronological order, otherwise data loss will occur as a result of the timestamp compare. Reverse DNS Lookups AWFFull no longer supports DNS lookups. Please use an external program such as DNShistory or DNSTran instead. http://www.summary.net/soft/dnstran.html http://www.stedee.id.au/dnshistory With version 3.7.1 of AWFFull, GeoIP capability can be used for improved country detection. Command Line Options AWFFull supports many different configuration options that will alter the way the program behaves and generates output. Most of these can be specified on the command line, while some can only be specified in a configuration file. The command line options are listed below, with references to the corresponding configuration file keywords. See also awffull.conf(5). General Options , Display all available command line options and exit program , Display program version and exit program -v --verbose Display debugging information for errors and warnings. Multiple v's will increase the amount of information displayed. --match_counts Display optimisation useful information pertaining to the number of matches against various Group, Hide and Ignore options. -i --ignore_history Ignore history. USE WITH CAUTION. This will cause AWFFull to ignore any previous monthly history file only. Incremental data (if present) is still processed. -p --preserve_state Preserve internal data between runs. -T --timing . Force display of timing information at end of processing. -c --config=FILE Use configuration file FILE -n NAME . Use the hostname NAME. -o --output=DIR . Use output directory DIR. -t NAME . Use NAME for report title. F --logtype=TYPE . Specify log type to be processed. Value can be one of: auto, clf, combined, domino, ftp or squid format. If not specified, will default to auto format. FTP logs must be in standard wu-ftpd xferlog format. A value of auto states that the log format automatically ascertained. -f --fold . Fold out of sequence log records back into analysis, by treating as if they were the same date/time as the last good record. Normally, out of sequence log records are simply ignored. -Y . Suppress country graph. -G . Suppress hourly graph. -x NAME . Defines the HTML file extension to use on the created report files. If not specified, defaults to html. Do not include the leading period. -H . Suppress hourly statistics. -L . Suppress color coded graph legends. -l NUM . Use background lines. The number of lines and where to place are automatically calculated. For backwards compatibility, any number > 0 enables. Use zero ('0') to disable the lines. -P NAME" . Specify file extensions that are considered pages. Sometimes referred to as pageviews. -m NUM . Specify the Visit timeout period. Specified in number of seconds. Default is 1800 seconds (30 minutes). Sometimes referred to as sessions. -I NAME . Use the filename name as an additional alias for index. -M NUM . Mangle user agent names according to the mangle level specified by num. Mangle levels are: 5 - Browser name and major version 4 - Browser name, major and minor version 3 - Browser name, major version, minor version to two decimal places 2 - Browser name, major and minor versions and sub-version 1 - Browser name, version and machine type if possible 0 - All information (left unchanged). -g NUM GroupDomains. Automatically group sites by domain. The grouping level specified by num can be thought of as 'the number of dots' to display in the grouping. The default value of 0 disables any domain grouping. Hide Options -a NAME . Hide user agents matching name. -r NAME . Hide referrer matching name. -s NAME . Hide site matching name. -X NAME . Hide all individual sites (only display groups). -u NAME . Hide URL matching name. Table size options -A --top_agents=NUM . Display the top num user agents table. -R --top_refers=NUM . Display the top num referrers table. -S --top_sites=NUM . Display the top num sites table. -U --top_urls=NUM . Display the top num URL's table. -C --top_countries=NUM . Display the top num countries table. -e --top_entry=NUM . Display the top num entry pages table. -E --top_exit=NUM . Display the top num exit pages table. Other Options --use_geoip Enables the use of the Maxmind GeoIP capability for more accurate detection of countries. NOTE! Do not enable GeoIP if you analyse files that have had the IP Address translated to a Fully Qualified Host Name. Use either raw IP Addresses and GeoIP, or Names and disable GeoIP. ie. Don't use GeoIP AND DNShistory. --match_counts Display the various Group/Hide etc Match Counts. This option is ideal for optimisation of the awffull.conf file. Just be careful with optimising Agents in particular, as the order is typically important. Configuration Files See the awffull.conf(5) man page for complete details of all configuration options. Configuration files are standard ASCII(7) text files that may be created or edited using any standard editor. Blank lines and lines that begin with a pound sign ('#') are ignored. Any other lines are considered to be configuration lines, and have the form Keyword Value, where the Keyword is one of the currently available configuration keywords (see awffull.conf(5)), and Value is the value to assign to that particular option. Any text found after the keyword up to the end of the line is considered the keyword's value, so you should not include anything after the actual value on the line that is not actually part of the value being assigned. The file sample.conf provided with the distribution contains lots of useful documentation and examples as well. Certain "Keywords" will accept a 2nd value. In those situations, the first value may be enclosed in double quotes (") to allow for whitespace. See Also awffull.conf(5) Bugs None currently known. YMMV.... Report bugs to https://bugs.launchpad.net/awffull, or use the email discussion list: awffull@stedee.id.au Notes In case it is not obvious: AWFFull is a play/pun on the word awful, and is pronounced the same way. Yes it was deliberate. References [1] Web Site Measurement Hacks. Eric T. Peterson (and others). O'Reilly. ISBN 0-596-00988-7. awffull-3.10.2/config/0000777000076400007640000000000011120617022011507 500000000000000awffull-3.10.2/config/install-sh0000755000076400007640000002202111120610145013423 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: awffull-3.10.2/config/missing0000755000076400007640000002540611120610145013030 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: awffull-3.10.2/config/depcomp0000755000076400007640000003710011120610145013000 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 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 # 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., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: awffull-3.10.2/config/config.sub0000755000076400007640000010115311120611702013406 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: awffull-3.10.2/config/config.guess0000755000076400007640000012753411120611702013756 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: awffull-3.10.2/config/config.rpath0000755000076400007640000003744411120610145013746 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2006 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file 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. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | kfreebsd*-gnu | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; kfreebsd*-gnu) ;; freebsd* | dragonfly*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; interix3*) ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; knetbsd*-gnu) ;; netbsd*) ;; newsos6) ;; nto-qnx*) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.3*) ;; sysv4*MP*) ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <